Penguin

A game and 3d-engine being developed by SamJansen and JesseBaker. We now have a new team member !JeremySuttie?.

It started off more as a QuakeIII level importer. Basically, SamJansen wrote a QuakeIII level importer so the development process had decent size & quality levels to work with. The levels aren't rendered entirely, certain things are missing (mainly animated textures and the like).

A basic feature list follows:

  • OpenGL and Direct3D rendering. The Direct3D renderer has fallen behind the OpenGL one, but it could be updated without too much effort.
  • VFS (virtual file system) based on PhysicsFS.
  • MD2 and MD3 model loading and animation. These are in a state of flux and somewhat broken as they are not currently used. They have both worked fine in the past.
  • OO design allowing for multiple renderers (OpenGL, Direct3D), multiple system drivers (Win32, SDL (Linux, FreeBSD)) and so on.
  • Octree-based level with view-frustum culling.
  • Basic Quake 3 level exporter to convert from BSP files to Bung level files.
  • Texture-mapped text output using FreeType2 to render .ttf files.
  • Collision detection courtesy of the Opcode collision detection library (with custom code to cache the information on disk).
  • Collision response to allow the player to slide along walls and climb up stairs.
  • Advanced networking implementation and server. Networking makes heavy use of client side prediction. Low level networking is based on enet.
  • Integration with Lua using luabind.
  • Particle system.
  • Quake3-style shaders.
  • GUI system (still in early stages at the time of writing).

The somewhat stable page describing BuNg and its main uses (not games, even though its called a game engine) is here.

These days we are developing a game in BuNg. It is aimed at being a fairly simplistic first person shooter. More information when it reaches a more playable state. At the time of writing there are frags, respawning, in-game changing of levels, chatting and 2 different weapon types. Much more is planned in the coming months with a 1.0 release being fully playable on Linux and Windows.

Though the project has mainly been coded in MicrosoftWindows with Microsoft Visual C++ .NET, it also works in Linux and FreeBSD using SimpleDirectMediaLayer, or SDL.


There are a number of people finding this page through google mostly looking for information on collision detection using opcode, and how to read md3 models etc, perhaps you would like to describe your experiences with these things here for others benefit?

Game programming tutorials aren't really WLUG material; instead I've put extra information up on my server. I used to have a page something with some tutorials, but I seem to have lost it.