[ Home ]
[ Download ]
[ Development diary ]
[ Artpacks ]
[ Screenshots ]
[ Documentation ]
[ Frequently asked questions ]
[ Plans, possible improvements ]
[ Developer information ]
[ Links ]
forum (hosted by sourceforge)
The GLtron development diary
This is the place where I'll try to keep you a bit more up-to-date about the ongoing development on GLtron, I'll try to update this page every few days.
News
I finally beat XCode2.2 (Apple's IDE) into submission, and got a working compile on OS X. Yay! Here's a screenshot to prove it (you can see from the shadow detail on the lightcycle that it's a new screenshot). Chances are, I'll post an OS X and a win32 beta at the same time (i.e. when most of the current issues on both systems are ironed out).
Ok, I made quite a few forum posts in the meantime, but what happened to the 'update every few days'? Well, for one thing, on July 1 I started playing World of Warcraft again. It only lasted a month, but that was enough to put me off track. After that came the moving house, the new job, etc.etc. Now, thanks mostly to Peter Blight's modeling effort (new lightcycle, new arena models - soon to come!) there's been quite some progress.
Check out this screenshot
I finally got reflections & doom-3 style shadow volumes working simultanously, and can go integrating the new arena. This has a few consequences:
- The current (hardly practical) level format gets scrapped
- You can create new levels with just about any 3d modeling package (if you can convert the result to Wavefront obj at some point)
- There's got to be some changes to the artpacks. I'm worried a bit about backwards-compatibility - haven't thought this entirely through.
- There'll probably be an 'in-between' release with the new shiny renderer features (for those with decent graphics cards), until the above is sorted out
That about sums it up what's going on. Unfortunately, it's still quite on the networking front.
Also a bit dormant is the OS X port. I'm just a bit too lazy to learn XCode2 completely on my own. Is there an OS X developer who's willing to teach me the basics (include paths, adding frameworks, creating & linking static libs, etc.)? If you are, please send me e-mail.
A linux build is done. I'll post it tomorrow (the server I wanted to upload to is down atm).
I made my first steps with XCode2 on Tiger, and I'm slowing getting used to it. It'll probably be a while until I have something ready for distribution.
The full download or a patch from 1010-1014.
Have fun, and let me know if there are any outstanding issues.
I think it's time to make builds for the other platforms now. I'll do linux next, and then OS X.
So, all the good new year resolutions about regular updates are going down
the drain. Let's hope I'll pick them up again soon though. Here's what
I've been doing:
- The game now detects if it starts in windowed mode on a 16bit desktop,
and displays a warning (instead of silently failing).
- Glance keys work correctly together with the 'offset camera'
- Some small bugfixes
Not much, but it's a step closer to the 'official' 0.71 release. I hope
to update this page soon. I guess as soon as the temperatures here drop
below 30C, I'll have another look at XCode / Mac OS X development.
The ATI issue isn't my fault, honestly! It's a bug in the rather *old* GLEW version that I'm using (apparently, it thinks that OpenGL 2.0 is not as good as OpenGL 1.1, and hence lies to GLtron about the graphics card).
Here's a patch for 1010 to 1012 that fixes the issue (at least, it worked for me on a Radeon 9800 pro).
The unlimited booster bug will probably be fixed over the weekend.
Here's a patch that
hopefully resolves the two issues found in 1010/1011 (failure to start up
in 16bit mode, and failure to load saved settings from gltron.ini). It
also adds a graphics card info to stderr.txt, so if you still have
problems, send me that file so I have a little better idea of what's
going wrong.
Apparently, there's a few issues in 1010/1011 that need resolving:
- Update: The game doesn't start if your desktop bitdepth is set to 'medium (16bit)'. Switch to 'highest (32bit)'.
Old text: Compatibility issues with certain graphics cards: Please make sure that you have recent drivers from ATI or nVidia, and that you have set your desktop bitdepth to 32bit. If the game still doesn't start, let me know your configuration (OS, card, driver version).
- Settings don't get properly saved on exit / it reverts to defaults on startup: I'll look into this
I try to have this resolved as soon as possible, although the next 2-3 days my schedule is packet. I'll hope to have patches available early on Friday.
Here's a patch from 1010 to 1011.
This patch contains:
- Unified energy model for turbo & wallbuster
- Changed default cam to 'offset'
- Some bug fixes
- New resolution: 1280x800 (apparently some notebooks use this)
Thoughts: I need to reorganize the way this project continues a bit, make it easier for me to get help, and for you to help me. I'll keep you posted.
I've unified booster & wallbuster energy use, and it works fairly well. If you use wall buster too freely, you quickly end up without turbo, which is essential in one-on-one combat. Also, if you keep using the turbo, you can't use the wallbuster. I think it's balanced nicely.
Another idea I'm still toying with is to have usage of wallbuster reduce your 'turbo recharge' rate permanently, making it even more of a dangerous thing to use/rely on.
There hasn't been much going on development-wise last week. Over the weekend,
my time was spent between family stuff and programming some PHP/MySQL//Gd
stuff for the home page of the Swiss Chess Feberation.
I haven't received much feedback for 0.71-1010, so I have no idea how
stable & bug free it is. If you tested it, please drop me a line at
marvin@dataway.ch. Update: I just realized, that I only told a very few people on IRC about 1010. Grab 0.71-beta-1010 for win32 here.
So, what's left for 0.71 final? I have no clear idea right now. I guess
the following are the most important points
- Features:
- Support for old artpacks (gui & wall textures)
- Unified energy for turbo & wallbuster
- AI additions for wallbuster
- Platform specific:
- OS X: XCode 2 project & building of binaries
- Windows: Proper stereo sound for mod/it/s3m files
- OS 9: Do we still support it?
- Pre-release work
- Binary packages / Installers for all platforms
- Final testing
- Updating PAD, official release
After hopefully all leaks and stability issues are taken care off, I wanted to implement the 'unified energy' model, where you use the same energy to power the booster and the wall buster special actions (wall buster just drains the energy blazingly fast, so it requires a) you to go slow for a while and b) careful timing).
One look at the existing game logic convinced me that it's utter crap. You can only pile new stuff upon old stuff for a certain time until it makes you weep just from looking at it.
So I had the glorious idea of rewriting the complete game logic in lua, the scripting language (the same stuff that e.g. powers the menu system (which is amazingly easy to modify), and the level & config files (which are a nightmare to edit)). Fortunately it hit me soon enough that this is a *stupid* idea. Rewriting bad code is one thing, but one should not get overzealous and rewrite perfectly good code in the process, since this will only introduce new bugs & bad things, especially if you're itching to make a new release, like I am now.
So, the decision is to seperate the good from the bad, and only rewrite the bad, and add the 'energy unification' along the way. I also want to keep the possibilities of e.g. 'team play', scripted game events (like new arena parts appearing, gates being closed etc.), or 'special topologies' (like 'infinite' but looping (torus shaped) arenas) intact...
I made a
small post
at the forum, concerning team play & wall busting...
read and reply here.
All 'normal' memory leaks are fixed. However, changing artpacks or levels crashes the game...
Update: Fixed the crash & burn issues...There's a new
win32 beta available (let me know if it works...).
Good news! Although I've been busy for the last few days (tomorrow, my son will be babtized, and it's going to be quite an event...), many many leaks are fixed, and I know where most of the remaining leaks come from!
The remaining ones are a bit harder fix though, due to architectural issues (example: you can't just free a Sound sample if the mp3 decoder still has a pointer to it, this will most likely lead to an ugly crash of your application). I'll be working on that next week, and I'll keep you posted about the progress.
While I redid the resource management, I came upon some (let's say "a lot" instead) memory leaks. This may take some time to fix...
Why not C++?
I ask myself this question almost every day. With a couple of years C++ experience on my day job, I learned something about the language.
Bad C++ code is a lot worse than bad C code, but good C++ is a lot cleaner than C, and templates and exceptions are really useful additions to the C standard. Also, there's a nice, well tested class library (STL - the 'Standard Template Library') that's ready to use and literally saves you years of work.
So why am I still writing C code? Stay tuned to this channel...
I'm rewriting (or rather, *writing*, since it really didn't exist so far) the resource management in GLtron. That way the automatic reloading of models, levels and textures works properly.
Also, I talked to Damon Law about the sound files, to clear up some licensing issues. The rights to the sound effects belong to me now, which basically means that I can make them available to other people for their projects...
[ Home ]
[ Download ]
[ Development diary ]
[ Artpacks ]
[ Screenshots ]
[ Documentation ]
[ Frequently asked questions ]
[ Plans, possible improvements ]
[ Developer information ]
[ Links ]
forum (hosted by sourceforge)
Hosted by Sourceforge