Milk Engine


  1. General information
  2. Thoughts about the engine
  3. Engine contents
  4. Contact



Copyright © Ek and Ernerfeldt '03. All rights reserved.


1. General information
First of all, Milk Engine does not yet exist, this is a documentation describing how we want Milk Egnine to be.
Milk Engine is a multi-plattform game-framework. It's based on SDL and OpenGL. It will be released under the GPL license, and will be availible to download from sourceforge. We will be using CVS so if you want the latest version you know where to get it.



2. Thoughts about the engine
Here's some thoughts about the engine. This engine will help us to develope games much faster in the future. The framework should fit almost every 2d and 3d games.
Codewize thoughts. We are going to use the singleton pattern. It's going to be a dll?



3. Engine Contents

Core
Input
Basic input, key-press, key-release, key-down. Mouse input as well. Simple text input. Controller-mapping.

Sound
fmod? 2D/3D sound. Streaming/preloaded. Volume, priority.

Renderer
Create window, init OpenGL. Culling of objects (i.e. frustum culling).

Vertex-Buffer
Support for CVA (Compiled Vertex Arrays) and VAR (Vertex Array Range)?

Font
Text rendering, 2D and 3D

Camera
2D/3D Camera.

Script-engine
Fast, flexible and easy to use. Simple to integrate the other parts of the engine with this scripting-system.

Menu-system
Standard controls, skinning support.

Console
Pretty much an interface to the script-engine with some nice features like tab expand and history.

Network
Using SDL_net? TCP, UDP. Easy to integrate.

Image
Probably using SDL_image. Will include some simple image manipulation functions, and of course alpha-channel support.

Texture-manager
Multitexturing, mip-mapping, different filters.

Model-manager
Support for some 3d-formats, to start with, Milkshape3d. Full animation support.

Resource-manager
Easy access to resources.

Virtual file-system
Load files from archives, maybe zips?

Particle-system
Very flexible.

Logging
Nice text output. Maybe HTML output support too?

Error-handling-system
This will be done using some nice sort of exception-hierarchy.

Entity-manager
Handling of objects.

Timer
High resolution timer, the SDL timer functions I suppose. Not much to say.

Math
Vector (2d, 3d)
Not much to say here. Template based.

Matrix (4x4, 3x3)
Template based as well.

Quaternion
To be integrated with the matrix class. And of course, some slerp functions.

Collision-detecting
Collision detecting of different primitives, both 2d and 3d. (Boxes, circles, spheres, lines, rays, cylinder and points.)

Helper/Miscellaneous
Random-class
Randomization functions.



4. Contact
We are currently 2 developers. We don't have any intentions to extend our small crew. Anyway, if you have any suggestion of centent we should include in Milk Engine, please send us an e-mail.

Jesper Ek
Email: ek dot jesper at telia dot com
ICQ: 6686327

Emil Ernerfeldt
Email: ernerfeldt at telia dot com
ICQ: n/a