[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Different game projects, my opinion



Hi,

Lately there is a lot of discussion on the PengiunPlay mailing list concerning the
rise of several game related toolkits. I'm sending this mail both to the Crystal Space
mailing list (of which I'm the manager) and the PengiunPlay mailing list.

Anyway, here is my opinion on this matter.

An earlier mail from Christian Reiniger (a forward from someone else) mentioned
the possibility of letting PengiunPlay be more of a set of guidelines for anyone
trying to make games using free toolkits. In addition the PengiunPlay project itself
may additionally offer a set of toolkits on its own, but in no way enforce them.

Personally I think this is a great idea. As it is now Crystal Space is mainly a 3D engine
but work in the Crystal Space group has been focused recently in trying to make a
more useable game toolkit from it (although still heavily 3D oriented). This work overlaps
in large parts with what PengiunPlay is also aiming at. Both projects need sound support,
networking, 3D graphics, ...

There has always been a slight difference in goals between the two projects however.
PengiunPlay has been from the start mainly a Linux/Unix project although this has never
been intended as a permanent restriction. PenguinPlay is also aiming at trying to be a
general game engine. Crystal Space, in contrast does not aim at any specific platform.
Currently the Linux and Windows platforms are probably considered the most important.
Linux is the original platform that I wrote Crystal Space for while Windows is an
important platform in the games market. Crystal Space is also more of a 3D toolkit and
not a very general game engine in that regards.

Nevertheless I think that many things can be shared between the two groups. For example,
I think it would be very nice if there would be one sound toolkit which both projects
could use.

I think this emphasizes what should be an important design decision: 'work in a component
or toolkit oriented way'. Here is a possible set of toolkits:

    - 3D indoor environment: Crystal Space could be used for this although there are
      also other solutions. Note that Crystal Space supports a software renderer, a
      Direct3D renderer and in the not so distant future also Glide and OpenGL renderers.

    - 3D outdoor environment: in the Crystal Space group there are plans for a landscape
      engine which can interface smoothly with the indoor engine. Other people also mentioned
      the possibility of space engines and such which could all be integrated nicely.

    - Sound: no definite work has been done in the Crystal Space group for this. I don't
      know what the situation is in the PengiunPlay group?

    - Networking: some people from the Crystal Space group have worked on a general
      game networking layer. I think this layer is not specific to Crystal Space but could be
      easily adapted for other games. As such I think it could be used as a toolkit without
      having to use Crystal Space.

    - 2D graphics. Crystal Space offers only very primitive support for this. However I
      think that 2D graphics are nicely covered by GGI.

    - Physics: the Crystal Space project will need a physics toolkit. The plan with Crystal
      Space is to let the scripting handle the physics. The scripting language can use
      functions from the physics toolkit to implement the needed stuff.

    - Scripting: Crystal Space plans to include a scripting interface to the engine using
      COM interfacing. Although COM is a Windows/Microsoft concept measures
      will be taken so that this interface will also be useable for the other ports. The
      advantage of COM is that Crystal Space will support a plug-and-play like
      capabilities with the possibility of dynamically add modules to the engine.

    - Scripting language itself: there are plans for a C++ like scripting language. This
      language will be 3D engine specific but I think that it should be possible to make
      this scripting language more general.

    - Several smaller toolkits like: joystick/mouse support, system specific stuff, ...

Conclusion? I think it is not feasable to really merge all those projects (like merging
Crystal Space and PengiunPlay). The Crystal Space project in itself is rather large
as is the PengiunPlay project. I think a merged project would become difficult to
maintain.

However, I think that the component approach should work to allow both groups
to benefit most from common needed functionality.

What do you think? Let the opinions flow (please post followups to both mailing lists
so that everyone can follow).

Greetings,

--
==============================================================================
Jorrit.Tyberghein@uz.kuleuven.ac.be, University Hospitals KU Leuven BELGIUM

The labyrinth of Ephebe is ancient and full of one hundred and one amazing
things you can do with hidden springs, razor-sharp knives, and falling
rocks.
        -- (Terry Pratchett, Small Gods)
==============================================================================