Few words about what I’ve been up to profesionally for past months. As you may have heard - Geralt is coming to the consoles. There’s PS3/X360 adaptation of ‘The Witcher’ in the works. It’s being developed in close cooperation with French company - Widescreen Games. They’re cool guys, basically mix of best oldschool French sceners (like Patapom/Bomb) and game developers (including Outkast programmers). Before diving head first we had to deal with re-designing many elements of the game like combat and UI. My main responsibility was coding a new combat prototype. For various reasons, it was a very interesting experience. Coding prototype doesn’t have that much in common with other programming areas. It’s almost liberating to be able just to smack the keyboard furiously, hacking away without caring about optimization, memory, elegance or even stability (well, to certain extent). All the code will be thrown away anyway. If you’re doing it for the first time, it may be tempting to try and hope some of the code will make it to the final version. Do not. Prototyping is basically reinventing the wheel, then smashing it against the wall and reinventing again. I lost count, but I’d estimate we had at least 10 different versions of this prototype (not including slight variations). The final one has absolutely nothing in common with the initial idea. At first, you may feel a little dirty doing all those crazy hacks just to show effects quicker, but it passes and you start enjoying the ride. Goal matters, means are irrelevant. The most important goal of prototype is (quoting Chris Hecker) to’ fail early. And fail you will. Multiple times. Hopefully, at the end it’ll be worth it.
Another interesting thing that I learnt during this time - it’s downright scary how effective can little, interdisciplinary team be. Group consisting of designer, programmer and good animator is able to put ideas to life in no time. Sure, we had lots of assets/code to lean on’ It still was cool that it literally would take us 40-50 minutes to try some completely new attacks, player actions or NPC behaviours (from basic idea to rough result, which would then be either thrown out (usually) or tweaked further). At times we’d even mock ourselves about it (as in ‘OK, I animated this attack in 20 minutes, now let’s see how quickly can you code it’ [just for the record, I did in 19m45s and don’t let anyone tell you otherwise]). Remember how many times someone says/thinks: ‘wouldn’t it be cool to do X’, but then the idea gets discarded, because it’s too late or it’s too much work? When doing prototype - it shouldn’t happen. You just try it. It may be cool or it may suck, but you won’t know it until you play it. In gamedev you never work in vacuum, but in prototyping phase the feeling of teamwork seems especially strong, just because the results are so quickly visible and everyone’s there to rate/tweak the hell out of them. Sometimes, it feels like pair programming, just there’s 3 or 4 of you and you’re the only one programming with the rest of wise asses breathing down your neck, complaining about compilation speed and throwing crazy ideas for improvements before the game has even a chance to load for the first time.
On top of all that, I got to spent 1.5 months in Lyon as a bonus. All in all, I had lots of fun, it surely is very interesting stage of production. Hectic, but enjoyable.
In other news:
OpenCL standard has been released.
disappointed 2009-04-12 19:35:36
too bad your company raped wsg in the meantime…
curious 2009-04-13 12:46:16
Disappointed, could you elaborate on that? Statements like this make no sense to most of polish developers, cause all we know is that CD Projekt hired WSG to port Witcher to consoles. And if you wanted to target Maciej only, he’s got email…
admin 2009-04-18 18:18:04
I no longer work at CDPR and my involvement with this particular project stopped in December’08, so I’m not sure what you mean here, especially that being just a lowly code monkey, I’ve obviously never dealt with business matters.
js 2009-04-29 22:10:55
I think disappointed means that :
xp 2010-10-18 18:04:55
Great! In case you didn’t know, people out there are using rdestl for serious stuff:
xp 2010-10-08 21:57:07
do you plan to implement move constructor in RDESTL?
admin 2010-10-09 23:17:37
At some point - most certainly. Need to find time to get MSVC2k10 first.