Multiplayer online game engine/pipeline
- by Slav
I am implementing online multiplayer game where client must be written in AS3 (Flash) to embed game into browser and server in C++ (abstract part of which is already written and used with other games).
Networking models may differ from each other, but currently I'm looking toward game's logic run on both client and server parts but they're written on different languages while it's not the main problem.
My previous game (pretty big one - was implemented with efforts of ~5 programmers in 1.5 years) was mainly "written" within electronic tables as structured objects with implemented inheritance: was written standalone tool which generated AS3 and C++ (languages of platforms to which the game was published) using specified electronic tables file (.xls or .ods). That file contained ~50 tables with ~50 rows and ~50 columns each and was mainly written by game designers which do not know any programming languages. But that game was single-player.
Having declared problem with my currently implementing MMO, I'm looking toward some vast pipeline, where will be resolved such problems like:
game objects descriptions (which starships exist within game, how much HP they have, how fast move, what damage deal...)
actions descriptions (what players or NPCs can do: attack each other, collect resources, build structures, move, teleport, cast spells) - actions are transmitted through server between clients
influences (what happens when specified action applied on specified object, e.i "Ship A attacked Ship B: field "HP" of Ship B reduced by amount of field "damage" of Ship A"
Influences can be much more difficult, yes, e.i. "damage is twice it's size when Ship has =5 allies around him in a 200 units range during night" and so on. If to be able to write such logic within some "design document" it will be easily possible to:
let designers to do their job without programmer's intervention or any bug-prone programming
validate described logic
transfer (transform, convert) to any programming language where it will be executed
Did somebody worked on something like that?
Is there some tools/engines/pipelines which concernes with it?
How to handle all of this problems simultaneously in a best way or do I properly imagine my tasks and problems to myself?