[fpc-pascal] Freepascal Game Developers

Michalis Kamburelis michalis at camelot.homedns.org
Sun Dec 5 07:02:41 CET 2004


I'm working on a 3D game in FPC since 2 years. There are still many 
things to do, but also many things are already done and working. I have 
units to
- deal with OpenGL (including GLWindow, my own glut-replacement in
ObjectPascal, able to work on top of GTK or XLib or WinAPI),
- load and process VRML 1.0 and 3DS files,
- convert from 3DS to VRML 1.0,
- render VRML 1.0 files using OpenGL or using raytracing (to images),
- create octree on VRML 1.0 files (for collision detection and raytracing),
- load and save 2d images (bmp, ppm, png (using libpng), jpg (using
pasjpeg), rgbe (Greg Ward's Red+Green+Blue+Exponent format)),
- deal with OpenAL (including OpenAL library bindings and some utilities 
to comfortably work with OpenAL),
- deal with fonts (like rendering OpenGL and bitmap fonts in OpenGL,
also converting TTF fonts to Pascal-code (so you can easily "embed" free
fonts in your programs; although conversion program still needs to be
rewritten using FreeType)),
- process and render in OpenGL 3d curves (rational Bezier curves, smooth
interpolated curves).

There are also many generally-useful units under the hood (like
- ParsingPars, unit to parse command-line options, or
- VectorMath, unit with many vector-and-matrix operations, mainly for 3d
- MathExpr, parsing and evaluating mathematical expressions,
- TDynXxxArray classes, something like richer dynamic arrays, done like 
"simulated" C++ templates,
and some more...).

Of course the biggest things are units to deal with VRML. I consider
VRML 1.0 handling almost complete (complete as for correctness; OpenGL
rendering still could be, and should be, and will be, optimized).

It's everything pure ObjectPascal, sources GNU GPLed. Compiles and works
under Linux, Win32, and FreeBSD. Basically should compile under any
UNIX-like system (with FPC's Unix, BaseUnix units), since code used on
FreeBSD actually does not have any "$ifdef FREEBSD", it's only generic
UNIX code. i386 only for now, although someone was (is?) trying to port
this to MacOS X + PowerPC, as most code is not architecture-dependent.

All demo programs and sources are available on my page

There are some small games (e.g. lets_take_a_walk, using all that VRML
and OpenGL stuff and OpenAL sounds) and some utility programs (most
important view3dscene, quite usable VRML 1.0 and 3DS viewer).

I want to move my development to sourceforge.net (as
www.camelot.homedns.org is slow, so please be patient) and of course I'm
going to submit my units to FPC's "Contributed units" page. But I still
want to translate more documentation to English (because almost
everything is documented in my units, but some large parts are still in
Polish), and generate sensible HTML version of docs with pasdoc.

Since September, development stopped a little (I'm working on some
commercial db program in Delphi for Windows... bleeeh...) but things
will surely start to grow fast in next year.

OK, enough self-promotion :) I will be happy if some of my units will be 
useful to someone else.


Ron Weidner <xecronix at yahoo.com>  wrote:

> If there is enough interest, I'm thinking of
> creating/hosting a web site devoted to the development
> of cross-platform games using FreePascal.  This site
> would host game downloads, tutorial, forums, libs,
> community projects, and code contributed by FreePascal
> Gaming Community (you).
> If you have something to offer to this proposed
> project, I would like to hear from you.(art,
> FreePascal code, game downloads, etc)
> Ron_W

More information about the fpc-pascal mailing list