Omni-directional lights using cubemap shadows - (4. March 2010)

It looks like my dungeon crawler prototype isn’t actually evolving into a game, but much more into a personal testbed for more-or-less current rendering techniques (due to Projekt “W” I’ve been lacking in the field of recent rendering techniques a bit). And so one of the things I always wanted to implement were shadows for omni-directional light sources. I’ve been doing that with stencil shadows years ago, but stencil shadows aren’t the preferred way of doing this nowadays due to their limitations, including sharp edges (yes, there are ways to get around this, but they’re expensive in terms of computing) and a high demand for fillrate.

And I’ve also done shadow mapping some time ago, but back then only for a spotlight, and that’s pretty easy (basically it’s just a way of projecting something onto the scene). But omni-directional lights are a step further and It took me some time to get them to work. One of the hardest things holding me back were troubles using depth cubemaps in my shader. So now I’m using a normal cubemap (RGBA) for the light source and each face stores a custom calculated depth value (done in a separate shader) that’s then used in the final calculation to apply shadows to the scene (done in the same shader that does lighting and parallax mapping).

First dungeon crawler prototype (HD Video) - (26. February 2010)

Although it took me longer than expected I recently got a first prototype of a dungeon crawler, based on my recenlty published random dungeon article, polished up far enough to show it to the public.  Actually one of the biggest issue holding it back were the textures. It uses parallax (bump) mapping for giving flat surfaces a realsitic 3D look (it’s pretty much an extension to bump mapping), and for that technique you not only need a color map and a normal map but also a heightmap for each texture. After not being able to find good ones around the net I decided to quickly do the textures myself.

A quick overview of what’s in this prototype : As always it uses OpenGL and let’s you walk around a randomly generated dungeon. Lighting and parallax mapping are done using shaders (so there is no real limit to the number of light sources) and all physics and collision stuff is handled by a recent beta version of the Newton Game Dynamics engine. One of the new features is an included character controller that allows you to setup a physically correct playerbody that interacts with the environment within a few lines of code. But that’s not the only use of Newton in that prototype, as I’m also using it’s raycast functionality to determine visibility for the map. That was a pretty natrual choice as I already submitted the geometry of the dungeon to newton for creating a static physic body, so adding raycasting for visibility check was pretty easy and works fine.

Other than that, there is not much to say about this very early prototype. I’m still not sure if I’ll ever make a game based on all that random dungeon stuff, although I already wrote down a nice and basic game design that’s not your traditional dungeon crawler.

So in the meantime enjoy this video I just uploaded, and please watch id in HD. Sadly it’s only 30 fps (originall recorded with 60fps) but it should be sufficent to get an impression :

Random Dungeon Generation - (7. February 2010)

After deciding to take a small break from working on “Phase 2″ for Projekt “W”, I decided to do something I’ve been thinking about since I played my first dungeon crawler (Eye of the Beholder) over 15 years ago :  a random dungeon generator. Back in that time I already gave it a shot but nothing really ever came out of it, so I decided to try again. But this time it worked out really nice and I now have a fine random dungeon generator, creating nice random dungeons that could be used in a game. Actually I even have an idea for a game using this, though if it ever sees the light of the day it will be a very unique take at the “genre” and it won’t be a big project (cause at some point I’d like to release “Phase 2″).

And since just telling you that I made something like a random dungeon generator wouldn’t really be worthy of a whole news posting I also wrote a rather extensive article on that subject. It’s not a tutorial or including the source code, but it’s rather a journal on how I started from scratch trying to create a random dungeon generator. So maybe it’s interesting to some, but since I also talk about how I do it people may also get some ideas out of that article on how to do their own random dungeon generators. Note that the generator is neither finished nor that my solution is the perfect one, but I think it’s a nice take on the whole subject.

Read the “Random Dungeon Generation” article.

And also note that this is my first article, but I hope to write more articles concerning game programming, game design and such in the future.

Newton SDL demos updated to 2.16 - (31. January 2010)

After several requests and after updating the headers, I decided to release updated sources for the SDL developer demos showcasing some of Newton’s features. Those updated demos (including sources) should be useful to both starters (to see how Newton 2.00 works) and people that already used 1.53, as there haven been some changes.

So the following demos now also have sources for Newton 2.00 : “Demo 01 – Basic demo”, “Demo 02 – Joints” and “Demo 03 – Buoyancy”. The demo for vehicles will be updated as soon as functionality for the vehicle container is added back into the Newton SDK. Due to it’s beta nature, Julio commented those functions out for the last beta release, so they can’t be used right now. The ragdoll demo also will be updated at some point, but the ragdoll interface changed heavily in Newton 2.00 and it’s still subject to changes. And finally the character controller demo won’t be updated, simply because newton now has a built-in character controller, so no more need to code this on your own.

Grab the sources here, get the latest beta headers and download the current beta SDK. Note that you’ll also need SDL and the SDL headers for pascal. I’ve compiled the demos with Lazarus and FPC 2.2.4 and they’re not using anything platform specific. So they should work with windows, linux and maybe even MacOSX.

New staff / transfer market window and more on staff experience - (14. January 2010)

After a long time without updates on “Phase 2″ of Projekt “W” (due to the fact that I just haven’t had time to work on it), I got around doing some work on it in the recent days and finished the overhaul of the staff / transfer market window. As mentioned in my recent postings on “Phase 2″, all the windows will be revamped to make them look more like they’re in a game rather than in some kind of office application for windows. I already redid this window long time ago after “Phase 1″, but that old look didn’t fit into the new paradigm of game-like windows, so after tinkering around with a lot of different ideas on how to redo this window I finally settled with the  idea of making it look like a staff portfolio. It now includes different tabs for the different staff types, the transfer market, player’s staff and staff training (more on this in the next paragraph), instead of the old one where all staff types were visible at once, so the new window is much more structured and easier to use.

And in addition to the visual overhaul, I also made some changes to the experience system for staff members. Already mentioned in one of my older postings, staff in “Phase 2″ wil be able to gain experience. Either passive (e.g. scientists researching) or active (e.g. a spy doing a successful infiltration). But new is the fact that instead of just gaining experience, they now have levels. Much like in any RPG staff will now gain experience for several tasks, and once enough experience is accumulated, the staff member will gain a new level. With each new level your staff member will be rewarded better abilities without it’s wages rising. This was the whole point of the experience system, making existing staff members more valuable. So with the addition of levelling, the system now is perfect.

And last but not least you’ll also be able to run training sessions for your employees. Those will cost you a lot of ressources, and your staff members will be locked for the next turn, but it’ll grant them a nice experience bonus.

Newton header updated (again) - (31. December 2009)


After updating some of my projects to the recent beta of Newton I decided to revert back to the original header format, using only one file (NewtonImport.pas) instead of the three from the last update (which was a result of Stucuk updating the headers and splitting them in order to easily use them with his own wrapper).

So I uploaded a new package for the headers, now only containing one header (NewtonImport.pas) as known from the older releases and one header for the joint library (NewtonImport_JointLibrary.pas). Note that I also fixed a wrong DLL name in the joint library that caused the compiler not to find custom joint routines. This is now fixed and the header should select the correct DLL. Also note that this header is compatible with the recently released 2.16 version of NGD as there were no header changes between 2.15 and 2.16.

Sorry for the troubles, but if you want to use the old header format only using one header as used in older releases, or if you use the joint library, please download the updated package.

Newton 2.15 (beta) headers uploaded - (29. December 2009)

From my lack of recent updates it should be pretty clear that I don’t have much time (or better : pretty much no time at all) for my programming stuff, so over the past few months I also had no time to release updated headers for the beta releases of the Newton Game Dynamics Engine. As of now there have been many beta releases and the current one is 2.15. In my abscence Stucuk was the one that took care of that situation and released several headers for the numerous betas of NGD.

But today I just took the time (even if it meant less time for urgent personal matters) and decided to update Stucuk’s header (that’s based on mine for 1.53, which was based back on Sury’s first efforts) to the recent 2.15 beta of NGD, so that all pascal/delphi coders out there can now also test out the thrilling new features of NGD 2.00. So if you’re eager to use one of the new Newton betas, head over to the page for the new headers, download them and get the beta SDKs from the Newton homepage.

And as a nice extra, the download even includes a translation of Newton’s own joint library (thanks to Executor), so you can now use all the exciting new joints that are included in NGD, even the raycast vehicle joint.

Quick update note : Beta 2.16 was recently released, and since that new beta has had no changes concerning the C-header, the Delphi/Pascal header will also work fine with 2.16!

Status update on “Phase 2″ - (14. October 2009)

After taking a longer break from coding (it’s been almost four months since my last update on “Phase 2″) I returned to coding last week. Followers of my work might already know that I sometimes take longer pauses from development, mostly when either my motivation or my inspiration is gone, and as for this longer break it was connected to both. After implementing the nuke shown on my last update I actually wanted to start full work on the global projects, but without inspiration for what projects to do and how to implement them into the sourcecode I decided to take a break. And so last week when I fired up Delphi for the first time in months again, the ideas started to flow and now at least the functionality for global projects is almost fully implemented, I got a document full of ideas for global projects and I even got some other stuff done.

So as for the global project section of the game, my first action was to create a new window for the presentation of the global projects (see screenshot to your left). In a lot of my recent updates I talked about updating the different windows in the game to make them look more like a game, instead of boring windows that look like something from a table calculation. But for the global projects I had a hard time trying to think about how to present them, and while doing something totally unrelated (I usually get the best ideas when not being in front of my PC) I got the idea of presenting them on something like a blueprint together with a clipboard for selecting them. And that’s exactly what I did! The window on the screenshot is not final, but it already hints at what it’ll look in the final release.
And then I went on to implement functionality for the global projects into the game. That’s something I can’t really show on a screenshot but it’s even more important than a new fancy looking window, and also a lot more of work to do. Especially since I’m adding it to a game that was already “finished”, and adding features to a finished game is always a lot of work, and even more if it’s a complex feature as it’s the case with the global projects. Once they’re fully implemented, they’re going to be one of the most important gameplay features, so it’s very important to carefully design and implement this feature into the game. I’m not fully done with it, but a lot of the ground work has been done, which is a huge step forward for “Phase 2″.
As you can see on the second screenshot it’s now also possible to have global projects that are passiv, and the one shown in the screenshot has an espionage satellite floating around your globe, letting you access important data you’d otherwise would have trouble getting your hands on. So there won’t only be aggressive projects like nukes and stuff, but also passive ones that may not have a direct impact upon usage, but may be even more usefull than a nuke to “just” obliterate your enemie’s regions.

The third and last shot for this update shows my first mockup of the the new information center. As with the other windows I updated, it took me some time to get an idea on what to actually do, and today I thought it would be a nice idea to have your information center look like a pinboard with the informations pinned to it. It’s just a first idea, so it may not make it into the final game.

And also “Phase 1″ got a rather favorable review from CompletleyFreeSoftware, a freeware-page and especially the summary made me happy : “Projekt “W” Phase 1 is one of the best sims we have seen of this type and we are looking forward to Phase 2 being released some time in the near future.”. You can read the review here. Positive reviews as this one always give me a nice motivation boost!

New screenshot gallery : WipeOut HD fury (PlayStation 3) - (29. July 2009)

Right now I’m taking a break from coding and when I get the time I prefer to spend it in front of my shiny PlayStation 3. One of the first games I got for it (I even got me a credit card to be able to buy it on the PSN) was WipeOut HD, a futuristic hover racer. It’s looking gorgeous and I’ve been having a blast playing it. Recently the addon called “Fury” was released, and for just 10€ you get a lot of new content (8 new tracks, 13 new ships, a new campaing, new game modes, new music, and more) and I decided to take some shots with the ingame photo-functionality. You can see them here.

And if someone is interested, below is my PSN-ID. Maybe you’ve seen me online, right now I’m playing Killzone 2, WipeOut HD and Demon’s Souls online and some other games that are mainly offline.

Pascal Gamer Magazine Issue #1 - (17. July 2009)

Jason McMillen (aka “Will”) from Pascal Game Developement has put a lot of effort into getting together the first issue of the “Pascal Gamer Magazine”, an online published free magazine showcasing the state of the pascal game development scene (which actually includes me as I’m using Delphi for development). The first issue is filled with a lot of interesting stuff, and when Jason approached me for an interview and a feature about “Projekt W” I couldn’t resist. So you’ll also find an extensive interview with me (about “Projekt W”, my development in general, physics, etc.), features about “Projekt W” and a lot of interesting articles written by other talented coders out there, including reviews of several games made with pascal.

You can grab your free copy over at the offical page of the Pascal Gamer Magazine (PDF, ~25 MBytes).

All content and images are copyright© 2001-2010 by Sascha Willems
1 online / 335899 total Powered by WordPress
Impressum