Skip to content

Design vows

Anton Gushcha edited this page Jun 21, 2014 · 3 revisions

The game is developing in D programming language, thus we'd like to expose all power of compiled languages with powerful meta programming facilities.While designing game structure developers have to take following notes in the account:

  • The game is open-source and we have no need in extra run-time configuration flexibility. Modules are source bundles that are compiled into the engine.
  • Maximum usage of compile-time optimizations, all things that could be done while compilation - have to be done in compile-time. This rule can be relaxed for some cases, but the main idea is creating modular system using meta programming.
  • No boilerplate! Use compile-time DSL's to avoid repeating code.
  • Multiplayer based. Single-player mode is a multiplayer mode with one player. This paradigm saves many efforts for maintaining classical single-player code with multiplayer one.
  • Performance oriented. Anybody hates laggs, therefore concurrency, compile-time optimizations and accurate memory allocation should be used.

Recomendations

  • Avoid singletons, they break concurrent design.
  • Use compile-time interfaces, strategy pattern.

Clone this wiki locally