wiki:GerminationxArchitecture

Version 1 (modified by dave, 10 years ago) (diff)

--

==Server (Oak)==

===FAtiMA layer===

Running agents defined using XML, standard Lirec codebase, no changes. Each agent runs as a Java process, sending and receiving messages from the world server program.

===World server layer===

Another Java process, programmed in Clojure. Listens to messages from agents, and dispatches them to the others. Contains the FAtiMA world state, agents and objects,

===Webserver layer===

Running in the same process as the world server, but in another thread, the webserver responds to requests with information based on the world state.

==Client (Fungi)==

Multiple clients, running in webbrowsers, programmed in Haxe, for flash or HTML5 canvas. Responsible for displaying the world state, and allowing players to interact with it. Objects created here are passed up to the world server layer, so characters respond to changes the player makes.