view doc/Readme.txt @ 105:08651e8a8c51

Quit button, big changes to content system. Moved mde.gui.content to mde.content to reflect it's not only used by the gui. Split Content module into Content and AStringContent. New AContent and EventContent class. Callbacks are now generic and implemented in AContent. Renamed TextContent to StringContent and ValueContent to AStringContent.
author Diggory Hardy <diggory.hardy@gmail.com>
date Sat, 29 Nov 2008 12:36:39 +0000
parents dbf332403c6e
children
line wrap: on
line source

Copyright © 2007-2008 Diggory Hardy
License: GNU General Public License version 2 or later (see COPYING)

--- Some brief info ---

-- Platforms --
Linux: My development platform.
Windows: Poorly tested; dsss.conf needs some adjusting.

-- Dependencies --
Compile-time:
tango (at least r3697)
derelict (at least r300)

Run-time:
Sdl
FreeType 2.3.5 (2.3.0 might work; older versions probably won't due to the binding not finding some (unneeded) symbols).
OpenGL 1.3 or higher


Build instructions:
dsss build
Then run the executable (from the current directory unless you install mde and/or use path options):
bin/mde or bin\mde

Testing:
dsss clean		(this is important if a previous build exists!)
dsss build -debug -debug=mdeUnitTest -C-unittest
bin/mde or bin\mde

Credits:
Me (Diggory Hardy) for just about everything in mde as of now.
Someone (?) for the toDg function in mde.util .

Also thanks to:
Walter Bright and Digital Mars for D and DMD.
The tango team.
[derelict]
[sdl]
[opengl]
[freetype]



--- Goal ---

Mde is an attempt to build a game engine.

It is my second serious attempt at a game engine, following on from ge118 (http://diggory.hardy.googlepages.com/ge118). GE118 was written in C++, starting from some basic OpenGL and SDL tests and some of my early ideas about implementing an engine, and was heavily revised over time as I learned more about programming.

Mde − a Modular D (game-oriented) Engine − was started after I discovered D, and decided I wanted to make a clean start. The acronym starts "modular" because, from experience working on ge118, I had discovered that tightly-related module dependancies (and worse, circular dependancies) caused many difficulties while programming and prevented good designs of components; thus I wanted to separate each part of the project in order to enable better design and facilitate developing a replacement for a part of the program (in case someone would wish to do so).

It is not a library, since:
a)  IMO, different games using the same engine should, where possible (which should be the case with an open source engine) share the same executable and only use config/command line arguments to select the different game.
b)  The source is tied together so tightly and is only designed to be used in one way; thus there seems little point organising it as a library and example app.
Anyway, anyone wanting to use it as a library need only remove mde/mde.d and compile it.


--- FAQ (or just a few questions) ---

+ How many lines are there?
# wc -l $(find . -name "*.d")
As of my last count, that was 10227.

+ Why is the code so DENSE?
That's just my coding style (I still mostly stick to the D style guide). I like code to look neat, but I don't like spacing it out a lot because then it takes more room (more scrolling) and IMO it becomes harder to visualise what goes on.

+ What toolkits/external libraries are used?
    tango
    derelict (SDL, OpenGL, FreeType 2)

+ What libraries are planned to be used?
    OpenAL, if I get around to doing anything with audio.