underware-devel
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]