Submitted by , posted on 20 November 2002

Image Description, by

Here is a little progress screenshot of my in-development 3D Engine dubbed 'xGL' or xtremeGraphicsLibrary. The current full name is xGL 3DPocketPC Engine (16Bit) v1.2 :) I've been working on fixing up the engine for about a week now, however the core engine code was written by me in Visual Basic sometime around ~1999 and took much longer to build. the original engine's source code to it is still floating around one of my old and abandoned WebPages. Anyhow, I took the core engine code and ported it to VC and used EasyCE to take care of underlying rasterization. Because of this, my 3D Engine can theoretically run on all versions of wince as well as be compiled a desktop workstation. Unfortunately, I've never been able to get OpenPTC working on my computer and I don't own an actual iPaq/PPC/WinCE device to test it out on. so the emulator and compiled VB applications are my only testing engine. (Please feel free to donate a PPC to me, I'd appreciate it).

After the engine was ported, I took out my chewed out copy of Andre' LaMothe's The Black Art of 3D Game Programming, and started dropping useful chunks of code into the engine. I also got some useful techniques off of various well known authors working (C-Buffer, etc), and cleaned out the engine so that it would look like OpenGL.

Here is a list of the current engine commands:


Basically, I'm trying to make a PocketGL, however since that cool name is already taken, I had to choose xGL instead. There are a lot of features in this engine as of now. the coolest of which are 5 different types of FSAA (Full Screen Anti Aliasing), Alias Wavefront Maya .OBJ Loading, Java3D .OBJ Loading, up to 2 lights (no light RGB's. only intensity values), C-Buffer for 0% overdraw, and a globalmatrix which takes care of translations and rotations just like OpenGL. One thing you might notice is that in a lot of software 3D engines have functional equivalents to RotateObject3D(obj, rotatevector). Instead of doing that, you just call up nifty xglRotatef and xglTranslatef and go from there. The next things I plan to implement are gouraud shading, texture mapping, triangle strips, object clipping and an elementary particle engine. I know it seems far fetched, but if I can just find some killer way to get the engine optimized, it might all just work out. My final goal is to license the engine and use it myself with my upcoming 3d pocket pc games. If anyone would like do donate a PocketPC to me or perhaps just more screenshots (I have a bunch), please email me, Uthman Apatira, at

Image of the Day Gallery



Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.