[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Underware-devel] Dependencies and Model/View/Controller
From: |
Loic Dachary |
Subject: |
[Underware-devel] Dependencies and Model/View/Controller |
Date: |
Mon, 15 Dec 2003 15:02:58 +0100 |
Hi,
Here is a short summary of the work for the next few days.
Cheers,
************ Past week debrief
osg == OpenSceneGraph / OpenGL / Mesa
----------------------------------------------------------------------
Commong Game Interface:
Class game
init
quit
Class pong (derived)
Class background
play music
Class player
Class pongplayer (derived)
----------------------------------------------------------------------
Multimedia Application Framework:
Algorithms & data structures
Tables (stl)
Maths functions (math.h ISO C99)
Sort functions (stl)
Randomize (glib)
Matrix, Vectors... (osg)
Fonts (FTGL http://homepages.paradise.net.nz/henryj/code/index.html#FTGL,
GLFT http://www.lri.fr/~dachary/video/ )
Developer services
Logging / Error Handling (glib)
Statistics / monitoring (?)
Options (getopt / getopt_long)
System interface
Files (glib)
Input handling (SDL)
Windowing system (SDL)
Smart pointers & reference counting (osg)
Real Time Architecture
Threads (glib)
Concurrent updates (todo input, network, sounds / maybe glib ? / event
based or poll based)
OpenAL creates threads for playing music
Synchronous or asynchronous update (todo)
Time schedule, commands register in the schedule for a
given time. (todo)
Two loops : game state updated 3 times as fast as the graphic
update frame rate. (not sure if we should use that idea)
Media Ports
Audio (todo sync osg with openal)
Video (osg renderer)
Data architecture (libxml)
Scene (todo create sample data tree / simple 1 level dir)
Meta information (todo create sample file / which values ?)
Music (OpenAL, MAFSound)
Coding standards (by example, following Vincent Caron's habits)
Which base types (glib + depends on the library)
Default coordinate system : same as OpenGL (direct)
this is not the same as OpenSceneGraph (z points upward)
----------------------------------------------------------------------
The difference between CGI Common Game Interface & MAF Multimedia
Application Framework. CGI is dealing with everything specific to
games. MAF is dealing with everything that could be used (in theory)
by software that is not a game.
************ Future
The choices described above are sensible enough to be a working base
for the next few weeks. We won't question them until all important
concepts are introduced in the example application (network, chat
client...).
>From a structural point of view, underware will be implemented using
the Model / View / Controller paradigm. In order to bootstrap this
model we are going to create abstract classes in MAF and re-implement
the pong. There is no abstract and independant Free Software MVC
library. It is much more a matter of defining an architecture style
rather than improving the pong or adding new functionalities.
Regarding the control of the time (the tentative schedule.h), it is
postponed until after the MVC rewrite.
The class structure could look like this:
PongBall{Model,View,Controller}
: MAF{Model,View,Controller}
PongPaddle{Model,View,Controller}
: MAF{Model,View,Controller}
Pong{Model,View,Controller}
: MAFGroup{Model,View,Controller} // putting ball & paddles together
PongGame : // load game data and event loop => feed the controllers
CGIGame
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Underware-devel] Dependencies and Model/View/Controller,
Loic Dachary <=