Skip to content

ennorehling/atlantis-movement

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This code is an attempt to write a set of testable rules components
for Atlantis-like PBEM servers. The overall design goal is to make
that logic independent from the objects in the actual game (Atlantis,
Atlantis 5 and Eressea have the same basic objects, but different
codebases). There are a few components to this,
and they are somewhat neatly spread over these directories:

svc:
  abstract interfaces to access the game objects. These are pretty
  much just headers containing function pointers for every possible
  operation on the specific game's data, and all game logic is written
  in terms of these interfaces, never accessing the actual
  implementation. There is test coverage for these interfaces, to make
  sure that your game's implementation ot the interface is correct.

mock:
  a super simple data layer you can use to mock the game for tests
  without having to use a game-specific library.

logic:
  game logic implementation. All logic is implemented in terms of the
  interfaces defined in the svc direcory.
  
a1:
  this is the original Atlantis, by Russell Wallace. I made a few changes to
  get it compiled with gcc, and extracted some code into functions, but mostly
  kept it the way it was to make sure that the interfaces I was writing didn't
  depend on a particular implementation.
  
And now, a dragon. Because you can't have too many dragons:
                     _ _
              _     //` `\
          _,-"\%   // /``\`\
     ~^~ >__^  |% // /  } `\`\
            )  )%// / }  } }`\`\
           /  (%/'/.\_/\_/\_/\`/
          (    '         `-._`
           \   ,     (  \   _`-.__.-;%>
          /_`\ \      `\ \." `-..-'`
         ``` /_/`"-=-'`/_/
    jgs     ```       ```

About

Some code related to the PBEMs Atlantis and Eressea

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published