Package marauroa.server.game.rp


package marauroa.server.game.rp
This is possibly the most complex part of all the middleware that makes up Arianne.
Role Playing Design is the determining factor on how easy is to create a new game for Arianne.

We had to choose easing the creation of turn time limited based games. Arianne will work better with this kind of games (also known as realtime games).

Role Playing Design tries to be generic and game agnostic (independant of the game being made). The very basic idea behind RPManager is:

 forever
 {
 Execute Actions
 Send Perceptions
 Wait for next turn
 }
 
To achieve this we use several classes:
  • RPManager is coded in Marauroa and doesn't need to be modified.
  • IRPRuleProcessor is the interface that you need to modify in order to personalize the actions that your game will execute.
  • RPWorld is the class that you need to extend in order to implement the onInit and onFinish methods which personalize what happens when you initialise the server and what happens when you close the server.
  • IRPZone is an interface that you could implement if you wanted to achive the highest personalization possible of the engine, however, I would extend MarauroaRPZone
  • Interface Summary
    Interface
    Description
    Interface for the class that is in charge of executing actions.
  • Class Summary
    Class
    Description
    A interface which assists in debugging a server.
    a gameEvent for logging
    Default implementation of IRPZone.
    This class is a factory to convert RPObjects into real objects for your game.
    a default implementation of RPRuleProcessorImpl
    This class represents a scheduler to deliver action by turns, so every action added to the scheduler is executed on the next turn.
    This class is responsible for adding actions to scheduler, and to build and sent perceptions.
    This class is a container of RPZones.
  • Exception Summary
    Exception
    Description
    This exception is thrown when the RPObject factory can't be created, usually because is not configured correctly at server.ini