view doc/Readme.txt @ 124:a2ef6b549101

Dynamic minimal size changing is now fully supported. Support for reducing minimal size in layouts. Editing numbers as text now always converts new number back to string at end of edit. Floating point number display format changed.
author Diggory Hardy <diggory.hardy@gmail.com>
date Mon, 05 Jan 2009 12:43:27 +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.