Corridors of Power News Archive
17 August 2003
At long last Corridors of Power is finished!!! It feels really good to be able to say that :) I won't dwell too much on what has been done. Most levels have had some changes and level 7 has been added. Just go to the download pages ;)
Level designers should note that I already had to create a patch because I noticed a silly mistake in Retribmc that I forgot to check :$ However, as the level data format hasn't changed you don't need to convert your levels anyway ;) In an ideal world I would have uploaded the engine package again but it's size made that too difficult :/
You will notice that the download packages are very different from previous versions. This reflects the new emphasis on the game engine I've been discussing recently. So now there is a hefty download that contains the engine, tools and the new tutorial level. Games such as CoP are on the game download page and levels are on the level download page. The documentation is a separate download.
In fact the modified download section is only a temporary arrangement. Soon, all the downloads will transfer to the Retribution Engine home page. Also the news and forums will transfer there. A new domain name has been registered, www.retributionengine.com, and this will be the place to bookmark. At the moment it is recommended that you continue to visit this site. The new domain name works at the moment but the new site will be hosted on a different server and so the domain may not work for a while as we swap over ;) As soon as we have made the swap I will let you know via this page.
13 August 2003
Corridors of Power is now well on the way to being completed :) I am now in the process of making final adjustments to the levels and then it is just a case of doing some more testing and creating the download packages :D
Status is that levels 1, 2, 3, 4 and 5 are fully updated. Level 6 needs text messages adding and more waypoints. Level 7 needs some scripting changes, more waypoints and more play testing for weapon/ammo/health balance.
Known outstanding bugs have been fixed, including the stripe on the sun for Radeon cards, a collision detection bug for slopes and a bug in selection box logic for the latest weapon models. A workaround has been added to allow the game to work with antialiasing enabled on Radeon cards (although this won't help if you have a version of the driver that crashes :/).
I have the rest of the week off so hopefully (fingers crossed) it will be done by the weekend. No promises though because I also have my kids to look after! lol
4 August 2003
I've been working very hard recently trying to get Corridors of Power finished so that we can really start the Retribution Engine project moving forward ;) The good news is that I've managed to get a huge amount of work done and I would guess I am about two weeks away from being able to do a new release :)
As far as CoP goes, the game is basically done. I just need to do some minor tweaks to level 7 and then I want to go through and make a few minor improvements to the other levels such as adding some text messages and extra waypoints where the AI seems dodgy.
I found when I finished level 7 that it wasn't working as I hoped and decided it was because the scripting system for the engine was not adequate. So now I've added a new type of marker called a 'wait list' and this has made a huge improvement and opens up all sorts of possibilities for future levels :) The wait list allows the designer to perform an action when a list of events have occurred. At the moment the only event is 'entity dead' but others can be added when required. So now it is possible to have enemies attack in waves or have doors open only when a boss has been killed, etc When you play level 7 I'm sure you'll be able to see how much improved the scripting is :) The bad news is that because level 7 is so much more complex than previous levels, the minimum spec for CoP has gone up quite a lot :/
As far as changes to the project are going, these are almost done as well. I've changed the directory structure, names of files, etc so that CoP can be downloaded as a mod rather than with the engine. I've also been through all the documentation and updated/restructured it where required. I just need to add the description for the wait list markers and write the manual for the episode editor.
The other thing that needs to be done before I can do a release is to finish off the episode editor. The editor itself is almost done, the main thing that is missing is to add the support for extra texture sounds to the game engine. This should be done this week sometime.
29 July 2003
Wolfie has finished the update of The Conveyer Project which is now available again on the extra levels page. It features a lower polygon count, improved lighting, text messages and a revised ending :)
I have been very busy trying to finish off CoP. I now have all the basic architecture and lighting done. Just need to add power-ups and enemies ;) I've also been working hard trying to get ready for the switch to the Retribution Engine part of the site. It's all coming together now but there is still alot to do ;) Anyway, take a look at the new page, it's still under construction but a lot of it is working now :)
25 July 2003
As it has been a few weeks that I've had my Radeon card now I thought I would make some comments on how well it works with the engine. For several years now I've had an nVidia card (first a TNT2 and now a GeForce3) and they have been great cards. Never had any real graphical issues and the drivers have always been rock solid for me.
In general I am very pleased with the Radeon, it works fine with the games I've tried and is very fast and capable. As I would have expected though, it is let down by driver issues :( I know they quality of the drivers is much better than I used to have on my old Rage Pro but they are not the standard I have got used to from nVidia. The following describes the issues I have found:
The first problem I found was that bilinear filtering doesn't cope with the edges of clamped textures. This creates annoying dark lines where I used this such as on the sky box and sky object. I have had to fiddle the texture co-ordinates to get around this problem, but at least it was fixable :)
The second problem is the default texture quality that is set on ATI cards. ONLY on the highest quality will the driver allow textures to be stored at 32bit colour depth. This is really annoying because with the default settings you run the game at 32bit resolution and yet you end up with 16bit textures which, quite frankly, look complete crap. My game has been designed to look good in 32bit, it looks shit in 16bit and I wonder how many people have played it with these default settings and then thought it was rubbish? :( Always set texture quality to highest on your Radeon! On a side issue connected to this, I tried updating my drivers to the latest ones from the ATI site. I installed them following all the instructions but whatever I set for the texture quality it was ALWAYS 16bit! This was really annoying and I had to go back to the drivers I got with the card :(
The final and biggest problem is with antialiasing. The way ATI seem to have implemented this is crap. I have seen all sorts of problems with it and yet on my GeForce it just works no problem. There seem to be two broad effects if you run the game or tools with antialiasing enabled. Either they crash with a error in the driver, or they suffer from severe visual artifacts. In the latter case the problem is that with antialiasing enabled, the driver seems to force a clear whenever you swap the display buffers. It is a perfectly valid technique to not want to redraw all the screen, but rather just to update bits of it. However, this does not seem to be supported by ATI's implementation. So in the game, the display between levels is almost totally blanked out and in the level editor, the wireframe views often disappear. I could get around this by redrawing everything all the time but the level editor will be noticeably slower and I would need to write screen shot save/load routines to have seamless level transitions any more. So I don't know what to do about it :S I could solve these issues and still find the driver crashes in some cases...
21 July 2003
I got a new PC at long last a couple of weeks ago. It is an AthlonXP 2500 with 1Gig memory and an ATI Radeon 9600 Pro. It is so much faster than the old machine that I can hardly believe it lol. Lightmap calculations in 5 minutes rather than 35 for some levels!! The thing I will mention though is that I have spotted quite a few issues with the project on the ATI card but I need to get the latest driver before I can tell what needs to be fixed. One problem that does seem to be 'real' is with anti-aliasing. With my driver the anti-aliasing seems to force screen clears which ruins the level transitions and screws up the wireframe views in the editors (crap to say the least, Half-Life doesn't work in properly in OpenGL mode either). On Paul's Radeon 9500 Pro with latest driver, there is a GPF in the driver if he runs the game in 16bit mode with antialiasing (or was that 32bit, can't remember exactly lol).
Why did I pick a Radeon over a GeForce. Well the 5600 was a bit more expensive than the Radeon (better card though) and it was out of stock for a while and I couldn't wait any longer lol. Besides now I have more testing options, I still have the GF3 in the old machine ;)
Recently I've been playing Elite Force 2 and Unreal 2. I liked Elite Force 2 until I got to the 'Incoming' bit and then I got very bored :S I played Unreal 2 all the way through and was very impressed. Just the sort of game I like, linear and lots of things to shoot at :) Plus the wepons were SO much better than the original IMHO.
19 July 2003
I really must try to update the news section a bit more lol. Anyway the lack of news has not been a sign of a lack of progress ;)
First up is a new level! It is called Gloom Base and was designed by Gunrock. It can be found on the level download page and is well worth a look ;) Very impressive :)
The level showed up a couple of bugs in the engine and so also needs the latest patch, which has also been released today. This patch will experience a few problems because I am half way through a major change to the project. For least inconvenience, find your existing configuration file 'power.cfg' and rename it to 'retrib.cgf' after you install the patch. Sorry about this, I found one bug this morning which was bad timing :S
The big news about the project is that the focus is changing to reflect the way the project has evolved. For some time now the main focus has been the engine and development of Corridors of Power has stagnated. So it makes sense now to finish CoP and concentrate on the engine. A new page will be launched on this site soon for the Retribution Engine. It is planned that the project will be split into engine download and game downloads. The engine download will contain the game engine, all the shared media, the tools, all the documentation and a new tutorial level that has just been completed by Wolfie. Then all the games, such as Sinister and CoP, and all the extra levels will be seperate downloads. This page will cease to be updated once CoP is complete, all the news and forums will be on the Retribution Engine Home Page.
As far as the completion of CoP is concerned, I've made some good progress on level 7 now. The first building is complete and I just need to add the castle area, plus do all the lighting and enemy placement. Hopefully it will be done in a few weeks.
Wolfie and Jon will continue to work on the Sinister project. The sewer level is still being worked on plus Jon has started a new level. Gunrock has also started a new level :)
Finally, Paul has completed the episode file editor :) I just need to add the code to handle the extra texture sounds that can be specified and then it will be ready for release in the next major version :)
5 July 2003
We are busy at the moment. Jon has been doing animated versions of all the weapons and has also replaced the machine gun model and re-skinned another. We are nowhere near finishing this work yet but I was so pleased with the new gun that I've released a new patch today that includes it :) A shot of the new gun is shown below:
I was also asked on the forums for a spec for the level data files to allow conversion routines to be made. I've been asked for this before and so I found the time to produce a partial spec here. This will be released in the next tool set patch. This is not a full spec for the level data files. (This would have taken too long and been too much work to maintain.)
2 July 2003
New patches have been released today. These fix some bugs and add alpha'd decal support which allows effects like blood splats to be added to the level by the designer. Level 5 has been updated to include some of these and some new textures have been added to aid support. A new feature has been added to the level editor to calculate light maps without shadows, this allows maps to be calculated quickly when fiddling with lighting parameters.
I have also been working on level 7 but still have a long way to go. I have decided that level 7 will be the final level in Corridors of Power. The whole process of writing an engine and doing level design has become too much work for just me I'm afraid :( It looks like I will be joining forces with Jon and Wolfie who will take on all the design responsibilities from now on. Expect more news on this as it develops ;)
19 June 2003
Well I'm back from holiday :) Suitably refreshed and happy to be back at work :S Anyway, I've released a new patch for the tools with updated prefab files. If you are designing levels and using prefabs you must install this new patch. The prefabs in the 0.81 release were broken :/
7 June 2003
Several people have asked how the weapons work and so I have produced a file spec for the .wpl files. This file will be included in the next tool set patch.
Paul and I have been working on adding texture with alpha channel support into the game engine/level editor. Initially this will allow a wider range of wall decals (e.g. blood splats) to be included in the level design. It also allows panel shader support to be added at some time in the future :)
Wolfie has started work on a tutorial level for the game, using our shiny new text message support ;) He will also be updating his Conveyor Project level sometime soon so I can re-release it.
I will be away on holiday next week so bye for now ;)
31 May 2003
New patches for the game and tools are now available. These fix some minor problems with lifts in the game design, add a range of sentry units and add text message support. Text message support is very useful and will allow much more communication of plot to the player.
26 May 2003
It was a holiday today so I spent a lot of time doing work on the project :) Since the release I've added a whole range of sentry units equipped with various weapons. The main thing I've added is text message support (I'm sure Wolfie will be dancing around at the moment ]:D ). This allows a trigger to cause a text message to appear on the screen. I will release some patches before the end of the week (hopefully) with these features so the mod authors can use them ASAP.
Well, I saw the videos of the Half-Life 2 technology demos and was shocked at how good the game looks! My jaw was well and truly on the floor. The game looks a lot more detailed and life-like but that is to be expected with the higher-res textures that can be used now. The thing that really caught my eye was the physics modelling of the engine (including the rag-doll effects for enemies). The water looked quite cool as well although it is a little bit too shiny sometimes :S I can't wait to play it ;) Haven't seen the Doom 3 demo from E3 yet, I hope to see it next week.
17 May 2003
The new release is now available :) Since the last patch I've improved the levels a little, added some more movement sounds, fixed quite a few bugs and added a new enemy. In the tools I've rearranged the resource directories into categories to make it easier to find things and improved the specification of point light sources. Also, I've added a batch processing mode to the map conversion utility, (see the manual).
Due to the huge amount of change to the structure of the game there will be no upgrade versions for this release. They would be almost as big as the full versions so there is no point doing them. Future releases will not have such big changes hopefully and so upgrade versions will be available in the future.
There will be a gradual roll-out of the extra levels. Most should be available again very soon but The Conveyer Project will be released when Wolfie has finished upgrading it.
The demo level for Sinister is currently being improved before it's release, keep an eye on the Sinister page for the status of that.
Apologies for the increased size of the download. I'm a little disappointed about this because I've done a lot to minimise the size like shrinking sound files using ogg and using jpg for all terrain textures. The improvements to the weapons and all the extra sound effects I've added have taken their toll unfortunately. This is the dilemma I face, to make a better game I need more content but adding content increases download size. This is bad news for me because I have to upload the files using a modem and an increase of 1Mb in the download size will increase my bandwidth charges significantly :/
3 May 2003
The next release is taking a bit longer than I expected I'm afraid. I decided that the extra levels needed a little updating so I've been working on them. I've also changed the way the lighting works for point sources thanks to a suggestion by Wolfie :) Now point sources can also have a penumbra like spot lights, which basically means that point lights can be a lot more localised than they used to be, allowing more variation in the lighting between light and shadows. Trouble is several of the levels can have the lighting improved now, which will take a bit more work :S Also Jon has been very busy at work so the sinister demo isn't finished yet.
If anyone is interested, the development roadmap is now available at the bottom of the 'about' page.
14 April 2003
Well I've been quiet again but I have been working hard ;) I've fixed the bug that several people have mentioned about being able to walk through steep slopes on terrain levels. I just have a bug in the under-water collision detection to fix on this score. I hate collision detection....
A new concept of AI type has been added. This allows behaviours beyond the default 'attack and chase' logic. I've added two new types for campers and bystanders and changed one of the enemies in the game to a camper. At some point I will be able to add other types as well, e.g. friendly forces.
The other thing I've done is made some big improvements to the tools. I've improved the dialogs for the terrain editor and added the capability to light terrains with multiple light sources. Gone is the requirement to have a directional light before you add terrain, designers will be pleased to know. I've also reorganised the model and texture directories with sub-folders for different types of resource. This makes it a lot easier to find the brick texture you are looking for, etc.
A final thing I've done is produce a roadmap for the development of the engine and tools. The aim is to make this public at some point so people we be able to track the progress of the engine and see what is and isn't planned. I've also done a big change to the level data format to accommodate all these plans. This will make it easier to keep the patches flowing out of the door and reduce the number of big new version downloads.
At some point in the next few weeks I will release a new version of the game to consolidate all the changes I've done over the past few months. This will probably be timed to coincide with the release of the first demo level for the sinister project ;)
29 March 2003
New patches have been released today with the new weapons code, sound and terrain improvements I've mentioned recently :) A few tweaks remain to be done but I've been asked so many times to release them that I thought I might as well :)
26 March 2003
I feel like I'm making some real progress now :) In the past week or so I've implemented weapon change animations and weapon re-loading. I've also made it so the ammo display shows the number of shots for the current weapon rather than the battery power, etc. The upgraded weapon behaviour has made a big difference to the game/engine I think.
I've added support for the editing of the volume of sounds at a given distance, as requested by Jon, so that for example a dripping tap will only be heard in a room rather than across the building.
I've added automatic selection of sound effects based on the texture applied to a panel. So if you walk across ground your footsteps will change depending on whether you are on stone or grass for example. This is only implemented for footstep sounds at the moment but could be extended to other sounds in the future, e.g. bullet ricochets.
Finally, in my day off today I've done an overhaul of the terrain engine. I've implemented multi-texturing support in the level editor which allows detail textures to be used in a different way. If a white colour scale is supplied, the land texture effectively become a light map and so the detail texture can be a standard texture from the 'textures' folder in the project. This little change makes an enormous difference to the quality of the terrain as shown below:
In the future I will probably add a second detail texture that can be applied to steeper slopes, this will make the terrain engine behave in a very similar to some commercial engines.
16 March 2003
Sorry about the lack of news recently. I've been moving house and so the project had to take a back seat for a few weeks. It is always good to have a break sometimes too ;)
Anyway, I'm back up to speed and have been doing more work on improving the gameplay. The latest change has been to add Jon's new pistol model (seriously impressive) and make all the weapons have a perpective view. Just to illustrate what I mean here are some screenshots.
Next I will probably animate weapons changes and may take a look at implementing re-loading of weapons. After that I will probably look at finishing the overhaul of the collision detection routines (that I started before the house move), this should allow more complex objects that the player can climb into, e.g. lifts.
15 February 2003
New patches today :) The toolset has a couple of minor improvements and bug fixes. The main purpose is to release the improvments to the game engine I've added recently. I have a pretty full set of environment sounds now, things like a full set of water sounds (splash, choke etc) and player/enemy damage sounds. I've improved some of the particle effects for weapons and added decal effects to allow things like bullet holes, blood splats, etc. Makes the game a lot better I think ;)
NB this patch changes the save game file format.
10 February 2003
Since adding the ogg-vorbis support, I've been adding a few more sounds to the game :) The main thing has been to add player sounds. Things like pain sounds, death sounds, etc. It's amazing what a difference it makes :)
I've also been looking at adding some more special effects, things like better particle effects for weapons fire and bullet holes on walls.
I've also done some more work on level 7. There is still so much to do though, but I'm getting there ;) A screenshot is shown below.
25 January 2003
Some more new patches have been released, again for the benefit of mod authors. These add support for Ogg Vorbis audio files to the engine and level editor :) For those of you that don't know, Ogg Vorbis is a audio compression standard at least as good as mp3 but without any of the license fees ;) This will allow the size of downloads to be minimised or more sounds to be added.
Anyone wishing to create ogg files for use in a mod should download an encoder from the Ogg Vorbis site. I recommend using the command line tool OggEnc because this works best with the 22kHz sounds that CoP uses. Download it here. If you want a player to test out your files, there is a plug-in available for winamp or you could use ashampoo which I've been using and is freeware.
19 January 2003
I've released some patches, containing the improvements mentioned in the last news post. Since that time I've been trying to get Ogg Vorbis support to work without success and done some more work on level 7.
14 January 2003
Sorry about the lack of news recently. There wasn't much to report over the Christmas holiday I'm afraid :( The good news is that since then I've managed to get some work done ;) On the game front I've made some improvements that the mod guys have been requesting for a while. These include acceleration and deceleration for player movements, fall damage, higher limit for the number of parts in a model and a mode where enemies will follow a script and not be distracted by gunfire. On the editor front we have added copy part support to the model editor. I will try to release a new set of patches before the end of the week for the benefit of mod designers.
As far as Corridors of Power is concerned, I've started work on level 7. I plan this to be the most complex level yet with large complex buildings set in a terrain. This will be a background task when I've got nothing better to do, so it will be a long while before it is released. A screen shot is shown below.
In other related news, I know Wolfie and Jon have been making good progress on the first level of Sinister. Jon hasn't had chance to update his news page so I've included a couple of screen shots to show you what they've managed so far ;)
12 December 2002
My life has been pretty crazy recently :S Been too busy to even think never mind do anything on the project. Anyway, my Christmas break starts early this year, like now, so I have a bit more time to get things done :) Consequently, I have a flood of new things for you to download (ok a small trickle anyway) :P
First off a new map from The Wolf, called The Conveyer Project, which you can find on the extra levels page in the download section. Secondly, patches for the game and tools. The game patch just tidies up the menus but is worth downloading because it has a better level launcher dialog for the config utility :) The tools patch fixes a couple of minor bugs and adds mouse editing of entity gun position to the model editor. Enjoy :)
27 November 2002
Now all the files for the new release hae been added to the site including the new upgrade files. I've also upgraded the download section of the site to improve its structure and hopefully make it easier to find things :)
I've resisted producing upgrade files up until now, even though it will help people with modems, because of the extra work and QA I have to do. However, I've been forced into it by the costs of running this project, i.e. the ever increasing data transfer charges I have to pay. Just one of the many pleasures of running a website nowadays, others including being a target for virus mails and having to manually send emails to mailing list members whose email provider can't tell the difference between a legitimate email and spam :(
So what is in the new release? Well if you've been keeping up with the patches the most significant new addition is the model editor. This has been produced in response to a large number of requests from mod writers, and should make the production of extra levels with rich content much easier :) This release is very much targetted at level/mod designers and will hopefully lead to number of new levels in the future. Already the new technology has been put to use by The Wolf, who is close to releasing a new level :)
The model editor has a couple of notable omissions that will be solved by a patch in the near future. These are the ability to copy parts and mouse editing of entity gun position. So no complaints please, it will be available soon ;)
26 November 2002
The new version is now released. I will fill in more tomorrow... I'm just off out lol. Only download it if you want the new tools, the game has not changed much. Also if you can wait do so, I'll be releasing some upgrade files tomorrow to save the big download.
23 November 2002
Three weeks and no news, must be a record. Don't worry, the lack of updates doesn't mean nothing has been happening.... it means I've been too busy lol. The model editor has passed its beta with flying colours and a new release is coming very soon :) Watch this space ;)
3 November 2002
The beta of the model editor should hopefully be done this week. Paul has added the dialogs for shader support and I've now just got to sort out a couple of issues in the engine code. Then I guess we'll have a period of two weeks to a month where we test the editor and I write the manuals for it :S
Some of you may have noticed that The Wolf posted on the forum that he is working on a new map. He's sent me some screen shots :)
19 October 2002
Just a quick update. The model editor has now got entity editing support in it :) We just need to add shader support and the beta is ready :D Also, Jon has had trouble setting up a site for Sinister (aka Dreamworld) and so I'm hosting it for a while. Just look on the links page :D
14 October 2002
Hey I haven't forgotten about you guys :) It may seem like it but it's not true.... The model editor is taking up a lot of time but is coming along nicely.... we have most of the basic functionality in place.. the main thing missing is shaders. But already it is possible to create simple models using the editor :) I would hope that within the month we will have something worthy of our little mod community, at which time I will release the new version. Once that is done I guess I will do another level, coz you guys deserve it for all your patience :)
26 September 2002
A bit slow for news at the moment, can you tell? I wish I could say that loads of new levels are on the way but I can't. I've seen some good work in progress but they are a long way off being ready. So what have I been doing? Well I've been working with Paul on the model editor which is progressing nicely but there is not much to say other than that. As predicted it is a mother of a job and will take some time to complete. I know there are several mod makers that really need it though and once it's done things should start to happen again hopefully :)
Oh yeh, I've done quite a few improvements to the engine/editor like variable weather particles, variable enemy hearing range, disable option for 3D in ambient sounds, ability to have different forward/reverse speeds for movers, ability to loop action lists and gun turret support. These features won't be available until the next version release.
12 September 2002
Jon has been busy on Dreamworld and has released a few new shots :)
The other news is that we've started work on the model editor at long last! Music to the ears of several mod-makers I'm sure :D
9 September 2002
Today I've released a new patch for the game and tools. This adds support for rotating objects and includes new rotating doors for outdoor buildings. It also adds episode files that allow more customisation options for mod writers. CoP is now simply just another mod for the Retribution engine. This approach is required to support new projects like Dreamworld.
Jon is forming a very good team for Dreamworld and the buzz about this project is very encouraging to me :) There is no official website for the project yet but I will continue to provide news and screen shots until one is available.
I'm in a diffcult position at the moment because I'm in the process of moving house and don't have huge amounts of spare time. All the time I have is likely to be spent upgrading the engine/tools to support Dreamworld so CoP isn't going to get any new levels for a while I'm afraid. I'll just have to hope some more extra levels turn up to keep you guys occupied ;)
5 September 2002
Just a quick note to say that my hosts have solved the problems with the site. So hopefully in the next couple of days I'll be able to finish setting things back up again and release the new patches that've been waiting. Oh and if you haven't noticed, the site now has it's own forum page, done by Jon, which is really cool and doesn't suffer from pop-up ad syndrome ;)
3 September 2002
If you have got to this page you are very lucky at the moment :) For those who have been/continue to get advert pages for easily I am sorry but this has nothing to do with me. It appears to be a problem with my host's server but they are ignoring my complaints at the moment and I am getting extremely frustrated. I can only apologise and pray that things will be sorted out soon. Thanks for your patience.
21 August 2002
Well this is a pretty exciting time for the project. First of all you're viewing this page on the new web host. It seems that my old host was trying to remove sites with high traffic by pissing them off and they succeeded in my case. The new host offers more capabilities than the previous one and I'm looking to use these to improve the site.
I've been busy making the look of the game more customizable for mod authors. I've added the concept of episode files that allow extra levels to be launched as a game with their own splash screens, etc. I've made it so that CoP looks just like another mod for the Retribution engine. This should hopefully make the focus of the project more clear and leads me into the exciting news....
Today I'd like to announce the development of a new mod for the Retribution engine. It is called Dreamworld and is being produced by a growing team headed by Jon Eriksson. All of the team are experienced level designers, model designers and texture artists and I've already seen some very cool screen shots of their work so far. Dreamworld doesn't have a website yet but Jon has kindly let me publish some screen shots of the work in progress and these are shown below. If you have any comments or questions then leave them on the forum and I'm sure Jon will answer them.
16 August 2002
Just a quick update, I've now implemented rotating doors which is a pretty cool addition ;) I've added doors to all the outdoor cottages and I'll release this new feature when I get the site sorted out.
8 August 2002
Not much going on at the moment, just twiddling my thumbs until Cg supports pixel shaders :) I have implemented some weather effects in the game engine though and I've released some patches for any level designers who want to use them. Rain and snow are available and it's so easy to use: just change the area type to snowing or raining for the area(s) you want the weather to be rendered in. Below are some screen shots:
I've also updated the Add Effects dialog in the level editor so that all possible effects are available (something I've kept forgetting to do).
30 July 2002
There was a bit of a delay getting the release out but it's here now :) I don't want to talk about it but life has been a bit of a disaster the last couple of weeks.
If you've not been keeping up with the updates you'll notice a massive improvement in the game since the last version. I've had a lot of feedback and suggestions and tried hard to implement solutions to all these points. I think the game is MUCH better than it was two months ago and I hope you think the same.
I've also released a great new level produced by d-p[0mat called Space Station. Things are all go at the moment and I hope those extra levels keep coming in :)
17 July 2002
Not much news for a while :) No I haven't died, it just feels like it sometimes ;) I've been very busy but things are still moving along. The game is even better now thanks to the addition of movement sounds. Human and robot entities have their own footstep sounds that change depending on the environemnt. There are also swimming sounds and a hover sound for the drones. You'll be amazed at how much better this is :) I've also added some better AI so enemies can get triggered by footsteps and enemies can now patrol around the level and track you down if they can find a path.
The improvements have led to a change in the level data format so I'm going to have to release a new version of the game before you'll be able to try out the new features. This will be within the next week.
I also have a new level from Diplomat which will be released soon. So things weren't as quiet as you thought after all ;)
1 July 2002
Just a quick update to say that a new patch for the tools has been released. This adds improved detection and error reporting for oversized panels - this will hopefully solve a common source of problems for people using the level editor. Also included in the patch is a full spec for the model files for anyone brave (or stupid) enough to attempt to create their own :)
22 June 2002
The improved version of the game has now been released. Normally this would have been released as a new version. However, I decided to release it as a patch because I'm still in limbo regarding what is going to happen to the website. I don't want to have to upload that much data knowing I could have to do upload it somewhere else in a couple of weeks.
So, in the latest patch the game design has received a comprehensive update. It is easiest to describe the improvements to each level:
- Level 1: the terrain texture has been improved, more trees have been added with shadows from the trees and more detail has been added to the buildings.
- Level 2: many textures have been replaced, more detail has been added to the rooms and slight changes made to architecture and enemy placement.
- Level 3: basement area has been completely re-designed, improvements to particle effects.
- Level 4: terrain texture has been improved, more trees, more teleports, more detail in the buildings and significant changes to enemy placement.
- Level 5: office area textures improved.
- Level 6: minor changes.
Also released is a patch for the toolset that fixes a couple of bugs, adds 32bit rendering support, improves the terrain texture generation routines and adds ability to export selected panels from a level as a prefab.
18 June 2002
I've made some good progress on the game update. The basic changes are complete now. I've just got to add some details to some of the rooms and do some play-testing. I guess it will be out within a week.
I'm a little surprised at how the update has gone. I expected to make the most changes to level 2, in fact I expected to make a new level to replace it. However, I made some new textures for the walls and doors and when I tried them it looked so much better I decided to just add to it rather than scrapping it. The biggest change in fact turned out to be for level 3. I wasn't happy with the collapsed ceiling part and the underground 'cave' bit and so I got rid of them. Now I've got a dank basement area with some nice lighting effects and I'm much happier with it.
11 June 2002
First off, thanks for all the comments I've received about the game. In the main they've been very constructive :) The main things that seem to crop up a lot are texture quality, difficulty and 'gameplay' whatever that means. I get lots of comments that the game is too hard and lots of comments that the game doesn't have enough action, uhm... I guess you can't please everyone ;)
So, based on these comments I'm upgrading the game. It's about time too I guess, e.g. levels 2 and 3 have been in their present form for ages and were produced before the level editor existed (yes they were hand edited!). I've been talking to someone who is an experienced level designer and he's given me some good pointers on how to improve the quality of the environments so I'm going to try my best to make the quality (or lack of it!) consistent across the whole game. I've done level 1: adding more trees, adding shadows from the trees and roofs to buildings. I'm well through level 2 now, I've replaced the crap wall textures and I'm starting to add detail to the rooms so they look more 'lived in'.
As far as the location of the website is concerned I still don't know if I'm going to be billed or not for the excess traffic. I had 9.5Gb in one week apparently (!) so I'm really concerned. It didn't help that certain download sites were just linking to the game instead of hosting it like I thought they would! Therefore the site is staying where it is for the time being. I'm just really pissed off about this, it's bad enough spending thousands of hours on this game but if I also have to spend hundreds of pounds.... is it worth it?
It doesn't help that I get a lot of crap because of this project. I'm sick of getting emails with the Klez virus. I'm sick of the creep of sites starting to charge for everything. I'm sick of users who have nothing better to do than flame people who produce freeware for the community. I'm sick of service providers moving the goalposts (often without having the decency to inform you). The only thing that keeps me going is the enthusiasm I have for writing games and the kind words I get from the guys who help/support the project :)
31 May 2002
I've just released a couple of patches. The tool set patch fixes a bug in the loading of land textures when doing terrain editing. The main feature of the game patch is level of detail setting for terrain. This speeds up the terrain levels by typically 50% at low detail setting :). Also included is Swedish language support and mipmapping support for trees. I'm making progress on improving the levels but there is still a long way to go.
28 May 2002
Apologies to those who found the site had disappeared earlier on. I am concerned because my webspace provider is now advertising my webspace package with a traffic limit. No-one told me about this limit but if it applies to me I'll have gone well over it with the recent release and could be facing a large bill. I haven't been able to contact them yet, so needless to say I'm not best pleased. As a precaution, I pulled the website and have now transferred it to my ISP account's webspace until I get this matter resolved. From the looks of my testing, my ISP is not good for big downloads (especially if you try to look at other pages, etc during the download) so if you experience problems please tell me and I'll try to set up a mirror. Thanks for your patience during this difficult time.
26 May 2002
Well the new release certainly got a lot of publicity! The trouble is that I haven't had any feedback. Lack of feedback and help will kill this project. Many of the comments I've seen on other site's forums have been highly negative ones but I don't know whether they were just posted by gaming snobs or whether they had a valid point to make. I know that the game isn't as good as a commercial offering but I don't know what some people expect?
Anyway I'm going to have a look at the game design from start to finish. Anything I find which I don't like I'll change if I can. I get a lot of complaints about the last half of level 4 so that will change. I personally don't like the textures in level 2 so I need to think how to improve that (I have no alternative textures for an office environment).
I was hoping with all the hits from all over the world I would get some volunteers to do more translations but I haven't had any :-( There is a post on the forum from a while back with details if anyone is interested.
Finally, I've released some new patches. In the game patch ALL the options can now be changed from within the game menus. The tool set patch fixes a bug that makes it impossible to select the robot guard model in the side view in the level editor.
18 May 2002
Well the new release of CoP is here! I know it's taken a long time but it's been a lot of work and I hope it was worth the wait. Of course, this means that level 6 is done at last! It is easily the most complex level I've done so far. I had some real trouble with slow downs in the vertex lighting routines due to the large number of panels but I sorted out the problems by changing the way the lighting works.
For the next stage I've not decided what to do. I have ideas for the next level so I may start to work on that. I also want to have a look at adding a new technology to the engine - it's a long time since I did that! There are a few things that would be good to do such as water surface modelling - I meant to add that ages ago. Also I could look at implementing directional shadows - that would be easy to do thanks to recent engine changes.
2 May 2002
I am so busy at the moment, I can't believe it. But I have managed to get quite a lot done on CoP as well. On the engine front I've squashed loads of bugs that the new level has showed up. I've also done little improvements e.g. the rendering performance for the explosions (when close up) and the machine gun fire timing (removing stutters). I've also finished the options menu (all options that don't require an engine restart anyway) and trimmed down the configuration utility accordingly.
On the game front I've finished the basic architecture for level 6. Just need to add some more detail and then the rest of the objects, enemies and lighting. So it's getting there slowly.
27 April 2002
Things are a bit slow at the moment. I've just been so busy on other stuff recently. A lot of people are patiently waiting for the next release I know and I appreciate their patience. I was really ambitious with the design for level 6 but I think I was too ambitious and I'll have to cut it back a bit. I've done most of the architecture now and done some of the enemy and object placement. It will still be a few weeks though at this rate :( I've also done some more work on the options menus but there is still a lot of work to do on them and this is holding things up too.
I still know of two extra levels that are supposed to be close to completion so hopefully there will be something extra to play before the new release comes out. But I don't have any control over this because these guys are volunteers working in their own spare time too.
14 April 2002
I've started work on level 6 now but progress has been a bit slow because of other commitments. I've got the first main area in the level done and already added things that test out the new ladder and scripting code.
I also just want to say that I've just finished Jedi Knight 2 and I've been blown away. Raven are without doubt my favourite developers at the moment. All last week I've been playing this game, yes I've been banging my head against a wall about some of the puzzles, but it is one of the best games I've ever played. I can't believe how much of the game I played in third person using just the light sabre and force powers. I normally hate third person games and in Jedi Knight I avoided the light sabre like the plague and hated the jedi battles. I was not looking forward to this game much but after playing it I'm gobsmacked. I can't wait to see how good SoF2 will turn out!
3 April 2002
I've got so much done over the last week or so :) I've done all the engine changes I planned so I now have ladder support, ability to do scripted sequences, etc and upgraded the level editor accordingly. I've also found a better model for the robot guard (the green one that a lot of people complain about). I've sketched out a rough design for level 6 and I've just started doing some work on it. Oh yes, I also started work on the options menu and so far I've added the gameplay options. Oh yes (2), Alex has kindly supplied a Dutch language translation.
22 March 2002
New release time! Version 0.77 of the game and tools is now available on the download page. This release is mainly to consolidate all the changes I've made over the last couple of months. I wanted to wait until I'd finished level 6 of the game before I did a new release but I needed to make some small changes to the level data format and I couldn't do it yet. If you already have the game there isn't much point downloading the new version (unless you want German language support) because I'll be doing another release as soon as I get level 6 done. I would recommend the download to level designers because the latest game engine has crouch support and the latest level editor has improved group editing functions and prefab support.
I made a stupid mistake in the way I version stamp the level data files. I incremented the engine version as soon as I did a release so any patches to the level editor would incorrectly stamp the level data files with the version number plus one. This made it possible for the map conversion utility to refuse to convert a level data file in cases where it found a version stamp that didn't match the file's data format. As far as I know this hasn't affected anyone (it's a fairly long time since I last changed the level data format and all the people that I know about that are currently working on levels will be ok). If it was to affect anyone I would of course do my best to fix their file for them.
I bet some of you think it's a stupid idea to be changing the level data format and you're right. The trouble is that all projects evolve as you get a better idea of what you want to do and can do. Unlike most projects, I release the 'work in progress' so you are seeing the changes as they happen instead of waiting years to see the final result. The approach has its advantages and disavantages.
Anyway, now I've done this release I can add more options to the texture coordinate generation for panels (which will help prefabs work much better). I can also add support for ladders and sort out a vertex lighting issue for objects. Finally, I can add timing information to activation lists and implement an event scheduler - which will allow scripted sequences. With all that done I'll be able to do a pretty good industrial warehouse type setting for level 6
16 March 2002
I've just added language support to the game! Thanks to d-p[0MaT (who also suggested the feature) I now have German text as an option. The thing is, now I have the mechanism set up it's real easy to add other languages (assuming it's the same character set as English). Is anyone willing to do a translation for me. It just involves editing a text file - an hours work at the most and all your fellow countrymen will be able to enjoy playing the game in their own language :) I'll give you a line in the credits as well ;) If you want to help please send me an email and I'll send you the text file.
12 March 2002
It's been a busy week with lots of progress. I've added crouch support at long last and it works really well. My next task is to add support for ladders. Then I'm going to get stuck into level 6 of the game.
Paul has updated the level editor to improve the grid snap for groups of items, add a new view option when dragging items around and add support for rotation of groups of panels. I've also added prefab support (which I just finished now!) and integrated a DirectX model export routine.
I'm really pleased with the way things are going - just need a few more extra levels :)
4 March 2002
Ok, I've released the new extra level today. It is planned to be the first in a series of levels and I'm looking forward to seeing the rest :) Hopefully it will encourage other people to try their hand at producing levels and give this project a push in the right direction ;)
I've also released a patch that fixes a couple of minor issues the level showed up. Please install the patch if you want to play the level :)
3 March 2002
I've just received my first extra level (by The Wolf) and will be posting it soon - something to look forward to :) Unfortunately, the forum is not available at the moment because someone seems to have hacked Bravenet - see here for the latest on this.
22 February 2002
I've now added a menu system to the game! This is something that people have asked for a few times and something I've wanted to do for ages. It is fairly complete as well, the only thing that is missing is an options screen (that is a BIG job that I'll probably do gradually). The main thing the menu system has added is multiple save game slots. I've also added an autosave function to the start of each new level.
Update: the new features are available in a patch on the download page.
Also, a friend has tested the game in Windows XP using the latest nVidia drivers and it worked fine so it seems the problems that some people have had in XP aren't universal.
19 February 2002
I've released another patch for the tool set today. This fixes all the outstanding bugs (at least all the ones I know about!).
16 February 2002
Another day, another set of new patches. I wasn't planning to release another game patch quite so soon but I noticed a serious bug in the teleport design for level 4 and so I thought I'd better release a correction. This new version of the game also has the dynamic lighting params tweaked for a more subtle effect and has improved stencil shadows.
I've also released a new version of the level editor. This has several bug fixes and also adds an extra accelerator key to align views to the same position and a new view mode that highlights dependencies for movers and triggers.
I just put Windows 2000 onto my computer to be able to test the game more regularly on that platform. It works fine so, as Windows 2000 uses the same nVidia driver as Windows XP, I guess the problems people have reported with XP are OS related. I did notice one thing though. If you run the tools from the start menu they won't load any models. It seems that Windows 2000 is passing the directory path in a different way - I need to investigate this. If you have this problem run the tools from explorer - this works ok.
12 February 2002
I've done quite a lot since the last release. The main thing has been a total re-write of the vertex lighting code (used to light objects and enemies). I'd been unhappy with the old code for some time because it restricted the amount of lighting in the levels and couldn't take account of shadows. The new code is far superior. Depending on the detail level, any object/enemy in the scene can be lit by up to 4 GL light sources. Also objects/enemies are only lit by a light source if they have a line of sight to it, hence shadowing is also supported. All luminious fire objects also now have their own independant light source. The result is MUCH better lighting. I've converted all the game levels to support the new capabilities. The performance hit varies from 5% to 20% depending on the detail level setting.
I've also made a couple of improvements in this release such as increasing the rate of fire for the machine gun and improving the explosion effects. I've also fixed the bug some people have reported (which must have been there for a long time) that caused the taskbar to overwrite the game window if auto-hide was enabled.
All of these improvements are now available in a patch on the download page.
It seems as though the game has a problem in Windows XP (crashing in level 2 due to a driver exception). I've never tested it in XP (and don't have access to a machine with XP) so I don't know what is happening at the moment. Has anyone got any more feedback? Has anyone got it to work in XP? Has anyone experienced a crash in level 2 on another version of Windows?
1 February 2002
The new release of CoP is now on the download page! The game, tool set and levels have all been updated and now have 'professional' install packages. The game now features five levels, has improved particle effects, new/improved models/enemies, new weapons, 3D rendering of the current weapon and teleporters.
I decided to cut level 5 a bit on what I planned because it was quite big anyway. The bits I cut will form part of level 6 when I get around to it. To those of you with modem connections, I'm sorry that the download size has grown by over a Meg. I've added a lot of content with this release and that has a price I'm afraid. The improvements more than justify the extra download time IMHO. If it's any comfort, the game download would have been over 5Mb if I'd still been using Winzip instead of Sfx-Factory. Also, I only have a modem connection so it takes me nearly an hour to upload the damn thing :(
28 January 2002
I've made reasonable progress over the last week or so despite other work taking priority. I've done some more of level 5 and I guess it's about half done now.
The main thing I've done recently is add rendering of the current weapon to the view. This is something that all fps games have but was low enough down the priority list that I've only just got around to it. Implementing it wasn't too difficult once I'd got my head around how to position the weapon model so it stayed in a fixed position relative to the view. The biggest problem was that I didn't have a model for the pistol. So I had to make it myself using the level editor. Anyway, I'm quite pleased with my 73 polygon pistol model and it's shown below along with a shot that shows the grenade launcher and the new level in action.
I'm keen to get the new release out because I just bought WinAce and Sfx-Factory. These give extra compression compared to Winzip (which of course gives faster upload times for me and faster downloads for you). The other advantage is that I can provide a much more professional install package that sets up shortcuts and includes an uninstaller. I'm impressed by these products and they are a very reasonable price, particularly Sfx-Factory.
16 January 2002
It's been a while since I posted some news because I've been very busy on the project and other things. I've improved the robot model a bit (more importantly the model is now in .dat files which means I can use the level editor to edit it in the future.) I've implemented the support for grenade type weapons and added a grenade launcher to the weapon set. I've also added some new particle effects that allow more realistic fire and explosions.
I've also started work on level 5 of the game and I've got quite a lot of it done. Don't hold your breath for this one though! It's going to be the biggest indoor area in the game so far and is going to take several weeks to finish. It will also be the first level to have human enemies - something a few people have asked for.
I keep getting emails from people using the level editor, which is encouraging. Some even claim to have finished a level but nobody has sent me one yet :( You never know, I might have some more extra levels to add to the site at some point :) If anyone does complete a level that they want to release then please send it to me and I'll add it to the download section.
2 January 2002
Happy New Year everyone!
Oops! I didn't test the last patch in 16bit colour and the sun object had Z buffer problems. A quick fix followed and a new patch that works correctly is now available.
I will probably start work on level 5 of the game now and I'll keep you posted on how it's going.
I got Empire Earth over the holidays and I haven't been able to put it down. Apart from a few annoyances, like having to refuel aircraft, it is stunning. The sheer scale of the game and the way it successfully conveys the progression of warfare and tactics over the years is amazing.
29 December 2001
Just a quick note to say that a patch for the game has been released. This fixes a 'crease' in the sky texture and improves the look of the sun by making it an object rather than just being painted onto the sky.
22 December 2001
The 0.75 version of the game and tool set are finally here. Sorry it's taken so long to finish them off. Both Paul and I have been busy and I've also had two colds in quick succession.
The new version of the game features improved levels, better lighting, improved shadows and various improvements and bug fixes. The tool set now fully supports terrain levels, expands the map conversion utility and has various bug fixes.
I'm now going to take a well deserved break over Christmas and I'll be back to the project in the new year. I wish you all a very merry Christmas and thanks for the interest you've shown over the year.
13 December 2001
The game is now ready for the next release but the level editor needs some testing before it can be released. I've added a few more features into the engine to improve the quality of the game such as antialiasing for shadow edges in light maps and full support for directional lighting of enemies (including transitions between indoor and outdoor areas).
I've also been playing Return to Castle Wolfenstein. Hmm... I can't make up my mind about this one. For the most part the game is very good and in some places, particularly the street fighting levels, it is superb. But all those crypt levels and undead monsters remind me too much of Undying and are a real chore.
29 November 2001
I've been polishing the game a bit since the last update. Doing lots of little things that have annoyed me for ages but I just didn't have the time to sort out. The main two areas being sound and shadows. I exposed a bug in my sound card's DirectX driver in the last patch so I changed the code to get around it. I also tidied up some of the sounds and got rid of an annoying background hiss that has been driving me crazy for too long. On the shadows front, I found that even though I hadn't added shadow support to the terrain, shadows were sometimes being drawn by accident. So I've now added in the support and also added in code to align the shadows with sloping floor panels - something I've wanted to do for over a year!
I've also been adding a couple more md2 player models to the project but they aren't in the game yet. I also realised that now I have texture rescale code I could increase the md2 model textures to their full resolution and they look a bit sharper now. For a while now I've been dropping the restrictions that 3dfx cards (pre Voodoo 4/5) placed on the project but now I've started to just get rid of them. The texture rescale code allows me to have high res textures and not worry about the 256x256 limit. I've also decided that CoP is 'officially' a 32bit colour game now. It will still render on 16bit but I've got rid of all the special fiddles I put in to maintain reasonable quality, such as the hugely wasteful process of having a second set of light maps to minimise banding in 16bit. So if your graphics card supports 32bit rendering, that is what you should use for CoP because it makes a big difference.
There is no news to report on the level editor because Paul has been so busy he hasn't had chance to do anything.
24 November 2001
I managed to get a bit more done on the project in the last few days which was an unexpected bonus. I've made a couple of bug fixes but the main thing I've done is improve the enemy AI. I've added to the state machine and added basic waypoint navigation and hearing. This has made a big improvement in the behaviour of the enemies. I can have simple scripted sequences like enemies running around a corner or coming over the brow of a hill which is pretty cool. I've made some improvements to the levels, particularly level 4 which I knew was a bit too big and empty in the last release.
I was going to wait for the release of the next tool set before releasing these changes but I decided they are a big enough deal to deserve an immediate patch - see the download page :)
On the tool set, Paul has started adding in terrain support and is about halfway done I think.
17 November 2001
The new version of CoP is now available for download. This features the terrain engine I've been threatening to include for so long. It also has two new levels, both of which include terrain. Other new features include improved enemy AI, pause mode and zoom mode.
Like I said in the last post, the new version of the level editor will be released as soon as it's ready. To cover this period, I've released a patch to the old version of the level editor that allows it to load levels that include terrain data.
I probably won't be able to do much on the project until after Christmas. I don't know what I'll do next. I might just do some more levels rather than concentrating on the engine so much. I can't improve the quality of the game much because I can't do artwork, but at least I can add to the quantity to make it a worthwhile download. I'm sick of people saying the game is 'quite good' but the graphics aren't as good as Unreal Tournament or Quake 3 and the game isn't up to modern standards, etc. (Like a recent review on a certain download site.) What do they expect! Do you know anyone else who has produced a first person shooter game virtually on their own in their spare time? To produce a game up to modern standards would take a team of people working full time for years and lots of cash! Doh!
15 November 2001
I'm very near to being able to release a new version of the game. I've finished all the terrain rendering integration tasks that I need to do at the moment. I also speeded up the terrain levels by over a factor of two by removing some redundant code and putting the terrain into a display list. There are some things that still need doing like light casting onto the terrain from point/spot sources and better area control but these aren't required by the current levels.
The game now has 4 levels! I decided to start work on the new starting level and ended up finishing it! It's another terrain level and was very easy to do.
Paul has started upgrading the level editor. I guess this will take at least a week to do so I'll probably release the new version of the game as soon as I can and update the tools when he's finished. I'm keen to get the new version out of the door because the demo is now much better and I'm now so busy that I won't have the time to do much else until after Christmas.
5 November 2001
Things are going well at the moment. I've ironed out the problems I was having with texture distortion and done some more finishing touches to the terrain support in the engine. Just in case you're an interested programmer, the texture problem was caused by using large values for texture co-ordinates. If you work out texture co-ordinates based on real world co-ordinates you can get big numbers on a terrain. However, with co-ordinates into the 100s or above 3D cards seem to suffer from big floating point errors (especially when clipping).
I've also done a useful little utility to convert level data files into .x files, which basically means I can use the level editor to create models. I've already used this to produce a tree model and I've added texture+alpha and billboarding support to the model renderer to handle transparent sections in model polygons (which allows the tree leaves to be drawn correctly). The trees don't look as good as they could but as usual I'm limited by the source artwork I've managed to find on the net :(
The result of all this is that level 3 is well on the way to being complete and will be ready for release in the none too distant future. I still have some ideas on how to polish it further but these may have to wait for a future update. I'm also a little concerned about the frame rate, which is borderline on my PII-350. I've already done a few optimisations which have helped but the terrain level is still sluggish. I may have to raise the minimum specs for the game which is something I always hate doing but unfortunately terrain support adds quite a lot of extra processing work. Anyway, a new screen shot is shown below.
There is still work to do on the level editor to fully support terrains but this will be done a little later probably. Paul can do the work but I don't know how long it will take. I've done some of the work, but there are still one or two dialog boxes to add plus the underlying logic.
24 October 2001
I've been away on holiday for two weeks which was really cool :) I went to Rhodes and it was brilliant, such a lovely place and such nice people.
Needless to say I haven't done a huge amount. I've done a lot of the outstanding jobs that were required with the terrain renderer. The only thing that remains is the shadow casting by buildings onto the terrain. There is loads to do on the level editor as well but I haven't asked Paul yet about doing it.
I've been doing some more work on level 3. What I'll probably do is get it into a working state and then release a patch. This will allow some feedback on any issues with the new routines whilst I/we upgrade the level editor.
29 September 2001
Sorry about the lack of updates recently. I've been moving house amongst other things so my spare time has been a tad restricted.
At last I've started to integrate the terrain renderer into the game engine. I've also begun work on level 3 of the game which is an outdoor area. There is still so much to do. I've got to add editing of terrain parameters to the level editor, add some missing collision routines for things like fire objects, sort out a lighting issue, add lightmapping routines to let the terrain cast shadows onto buildings and vice versa, etc. I also found an interesting problem with TNT cards (others are probably the same?) if you have vertex co-ordinates in the thousands range, texture mapping accuracy gives up and goes home (I presume due to poor floating point accuracy). This is going to cause a problem in big scenes (I don't want to even think about re-scaling my co-ordinate system!).
Here are some screen shots of level 3 so far:
8 September 2001
The new version (0.73) of CoP is now available for download :) So what's new in this version? The main addition is multiple weapon support. All the levels have been updated to the new format and have been tweaked to add new weapons to the level design. Another significant change is improved support for high resolution textures, check out the new version of the 'Ancient Complex' add-on level to see the improvement this makes! There have been many other small changes such as AI improvements, look in the version history file in the download if you're sad enough to want to see the full list ;)
So what now? Well I still have an overloaded life at the moment and I'm amazed I've managed to get this latest batch of work done. So I don't know what I'll do next. I guess it will be the integration of the terrain engine. I know I've been promising this for so long now :( I needed to bring the engine and tools up to a reasonable standard before bringing the engine technology up to date. I think I've managed to do that now (although I guess I need scripting at some point and the AI still needs work). The terrain renderer is not vapourware, the renderer and collision detection are ready to slot into the engine now. Once that is done, I'll need to change the area system to handle the terrain section, update the tools, and update the model rendering code to handle panels with transparent texels (for trees). Plus loads of other minor things that I won't know about until I realise they need doing ;) ... I guess that will include making some tree models :)
One more thing. I've created a mailing list to inform people when new releases occur, so if you're interested in joining the list click here.
30 August 2001
Whew, what a response to my request for weapons models! I had exactly zero replies which was exactly what I expected ... oh well. On a more positive note, I had an idea that has enabled me to side-step the problem. I suddenly remembered that a lot of the Quake 2 ppms have custom weapon models and so I've adapted them into an almost complete set. I just don't have something to use as a beam/rail gun yet but I guess I'll just keep looking.
I am sick of seeing weapons and weapons code :) I'll be glad when I have this particular job done because it's turned into a big one. I'm getting there though. I think I've gone through all the possible combinations of starting levels and restarting levels and checking that the weapon handling is done ok (god, I hope I have).
I now have the makings of a reasonable weapon set which is good :) So far I have a knuckle-duster, a laser blaster, a plasma gun, a mega-plasma gun (like a rocket launcher), a 9m pistol and a 9mm submachine gun. I also have a half-finished assault/sniper rifle and grenade launcher. There is also some tweaking to do on some of the effects and things like ammo models to finish off.
I've been through the main game demo and added weapons into the design and tried to re-tweak the gameplay balance. I've also added higher resolution textures into the 'Ancient Complex' level now the engine fully supports them. Now the weapons code is in, CoP feels so much more like a real game now! I really should have done this ages ago...
When I get this lot done I'd like to do a new release. There is some other stuff I'd like to do too before though. I've changed the level data format and so it makes sense to do all the other little jobs I've had queued that require changes to the level data format. If anyone has done any levels (as if!) the next release will also include the first iteration of the map convert utility that will massage your levels to the latest version. I also want to go through the textures and convert most of them to jpg to reduce the size of the download. Then I've got to update the level editor to allow the new parameters to be edited.
17 August 2001
The upgrade of the weapons code is coming along nicely :) The weapons design is data driven as intended. The designer selects a type of weapon from a pre-defined list (that can be added to if required) and can then customise the appearance, performance, sounds, effects, etc for the weapon using a text description file and custom models/textures. I've implemented all the weapon/ammo management, pickup and selection. The missing parts are the rendering code for 'beam' type weapons and the physics code for 'grenade' type weapons. Also, a tool will eventually be needed to help create the weapon description file. The current list of weapons is a laser gun, a plasma gun, a 9mm pistol and a big fist :) Right now I could add a rocket launcher, a shotgun and a machine gun if I wanted. Things like a railgun and a grenade launcher need the missing code.
The weapon code is not fully tested by a long way. I'm sure there will be one or two bugs but these will be ironed out over time. The main problem I've got (the one that stopped me doing this ages ago) is that I don't have the content! I don't have weapon models, I don't have ammo models and I don't have HUD icon graphics :(( At the moment I'm having to use temporary models and place-holder graphics. I can't show the current weapon being held because I have no models to render. I can't release levels with weapons in them. Please, is there anyone out there who is willing (and able) to produce some weapon models for me???
Another task I've managed to get done is to put in the code to re-scale textures on systems with limits on maximum texture size. This will now allow me to put a texture scale parameter into the panel description and so allow hi-res textures to be used in level designs :)
I've also been playing Max Payne and finished it a couple of days ago. Wow! I really enjoyed it and it's one of the best games I've played in the last year. I've been puzzled because I noticed several people on message boards criticising the game and asking why it took 4 years to make. This shows that some people just do not appreciate how much work and effort it takes to produce a game like Max Payne. The state-of-the-art engine, the high-res artwork, the large/complex levels, the large number of models, the large number of weapons, the scripting, the story, etc. All this from a 'new' company. I, for one, am deeply impressed.
As another aside, I was impressed by the control system they used in MP and I think I could do a similar thing. Alex has for ages been asking me to allow a third person mode in the engine and now I can see how to implement it. I would just need to find a player model (!), sort out some basic camera control code and update the code that converts the crosshair position to a direction vector.
Oh yes, a word of warning in the unlikely event that anyone uses the model 'editor'. Loading some models (those with standard cylinder parts) can cause a GPF. I haven't a clue what the problem is because a window handle is getting corrupted and, as I don't know the address where the handle is stored (VC won't tell me), I can't work out what is corrupting it. Some models with cylinders are ok (and the game/level editor load all the models no problem - same code) so maybe that is a red herring. I'll try to track it down when I get more time...
31 July 2001
The last post was very negative but since then I've managed to get a bit more work done than I expected.
I've looked at the AI routines, which were rushed into place to get the original demo out and haven't been touched since! Needless to say they were a mess :) I've tidied them up and fixed a bug that I'd spotted once before but hadn't managed to repeat until now. I've also tidied up the chasing logic and made the enemies wait when they lose you instead of aimlessly bumping into walls. The main thing that remains to be done in the short term is to add path finding routines. The level editor can already add waypoints to a level, I just need to add the logic to 'join the dots'. This is much more difficult than it sounds.
I've also added the facility to calculate volumetric fog on a per-vertex basis for objects. This was previously done on a per-part basis but this caused artefacts when part of an object is in fog and part isn't. The new calculations are only done in high detail mode, the older functionality is still used for medium and low detail modes. The extra calculations required give a significant slowdown (about 30% drop in frame rate on my PII-350) and so I choose not to make it a default operation.
I've also tidied up the structure of the file handling routines and written the utility to convert old versions of level data files to the latest version. The utility is not currently required but will allow level designers to cope with engine changes in the future. If an engine change breaks your level, you will just need to convert it to the latest version using this utility.
I've removed the light map generator program from the project and updated the documentation accordingly. (This is no longer required as a stand-alone program because the function is integrated into the level editor.)
Finally, I've made a good start on the weapons upgrade. I've designed the file format (.wep) and implemented the loading of it. I've also started to integrate support for it into the engine. There is still a lot to do but it's getting there. I'll also have to do some weapon models, nothing fancy - just enough to enable me to get the job done.
10 July 2001
On the download page you will find quite a big update :) The patches add multi-select functions to the level editor and jpg loading support to everything. There is also the new level I've been working on and an updated version of Paul's level. This is probably the last update I will do for some time.
I don't know what is going to happen to this project at the moment. It's just not going anywhere :( I've put thousands of hours of my time into it and made a lot of sacrifices. I've enjoyed doing it and have learned a lot but the content isn't getting created...
I'm really disappointed about the level editor. Paul has put so much effort into it and he's done a fantastic job but the response has been the usual stunned silence! It is of benefit to me and I continue to use it but no one else is (that I know of). Paul was all set to start on the model editor but I've told him to suspend the project for now. I don't want him wasting any more of his valuable time.
So what about me? I can't work up any enthusiasm for CoP at the moment because it's so much work for so little reward. The next few months in particular are going to be extremely busy for me because my life is set to go through a major upheaval. I doubt I'll have much time to work on the project :( I'll try to get something done...
21 June 2001
Been a while since the last update. There hasn't been much to report to be honest; I needed a break.
Alex has come up with some great game ideas and thinks he might have recruited some help which is good. Paul is back from holiday. I still have to finish my new level... Oh yeah, it also looks like CoP has made it onto some magazine cover disks which is cool :)
Much as I want to start to work on new technologies I've decided I might be best getting the engine up to scratch first. The new level has shown what I knew already about the weaknesses in the engine and I guess I need to sort them first.
First problem is weapon support. I have loads of potential enemy models but there is no point adding them because there are only two possible weapons. I had a great discussion with Paul earlier. I had been thinking I could base the weapon system around generic types that could be customised but I was still thinking they would be hard coded and so would need some programming input. Paul just said why don't you handle it like the effects and I thought: bloody hell you're right! The way I'm going to try to do it is to have generic weapon types that you can customise by specifying things like weapon model, projectile model, effects textures, fire rates, etc. If I write some generic code to handle that then all that's required to create weapons is a tool, not a compiler and programming experience!
Second problem is the AI. I need to at least add the code to support waypoint path finding techniques.
Third problem is objects and light mapping. I was reading a story about the latest Unreal engine and it seems that they are applying object-orientated design at the scene level. They have pre-fabricated chunks of scenery that are imported once into a level and then can be re-used in several areas within the level. This is a good idea because it saves design time and is memory-efficient. Thing is I can already do that, my objects are used in exactly the same way. The only problem is that objects can't be light mapped at the moment so I need to do this at some point because its a useful feature. Another limitation is that objects can't cast shadows that match their shape and so this needs doing as well; but that's easier because its just a case of passing all the object's polygons into the light map generator.
6 June 2001
I've started to get some stuff done again. I've continued with the new level and it's getting there. This is also letting me give the latest version of the level editor a good test before I release it.
It looks like Alex is back from the black hole he disappeared into :) Paul is off on holiday in sunny Florida, the lucky sod :) He said he might start work on the model editor when he gets back which is good news. Once I get this level done I'll release the latest patches and start working on engine stuff again.
Below are some scenes from the new level (I haven't populated it yet)
2 June 2001
The multi-select/edit feature in the level editor is now done and is in the process of being tested. It's good :)
I may be getting some new models soon, which will be very welcome! I still only have one person playing with the level editor though :(
Hopefully next week I'll have a bit more to report. I'm real excited about the Jedi Knight II announcement! After such a short time the screen shots look fantastic! I just hope there won't be too many boring light sabre battles ;)
24 May 2001
The last week or so was not a good one for the project. I was, and still am, feeling really frustrated and disillusioned about it. I don't want to go into details but lack of help coupled with offers that don't happen are getting me down.
Anyway, enough ranting. I've not done much since the last post. I've done a bit more on the new level and I've implemented jpg support for textures (this cuts download sizes considerably). When I release the next patch PMLEVEL1 will drop in size from over 800kb to less than 250kb.
Paul has continued working on the level editor and the functionality for editing multiple panels, markers, areas, lights and effects has now been added. This just needs to be extended to cover the other edit groups. This should be done by next week but there is still a lot of testing required before we can release a patch.
14 May 2001
If you saunter along to the download section you'll find some new patches and a new level. The patches bring you up to date with some of my recent work. For level designers (!) the maximum panel size is increased and there are improvements to the lightmapping with light blocking panels and attenuation of lights in fog areas. For game players, there is dynamic switching of colour depth (Win 95 doesn't support this though) and smoother animations for md2 models. The extra level is the test level Paul did when he was developing the level editor. Its a bit short but its good fun and it makes it blindingly obvious, even to the casual visitor to the site, that CoP has a game engine that you can write levels for!
Finally, after a well deserved rest, Paul has started work on the level editor again. He's started to add group editing functions, it's a big job but it will make the level editor much more powerful. He's already made it possible to select and move multiple panels!
8 May 2001
I've been away for the last couple of days having a nice break from everything :) I've done some things other than terrain rendering last week. I've upgraded the config utility to read the available display modes and list them and the game now supports colour depth switching (although of course this doesn't work in Win 95). I've also tweaked the light map management and increased the maximum panel size to 125 units.
I also finished Serious Sam a few days ago. I forgot to mention what a fantastic game engine Croteam have developed. Some of the levels are breathtaking! I love the water effects and the scale of the levels is amazing. Yet again, someone has shown what great things OpenGL can do :)
Inspired by Serious Sam, I've started to do an extra level for CoP. It shows off some of the new things like sky boxes and will be pretty big. I want to make it obvious that it's possible to produce extra levels for the game engine using the tools and I can also give the level editor a serious test as well.
1 May 2001
That little bug in the floor detection for the terrain I mentioned a while back has took me a while to fix. If you ever do a quad tree terrain renderer, it may be fast but the collision detection is tough :( I also started to worry about lining up fixed objects such as trees, buildings, etc when the LOD keeps shifting the ground around. I went back and tried various schemes but most were too slow. I decided that a good compromise is to use a quad tree renderer but with a fixed LOD. This means that it is still quite quick but the ground won't shift up and down. I think the demo I put together is complete now so I need to start integrating the new code into the existing engine. I also need to do the tools to generate the textures and lighting map for the terrain. Not a lot to do then.... why do I do this to myself??????
I just got Serious Sam. I like it. I like it a lot. Personally, I don't like the way a lot of fps games have been going. I get bored of cut scenes, sneaking around, complex plots, interaction with NPCs, etc. I like to have plenty of action and not have to think too much (I have to do far too much thinking already!). Serious Sam delivers what I like by the bucket-load and I haven't been this excited about a game since Quake 2 :))
25 April 2001
Just a quick notice. A new version of the level editor has been released in a patch on the download page. The light map generation code is now integrated into the editor so the process is easier and quicker then before. Now, both the demo levels only take just over a minute to process on a PII-350 :)
22 April 2001
It is a really exciting time at the moment. Since I publicised this release of the game, I've had a number of complimentary emails and offers of help, which is very encouraging! Thanks to everyone who's shown an interest. Hopefully between us we can make something that is interesting and fun :)
In answer to some requests, I've added a new patch to the download section. This adds a couple of gameplay options to give a wider field of view and an 'always run' mode. This patch will overwrite your config file so only download it if you want these options.
17 April 2001
Since the last update I've concentrated on the terrain renderer and I've made good progress. The experimental code now supports varying terrain sizes, is scaled properly, clips properly, has programmable terrain colours with detail textures and runs a bit quicker (40+fps instead of 20 fps for a 23 square mile tile). I just need to sort out a bug in the ground detection code and do some more optimisations and then I can start to integrate it into the game engine :)
Below are a few shots of different types of terrain.
12 April 2001
Ah, the calm after the storm :) I've been doing some interesting stuff since the release and relaxing a bit, reading a book I bought a while back but didn't have time to read, etc. I've had a couple of enquiries about the tools and an offer to make some weapon models so I hope this leads to some more content. I forgot to mention last time that the tools have been released to encourage you guys to produce content for CoP. You don't have to become involved in the game project, you can do your own levels if you want. I have space on the site to host add-on levels and you're welcome to contribute them :)
Something else I forgot to say last time was that I appreciate some people may have got fed up with waiting for the release to come out, I certainly did! The truth of the matter was that we could have done the release a month ago, but we knew that it needed a lot more work and the level data format had some holes that would have to be fixed at some point. If people are working on levels then changing the level format becomes a nightmare and I wanted to try to minimise this.
I've been looking into the current state of GL and the extension set and I like what I see! Some of the stuff that has come out is extremely powerful and can be applied across a wide range of cards. I think it will allow me to add a lot of cool new features to the engine this year :)
I've also been looking at water effects, particularly environment-mapped water meshes and I've put together a demo. I'll definitely have to add this at some point because it looks great, although large meshes tend to chug a bit on my PII-350 :| I've also started adding to my terrain rendering code and I now have multi-textured detail maps added to the basic terrain texture. I still have a few issues to resolve before I add it to the engine but I'm really excited about it. Things I have to do include deciding how designers will create terrains, fitting the terrain into the areas hierarchy and the interactions between the terrain and buildings for shadows. Then of course there's all the detail like trees and such.....
Finally, I've fixed a couple of minor bugs in the game and added velocity data to moving objects so there are now nice doppler effects in 3D sounds. A patch is on the download page. (Run the patch to extract the two new files to your 'power' directory.)
5 April 2001
Done at last! After far too much time and effort the 0.72 release of CoP and its tools is now available :)) What's new? Well, the biggest thing is, of course, the new level editor! The model editor is also partly complete (i.e. it allows you to view models and play animation sequences) and replaces the old animation 'editor'. The game engine has been radically updated but the demos aren't too different at the moment. You will notice new models, improved lighting, some new textures and sounds and graphical splash screens. Users with no stencil buffer can also enjoy complex shadows with this release.
I'd like to take this opportunity to thank the people who have contributed to this release. Particularly Paul for all the hard work and dedication he's put into the level/model editors. Also Alex for the superb model and artwork he's contributed.
So what next? Well, we plan to add some missing features to the level editor and improve the functionality of the model editor. On the engine front my immediate plans are to add features that allow high-res textures and better volumetric fog (using the EXT_fog_coord extension). There is also, of course, the terrain rendering to finish/add. Also, I'd love to add water surface meshes to provide realistic looking waves.
2 April 2001
I think we're close to the next release now. I've updated the collision detection code which was a big job, but well worth it because it's solved a number of issues. I've also more or less finished the level editor tutorial.
All I have to do now is finish off the documentation and do some final tests. This will be done by the end of the week hopefully:)
26 March 2001
It's getting there I think. I forgot about the light map directories in the update of the directory structure so I corrected that. I also decided that there were some loose ends in the light editing so I did a major change to the way lights are represented in the scene. Now all light fittings are standard objects rather than having some that were always loaded with hard-coded glow maps. In order to do this I had to update the model class to add panel and sprite primitives (for the light glows).
I've added a couple more sounds to the demo. I also added sky box rendering and Paul added the ability to add a sky box to the editor. I must admit I did this to take a break from all the hard slog that is going on at the moment:) Finally, I've started on the collision detection updates and HOPEFULLY I'll get that done this week.
Alex has got involved in the beta test of the editor and has made a few useful suggestions that Paul is working on.
To finish, here are a few screen shots from the test levels Paul and I have been working on.
20 March 2001
I'll keep this update short because I'm very busy at the moment. We've made some good progress although I've still got the collision detection to sort out yet. A draft of the documentation is finished, just a bit more of the tutorial to do. The level data format changes are done I hope and the directory structure has been significantly improved. All the changes to the level editor this week have been minor bug fixes and cosmetic changes which is a good sign.
I also want to tell you about a cool GL demo I found. It is called GL-Excess by Paolo "Bustard" Martella. If you haven't seen it yet it's well worth a download.
13 March 2001
Last week was pretty crap. Both me and my son were ill and it was a washout :(
Now I've recovered a bit, I've finished the upgrade to the lighting map generator! All I need to do now is the collision detection upgrade (for movers) and the engine changes to support the level editor are finished :))
I've also done quite a bit on the documentation for the level editor and done some testing on it. I've only found a few minor things and Paul has sorted them.
It's getting closer now to a release. I need to finish the documentation and then I'll ask some people other than Paul and myself to try the editor and see what they think. Assuming that goes well a release will follow soon after. I'm aiming for the end of the month. I want to get this out of the way so I can get on with other things, like finishing the terrain renderer (remember that?).
I'll finish with a screen shot of the level I made to test the new light map generator routines:
8 March 2001
I've been feeling ill the last week so progress has been a bit slow. I've been feeling worse at night, which hasn't helped.
I have managed to get some work done though. I've added the ambient sound support and I've found a sound for the water area. I've also begun work on upgrading the lighting map generator but it's been hard work! I've managed to speed up the processing a little, removed the problem with filtering at panel edges and begun the generic pre-processing routine (to handle any legal polygon shape).
On the level editor front we've found several minor issues and corrected them. We added a scroll bar to the dialog bars to allow screen resolutions lower than 1024x768 to be supported and we've done several minor improvements that I won't bother to list. I also decided that the user interface for specifying volumetric fog was too complicated so I've made some improvements.
26 February 2001
Where to start? It's been a busy week. The hard-coded sounds were causing problems and made expanding the sound environment within the game too difficult; so I ripped out the old sound code and put in something a bit more sensible. Now the sound management works just like textures and models. This makes it possible to customize the sounds that a level can use which is MUCH better. I've also managed to neaten up the internal sound interface too. The only thing I have to do now is the logic for playing ambient sounds.
As far as movers go I still haven't got around to handling collisions with moving objects yet, the rest is done. I've added a splash screen to the game and made it possible for the author to add a title and their name to the level data for display when the level loads. I've also made it possible to blank the screen between levels if the designer can't be bothered creating the geometry to support a seamless transition. I've also been doing tweaks to the renderer for the model and level editors to make things easier to see in certain modes and draw bounding boxes for the markers (that need them) and shadow boxes.
Paul has upgraded the level editor to support the latest changes. The sound manager is done and sounds can be specified for selected markers and moving objects. The bounding boxes for markers and shadow boxes can be edited. Also the general level data such as title, author, next level, etc can be edited. Paul has begun trying out various things in his test level to check everything works and see what needs tweaking.
The other task worth mentioning is that I've started work on the documentation for the tool set. I've done a rough draft that covers a lot of the level editor functionality and the beginnings of a tutorial. It's a big job but hopefully you'll thank me for it :)
25 February 2001
Due to popular demand (ok, a couple of requests) I've added a forum to the site. The forum is hosted on another provider so I can't be sure how fast it will be.
20 February 2001
Implementing the mover code has, as usual, turned out to be a much bigger job than expected. I'd forgotten how many things were tied to the old door and lift structures. As well as implementing the movers I've had to replace all the doors and lifts in the levels, add path nodes for all the movers, improve the object collision detection code, fix some bugs, upgrade the marker code, etc. It is getting there now but there is still some work to do. The main things left are to finish converting the second level and add the code to handle collisions between movers and entities. The other big problem is the sound support, which was all hard-coded to the doors and lifts. This needs sorting...
Paul has done quite a lot more on the level editor and it is near to being a beta version. All the mover support is there now and the marker support has been upgraded in line with the changes. So what's the plan now? Well as soon as I complete the above, the level editor will go into a private beta phase where we'll create some simple levels to check things are ok. Once we're happy with it we'll release it. It's not just testing that needs to be done before we get to the release stage, there are still a couple of things I would like to do like generic light map generation and some documentation. It's going to be a few weeks yet.
Paul has also started work on the model editor. This will not be a mesh editor, meshes are imported into the models. The model editor is required to allow model parameters to be edited and the component parts (meshes) that make up the model to be specified, positioned, etc. The next release will include this but it won't be fully functional, more like a viewer than an editor. Here is a early screen shot of the utility:>
12 February 2001
The rendering code for the level editor has now been upgraded and is working well. The ability to see the level as it looks in the game whilst you are creating it is a powerful feature and was well worth the effort. I've now started to look at implementing movers for the doors and lifts. I have a good idea of what I want to do and should hopefully get it done this week. I've also done a few little things like fixing errors in a couple of models, fully skinning the last models that weren't, adding code to draw complex shadows on cards without a stencil buffer and fixing a few errors in the level data.
Paul has been a bit held up by me this week. He did manage to complete the area editing though. I was really worried about how this would work out but I'm pleased with it. Areas will probably be the biggest culture shock for many level designers who will be used to using bsp and vis tools. The designer has to do a bit more work specifying the areas,e.g. the current levels have 12 areas each and I estimate that 'Temple of Retribution' in Quake 3 would require 21 areas. The advantages are greater control, no hours spent doing bsp and vis calcs and the fully rendered preview in the editor. I think the extra work is worth it but then again I'm not a level designer :)
5 February 2001
Things were going great until Windows 98 decided to hit the self-destruct button. Thanks to the miracle of CD writers I didn't lose anything important but it still took me two nights to install and configure everything again. It had been about 6 months since I last installed Windows so I guess I'd done quite well!
Anyway, progress has been a little slow because doing the full renderer for the preview window in the level editor turned out to be a bigger job than expected. It is basically done now though and was well worth it. The game and the editor now share the same rendering code so the editor shows exactly how the level will look in the game engine. Paul has even added an option to show the preview window fullscreen. All I have to do now is add all the highlight boxes, etc into the shared rendering code and tidy up the code for the wireframe view.
Paul has done loads of little things to improve editing, things like better panel manipulation and the ability to copy existing objects, etc. He's also started to add effects editing but this needs more work.
It seems some of you can't wait to see the level editor in action. Patience please :) The code needs a lot more work before it'll be ready. It's still missing some editing functionality, it hasn't been beta tested and the file format is changing all the time at the moment. I'm keen to release it ASAP but we want to make sure it's done properly. It'll be at least another month I guess. I hope that it'll be worth the wait :)
29 January 2001
I'm just starting to get a feeling that things are coming together at the moment. Paul and I have both managed to get a lot of work done over the past couple of weeks and it shows. I haven't been this optimistic about the project for a long time.
I've been doing various things this week. I've added Alex's bulb objects to the levels. I've done some tweaks to sort out a few minor issues with md2 models and improve some of the effects. I've rationalised the lighting structures to a much more logical form, (I just need to change how the light models are handled). I've also started to alter the renderer for the level editor to use a colour-coded system for the wireframe views and give full rendering capability in the preview window.
Paul has implemented vertex editing for the panels in the editor and also light source editing. He's also done a number of small changes to trap errors, launch the light map tool from the editor, etc. The main things that need to be done now are moving objects, effects and some more editing functionality for areas. The moving objects editing requires some engine changes, which are of course down to me. It is so easy to do a simple level now, much better than having to do it all by hand :)
A couple of screen shots are shown below for a test level Paul has been working with. The first is just a general view, the second shows an entity being edited with its viewing cone highlighted.
As an aside, I remember that I said I was going to switch over to OpenAL for sound a few months ago. This has been shelved for now. I got the impression that the support for the Windows version was less than enthusiastic. It had significant bugs and they just weren't being resolved. Hopefully things will improve in the future.
22 January 2001
I didn't do much on the engine last week. I tweaked the level design to get rid of some of the issues. The remaining issue has been a pain in the butt for a long time: if you have areas with a darker texture set the models look over-bright in those areas. I'm sick of this problem so I think I'm going to solve it by adding a model 'gamma' value to the area data.
I also completed a user manual for the game, which is currently a separate download but will eventually be part of powerxxx.exe. This pulls together all the info that was in several files and adds some missing bits. It's just something to hopefully make the game a little more user friendly.
Alex completed his first 3D model a couple of weeks ago, a new light bulb to replace the unrealistic spheres I use at the moment. Unfortunately he's been busy and didn't have time to skin it so I had to learn how to do it, which was very interesting. The recent changes to the model code and playing around with model editors have taught me a lot over the last few weeks and I feel I have a real grip on model design and coding now.
Paul made great progress on the level editor last week. We hit an important milestone by creating a new level from scratch using the editor. Ok, so the level was just a floor with a few objects and an enemy, but great things have to start somewhere! He plans to add support for graphical editing of the individual vertices on the panels next.
15 January 2001
A new release of the demo is now available on the downloads page! I've been looking back and it's August since I did a release, doesn't time fly when you're having fun... This release features a few changes since the last one: a faster engine, HUD graphics, shaders and new textures. There are a few minor issues that need to be sorted out but they can wait for the next release, mainly level design tweaks.
13 January 2001
What a week it's been. After one lot of redundancies at work it now looks like there are going to be more so things aren't good. Looks like a change of job may be required. Then yesterday the substation that supplies our office went bang and left us with no power so we had to leave early :)
Anyway, I've been doing a load of little jobs this week. I sat back from the engine changes and looked at the demo and the issues that the changes had introduced. I haven't done a release for ages because the demo had some problems like misaligned textures. It also takes time to do a release because it has to be packaged and then tested on several machines.
I spent a while searching for md2 models that are available on the net and looking at whether I can use any in the game. I may have found some suitable candidates but I'll have to wait and see. I also found a few more new textures that I could use.
Paul has done some more work on the level editor. It's now integrated with the rest of the project files (i.e. it's close to replacing the old editor that's in the download section) and is up to date with all the engine changes I've done so far. There is also panel editing functionality now although we plan to improve this soon. Alex has been doing some static models for the demo which are looking good.
5 January 2001
Happy new year everyone! I had a good rest from all forms of work over the Christmas break and feel better for it.
I've made good progress on the changes to the enemy and model code that I discussed last time. Support for md2 models with weapons is now implemented (see the screen shot below). I've removed most of the hard-coded elements from the enemy routines and just have a couple more minor things to sort out. I've also improved the model format so that all parts of a model can have individual textures and shaders if required. I'm very pleased with the capabilities of the models now.
24 December 2000
I got a little side-tracked over the last few days but it was something I was meaning to do anyway. For over a year now I've wanted to add support for a widely used model format in the (vain?) hope that this might encourage people to contribute to the project. I never seemed to have the time or the information to do it but I finally got around to doing it now. So, I've been adding support for md2 models to the engine and I'm well on the way to completing it. Below is a screen shot of my favourite Quake 2 model in level 1.
Some of you may be thinking so what, md2 is an old format. Well it is but it is still quite capable. I can also breath new life into it because my engine supports 32 bit textures, proper lighting, stencil shadows, shaders and animation frame rates of 30Hz. Also, of course, there are plenty of editors for it and plenty of people who can design md2 models.
The main things I have to do now on this front are things I was going to do in the engine upgrade anyway. All the enemies have hard-coded elements that make adding new ones awkward. I'm going to change the data structures such that all the parameters are derived from the model files, which is a much neater solution. As you can see from the screen shot, I also need to add support for linking weapon models to the md2 characters.
Now for other news... I've also finished the implementation of the shader support and I've added some new crosshairs that can be user-selected. Paul has been working on the panel editing code for the level editor and Alex has been learning how to use MilkShape 3D (which is what prompted the md2 support).
Finally, I hope you have a great Christmas!
16 December 2000
The last couple of weeks have been real bad and progress on CoP has suffered. I’ve been able to put in a bit more work over the last few days and made some progress. I’ve removed switches and extended the functionality of the markers to replace them. What this basically means is that I’ve removed a data structure from the editing loop and can now have more capable event triggers. I also now have the hooks to allow the addition of waypoints for the AI routines and ambient sound points at some time.
The removal of the switch code meant I had to replace the hard-coded switch model with a ‘standard’ model. Unfortunately, the model code could not support the on-off lighting changes in the switch that the hard-coded model had. For this reason I decided to implement shader support for the models. I’ve more or less finished doing the shader code but I still have some work to do. I don’t have shader script support so the feature is not as flexible as in a commercial engine, but it will be able to handle a fair range of tasks.
I also plan to add chrome mapping to the model code to allow the removal of the hard-coded models for doors and lifts. At the same time I plan to remove the door and lift data structures and make them standard objects. To do this I'll need to create ‘mover’ data structure to describe an object's movements and modify the engine accordingly. You may see a pattern emerging here. I’m rationalising the data structures, adding useful features and removing hard-coded elements from the engine. At the end of the current exercise I should have a much more flexible engine and simplified level editing.
The improvements to the engine have allowed Paul to do some more work on the level editor. He’s brought it up to date with the latest changes and has begun to add part of the panel editing functions.
I’ve also been doing a bit of ‘research’ playing No-One Lives Forever. It’s interesting to see the Lithtech engine in action after hearing about it for so long. It’s very capable with plenty of cutting-edge features. As for the game, it’s one of the best I’ve seen for a long time and I’m really enjoying it. However, I keep getting irritated with it because there’s too much sneaking about and far too many cut scenes for my liking. I know plenty of people will love those features but I prefer a bit more continuous action ;)
Anyway, it’s just a few more days until I start my Christmas break and I can’t wait! This really has been a bad year for me and I’ll be glad to see the back of it!
1 December 2000
I haven't got much done recently I'm afraid. It's end of year time and I've been panicking trying to get work stuff done in time, which has included bringing stuff home to work on at night. I have finished optimising the panel rendering in the game engine though. One of the really useful things about importing Quake 2 levels has been the limitations it has found in my engine's performance. I never had a really big data set to stress the engine and it showed. When I first ran Q2DM1 it ran at 4fps (remember I don't use BSPs so I had to render the entire polygon set, all 5000 polygons). Since then I've done stuff like minimising state changes and drawing panels in texture order to reduce texture switching. The level now runs at between 35 and 40fps, still with no culling, which is a slight improvement.
Here's a couple more shots of imported Quake 2 levels, see if you can recognise them.
20 November 2000
Things are getting busier, and more exciting! I'm very tired but I'm on a roll and I feel that things are really starting to move forward. As I mentioned last time, the level editor work has shown up several problem areas in the engine and I'm busy addressing these. This is having knock-on effects on the data structures and so I've told Paul to pause his work on the level editor until things are sorted out. One big problem that led to this was the way I partition the 3D space to cull panels for viewing and collision detection.
I chop my scene up into areas, i.e. 3D volumes. All decisions on collision detection and draw culling are based on the current area you reside in and the areas that are around you. Nothing wrong with that. The problem is that the areas are set manually and designing the level editor to do this function was going to be tricky. It also creates extra work for the level designer (although this must be offset against the fact that there are no time-consuming viz calculations). We decided that we needed to investigate ways to automate the process but we didn't have any big levels to explore the possibilities in a real-world scenario.
Enter another Paul I know who I'll call 'Windy' to avoid confusion. He offered to make a tool to convert Quake 2 levels to the CoP format in order to allow us to stress the engine/level editor and develop the best way forward. As a result of his efforts I now have q2dm1 running in CoP, look at the screen shots below to see for yourself! At the moment we just import the panel data but we could extend the capabilities if required. In any case the new tool gives us big data sets to play with and allows another level design route.
So now that I've made some adjustments to the engine to support the requirements of Quake 2 levels, I will go back to the engine changes required by the level editor work. Paul has decided to look at BSPs as a possible solution to the areas problem.
11 November 2000
The last week or so has seen a big push on the level editor front. Paul has added the code to support mouse selection, adding and deleting of markers, objects and entities. Now that these parts of the level data set have good editing support, we can start to add other sections such as panel data editing.
Much of my time has been spent supporting Paul and this is likely to continue over the next couple of weeks or so. This exercise has been incredibly useful because it has highlighted the weaknesses in the format of the current level data set and I have a fairly long list of changes and simplifications that need to be made. This has a knock-on effect on the engine design and I will use the opportunity to add a few improvements and remove some limitations that have been bugging me. It is crucial that this work is done now, no point Paul doing a full level editor for a level data structure we know is wrong in places.
On the terrain rendering front I've added basic texturing code. At the moment the texture generation algorithm just maps colours to the height map values, e.g. green for grass areas. However, the use of textures allows designers to hand paint the landscape or even the use of real terrain photographs in the future.
2 November 2000
I've had chance to put in some hours on the project this last week and things are falling into place as far as the terrain rendering goes. I've still got a lot to do but I'm getting there. I now have a quad-tree based rendering engine with continuous level-of-detail! It is so cool switching it to line drawing mode and watching all those polygons shift in and out (I really need to get a life, I know this). I'm just in the process of adding the texturing code.
Paul has been busy, but the level editor has more editing functionality now and he's just started to add the selection code. That's about all there is to say, I'll leave you with a couple of screenshots of the current work in progress.
24 October 2000
Been a while since the last update. You may have noticed that I've moved the site. I've wanted my own domain name for a while now for various reasons and the move also allows me to do a lot more with the site in the future.
I've made some progress on the terrain renderer but still have a few things to try out yet. Paul has made good progress on the level editor and some of the level data can now be edited which is a lot further than I got! The input from Alex and Paul has really started to get me motivated again which is a good thing.
I've also just finished Star Trek Voyager - Elite Force for the second time. I tell you, the guys at Raven are hot at the moment! I've really enjoyed playing Elite Force and Soldier of Fortune. They've been the best games I've played for a long time.
8 October 2000
I've completed the incorporation of the HUD into the game engine and it looks much better as a result. I'm just waiting for Alex to have time to produce the last couple of bitmaps and then it will be ready for release.
I've spent some time this week getting CoP ready for a possible port to OpenVMS which is an exciting development and could help the Linux port. I can't say much more about this until it gets done, if ever.
I've tested the OpenAL support on a range of hardware and OS's and it worked on everything except NT4. This seems to be a known problem that will be corrected at some point but I won't switch to OpenAL until it's sorted. I will probably change the code so that the sound API can be selected as a short term measure.
Paul has made big progress on the level editor. There is still a huge amount to do but a lot of the basic viewing and manipulation code is done.
Finally, I've just started work on the terrain rendering engine that will eventually go into the main game engine. This will be based on work done by Paul for an aircraft simulator outside world he did a few months ago. The design rules are different for a ground-based game and so I'll have to modify the algorithm to allow more up-close detail, water areas you can swim in, etc. I'll also have the challenge of how to integrate the terrain and indoor engines. Rendering is relatively easy, it's things like culling that are more tricky.
1 October 2000
Things have been terrible over the last few weeks. I've been maxed out at work, been rushed off my feet at home and I've had two bad colds. I'm still recovering from the last cold but it's slowly getting better and I may be able to start putting in some work again.
I have had some time to sit back and think about what I'm doing though. I started this project to learn 3D graphics, have some fun and have a useful demo to show off my programming skills. I've managed to achieve a lot over the past two or three years but over the last year I haven't been meeting my aims and the fun has gone. I think the trouble is that I've got sucked into trying to do a full first person shooter game on my own which is just impossible. I would need to form a team to do this but I haven't had many offers of help and the ones I get fizzle away most of the time.
So what now. I want to get back to having fun! I've decided to change the emphasis of what I am doing, for now at least. I will concentrate more on investigating new technologies and writing demos for them. Work on CoP won't stop, I'll keep upgrading the engine and still would like to get help. I have had wonderful support from a number of people and I am extremely grateful for that. It is the occasional nugget of praise that keeps a lot of free software developers going, including me. However, I must admit that I've been demotivated by a number of less complimentary comments I've received. I am a single person trying to do the best he can in his spare time but some people don't seem to understand this. I was just reading the post mortem on Soldier of Fortune. To produce a game like that takes a team of 20 people 2 years with a multi-million dollar budget! Enough said.
On a more positive note, a friend of mine has offered to help on the tools so things may start to progress on that front at long last. Paul is going to concentrate on the level editor and has already made significant progress in just a few days.
13 September 2000
As predicted, I've been very busy over the last couple of weeks. I have managed to get some things done though.
I've been working with Alex Mangel who has produced HUD graphics for health, ammo, etc and things are looking good on that front. At some point, when we've finished, I will do a release that includes them.
I've also just finished OpenAL support for sound. For those of you that don't know what OpenAL is, it's an open standard for 3D sound support and is designed to complement OpenGL. I'm keen to use OpenAL because it opens the door to cross-platform support when used in conjunction with OpenGL. I've been impressed by the ease with which I was able to convert CoP to use it and with the quality of the sound output. The only issue is a slight lag that can occur but I expect this will be resolved at some point when the standard takes off. I've yet to test the new code on a range of hardware but if it works ok I will probably ditch Direct Sound for the same reasons I ditched Direct 3D many moons ago.
Apart from Alex, I've had no response to my 'help wanted' section. In particular I need a tools programmer if I am going to keep the project going. If you are interested then please get in touch so I can answer any questions you might have. You can either email me or contact me on ICQ 91116418.
28 August 2000
I've now finished the GSL and it's turned out to be quite a neat and simple interface. I don't know how much time I'm going to able to put into the project over the next few weeks. I've got a major milestone at work to complete which is going to mean long days and maybe even working at home.
21 August 2000
Nothing spectacular to report this week. For various reasons I've not had much time to spend on the project. I've made some good progress on changing the code to support the Linux port, I'm about 50% done I think. I've created a 'Game Support Layer' which contains all the OS and platform specific parts of the code. The GSL has a fairly simple functional interface to minimise the complexity. To port to another platform you re-write the GSL and then re-compile for the new target. The GSL consists of two source files. I would have put it in one but I've kept the sound code separate. I plan to change to a platform independent API like OpenAL at some point, at which time the sound code will be removed from the GSL.
14 August 2000
I've just released a minor update on the downloads page. The main thing added is support for multitexturing which obviously improves the frame rates by a significant amount on cards that support it. Other changes are minor improvements and a bug fix. I've also updated the tools so the editors are no longer limited to fullscreen rendering which paves the way for adding editing functionality.
Now I've got these things done, I need to re-organise the code to aid the Linux port. Once I've done that I'll be able to get back to the research topics I have lined up.
9 August 2000
Over the last week I've been looking at what needs to be done to support the port to Linux. CoP was never designed with porting in mind and so some work needs to be done to separate the target specific and generic code, although it doesn't look too bad. I've also been playing around with Q3 models I've downloaded: adding ctf support, bot support, tweaking AI, etc. Just for a laugh really but it also gives me ideas on how to tackle model coding, custom add-ons, etc.
If you live in Europe, do you know about the EU proposals to introduce software patents? It is a sad fact that patents are often used by large companies to stifle competition and innovation. If these proposals are implemented then I dread to think of the impact it could have on producers of shareware and free software. If you would like to find out more then visit http://www.freepatents.org. If you would like to sign the petition then go to http://petition.eurolinux.org. Please show your support!
1 August 2000
Last week my hard drive decided that it wanted to die and left me without a PC. I couldn't replace it until yesterday and I've only just got everything installed again. You won't be surprised to know that I've managed to do sod-all since my last post. Mind you, I am now the proud owner of a 20Gb drive which is a bit better than the 6Gb I had. I used 15Gb for Windows which left 5Gb to do a full install of Linux Mandrake (definitely the best version of Linux in my humble opinion).
So, what now? The recent public release of CoP has made it plain to me that I need to raise the bar graphically if it is to get noticed. I need a good texture artist who is willing to do custom work for the game. If you are an artist, or know someone who is, then please help! I have a good engine but I lack the catchy screen shots that will generate interest. I am not looking for re-hashed Quake textures, I want textures that fit with the existing look and feel of the game.
I have also found someone who is willing to help with a Linux port of CoP so that should hopefully occur in the next few months. Judging by the quality of the latest distributions, Linux is becoming a REAL challenge to Windows and I am keen to support it. Competition can only be a good thing for PC owners.
23 July 2000
I've been doing a bit of research over the last few days and I've now expanded the demos section on my GL programming page. The demos now cover light mapping (multipass and multitexturing), volumetric fog (multipass and EXT_fog_coord) and all the types of shadow I use in CoP. I'm glad to be starting to use GL extensions at long last. I wish the fog_coord extension had been around sooner, it makes rendering volumetric fog MUCH easier and quicker.
18 July 2000
Just a small update to my GL page today (see Programming section), expect to see the demo section expand over the next few weeks.
15 July 2000
The demo has now been publicised on most of the news sites I wanted and I've been quite pleased with the response. Thanks to everyone who's taken the time to visit the site and download the demo. I've been surprised by the stunned silence though, only one email! I'm not sure how to take that. It could be a good sign (people like to complain) or I could be wasting my time...
Anyway, the future. I'm going to do some long overdue research for a while. I'm going to do a series of simple demos to try out new technologies that can be added to the game engine at some point. I also plan to buy a GeForce2 MX when they come out so I can try out the new features. Things I would like to look at are multi-texturing, bump mapping, volumetric shadows, curved surfaces and mirrors. Adding terrain rendering is also a major aim. I will release any demos that I think will be interesting on my GL page.
Once I've covered the technologies I want to, I will re-write the game, adding new features and tidying-up things I'm not happy with. A linux port could also be on the cards and OpenAL support for sound.
6 July 2000
You know how I said the demo was done? Well surprise, surprise it wasn't. A few bugs cropped up after its release and so I've had to do a new release. The biggest problem was a flickering loading bar on a couple of cards I hadn't been able to test but with the help of the person who reported it (thanks Sam Johnston) it is now fixed.
28 June 2000
The demo has now been released and is available on the downloads page! I've also spent a little time improving the web site to make it a bit easier to navigate. Now that I've finished the demo I'm going to take a few days off and then I'll have a think about what I'm going to do next.
24 June 2000
The demo is finished! I've just added in the final models and tested it and I've now done all I wanted to do. I'm really proud of what I've managed to achieve and I can't wait to take my engine to the next level over the next few months.
Before I release the demo I need to do my normal check on all the test platforms I have access to. I may need to do some minor tweaks to make sure the colour balance is correct on the range of graphics cards but that won't take long. The demo should therefore be available for download by the end of the week.
18 June 2000
I've been very busy over the last week or so. I'm feeling a bit tired this morning but I'm having a day off today so that should help. I've added the collision detection and shadow casting code for objects that I mentioned last week. I also decided to do skins for the enemies because the demo wouldn't have been complete without them (it took days, I had to re-build the robot model in order to avoid distortion in the texture mapping). I've also been doing lots of tweaks to improve the rendering quality and consistency.
The last point is one of the biggest pains in making a game. You spend days doing some kind of graphical effect and it looks great but you then try it on a different graphics card/monitor combination and it looks crap. So then you spend ages trying to juggle parameters to come up with something that looks reasonable on both.
9 June 2000
Despite being very busy, I've managed to get loads done since my last post. I am really pleased with the way things are going and I'm getting close to completing the demo. The design of level 2 is almost complete, just a few minor tweaks to the structure and lighting remain to be done. I've also implemented chrome maps and decals so the doors look nice and shiny and I can have a few signs on the walls in level 1.
Once I've finished the level design changes I plan to make a few more models to add to level 1. It's supposed to be an office environment but it's a bit bare, so a few tables and desks should improve it significantly. To do this I need to also finish the collision detection code for objects (y axis collision code not done) and add shadow casting for objects into the light map code. Once I've done that the demo will be complete, although I will continue to add bits as required (e.g. I still haven't done the skins for the enemies).
I am keen to get the demo finished. I really want to start looking at the technology side again. There are some things that I really miss having, like multi-texturing, that I want to add. I also want to investigate some of the new GL extensions. The main thing I want to do is add terrain rendering so I can have large outdoor areas. The demo at the moment is really levels 2 and 3 of the game design I have in my mind. Levels 1 and 4 will both be outdoor areas.
29 May 2000
Things have gone a bit slow this week on the project. I had to do a crash course in Linux at work and I also installed it at home to help me get up to speed quicker. I'm impressed by how much Linux has matured since I first saw it a couple of years ago.
All I've had time to do in CoP is make another model and do some minor tweaks to an area in level 2. I have the rest of the day to do some more work so I'd better get on with it.
19 May 2000
My main focus at the moment is finishing the changes I've got planned for the design of level 2. I've made a lot of progress on a new section that leads into the water area. I've added a burning torch model that features a flame particle effect and local light source that looks pretty effective. Once the basic structure of this level is done I will be able to start improving the look of it, playing about with the lighting and some of the textures. Once that is done I plan to look at creating a few more models to add interest to some of the rooms and adding decal rendering for signs, etc.
I've also spent a little time this week updating my Oric page, just for a bit of a break from getting this demo done.
12 May 2000
It's only been a few days since my last update so nothing much to report. I've just been fixing a couple of bugs in the tools and tweaking the quality of the 16bit light maps. I've also updated my GL page slightly, including an example of stencil shadow rendering with source code.
8 May 2000
A new release of the game can be found on the download page. This runs significantly faster than previous versions, particularly in high detail mode. I've updated some more of the textures in the game and I think it looks quite a bit better now. I've also converted the light fittings to the new model format.
This week I finally noticed that Visual C++ has a profiling tool (doh) and so I ran the program through it. I've known for some time that the game was running quite a bit slower than it used to do but, despite all the improvements and optimisations, I haven't been able to make a significant change and it has been a little frustrating (I'm so polite, aren't I). Running the profiler made things blindingly obvious: the worst functions were involved in panel rendering (no surprise there), old model drawing code (which the light fittings used, hence their conversion to the new format) and collision detection. The last one was confusing because I've done a lot of optimisations in that area.
I had another look at the collision detection code and saw that the tests for what was in view were costing a bit. The code was small and quick but was being called very often and so I converted it to a look-up table that is calculated when the level is loaded. It was during this change that I noticed my mistake. In a previous 'optimisation' I had cut the number of areas that are tested for collision and speeded up the collision detection routine. However, I had also added boolean flags, stored in an array, that allowed some areas to be tested all the time when in view. Unfortunately, I had missed the array index off the value tested with the result that the array address was tested (always TRUE) and so every single panel in the level was processed for collisions! Its amazing how such a simple, stupid mistake can cause so much grief.
26 April 2000
Over the past week or so I've converted the texturing code to a class and improved it to allow any power of 2 texture size with mipmapping. This enables me to have a more flexible texture set and also allows the model class to load and control its own textures. I have added models for the health and battery packs and these are textured. I've also reviewed the textures I use in the game and shrunk the size of some of the more repetitive ones and replaced some others.
In the course of replacing the wall textures in level 1, I found that to have a more realistic, smoother wall texture showed up the banding in the light maps too much in 16 bit mode. The game is designed to work best with 32 bit rendering and the light maps have always banded badly in 16 bit. However, the banding I was getting was beyond a joke so something had to give. After weighing up all the options I decided that the best solution would be to have separate sets of light maps, one set for 16 bit and one for 32 bit. The 16 bit light maps have much less variation in shading across the map which, whilst not as realistic, results in an acceptable amount of banding. My lighting map generator has always had a compile option for the colour depth to target so it was quite easy to do. Only one set of light maps is loaded at run-time so there is no performance degradation and I've converted the light maps to binary format so they take up less space and load quicker than before.
At the moment I am struggling to come up with better rock and gravel textures for level 2, a real headache for an artistically challenged person! Once I've done them I'll probably do another release. You'll only have to wait 6 months (only joking ... I hope!).
14 April 2000
Since the last update I've been fixing a few bugs that cropped up when I gave the new code a thorough test. I think it is basically bug-free now so I've done a release. There is nothing much different in the look of the new version but it should run a bit quicker.
I've got concerned recently about the number of state switches in the GL code so I decided to do some profiling to determine which commands have the biggest overhead. Of the commands I've tested so far the worst, by a significant amount, were the glMaterial set. As a result I've been through my code and reduced the use of these functions significantly but this produced a negligible improvement in frame rate. I will continue the exercise as a background task but I'm not expecting any massive frame rate improvements to come out of it.
7 April 2000
Sorry for the lack of updates recently, I've been very busy. I lost a weeks work on the project because I had to re-design a website that I run for someone. The rest of the time has been spent finishing off the new model classes. I've completed the basic coding and integrated them into the game and the tools. They aren't quite finished yet, but everything is up and running again which takes a bit of the pressure off and lets me go back to the usual incremental update approach.
Since last time, I've added a recursive rendering routine to draw the hierarchy of parts that form a model. I've also improved the animation routines and integrated them into the model class. The improvements I've made to the rendering routines have given a small boost to the overall frame rate (up to 10%) and there are some more optimisations that I can make. There are still a few things that need to be done. The .x file support needs to be improved (a couple of the files supplied with the DirectX SDK won't load properly), I need to improve the texture handling for the models, I need to improve the animation storage to allow longer animations (currently limited to 1 second) and not all the models within the game are converted to the new format yet. Then there's the art-work to texture map the models. I'm going to be busy!
16 March 2000
Over the last couple of weeks I've managed to keep the momentum going and put a lot of work into the new model classes. Much of the low level parts are now done, the main bits that are yet to be done are the hierarchy management and animation. I've now got support for a range of standard objects such as oblongs, spheres, cylinders, discs, cones, etc plus user defined objects. The user defined objects use the Direct X file format so I can even import meshes from 3DS which is excellent! All objects can be scaled, rotated, coloured, textured, fogged and rendered in display lists.
Its going to be a while yet before I do another release. The current work on models was initiated by not having sufficient support for the changes I wanted to make to level 2. I've not been happy with the model management and rendering parts of the engine for a long time and now I'm on a roll I want to get it done. Then once its done, I can start on the level changes again.
You may wonder why I'm using the Direct X file format when the engine uses OpenGL. Before I switched to OpenGL, Corridors of Power used Direct 3D Retained Mode and so my model routines were based on the data structures used by the API. When I changed to OpenGL, I kept the same structures so it is relatively easy to support the .x file format. The good thing about this is that Microsoft supply a nifty utility to convert .3ds files to .x which opens up all sorts of possibilities. The .x support has its own class so I can add support for other formats in the future if I need to.
A week or so ago I sneaked an initial release of the tool set onto the downloads page. Don't expect it to be particularly useful, it is intended to give an idea of where I've got to on this front.
Finally, an appeal. I really need to improve the quality of the artwork in the demo but I'm not exactly the world's best artist. I can find loads of free textures on the net for typical fps levels (bricks, rock, etc) but no office environment stuff. I could make level 2 look much better right now but level 1 would still be as bad. Can anyone help? Is there an artist out there willing to contribute or does someone know a website with textures that would be suitable for level 1?
28 February 2000
I've spent the last week or so catching my breath a bit and reviewing a few things. I've made the improvements to the collision detection routines that I'd planned and made some big savings in the amount of processing that is required. I've also tested the game on Windows 2000 and it works fine. The only problem I found was that the colour of one of the standard brushes seems to have been changed, with the result that the background colour for the windows in the configuration utility were a bit screwed. I've fixed the problem and the next release will contain the fix.
Just out of interest, this week was the first chance I've had to have a good look at Windows 2000 Professional. If you ignore the amount of memory and disk space it requires, it is very impressive and is streets ahead of NT4.
The other main thing I've done is updated my GL programming page. I've added a section on shadows and reviewed the other pages, adding the appropriate GL commands to the lists of rendering steps.
18 February 2000
Its been a very busy couple of weeks, but v0.65 is now released. Its been a long time since I was able to put this much work into the project and I'm pleased with the way things are going. Since last time, I've done some more work on the design of the levels, removed a few minor bugs and made some minor changes to the in-game text. The changes I wanted to make to level 2 have driven a couple of big improvements to the game engine.
I've added the capability to include fixed particle effects within a scene and so expect to see more and more particle effects as time goes on. I've also been able to start implementing the changes to model management and rendering that I've been planning for ages. I've begun to implement a class structure to support all the models and objects within the game. The data loading, most of the generic rendering code and a lot of the collision detection code is now done. Level 2 now includes some pipes which are an example of a texture-mapped curved surface that is supported by the new classes. I have still got a lot of work to do yet, such as adding more pre-defined primitives, support for user defined primitives, light-mapping, adaptation of existing animation code, hierarchy management code, conversion of existing models to the new format, etc... All good stuff.
For those following the PII saga, I've finally got it fixed. After a lot of mucking about trying to find a supplier for the power FET, I was told it had to come direct from the manufacturer and there was a 22 week lead time! So I went out and bought a new motherboard instead.
31 January 2000
Since my last update I've been working hard on the engine modifications required to do the changes to level 2 and improve performance. I've further improved the lighting map code which has again reduced loading times and has made the generation of light maps a much more streamlined process. I've also simplified the specification of triangles and improved the code for triangle rendering which should allow the changes I have in mind for level 2.
I still haven't got around to fixing my PII. (I know what the problem is, a faulty power FET, but I had trouble tracking down a supplier and I don't want to buy a new motherboard if I can fix it by just replacing a transistor.) However, using my old P133 has been a useful exercise because it has highlighted a number of inefficiencies in the game engine and has driven a number of improvements. The main issue that remains to be addressed is to minimise the amount of collision detection processing that occurs at the moment and I think I can reduce that significantly.
Anyway, that's all for now. I'll start to get stuck into the changes to level 2 tonight and hopefully I'll have a new release out in a week or two.
15 January 2000
If you look on the download page you will find a new release of CoP. This includes the updated 1st level and the save game feature (F6 to save, F9 to load). I've still got a lot of work to do on the 2nd level and some improvements to the code that need making and that is going to take a while. So I thought I'd release what I've got at the moment.
Since last week I've managed to do a fair amount of work. I've improved the transition between levels so now the screen doesn't clear and the position and orientation of the player are preserved. I've also improved the look of the smoke trail behind the plasma fire objects by creating a new particle bundle type for that particular task. I also found out recently that T&L cards like working on display lists, which is a shame because I removed all the display lists from my code a while back to implement the volumetric fog. I had another look at the code and decided that I can use display lists for some of the object rendering (the un-fogged part) and so I am starting to put display lists back in for the complex objects. This should give a significant speed up for the high detail mode, particularly on T&L cards.
7 January 2000
Well I still haven't got my PII fixed yet although it looks like I'll be getting the new motherboard next week. Anyway, I've managed to make reasonable progress on my old machine although I have to make many more cups of tea than usual waiting for the damn thing to compile things! I've completed the changes I wanted to do to the first level and I've implemented and tested the save game feature. I've also done a few tweaks here and there to the game engine. I'll now start looking at level 2 and see what I can do with it.
24 December 1999
I've done quite a lot of work on improving the first level of the game over the last few days. As I'm expanding the levels, I thought it would be a good idea to implement a save game function, (this will also bring my level editor that little bit closer to being completed).
Unfortunately, the motherboard on my PII has developed a terminal condition and needs replacing, marvellous! I've had to transfer everything onto my old P133 and things are going a lot slower as a result. I'm not impressed! Anyway, as soon as I've updated the levels and got the save game feature working I'll do another release.
Happy Christmas everyone and best of luck for the new year/century/millennium!
16 December 1999
As predicted things have settled down a bit and I've managed to get some more work done, hence the new release. This adds the improved texture management code (mentioned last time) and stencil shadows. The new shadows are an option and can only be used on cards with hardware support for stencil buffers.
I've not implemented shadow volumes, where shadows are cast onto all relevant surfaces from all relevant light sources, but the new shadows are a big improvement. They give an accurate representation of the shape of the object at any instant in time and have variable contrast depending on the distance of the object from the floor, so they work quite well. Implementing shadow volumes is something that I could do in the future but which I haven't got the time to try now. It will be easy to convert the rendering code I've developed but it is difficult to implement the technique in a way that is fast and avoids noticeable artefacts, i.e. it could turn out to be a big job.
I've decided to expand and hopefully improve the existing levels over the Christmas break. At the moment the level design is as much concerned with demonstrating the technology as providing a fun experience and so is a bit weak. However, I'm not an experienced level designer and I'm still lacking in the tools department so don't expect miracles!
7 December 1999
I can't believe how much hassle I've had over the last couple of weeks with things going crazy at home and meeting urgent deadlines at work. Hopefully things will settle down a bit now and I can get into some more work on CoP. I recently improved the texture management side of things which may help some people with limited video card memory but that's not enough to justify another release just yet. I've started to have a play with the stencil buffer and might have a look at improving the shadows a bit. I'm hoping that I will have some curved surface support in the engine before the new year and I will try to add a new level that shows off the fog, particle effects and curved surfaces at the same time if it all goes to plan!
Anyway, now to my little bit of fun for the day. One of my friends has just got a GeForce card and let me have a go on his machine to test it out. Straight away I did some benchmarks to compare the performance of CoP on his machine, a PIII-500 with said GeForce, against my best machine, a PII-350 with TNT2. The results were pretty impressive, particularly for the high detail setting I recently put in. On my machine in high detail mode the game is CPU limited to 16fps, on his you can run in 32bit colour and get 42fps at 640x480 and 34fps at 1024x768. We also had a look at the treemark demo which was amazing after seeing how slow it runs on a TNT or Banshee. The thing that most impressed me was the performance of the card in Quake 3, I was stunned! We had the game running at 1280x1024 in 32bit colour with everything turned to the highest setting and it was smooth. I don't know what frame rate we were getting but it must have been fairly respectable. I want a GeForce, now!
22 November 1999
Although there haven't been any updates recently, (thanks to Age of Empires II), I've been continuing work on the project. The new release contains some improvements such as higher resolution effects textures and I've added a skill level setting (set via the console). The game defaults to skill 1 which has the same parameters as previous versions. If you select skill 0 this increases the value of power-ups . If you select skill 2 this increases the damage you receive.
3 November 1999
I just thought I'd let ATI Rage Pro owners know that the problems I thought I had with volumetric fog have turned out to be a driver issue. The test machine I've been using for that card has a socket 7 motherboard and I think that the CPU/chipset combination wasn't fully supported by the driver. I just downloaded and installed the new driver from ATI and everything is fine now.
26 October 1999
It's been 2 weeks since the last update and I thought I'd better let you know what's happening. All kinds of stuff have been going on the last couple of weeks with the consequence that I have done nothing on the project at all. It was probably for the best because I was getting a bit tired with all the hours I was putting in. So in the little spare time I have had I've been playing a few extra levels for Quake 2 & Half-Life.
Sorry about the change in ISP. Freeserve are great and have done a whole lot to improve internet services in the UK, its just that I spend so much time on-line nowadays that the pricing policy offered by Karoo suits me better, simple as that.
Anyway, Corridors of Power continues to be and I will try to get going on the next job this week. I've decided I will work on the immediate engine changes I need to do in the next few weeks. Then I will improve the demo, (making some level design changes or adding some new levels). then I will go into hiding for a while to work on the tool-set. Then I haven't got a clue what will happen, I might start making a full game on my own or get some help??
11 October 1999
It dawned on me that one of the advantages of COM interfaces is that there is no explicit link to the functions used in the code. Therefore, it doesn't matter if NT4 doesn't support 3D sound, I just have to make sure that the game doesn't try to use 3D sound functions on that OS. I have therefore implemented 3D sound and disabled its use on NT4.
To show my enthusiasm for the upcoming graphics cards with T&L support I have added a high detail setting. This disables the code that reduces scene level of detail with distance, smoothes the curves in all dynamically generated objects (drones, light bulbs, etc) and increases the particle count in special effects. As I add new code for features such as curved surfaces, the high detail setting will be applied to them as well.
24 September 1999
I still haven't started my new object code. I decided that I might as well tidy up all the loose ends that have been bugging me before I start that job. For a long time I have had very limited sound support but I'd had trouble getting Direct Sound to work in the past. Recently I found an example of how to set up Direct Sound but I hadn't got round to trying it out. I tried it and found that it worked fine and so now the engine has Direct Sound support. I would have put 3D sound in as well but this isn't supported by NT4 so I've left that for the moment.
Another big job I'd been meaning to do for ages was to sort out the lighting map file format. This had been done in easy to read text files which are fine for debugging but result in very large data files. I've just compacted the format of the pixel data and merged all the light maps into one file per level. This has resulted in big reductions in loading times and hard drive usage.
20 September 1999
I've had quite a few e-mails following my latest public test release and I would like to thank all those people who responded. It's very important that you guys let me know your opinions and suggestions if I'm ever going to produce something that people are going to enjoy playing. I'd also like to ask anyone who has tested the game on a Voodoo 3 or Matrox G200/G400 to please let me know if it was ok because I still haven't had any feedback on these platforms yet, which is surprising.
One of the main points that came out of the e-mails were the restrictions that binding keys through the console were imposing on people. As a result I decided that a major re-write of the configuration utility was in order, hence the new release. The look and structure of the utility is much improved and, most importantly, it now allows users to bind keys and mouse buttons in a much more user-friendly manner. Hope you like it!
13 September 1999
I've now released yet another minor update, this one improves the fire sequence for the robots by changing the fire object shape and adding a particle stream. I've also updated the lightmapping section on my gl page and added a section on volumetric fog.
I now plan to get stuck into the changes that are required in my object code. I need to create a model file format and make the object rendering more generic. This will simplify the code and make it easier to add models in the future. I'll also start work on texture mapping all the objects. This is something I've been holding off for a long time in the hope of finding a cheap modelling tool that has all the features I need but I can't wait any longer because it hurts the visual quality of the game too much. If anyone does know a tool that's a good substitute for 3D studio max, has a public domain file format and doesn't cost the earth then please, please let me know! It would solve an awful lot of problems.
9 September 1999
The latest release fixes some bugs and improves the look of the areas with volumetric fog, particularly the water area. I have got access to an ATI Rage Pro machine again now and found that the fog wasn't working. I have tried using a different blending mode and the results were better but many panels weren't getting fogged so I haven't made any changes. I will try to resolve this issue but it looks like there might be a problem with the alpha blending in general, in which case I won't be able to do much about it. I'm afraid that Rage Pro owners will have to disable the fog for now at least.
As a side issue I am very excited (sad I know) about the GeForce 256 and Savage 2000 that have just been announced. As far as I'm concerned the acceleration of transform and lighting is going to be much more useful to me than the T-buffer (i.e. accumulation buffer) technology being touted by 3dfx. This is a feature I have been waiting for in consumer level cards for a couple of years and it represents a major step toward cinematic quality graphics in games. It is particularly relevant to Corridors of Power because I have a heavy scene vertex count and use OpenGL light sources. I would expect a considerable speed-up from a T&L card which would allow me, for example, to have even better dynamic lighting and some pretty awesome particle effects.
27 August 1999
Its been a very hectic two weeks. The volumetric fog was a lot more tricky to implement than I'd expected. The rendering of the fog was fairly straightforward but the volume calculations were quite tricky, particularly the code that makes the decision to fog a vertex/object or not. I'm very pleased with the results though, it allows me to add a lot more atmosphere to the levels and looks very good on my TNT2, even in 16bit. The performance hit obviously depends on the power of the CPU and the graphics card, on my PII-350 with TNT2 at 1024x768 in 32bit the hit was just over 25%. (On my old P133 with Banshee at 640x480 in 16bit the hit was 35%.) This is not bad considering the fact that the fogging requires an extra rendering pass and the large amount of processing required to calculate the fog parameters. I expect that on machines with slow CPUs and/or graphics cards the hit will be more significant so I've added a switch to the configuration utility to allow fog to be disabled.
One unfortunate thing that I have found is the poor quality of the fog rendering on my Banshee. The problem is the same old one due to banding and distortion of a solid colour gradient. I don't know what the fog will look like on other 3dfx cards but it looks very poor on the Banshee, particularly if the gamma is set too high. I've observed similar effects with Quake 3 Test so the problem is not unique to my code. This may be an issue on other 16bit cards as well, it depends on how well they dither the output.
I'm going to have a few days rest now, I've had to put in some late nights on this one. The next thing that I'll work on will probably be to do with the models rather than reflective surfaces as I'd planned. The work on the fog highlighted that my model code needs improving and streamlining and I need to get texture wrapping implemented.
7 August 1999
I've made quite a bit of progress on the engine mods this week. There is nothing new in terms of how the game looks but I've re-written the rendering routines for all the objects in the game. Before I was using display lists which are fine if you don't want to change the way the object is rendered. However, to implement the volumetric fog I will need to render the object and then re-render it in the fog colour (which can be any colour the level designer chooses). So the display lists have had to go and I should be able to start to implement the volumetric fog this week.
29 July 1999
Well I've done another release today with a couple of minor fixes. I wouldn't have released it yet but I found a really noticeable bug in the rotation of the fire objects that I had fixed before and had somehow crept in again. I've also filled in the missing section on my programming page, which means that I've done as much of it as I wanted to for now.
22 July 1999
After the recent publicity that I received for my site (thanks to opengl.org), I thought it would be a good idea to keep a plan file going in the hope that some people might maintain an interest in the progress of Corridors of Power. I would like to thank everyone that took the time to look at my site and download the test release of the game. I would particularly like to thank those who took the time to email me to point out the Windows 98 bug and confirm that the game worked on cards that I hadn't been able to test it on. If there is anyone else who tried the game on a card not in my list, e.g. Voodoo 3, S3 Savage, Matrox Gx00, then I would appreciate an email to tell me if it worked ok or not.
Anyway I think I've now fixed the Windows 98 scaling problem, hence the 0.54 release. I've also improved the key binding process slightly by adding an UNBIND command but, as I pointed out to someone who complained about it, I don't have the time to add any user friendly bits like menu systems yet. Sorry but I've only got one pair of hands and limited time so I have to prioritise my work. Adding engine features is my main priority at the moment.
Which leads nicely into my current schedule. There will not be a significant update to the game for a few weeks because I am in the process of doing some major behind the scenes work. All my levels and animation are currently coded by hand which is why the levels are a bit bare and boxy and the animations are a bit limited. For some time I have been working on my own level editor and animation editor. These are now at the viewer stage, e.g. I can view all the animation frames or move around the level and select elements and view their data. I now need to add the functionality to edit the data, at which stage I will be able to do some better levels and animation.
On the technology front I have three main tasks I want to do. I have been busy trying out rendering techniques for volumetric fog and reflections and I think I've got to the point where I can start to integrate them into the engine, but it's a big job and it's going to take some time to implement and test them. I also need to add textures/skins to my objects and so I need to have a play with the rendering techniques and see what additional tools I need. I will do a release for each new technology plus any incremental ones that are required for bug fixes, etc.