After a short break I'm back inside the OpenGL renderer for Niven|FSG. God it feels good to do OpenGL again ;) I didn't realize how much I missed this until I started with it again. I have good hopes that the renderer will be able to show something interesting around next month, maybe a bit later (probably after the holidays.) Some bad news: The Collada 1.4 specification (and the Collada DOM classes) are delayed again. If I read the posts correctly it'll be 45 days starting from the 21st November before they will release Collada 1.4. Bad luck, as I've been planning to make their ColladaFX the main effects format for Niven|FSG and now that will have to wait a bit longer.
Yeah, people, finally Niven|FSG went into development! Be sure to read on to be the first who knows about it :)
What is Niven|FSG
Niven|FSG is the codename for a game being developed by a friend of mine and me using the Niven engine. We're gonna build Niven around this game, so the first edition of Niven won't be a general-purpose 3D engine (hence we call it Niven|FSG :)). The next iteration after this game will be surely much more generic than Niven|FSG, but we don't want to spend too much time in making Niven a generic game engine and rather push the game out of the door.
FSG is a game, with so unique and innovative gameplay I can't find words to describe it. Really, I can't! We expect the first beta version to be ready around late summer 2006. The game is gonna work under Windows and probably Linux, if we find someone who can port a bit of the low-level OS specific stuff to that platform. Don't hope that we'll support Mac OS X, BeOS or WTF-OS, we won't do that! (Except of course you break our EULA, decompile the game and port it the hard way with assembler only. If you manage to do that, we won't even sue you for decompiling :)). The rest is written in ISO conformant C++, so it should cause no porting problems. The 3D API will be OpenGL (suprising, isn't it?). The current state of development is that we've got some core stuff running, but we've got nothing you could look at (despite my .obj file loader which will be replaced by a COLLADA mesh loader as soon as the COLLADA 1.4 specification is out). The complete source is around 200 kb now, as soon as I get some LoC-Counting tool that works under Windows I'll add some counter that shows the development status. Anyway, I'm gonna release from time to time the commit counts so you can always see how busy we are ;).
After a long, long time I finally found some time to release GLExt2. GLExt2 is an utility that simplifies the use of OpenGL extensions. It basically takes an extension registry in text form (at the moment, I use the registry created by GLEW) and parses it into a XML file. This XML file is then further processed using a set of templates to generate a C++ class.
How to use GLExt2
First of all, you need to download (650kb
ZIP) it. You might
also want to get a more recent version of GLEW (you only need the GLEW
source code, I bundled the extension files from GLEW 1.3). Put all GLEX
extension files under
/extensions. Now you're ready to run GLExt2.
GLExt2 can run in either GUI or text mode, the file you need to start is
the same in both cases:
glext2_app.py (don't start the
glext2_gui.py, it will exit immediately). If you don't specify any
command line option you'll start in full-blown GUI mode where you can
click buttons and see a progress bar etc. :) Nice, but not really
useful. Most people will like to use the command-line interface, which
is also easier to integrate into your build process. Simply pass
--gui=0 on the command line to surpress the GUI. You need also to
define what will be build, use
-x/--xml to generate the XML and
-c/--class-header for the class headers. If you run with
-c -x then
GLExt2 will create the XML file first and the class second. Have fun and
feel free to comment if you find it useful.
Support for GLX and GLU is not implemented. WGL support is working and tested. The class header can be built successfully with VC++ 7.1 without any special compiler switches.
Here at the university surprisingly few people know about Boost, one of the probably most useful C++ libraries ever written (actually, it's a collection of libraries). If you never used it, give it a try. And if you're to lazy to read the "Getting started" document or you want a really brief start document, read on. (Or if Boost.Build refuses to build after you installed the latest DirectX SDK) This is a very brief guide how to get Boost running as fast as possible. I assume you have at least the following:
- Windows XP
- Visual Studio .NET 2003 (maybe 6.0 & 7.0 too)
- Basic knowledge of Windows :)
- Python in case you want to build the complete Boost library (this is what I describe here)
I also recommend you to get the "Command Here" Powertoy, it allows you to open a command line by right-clicking on a folder and selecting "Open command window here" which will be very handy :)
First of all you need to obtain Boost of course. In case you're not sure
what to take choose the Windows Exe (the current version is:
boost_1_33_0.exe), it's a sfx 7zip archive. Extract it to a drive
where you have at least 3Gb of free space (I suppose you want to
build all of it). Don't laugh, Boost takes quite a lot of space, the
compiled binaries including all header files (compiled with 7.1, all in
all around 3.5k files) take up 1,23 GB (1.323.074.806 Bytes) on my
computer. You need to build Boost.Build first, which will compile the
rest of Boost for you. Boost.Build is a modified version of the Jam
build tool. Hence, you'll find it under
/tools/build/jam_src. There it
build.bat. For some reasons this build script does not work on my
computer anymore (it used to work last month) - just after I installed
the DirectX 9.0 SDK (October). The problem lies in the
environment variable. The DirectX SDK Installer added (in my case)
F:\Visual Studio .NET 2003\Documentation\DirectX 9 SDK (October 2005)\Utilities\Bin\x86
- the braces around October caused the build script to fail. In such
cases you can still get a precompiled
(or you remove the DirectX SDK from Path). Copy the
into the topmost directory of your Boost folder.
Now, you need to "install" Boost. When installing Boost, you have
several choices, I recommend you to specify a "Temp" directory in which
Boost will put the object files, and a "Install" directory where it will
put in the *.lib, *.dll and *.h files. Instead of talking about the
options (you can read them for yourself) here my build_boost.bat which
I use without modifications since Boost 1.3:
bjam "--prefix=F:\C++\Boost" "--builddir=F:\C++\Temp\Boost" "--with-python-root=C:\Python24" "-sPYTHON_VERSION=2.4" "-sVC71_ROOT=F:\Visual Studio .NET 2003\Vc7" "-sTOOLS=vc-7_1" install
--prefix with the directory that should contain the clean
Boost binaries and headers,
--builddir with the temporary directory,
--python-root with your Python root (how surprising :)) and
VC71_ROOT with the directory to Visual Studio 2003 (use
Visual Studio 7 and
MSVC_ROOT in case you use 6.0).
TOOLS will be
vc-7_1 for 7.1,
vc7 for 7.0 and
msvc for 6.0. That should be
enough to get you started, be patient, the compiling will take some
time. Have fun with Boost! In case you have questions don't wait and
Back in the web, and some great news right away: OpenOffice 2.0 is out. I've downloaded it maybe 2 hours after the release with no problems and excellent speed, seems their mirrors are more than up to the task (>500kb/s download speed). Well done guys!