Hi!
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
graphics,
- 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 http://www.camelot.homedns.org/~michalis/
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.
-- Michalis
Ron Weidner <[EMAIL PROTECTED]> 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
_______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal