TDCore is Java framework for creating tower defence games in 2D.
This book serves as documentation for the framework.
TDCore is written by The Noid and The Swedish Tower.
TDCore was written with the following goals:
TDCore is designed as a backend and isn't including frontend code at all. This design principle was chosen as it allows the client to completely customize the appearance of the game.
For a brief introduction of TDCore, though only a small part of it, go here.
+------------+ +-------------+
| IRC Server | <---> | Game Server | <--- Game Server will filter all the
+------------+ +-------------+ MessageSay and convert to irc
messages. It will also
^ ^ convert the irc messages to
| | MessageSay. It is impossible for
| | the IRC clients to modify the game.
V V
+--------------------+ +---------------+
| Normal IRC Clients | | A Game Player | <-- The player can play as normal and
+--------------------+ +---------------+ also chat with IRC clients.
^
|
+-- Can chat with game players
This is a tutorial describing how to use TDCore for your own game. It is currectly being written.
Before reading this you should have read Understanding TDCore.
As far as we, the developers, know TDCore has an unique architecture. This can make it quite hard to understand TDCore, but it's actually quite easy if you have the time to read all of this;).
TDCore was designed to be very flexible with the ability to replace core functionality with own code if required or desired. This is achieved with the classic "interface as superclass"-idiom.
TDCore is using a "implement, register, start"-structure. This means that you pretty much just have to do just that: implement the interfaces, register your new classes and then start the entire game.
The packages in TDCore are highly coupled, especially with the generic arguments used which we will look at later. This effectively binds together almost all of the packages, producing a very solid foundation.
TDCore uses a pretty simple version naming. All versions are in the format x.x. The first x means that api changes have been made. The second x means that minor non-api changes were made.
Here are some examples: