All posts in Game Development

Crunch-time

I didn’t talk to my girlfriend very much lately. I didn’t read many blogs. I didn’t watch any movies. I didn’t breathe much fresh air. I didn’t use my PC for anything more than listening to music or fetching mails. I didn’t sleep much more than four hours the last two weeks or so. I neither wrote a single line of code for DVW nor attended the last sechsta sinn team meeting. I have a new game on my desk right next to me but I didn’t even bother to install it yet. I get asked whether I’m sick because I look like a zombie when I creep around the office in the morning at noon. I currently drink so many energy drinks that my heart beats heavily when I finally try to get some sleep (so eventually I don’t get any). I’m sitting here with the MacBook Pro on my lap, big headphones with music on my head and two separate headphones in my ears, one connected to the MacBook and one to an iPod. I wrote about 15000 lines of code in the last eight weeks in my spare time, and there’s a deadline coming so close so quickly that I fear I will hit me like a bullet train.

It’s crunch-time, baby.

Unity3D for iPhone ships on October 22, 2008

As an update on my article on 3D engines for the iPhone / iPod, Unity Technologies has announced the shipping of their 3D game development tool for iPhone starting on October 22nd, 2008. According to a heise news, prices will range from 400 to 1500 USD.

iPhone NDA dropped

Apple has dropped the iPhone NDA for released software. I guess now I need to release something really quick in order to be able to discuss iPhone development in detail and publically, right? So, you get what that actually means? It seems now that they cannot protect their stuff as much as they wanted, they at least want to make sure that people discussing the stuff have paid for the developer program first. As it seems, “released iPhone software” refers to the SDK itself, not released products in the AppStore. At least, this is what everyone else seems to think.

iPhone 3D engine test: SIO2

Yesterday, I digged deeper into the SIO2 3D engine which I mentioned in my last post. This is what I’ve thrown together in some hours of work. (Featuring a free model by Sven Daennart, one of my favorite 3D artists.)

SIO2 test application running on iPhone Simulator

The SIO2 API is very OpenGL-ish and features a bunch of C methods like “sio2ResourceGet”. It requires you to have one global attribute sio2 around which is the entry point into the engines internals, like the SIO2 window. (This is the point where it gets a bit annoying since every SIO2-related pointer in there starts with _SIO2… Hold on, I’m already using this sio2 global which you’re expecting me to have, so why do I need to type something like sio2->_SIO2window->_SIO2windowrender…?) I prefer an object-oriented approach anyway, so I started to wrap the engine into my own C++ classes which went pretty smooth so far. Fortunately, SIO2 comes with eight examples, each accompanied by YouTube video tutorials, and a skeleton project you can use for a jump-start. Moreover, a good part of the examples is documented inline, but still some API functions are lacking any documentation.

Featuring Theora video, OpenAL sound, Lua scripting and Bullet physics, SIO2 has an excellent basis to build upon. Still, there are drawbacks, e.g. it’s currently lacking support for skeleton based animation (but it’s in the works according to the page) and it doesn’t come with a scenegraph and thus doesn’t regard parent-child relationships modelled in Blender. Also, in order to attract some more people, there should be some written tutorials available since not everyone using it is a Blender expert also who can guess what the author is doing from watching the blurry and uncommented videos. But, don’t get me wrong here, I highly appreciate the excellent work and I’d just like to encourage the author to put more effort into documentation.

3D Engines on iPhone / iPod

I recently evaluated the 3D engines available on iPhone. This is the list that I compiled, plus some commentary.

  • iTorque (commercial) is the well-known Torque game engine available for iPhone. It comes in three flavours (2D, 3D, Studio) and professional and indie license, although indie is not yet available (scheduled for October 15th). Since Torque is quite popular, seems to be well documented, has a huge community and several products using it have shipped, this would be a good bet, but from my point of view, it’s overpriced.
  • SIO2 (free) is a game engine with a bunch of cool features like physics and scripting, plus a sophisticated tool-chain around Blender. Here’s a YouTube video showing the engine in action. The only thing I don’t like about it is that so few people seem to be using it and that you need to display an 10 seconds video when using it – I’d prefer to add them to the credits.
  • Oolong Engine (free) is an engine written by Wolfgang Engels, one of the computer graphics gurus around, if you ask me. It makes heavy use of PowerVR formats and brought Bullet physics to the iPhone. Unfortunately, besides some examples and a mailing list, there’s barely any documentation available.
  • Unity3D (commercial) is a huge, fully-featured 3D game engine which was announced to be coming to the iPhone in March 2008. Unfortunately, there’s not a single sign of it yet.
  • Shiva (commercial) doesn’t seem to be an engine but more an authoring tool, but I list it for sake of completeness.
  • Living Arcana (free) is a project which features an iPhone port of an existing 3D engine which will be available under LGPL. Unfortunately I didn’t find this port.
  • Rumor has it that Irrlicht comes to the iPhone but I cannot confirm that yet.

Needless to say, I’d go for Irrlicht once it’s available. Still, I’m interested in your experiences. Which engine do you use?

I am now a registered iPhone Developer.

Plus MacBook Pro owner since Saturday. Plus soon to become an iPhone owner. Plus a bit confused by Objective-C syntax already.

New DVW screenshots

digitalbreed framework

I am getting dumb of writing the same code over and over, so I am finally in the process of setting up a C++ framework with core functionality I use in almost every project: macros (e.g. assertions), helper functions (e.g. pattern matching), serialization, virtual file system, XML support,… Some of the stuff is extracted from what I wrote for DVW, the VFS and XML stuff in particular.

I am thinking about writing more articles on this, like I did for the serialization part. Let me know whether you’d like to read more so that I can estimate whether it’s worth the effort. I would start with the VFS and head over to XML support.

New publication

I have released another publication, a short (German) review of the last Spieleentwicklertreff NRW (Game Developers Gathering North Rhine-Westphalia) which took place at the Mediadesignhochschule Düsseldorf. Have a look!

Spieleentwicklertreff NRW, 14.01.2008

Two good reasons to finish DVW

My second Samsung SyncMaster 204b

I bought my first Samsung SyncMaster 204b about one and a half years ago. Although I had some problems with it, I decided to complete my set and get a second one. As you might recognize, I did not get the colors to match exactly yet, but I’ll try twiddle with that later.

The wallpaper is from mandolux.com. If you ever need excellent dual monitor wallpapers, this is the place to go. I have downloaded some of them, and while I’m writing this, I have already changed my wallpaper again because I cannot decide which one I like best.

The actual reason for buying a second 20″ was to have a little more screen space for programming again after my CRT smoked away some time ago, so: happy coding!

Free Developer e-Books

Christopher sent word that entwickler-press.de offers 24 free German developer e-Books for download in a virtual Advent calendar. Here’s the full list:

Continue Reading →

Electively serialize to/from XML or binary

I started several projects during the development time of DVW and eventually none of them came to an end (yet) in favor of DVW, so I thought I could share some of my findings. I wrote a little tutorial about how to electively serialize to and from XML or binary respectively. I would really appreciate comments and criticism.

DVW Teaser Video released

Without further ado, here is our cut-together of Dusmania 9.0 scenes plus original ingame footage plus official soundtrack tunes. Enjoy.

irrKlang fully integrated

After I finished the Windows integration, Christopher did the necessary work on the Linux version (basically editing CMake files) and Jan did the OS X version work tonight (messing around with an XCode project in this case).

Let me cite him to show how damn easy it was.

[00:31] <sheijk|6S> sound geht ohne absturz: check
(Sound works without a crash: Check.)
[00:31] <sheijk|6S> musik laeuft artefaktfrei: check
(Music runs without artifacts: Check.)
[00:31] <sheijk|6S> das ganze hat abzueglich rebuilds < 10 min aufwand gekostet: check
(Subtracting the rebuilds, it took me less than 10 minutes of work: Check.)

irrKlang is now fully integrated into DVW and if the next release will overcome its last minor issues, irrKlang will officially become our audio library of choice. It’s always a pleasure to work with Nikos code. And, no, posting three irrKlang entries in a row this is not advertising but pure excitement.

First experiences with irrKlang

Now that I’ve played around with irrKlang a bit, it’s time to write down a first resume. The first and best experience was how easy irrKlang was to integrate.

Continue Reading →

Audiere vs OpenAL vs irrKlang

It’s funny to see how our requirements regarding sound support changed. When I started to incorporate sound into DVW (after our former teammate Anselm who wrote the very first audio device left us, that is) I went for Audiere. At that time, Audiere was a framework which fitted exactly our needs. We had a Windows-only game for the time being, were about to play WAV and MP3 files from memory and didn’t want to bother about threading and all the platform-specific audio internals ourselves. It had bindings for several other languages and it looked like lots of other projects were using Audiere. Eventually, even Irrlicht was using it for its demos, so I thought this was a good way to go. But things turned out differently over time.

Continue Reading →

DVW Data Leaked

Leaked DVW Intro Movie

Apparently someone has leaked internal DVW data, possibly using an iPod or iPhone, as the evidence shows. If you know this bastard, tell him that we’ll segfault him.

New DVW Screenshots

DVW Screenshot TeaserI am currently attending a sechsta sinn team meeting and I’m just writing a small entry to point my appreciated readers attention to a small set of new screenshots we have released tonight. Just click on the image and see for yourself.

Setting up SVN and Trac

I’m using Subversion and Trac for several projects and I always thought that I should write down my workflow to set it up. This time, I did, and I’m sharing it with you. It’s probably not the best way, but it works for me. I will not cover the prerequesites here, like installing Apache 2 with DAV and SVN support or installing Subversion and Trac.

The subversion server is on a Linux box while the client is a Windows XP machine with TortoiseSVN as the SVN front-end.

Continue Reading →

Pathfinding I

Tim-Oliver bothered me today with a question about A* pathfinding. It has been some time since I wrote our A* implementation in DVW, so I had to dig into this topic again. I used this tutorial and wrote some code. Note that this is just a straightforward implementation of the pseudo code presented in this article. I wouldn’t write productive code that way. Anyway, this might come handy for someone, so I’ll present it here. Next time, I will replace the open list with a binary heap.

Click here to see the source: Continue Reading →