How-to video: Debugging a non-visible model in Vulkan using RenderDoc

One of the most common Vulkan related that I’m seeing a lot is about rendering stuff that somehow ends up being not visible on the screen, even though technically everything looks okay (no validation layer errors, correct buffer uploads, etc.).

Luckily there are debugging tools tools like RenderDoc that can help locating and fixing such problems. But not everyone knows about such tools or how to use them for debugging these kind of problems.

So I decided to upload a narrated video that shows how to debug non-visible models (in Vulkan) using RenderDoc:

If you’re interested in additional narrated, Vulkan related videos just drop me a line.

Updated Vulkan deferred shading example video

Over the past few weeks and months I’ve been constantly working on my Vulkan examples, enhancing existing demos, adding new ones, fixing bugs reported and merging pull requests (thx to anyone that has contributed!). I even found some time to work on a Vulkn deferred shading playground using Crytek’s famous Sponza model. You can find the repository for it here.

This Sunday I decided to visually upgrade the deferred shading example included in my samples repository. Deferred shading is commonly used nowadays, and I felt that the example didn’t showcase the technique properly. And so I went on to add some normal mapped surfaces, render multiple meshes and make the light sources dynamic.

And thanks to nvidia’s ShadowPlay I can even capture the Vulkan samples at nice frame rates, so I decided to upload a small video of the updated example to my YouTube channel:

Continue reading

Trugbild finished (PGD 2013 challenge edition)

The 2013 pascal game development challenge deadline is today, and Trugbild (at least the version for this challenge is finished and available to the public now).

I haven’t had that much time to work on it in the final week of the contest, but I managed to add in new content (chapters, decisions), fixed some minor issues and made some small tweaks to the game to add some polish. And though it’s not perfect and not 100% what I initially had in mind for it I’m pretty happy with what I was able to create in roughly a month. Creating a game from scratch besides an 8 hour dayjob isn’t the easiest task, so getting it finished in time and in a shape that’s pretty close to what I imagined is something I’m pretty happy with.

Here’s a short video of the game in action, though note that video compression kills a lot of image fidelity, and that the game is supposed to be played fullscreen in a dark room :

You can download it from here (Windows only, ~5 MByte).

I’ll have a page up on this page with some more detailled information, and maybe a post mortem up in the coming days, and I’m currently planning to expand the game (both in terms of content and gameplay) even further.

2012 – Final posting (and a new release)

We’re in the final days of 2012 (and the world didn’t end, who would’ve thought) and continuing my “tradition” this will be the final post of this year including different topics. So first of all I’d like to wish all my friends, relatives and readers a good start into 2013!

As for my personal situation, a lot changed in 2012 (if you’ve read last years final posting you might remember) and mostly for the positive. As of may 2012 I’m working as a fulltime Delphi Developer right around the corner (if I’m not too lazy I even hop on my bike to get there) and I’m having a real blast working over there. The working atmosphere is great, I get along very well with my co-workers, and getting paid for coding stuff in Delphi is pretty awesome too.

So as far as work goes I’m very happy right now, and contrary to what I expected first, coding all day long at work (mostly, I do other stuff there too) didn’t destroy my motivation to code at home at all. Actually it’s the complete opposite, cause I’m much more focused during coding at home due to the practices at work and a (finally) ordered real life.

So instead of bothering you with my highs and lows of this year, I decided to finish off this year with a new release of “Phase 2 (Revision #125).

This revision includes a new feature that allows you to start manual battles directly from the game’s main menu with the possiblity to complelty customize it. You can select the setting, the nations and the units for each nation. To make this feature even more interesting I also added half a dozen new maps for the manual battles.

You can grab the current release on the game’s offical page.

Update (26th December) :
I noticed that the last video showing Projekt W in motion is from november 2011 and since back then a lot of things changed and have been added, I decided to cut together a new video showing scenes from the current beta. So here you go :

“Phase 2” – November work-in-progress video

I’ve just uploaded a new work-in-progress video from my current version of Projekt “W” – Phase 2. It’s been some time since my last posting on “Phase 2”, and though I didn’t have that much time to work on it I still got a lot of stuff done, and what’s better than showing screenshots of that new stuff? Correct, showing an HD video of it :

As you can see I (once again) redid the whole user interface. Some may think I’m nuts when it comes down to the UI, with having at least half a dozen complete changes to it, but this time I actually had a good reason. You may remember the last arc-shaped user interface that looked just great? The looks sadly couldn’t cover all the problems that design had, so I decided to throw it away in favour of something far more simple. The last design looked good, but wasted a lot of screenspace due to it’s arc shape and also was only able to display one single window at a time, resulting in a very bad and annoying workflow, especially after longer periods of play.
One good example was the new region list, a window with all regions in your posession. Clicking on one of them brings up that region, and in the arc design this caused the region list to disappear due to the nature of that user interface, making regular tasks like managing your reasons very tiresome. With the new design, which is kinda back to the roots it’s now (again) possible to have several windows open. So if you look at the video you’ll see what I mean. You can now have the region list to the left and the region’s window on the right and quickly switch through all your regions and manage them, a perfect workflow.
But that’s not all, as the new design also offers a lot more space for the different windows. The old arc design wasted a lot of space and made it especially hard to display windows with lots of information, like the espionage one. So with this radical different design I’ve got much more space to display important information, increasing usability even more.

And (as also shown in the video) I also redid the main menu, endgame screen and battlefield user interface, so that the game’s user interface now looks seamless. That’s something I’ve been wanting from the very beginning of the development on “Phase 2″‘, but never really achieved with the old user interface designs. But now the game truly feels like it’s made from one piece, especially with the new icons that I created in my 3D modeller.

But it won’t stop here. I did a lot of things behind the scenes to get into a state where I can release at least a beta, though I’m not sure if this will happen 2011, with 2012 being more likely. For example the performance of the user interface was never that good, and now with the possibility to (again) have multiple windows open at the same time I realized that the UI was performing really bad. So I spent weeks optimizing it, taking away a huge part of the CPU limitation that was caused by the user interface. Now many items are rendered via vertex arrays, texture IDs are cached, hit tests are optimized and much more, resulting in roughly 200% performance increase for the user interface.

“Phase 2” – Eyecandy

Don’t worry, I’ve been doing some gameplay related stuff too (including a revamp of global project functionality, coastal building spots for regions), but somehow I had the urge to spice up the game’s main view a bit and decided to implement a nice atmosphere for the globe. Something I wanted to do for a long time but somehow never got around. Another thing you can see in the video below is the new water shaders. Actually I never liked the one in “Phase 1” as the water looks kinda unrealistic and lacked a proper nice specular highlighting. The new water shader looks a lot prettier though I still need to fix some parameters and make the light reflection move with moon/sun positions. What’s also different is the way the day/night transition works now. Up until now it was realistic moving along the globe, but that was somehow totally opposite to the day/night transition of the background, so to bring it in line the transition is now in effect for the whole globe.

So here it is, fresh from my HD. If possible please click the video and watch it over at youtube in 720p HD :

Info on the recent gameplay changes/additions will follow soon.

“Phase 2” status update

As promised some (long) time ago (but better late than never) here is a new status update on the progress for “Phase 2” of Projekt “W”. Although my spare time is getting more and more limited due to some real important real life things that I have to take care of I still somehow manage to make progress on what now seems like my personal swansong, and actually a lot of things happened since my last status update, so this one is getting a bit longer this time.

Moving pictures
Here is a new short video of (most) of the features that I’ll talk about in this rather big news update. If you don’t like reading text or want to see the current build in motion this video should give you a glimpse at my recent progress. (Note : As usual, the video is available in HD, sadly still only 30fps for yT)

New units
First up are five new units that will be present in “Phase 2”. They’re all done and already playable in my current build, though i’m pretty sure that I’ll still have to do some balancing for them, but that’s something I’ll address in a later beta and playtesting build. Adding new units isn’t the easiest thing to do. First you have to think of what units you want to add, then you need to justify their presence (adding units that nobody will ever construct or use are pretty much a waste of time), then you need to design them, model them, texture (skin) them, describe them, put them in the game (which is pretty easy due to WeltEdit), (for some of them : add technology to unlock them), and balance them. So in my documents there are actually more than those five units but all the others that didn’t make it into the game (some may make it though) would have been pretty useless. So these five new units all make sense in some way and I hope that players use them frequently. And instead of just putting some images of them here I’ll also tell you why I actually put that unit into the game and what purpose it serves :

(From left to right)Let’s start with the Hovertank. It’s a direct upgrade to the standard main battle tank, and it’s something that has been really necessary. The MBT is usually the most constructed and used unit in the game and the new hovertank that can be researched will serve as a replacement for it later on in the game, removing some dullness within army management itself.
The second one is the Anti-Aircraft Tank, which should have been in the game from the very start (dunno why I left it out then). Up until now air units were far too strong, and this new tank will make battles much more interesting, as you now really need to balance your division in order to be effective. In “Phase 1” you could just spam air units (and add some cheap ground ones for taking over the regions) and conquer region after region. This tank will make sure that this won’t work anymore.
Next up is the Multiple launch rocket system. It’s an upgrade (research) to the mobile artillery, so very similar to the hovertank, this unit has been added to take out dullness out of army management by having you replace weaker units with upgraded ones later on in the game.
And now on to the two new air units. Both of them are upgrades to existing units. The first one is the Blendedwingfighter, bringing in some futuristic touch as an upgrade to the jetfighter. The second on is a Stealth bomber and is an upgrade for the common bomber.

UI evolution

If you follow the development of “Phase 2” you may know that the user interface went through several different iterations since I started work on it some time ago. And as the user interface is something very important to the game I’ve been spending hundreds (or maybe even thousands) of hours reworking and refining it and as of now I’m (hopefully) at a point where I think it’s almost perfect, not only visually but also when it comes down to usability. Sure, I could have just used the UI from “Phase 1” and “Phase 2” may had been finished by now, but then it wouldn’t be nearly as playable as it is now, and everytime I fire up the release of “Phase 1” (yes, I always keep severeal old versions on my disk to compare my progress) and play around I notice how much better and how much smoother this new UI is, making for a much more enjoyable gameplay experience. Take for example the “army management” window. In “Phase 1” it was very hard to find out where to click for adding units or a general to a divison, and even important actions like assigning the division to a region where somehow hard to spot. This has totally changed with the latest UI and alle elements can be easily spotted, distinguished and reached. It feels a lot more “mature” and is far easier on the navigation than the old cumbersome UI. And as a little “document of time” I decided to compare the evolution of the user interface over the years with a few screenshots below :

Army management Research

UI refinements

Since the current build is now finally able to get through a whole game without crashing, something that gave me severe headaches at times, when for example fixing AI bugs that crashed the game du to changes made for “Phase 2” (or pretty simple things, e.g. new road tiles on the battlefield that wrongly were set to block units, making AI path finding quit all the time), I saw that the general UI needed some (small) refinements that would have a positive effect on gameplay. One of the fist things I did was to add differenlty colored borders to regions that are either selected or neighbours of the selected regions as well as displaying the name of the selected regions on it’s flag, and also redid the display for the number of finished buildings within a region. Very minor stuff, but every small bit that adds up to an overall better gaming experience is worth putting in. The next thing I added was “region highlighting”. So if you now e.g. select a division in the army managment window that is assigned to a region, that region will be highlighted and animated on the globe itself, so you can quickly see where that division is assigned to. And just recently I also added to possibility to change some visibility values for the globe display, including borders and colored region overlays. This setting is saved for each player, so you can set it to your likings, allowing you to see more of the globe itself or more of the political situation :

Persistent research
Researching new technologies is a very important part of Projekt “W”, and although the research tree will be expanded for “Phase 2” (I just recenlty added seven new technologies and more are to come) it’s still possible that at one point later in the game everything will be researched. Up until now that meant research suddenly lost all it’s importance and with that all research buildings and researchers, something I had to fix for “Phase 2”. And so I added persistant research to game. Once you have researched all regular technologies new persistent technologies will be unlocked and as long as they’re active they have different effects on the game, depending on your research factors. For example you can activate persistent environmental research and as a long as it’s active the pollution increase within regions will be lowered as well as pollution cleaning effects will be raised. There will be several such technologies covering different aspects of the game that’ll make research important, even after researching all common technologies. Something pretty simple, that’ll add a lot to the gameplay.

So much on the progress of “Phase 2”. Note that there I’ve been changing and adding a lot of small things, mainly behind the curtains that you may never see when playing the game, that had to be changed. For example a lot of the values for balancing (pollution increase, cost factors, population growth, research factors, etc.) are now easily adjustable through a separate file, making balancing much easier for me. So as of now pollution won’t be that hard to cope with as it was in “Phase 1” and research factors are now also calculated a bit different (making buildings more important than in “Phase 1”). Yes, it’s still a long way to go for a final release (especially in terms of the AI, which is still doing the same things it did in “Phase 1”) but it’s coming along!

New user interface in motion

As promised some weeks ago I finally got around capturing a video of the totally new user interface that I decided to put into “Phase 2”. As mentioned earlier it’s not only a visual “upgrade”, making the UI more sleek and futuristic but also adds a lot of information to the default view and also brings in lot more usability. As you can see in the video most parts are already done, though there is still some work to be done before I can call it finished. But it’s already coming along nice and will surely add a lot to the final game.

(Note : The video is available in HD, but sadly only at 30fps, seems like youtube caps videos at that framerate)

And amongst other things I removed the nation backdrops. Yes, I did put a lot of work into them (I’d have to guess, but I think several hundred hours) and they look quiet nice (though I was never really satisfied with all of them), so you may think it’s stupid to thrash so much work (along the countless hours of work I thrashed when doing the new UI), but I wouldn’t have removed them if it wouldn’t have added something to the game. And this “something” is a feature I’ve been getting several requests for, called “better global overview“. Due to the old backdrops the globe was fixed to a single position and was also limited in terms of zooming. But by removing those backdrops (and making the game partly look like one of the old betas) you can now not only freely rotate the globe, but also drag it around freely and zoom in and out by a larger factor. This adds a lot of overview as you can now just drag the globe where you want it and zoom in much closer to get a better look at the regions themselves. Take a look at the video and you’ll notice what I’m talking about.

Amongst these bigger changes you’ll also see the nuke in action in the new video. Nothing really new as I already had videos of the nuke prototype, but along with the nuke you’ll see something new, namely physical values. Something that I recently changed were the regional values that felt too abstract, so instead of having a factor for e.g. of population you’ll now see real population counts, that should make it easier to relate those values.

So you see it’s progressing. Although at times I feel like I do a lot of work for nothing (like recently when spending my rare free time for fixing stuff that I broke at some point), even small steps add, and hopefully I’ll have this game done at some point or at least a beta release I can build upon (which is actually my current plan).

First dungeon crawler prototype (HD Video)

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 :

Prototyping nukes (including HD video) – Updated

Update : Some people complained that the explosion didn’t look realistic, and after watching videos of real nukes I guessed they we’re right. So I revamped the explosion to make it look more realistic in itself, as well as adding several effects like a screen blind and shaking. So enjoy the new video below, it’s much better than the old one!

After releasing my explosion texture generator, I guess it’s now time to show you what I’ve been using it’s textures for. It’s for nukes, which will be used for the global projects that are weapons of mass destruction (e.g. atomic bombs). And as usual I implemented them in a separate prototype first, cause trying to get something like this tested and done so that it also looks nice in the final game would take much more time than just creating a new OpenGL project and testing things in there.

So without much words, here is a youtube video of the effect, but please remember to watch it in HD and don’t forget that it’s still work-in-progress and likely to change at least a bit until it’s made it’s final way into the game :