mrwonko.dehttp://mrwonko.de/2022-12-24T10:46:00+01:00Return to FlatOut 2 modding2022-12-24T10:46:00+01:00mrwonkotag:mrwonko.de,2022-12-24:blog/2022/return-to-flatout-2-modding.html<p>It turns out that when you spend 40 hours a week building software for a living, you don't have much energy left to do more of it in your spare time. Figures...</p>
<p>And how have I been spending what little precious energy is left? I had the silly idea of building my own Raspberry Pi-based smart lights. As usual, it ended up being more work than anticipated, and isn't much more than an MVP at the moment. Some wheels don't need to be reinvented... I spent a lot of time saving a little money, when I should be doing the opposite. But dipping my toes into PCB design was fun.</p>
<p>Anyway, the lights work well enough for now, and I'm finally returning to projects that benefit people beyond me. Namely, I've returned to a project from my university days: custom FlatOut 2 race tracks. FlatOut 2 was a mainstay at our private lan-parties when I was a kid, and in my opinion still holds up. But custom tracks have always been elusive, thanks to a mysterious proprietary collision data file format. Which I have now returned to trying to reverse engineer, <a href="http://mrwonko.de/blog/2015/projects-plans.html">after 7 years</a>.</p>
<p>So these last days I've been knee-deep in disassembled machine code, stepping through instruction by instruction using a debugger, slowly understanding the file format and building <a href="https://github.com/mrwonko/flatout-open-level-editor">a Blender plugin for it</a>. If things go well, I'll be done before the year is over.</p>
<p>After that, I could spend more time building a fully fledged user friendly track editor, but my heart wants to return to Jedi Academy. I love the game and its modding community, and I miss writing C++. I want to see what kind of code I can write free of deadlines and commercial interests, unleashing my perfectionism. I don't want my best work to be proprietary.</p>Hello Covid world2020-03-15T22:22:00+01:00mrwonkotag:mrwonko.de,2020-03-15:blog/2020/hello-covid-world.html<p>Social isolation is as good a reason to start blogging again as any, I suppose.</p>
<p>We're in the middle of the COVID-19 pandemic. Germany is about to close its borders. Restaurants, bars, cinemas etc. are being shut down.</p>
<p>In the interest of my sanity I took a walk earlier today. There are still a lot of people about on this Sunday. The playground was busy. So much for social isolation. I'm concerned.</p>
<p>As a software engineer I can thankfully work from home. My privilege extends into times of trouble.</p>Using letsencrypt certificates with a Taskwarrior server2017-07-23T10:46:00+02:00mrwonkotag:mrwonko.de,2017-07-23:blog/2017/using-letsencrypt-certificates-with-a-taskwarrior-server.html<p>Back in May a colleague recommended <a href="https://taskwarrior.org">Taskwarrior</a> to me for task management. And while tools don't matter nearly as much as the way you use them (i.e. your psychology), I think Taskwarrior encourages a bunch of useful habits like regularly reviewing outstanding tasks, grouping them into projects and tagging them for easy filtering.</p>
<p>To get the most out of task management software you need to be able to quickly take a note anywhere, and that means having it on all your devices and syncing the tasks between them. This requires setting up your own Taskserver, which I actually prefer to cloud services because I maintain control of my data and know the service won't be shutdown unexpectedly.</p>
<p>There's <a href="https://git.tasktools.org/ST/guides/raw/master/taskserver-setup/taskserver-setup.pdf">a pretty good guide on setting up a Taskserver</a>, but it involves self-signing certificates for your server. I have a proper <a href="https://letsencrypt.org/">letsencrypt</a> certificate, so naturally I wanted to use that instead. It took me some tinkering, but I managed to make it work.</p>
<p>Taskwarrior uses TLS x509 Authentication to verify it's talking to the correct host. That essentially means there's a public/private key pair used for encryption and a certificate signed by a trusted authority verifying that this is the correct server for the domain. This mechanism is used to verify both the server's and the client's identity.</p>
<p>Here's an explanation of the server settings:</p>
<ul>
<li><code>server.key</code>: private key used by server for authentication and encryption. I set this to my letsencrypt <code>privkey.pem</code>.</li>
<li><code>server.cert</code>: <em>chain</em> of certificates used to validate server signature. This file can actually contain multiple certificates, the first one for the server itself, where each one verifies the one before it, all the way up to some root certificate trusted by the client. I set this to my letsencrypt <code>fullchain.pem</code>, which contains both my server's certificate and the Let's Encrypt X3 certificate signing it, which in turn is trusted by the DST Root CA the client should be trusting.<br />
<img alt="screenshot of the certificate chain as displayed in my browser" src="http://mrwonko.de/blog/2017/07-23-certchain.png" /></li>
<li><code>server.crl</code>: Certificate Revocation List. This could presumably be used to reject compromised clients. I left it empty, as I don't currently need it.</li>
<li>
<p><code>client.key</code> / <code>client.cert</code>: here's what the guide says about these:</p>
<blockquote>
<p>These are for API access, and not for your Taskwarrior client.</p>
</blockquote>
<p>So I think they're safe to ignore.</p>
</li>
<li>
<p><code>ca.cert</code>: these are the root Certificate Authorities accepted by the server. They are used to verify the identity of the clients. Apparently the file can contain multiple root certificates, but I only use one: The self-signed one whose generation is described in the guide, created using <code>pki/generate.ca</code>.</p>
</li>
</ul>
<p>And these are the relevant client settings:</p>
<ul>
<li><code>taskd.key</code>: private key used by client for authentication and encryption. I used the <code>first_last.key.pem</code> generated as per the guide using <code>pki/generate.client first_last</code>.</li>
<li><code>taskd.certificate</code>: certificate (chain) signing the private key with a certificate in the server's <code>ca.cert</code>. Again, I used the <code>first_last.cert.pem</code> generated using <code>pki.generate.ca</code>, which is signed using the self-signed root certificate.</li>
<li><code>taskd.ca</code>: root certificates trusted by the client. This is where the magic happens. As seen above the root certificate for letsencrypt is the IdenTrust DST Root CA X3, <a href="https://www.identrust.com/certificates/trustid/root-download-x3.html">this one</a>. So that's what I use here:<br />
<pre>-----BEGIN CERTIFICATE-----
MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
-----END CERTIFICATE-----</pre></li>
</ul>
<p>And that's all that's necessary to securely encrypt and authenticate communication between Taskwarrior and a Taskserver. Hooray!</p>
<p>So in the end nothing really special was necessary, it was primarily a matter of understanding what exactly all the settings do and that most places that say "cert" or "ca" (singular) actually accept files containing lists/chains, which mostly involved diving through the taskd source code and the gnutls documentation.</p>
<p>Next step: writing a Windows Phone client!</p>
<h2>Addendum:</h2>
<p>Remember to restart your taskd server when your certificate changes, or sync will fail once it expires!</p>In lieu of catching up: October 2015 - July 20172017-07-22T18:30:00+02:00mrwonkotag:mrwonko.de,2017-07-22:blog/2017/in-lieu-of-catching-up-october-2015-july-2017.html<p>I think the plan was to write a blog post for every month since September 2015 retroactively. That's evidently not happening. I'll just be brutally honest with myself and admit that it's not a priority for me.</p>
<p>Still, here are the most important milestones: After I finished my Bachelor's degree in September 2015 I briefly freelanced for P&M Agentur,
where I had previously had an internship, while looking for a permanent position. I eventually found one; in December I started at <a href="https://freiheit.com">freiheit.com</a> and have been there ever since. Web development was never my passion, but I'm good at it, I've grown quite attached to my project and I very much appreciate the company culture.</p>
<p>Fast forward to August 2016: I spent a two week vacation in Seattle. The primary reason was attending The International, which is essentially the Dota 2 World Championship. But I decided to spend another week there so I'd have some time to explore the city. I really enjoyed my time there, if you're ever in the area I highly recommend the Omakase at Shiro's Sushi, the Rodizio at the Grill from Ipanema and the Burlesque show at The Pink Door. (Yes, I like to splurge a little whilst on Vacation. You should treat yourself every now and then.) The Chihuly Garden and Glass and the EMP museum also left quite the impression, as did my visit at Valve. Not to mention The International itself, which was a blast, I met many lovely people.</p>
<p>I traveled outside the country two more times that year: In November I spent 3 nights in Paris while attending IndieCade Europe, which was my first visit to France and mostly taught me that the French speak very fast, and in December I went to London for 3 nights for the One Life Left & Friends Christmas Party because Kieron Gillen, my favorite Comic Author, was DJing. The highlight of the party was certainly Marioke, which is Karaoke except the lyrics are about games and the best. Plus they had good cider on tap. Besides that I distinctly remember the Cahoots, a bar styled like a Victorian tube station that was recommended to me by a Londoner I met in Paris, and Quaglino's, probably the fanciest restaurant I've been to so far, which I spontaneously visited because I was in the mood for some live music.</p>
<p>London is also where I saw Rogue One on opening night. Oh, that's right, two Star Wars movies have come out since my last entry! I grew up in the Star Wars Expanded Universe, so I'm loving this renaissance. Meanwhile Kieron Gillen is writing Star Wars comics and a promising second Star Wars Battlefront 2 is on the horizon. Exciting!</p>
<p>By the way, the reason I could afford to travel so much was that I still lived with my parents. That changed in February 2017, when I moved into a coworker's former apartment as he moved in with his girlfriend. I took that opportunity to also adjust my diet (decidedly lower-carb than before) and start working out (bodyweight exercises in the morning) and have lost almost 10kg since, which had accumulated after I stopped riding the bike to Uni.</p>
<p>So, those are the things from the last two years that immediately come to mind. Now that we're all caught up I can start writing about recent developments, but not in this entry.</p>Catching up: September 20152016-04-06T22:45:00+02:00mrwonkotag:mrwonko.de,2016-04-06:blog/2016/catching-up-september-2015.html<p>Yes, I have once again put off writing another blog post for 7 months. I'm horrible. Let's catch up, starting with September. It's actually pretty interesting to reconstruct your history like this; I have a vague idea of what happened, but for the details it is quite useful to go through old mails (sent & received) and my GitHub profile.</p>
<p>I had put off applying for a job because obviously writing my thesis was more urgent, after all that had a deadline! For the record: Don't do that. Applications take a while, especially good ones. Even more so if you spend forever on programming challenges which can't possibly be that hard, like I did.</p>
<p>One of the studios I was (and am) interested in is the Paradox Development Studio since they use their own engine and I imagine I'd like low level C++ coding. They have <a href="https://paradox.kattis.com">a kattis challenge</a> you need to solve; when I first looked into it in early September you had to solve two out of three challenges. <a href="https://paradox.kattis.com/problems/pizza">Number one</a> was pretty easy, although getting it to execute fast enough took some thinking.</p>
<p>The time constraints turned out to be the problem for the other challenges as well. I ended up writing an <a href="https://en.wikipedia.org/wiki/Integer_programming">integer linear programming</a> solver for the <a href="https://paradox.kattis.com/problems/ecoins">second challenge</a> - initially in Haskell, then when that was too slow I rewrote it in C++. I still couldn't figure out how to make it fast enough. Same story with the <a href="https://paradox.kattis.com/problems/boom">third challenge</a>.</p>
<p>Meanwhile I defended my thesis and got my degree by mid-September. I didn't actually send out any applications prior to that since I wanted to include the degree, but shortly afterwards I applied for an internship at YAGER, which does not require solving any coding challenges first and was thus very straightforward. The month ended before I heard back from them and I did not send out any further applications before October, which my next post will cover.</p>
<p>So that was September, wherein I obsessed over kattis challenges way more than I probably should have.</p>Thesis done, now what?2015-08-31T21:00:00+02:00mrwonkotag:mrwonko.de,2015-08-31:blog/2015/thesis-done-now-what.html<p>It's been a busy couple of months as I worked on my Bachelor thesis, <a href="https://github.com/mrwonko/perseus">Perseus</a>. With that now out of the way my time in university is coming to an end. Exciting times ahead as I'm about to start my job search.</p>
<p>But that's not the only thing to be excited about. I recently started reading <a href="http://waitbutwhy.com">Wait But Why</a> which provides in-depth explanations of various topics. A particularly exciting one? <a href="http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-1.html">Artificial Intelligence</a>. As technology progresses at a rapid pace it seems likely that artificial human-level intelligence will be reached; and quite possibly during my life time. From there a quick exponential increase is possible, at which point such an AI could solve all our problems - by killing us, if we're unlucky/muck it up, but if done properly this could mean a sudden giant leap in technology beyond imagination. So that's exciting. And even failing that there are bound to be some cool things to come.</p>
<p>Something else I spent a lot of time with for a month was Netflix. Turns out I'm quite into watching series if I can do so at my own pace without ads. I quite enjoyed Sherlock, Daredevil and the first season of Elementary; and Bojack Horseman is surprisingly deep, I'm looking forward to watching the second season later. I stopped at the end of the trial though, since it required too much of my time that I needed for university.</p>
<p>So yeah, I tend to procrastinate a bit on uni work. It gets done in the end, but it's not ideal. Still, good things can come from it when I use the time to work on private projects instead. Take early June: On a whim I decided to write a crawler for jediknight3.filefront.com to create a backup of the mods uploaded there. The page has had technical problems for quite a while and was obviously slowly dying, so I figured I should try to preserve it. Turns out I was just in time: In July it went offline. I quickly uploaded the backup to this server and yesterday, after I finished my thesis, I got around to creating <a href="http://mrwonko.de/jk3files">a website for the files</a>.</p>
<p>So evidently I still care about Jedi Academy. I even became a moderator on <a href="http://jkhub.org">JKHub</a> recently; I'm hoping to help them with web development, improving the website. And I have a multiple other Jedi Academy related projects on my mind. Two of these projects were already mentioned in my <a href="http://mrwonko.de/blog/2015/projects-plans.html">project plans</a>: The GhoulKit and Map Forge have basically evolved into a plan for a single monolithic Jedi Academy editor, similar to the Unreal Editor or CryEngine's Sandbox; and I still plan to finish Spirits of the Sith eventually.</p>
<p>But those are large projects that need a lot of work before any useful results are available. I've decided I should also help out with <a href="https://github.com/JACoders/OpenJK">OpenJK</a>, which is already playable but would greatly benefit from improvements; and there are hardly any active developers right now. I need to figure out how exactly I'm going to split my time between those projects, but I suppose OpenJK should get most of it for now.</p>
<p>My browser project on the other hand may have to wait a little; but I can make do with Firefox a while longer, and it's supposed to get a nice update in the coming weeks. And then there's the whole matter of the Windows 10 upgrade. I'll want to do that soon, and I'll use the opportunity to clean up my PC, consolidating partitions and improving my directory structure. Lots to do, aside from the whole "get a job" thing.</p>
<p>Exciting times ahead!</p>
<p>Willi</p>A MAZE 20152015-06-11T12:30:00+02:00mrwonkotag:mrwonko.de,2015-06-11:blog/2015/a-maze-2015.html<p>I should have written this post earlier. It has been almost two months since I went to <a href="http://amaze-berlin.de/">A MAZE. / Berlin</a> so I don't remember all the details. Here's hoping I still remember the highlights.</p>
<p>I'll not go into detail on what A MAZE is again, it's basically an Indie GameDev Conference with exhibitions and parties. This was the 4th one in Berlin, and the 3rd one I attended after missing the first one.</p>
<p>I met a bunch of people I already knew from previous years; when I arrived on Wednesday evening <a href="https://twitter.com/ThatMajorBueno/">Major Bueno</a> were among the first I saw. I was somewhat self-conscious about my new hat, fearing I might be labelled a Hipster and hated. But as if he could read my thoughts the first thing <a href="https://twitter.com/MajusArts">Majus</a> said was that he liked it, making me feel a lot more confident. Go Majus!</p>
<p><a href="https://twitter.com/Sosowski">Sos</a> was also there and introduced me to <a href="https://twitter.com/aubreyserr">Aubrey</a> from Wolfire; I knew of him but had never met him before. He came all the way from San Francisco.</p>
<p><a href="06-11-amaze/aubrey.jpg"><img alt="Aubrey" src="06-11-amaze/aubrey-thumb.jpg" /></a><br />
Aubrey and me.</p>
<p>I had also searched for nearby e-sports bars. I had never been to one but felt like I'd enjoy it, having previously read about the <a href="http://www.drinkrelaxplay.co.uk/">Loading Bar</a> in London with its awesome punny cocktail names like the Evil with Gin and Assassin's Mead. And I had found one within walking distance of A MAZE (if you're willing to walk for a while), the <a href="http://www.meltdown.bar/berlin/">Meltdown Berlin</a>. So that's where I went on Wednesday night.</p>
<p>It would have been better to go on Tuesday, when Dota 2 is on, but I only arrived on Wednesday afternoon so that was out of the question. So Wednesday it was. That's when the Hearthstone tournament is on. I don't play Hearthstone so I didn't really follow it, instead I chatted with the people there, mostly the staff, and perused the drinks. I quite enjoyed them, although they were out of milk and cream. I could easily see myself going there regularly, especially on Dota nights, if I lived there.</p>
<p><a href="06-11-amaze/meltdown.jpg"><img alt="TLO at Meltdown" src="06-11-amaze/meltdown-thumb.jpg" /></a><br />
The TLO, lit and ready to serve.</p>
<p>Back at A MAZE it was business as usual: Interesting talks and cool people. Including a couple of what you might call indie celebrities:</p>
<p><a href="06-11-amaze/stars.jpg"><img alt="Indie Stars" src="06-11-amaze/stars-thumb.jpg" /></a><br />
Sos, <a href="https://twitter.com/dpunktw/">Dennis Wedin</a>, <a href="https://twitter.com/MsMinotaur/">MsMinotaur</a> and <a href="https://twitter.com/C418">C418</a></p>
<p>It's amazing how much Dennis Wedin changed - when I met him a couple of years ago at Gamescom (showing Hotline Miami) he had no beard and shorter, brighter hair; I only recognized him due to the Keyboard Drumset Fucking Werewolf tattoo.</p>
<p>The two selfies I took reminded me how horrible my phone's front camera is; I'm generally not too happy with it, maybe I shouldn't have gone for a cheap model when I bought it 2 years ago. Oh well, it will have to do for another couple of months until I'm done with uni, have a job and can afford a new one. Anyway, selfie time:</p>
<p><a href="06-11-amaze/sos.jpg"><img alt="Sosowski" src="06-11-amaze/sos-thumb.jpg" /></a><br />
Sos and me.</p>
<p><a href="06-11-amaze/nina.jpg"><img alt="Nina Freeman" src="06-11-amaze/nina-thumb.jpg" /></a><br />
<a href="https://twitter.com/hentaiphd">Nina Freeman</a> and me.</p>
<p>And while the back camera isn't quite as bad it still doesn't quite hold up, especially in low light conditions:</p>
<p><a href="06-11-amaze/william.jpg"><img alt="William Pugh" src="06-11-amaze/william-thumb.jpg" /></a><br />
<a href="https://twitter.com/HonestWilliam">William Pugh</a> and me.</p>
<p>So that was A MAZE. Fun as always, great people, good weather, interesting talks. Looking forward to next year.</p>
<p>So long<br />
Willi</p>Projects plans2015-05-15T00:00:00+02:00mrwonkotag:mrwonko.de,2015-05-15:blog/2015/projects-plans.html<p>I'm currently fairly busy with my Bachelor Thesis, writing the core of my programming language <a href="https://github.com/mrwonko/perseus">Perseus</a>. Besides that I also still have to support my legacy projects, in particular I need to update my <a href="https://github.com/mrwonko/PySixense">Python binding of the Razer Hydra library</a> whenever a new Python version is released.</p>
<p>But that doesn't mean I have no other plans. In fact there are a lot of projects I have started or want to start eventually, and I thought I'd just list them here.</p>
<p>Let's start with the other projects I've already started with:</p>
<h3>Spirits of the Sith</h3>
<p>A new singleplayer campaign for Jedi Knight: Jedi Academy that the modding team 3D-GET worked on roughly from 2002 to 2008. I joined when it was already mostly dead, but it would be a massive shame if the 80% or so that are already done were to go to waste. Most of the remaining work is technical stuff, so right up my alley.</p>
<h3>Blender GLM Exporter</h3>
<p>Part of my Jedi Academy Plugin Suite, the exporter could do with some improvements. People regularly struggle to get their models to export because the exporter requires the user to do some preparation that should just be automated.</p>
<h3>Videotutorial on Jedi Academy Player Modelling in Blender</h3>
<p>Related to the above, I've previously started recording a video tutorial on playermodel creation from scratch but never even finished modelling - hands are hard. It would be useful to finish those videos before there are no modders left to benefit from them.</p>
<h3>FlatOut 2 Modding</h3>
<p>I started <a href="https://github.com/mrwonko/fo2re">reverse engineering FlatOut 2</a> to <a href="https://github.com/mrwonko/fo2unleashed/">enable more modding</a>; in particular I want to be able to create completely new levels and enable multiple mods to be active simultaneously without interfering with each other.</p>
<h3>Homepage</h3>
<p>I have a couple of additional features for this website in mind; besides Metadata for Twitter, Facebook and Google I mainly need proper filtering/searching for downloads, a better way to access old blog posts than pagination and I still need to port the remaining Darth-Arth tutorials.</p>
<h3>Jedi Academy: Renaissance</h3>
<p>While I'm a big fan of open source, I don't like copyleft (and the GPL in particular) very much. At least when it prevents me from using e.g. closed source libraries in those projects. So while I'd love to code lots of cool stuff for Jedi Academy, I won't modify its source. Instead I'm recoding it from scratch. Yes, that's crazy. It gets even crazier: It will mostly be written in my own aforementioned programming language Perseus. Which I first have to write.</p>
<p>The reason I'm using my own language is that I want a scripting language (to enable mods), but the existing languages don't satisfy my requirements. Besides, designing a programming language is fun.</p>
<hr />
<p>And then there are a whole lot of planned projects:</p>
<h3>The GhoulKit</h3>
<p>I'm not really all that happy with the my Jedi Academy tools for Blender. Or maybe I should say I'm not really all that happy with Blender. At least for creating Jedi Academy models. Blender can do a lot, but that makes it complicated.</p>
<p>I basically feel that a dedicated tool could be much simpler. The GhoulKit would be this tool. Its purpose is creating Jedi Academy armatures, rigging, preparing models for dismemberment, creating the proper hierarchy, handling LODs and previewing the model as it will look in the game.</p>
<h3>Pen & Paper App (working title)</h3>
<p>I like playing Pen & Paper RPGs, but looking up rules all the time and erasing & changing your values is somewhat tedious. This could be simplified by doing it digitally, which could also help with visualization and limiting information, as well as letting the DM discreetly check player stats, making hidden rolls etc.</p>
<p>However, I don't want a web app since I may not have internet access; I want a cross-platform native app with networking. So it would probably be made using Qt. An almost automatic side effect of the networking would be the possibility of playing together remotely.</p>
<p>I suppose <a href="http://castar.com/">CastAR</a> support would make this even cooler. Not that I've ordered one, but I could totally see that happen. Well, I'm really just dreaming at this point, but nothing wrong with thinking big... This is just a list of interesting possible projects, after all, not a concrete plan.</p>
<h3>Map Forge</h3>
<p>The <a href="http://icculus.org/gtkradiant/">GTK Radiant</a> isn't all that modern or simple an editor, I have a couple of ideas for a better Jedi Academy level editor. (Yes, I'm still very much focussed on Jedi Academy, despite hardly having played or modded it for multiple years at this point. Call it nostalgia or affection or something.)</p>
<p>I could just contribute to the GTK Radiant, but why not create my own editor instead? I could use Qt instead of GTK, which I prefer for no apparent reason (despite hardly having used either), use a different license and do things however I want.</p>
<p>I may be experiencing a severe case of <a href="http://en.wikipedia.org/wiki/Not_invented_here">Not Invented Here</a>.</p>
<h3>Browser (working title)</h3>
<p>I like the tab groups that Firefox offers and how loads tabs lazily, allowing me to have hundreds of tabs open and still be somewhat organized.</p>
<p>I don't like how it gets super slow when I have hundreds of tabs open, and really I want to have ALL THE TABS and nest them even deeper; why have favorites when you can just unload a tab and keep it open in a different folder?</p>
<p>Chrome seems a lot faster, though I've never had quite as many tabs open in it because it neither supports lazy loading nor does it have tab groups.</p>
<p>I should probably just write the perfect browser for me. With Qt WebEngine it might even be fairly simple while matching Chrome's performance.</p>
<h3>First Person Synapse (working title)</h3>
<p>Like Frozen Synapse, except an Ego Shooter.</p>
<h3>Invisibility</h3>
<p>A 2D top down multiplayer shooter where everybody is usually invisible.</p>
<h3>Stille Tänzer</h3>
<p><a href="http://mrwonko.de/blog/2013/a-mazeing.html">I've written about this before</a>. Multiplayer dancing.</p>
<h3>Rollercoast Tycoon 1/2 clone (working title)</h3>
<p>What it says in the title. In 3D, but using the original palette with an isometric view that looks as close to the original as possible. But park exploration and riding rollercoasters in first person are also possible.</p>
<p>Looks like I may not need to write this, I recently found out about <a href="https://github.com/IntelOrca/OpenRCT2">OpenRCT2</a>. It's legally questionable since it doesn't use a <a href="http://en.wikipedia.org/wiki/Clean_room_design">clean room approach</a> but it's unlikely to get in trouble. I could probably "just" add 3D rendering to that and be happy ever after.</p>
<p>Or just play <a href="http://www.themeparkitect.com/">Parkitect</a>. It may be made in Unity, but my irrational dislike for that has already started to waver thanks to Sir, You Are Being Hunted and Cities: Skylines.</p>
<h3>Graphics Programming</h3>
<p>I have a bunch of computer graphics effects I'd love to implement at some point, including: God Rays, Dynamic Lighting (in various flavors of deferred and forward), fog, particles, a material system (in particular a fast version of Jedi Academy's shaders), tesselation, curves using geometry shaders, skinning/skeletal animations, inverse kinematics, VR.</p>
<p>I'll be able to scratch this itch with Jedi Academy: Renaissance, if I ever get anywhere with that.</p>
<h3>Custom Mouse</h3>
<p>I may not need to create my dream keyboard/gamepad hybrid since that's probably basically the Logitech G13 (I would possibly have included an analog trigger though), but I'd still like to create my own mouse/gamepad hybrid with lots of buttons, a mouse wheel, an analog stick and an analog trigger.</p>
<p>Should be quite possible by gutting a gamepad, a mouse and a USB hub and creating a fibreglass shell. Or I could go all out with a microprocessor running custom firmware, but I'm not sure writing the firmware and drivers is much fun.</p>
<hr />
<p>So those are the projects I haven't cancelled yet. Let's see which of them come to pass. I hope at least the Browser will, since I'd quite like to use that, and the Pen & Paper App would be nice as well. And Spirits of the Sith has come way to far to be abandoned forever.</p>I support paid mods.2015-05-14T22:30:00+02:00mrwonkotag:mrwonko.de,2015-05-14:blog/2015/05-15-i-support-paid-mods.html<p>Valve recently <a href="http://steamcommunity.com//games/SteamWorkshop/announcements/detail/208632365237576574">introduced paid mods</a>, which started a bit of a shit storm and <a href="http://steamcommunity.com/games/SteamWorkshop/announcements/detail/208632365253244218">they were quickly rolled back</a>. Since I was in the middle of my <a href="http://mrwonko.de/blog/2015/website-relaunch.html">relaunch</a> I haven't posted my opinion on this yet.</p>
<p>But others have already said what I think, so let me just quote. Garry Newman wrote <a href="http://garry.tv/2015/04/24/paying-for-mods/">a blog post outlining his thoughts</a>, which I agree with. George Broussard summed the negative reaction up nicely:</p>
<blockquote>
<p>Critics of paid mods seem to hide behind “the % was unfair” but the reality is “we want our free stuff free forever”. Sorry mod makers.</p>
— George Broussard (@georgeb3dr) <a href="https://twitter.com/georgeb3dr/status/592853854993129472">April 28, 2015</a>
</blockquote>
<p>While Garry used somewhat stronger words:</p>
<blockquote>
<p>Valve broke the modding community... by revealing that most of them are cunts.</p>
— Garry Newman (@garrynewman) <a href="https://twitter.com/garrynewman/status/591667165335560193">April 24, 2015</a>
</blockquote>
<p>So my opinion in short:</p>
<ul>
<li>I'd appreciate if modders had the option to sell their mods.</li>
<li>Of course they'd have to respect IP, a Star Wars mod for Skyrim should probably not be monetized.</li>
<li>There are multiple technical problems with Skyrim's Steam Workshop integration; if you force people who want to sell their mods to use that instead of the Nexus, it needs to work at least as well first.</li>
<li>Publishers making money from mods might lead to modding support in more games.</li>
<li>Modders making money from mods might lead to more and better mods. Maybe not better on average, but more good mods.</li>
<li>Having to pay for mods isn't all that different from paying for games. Support people doing things you like.</li>
<li>Abuse is a problem but I believe the community can take care of moderation if you manage to distinguish between trustworthy and malicious users, e.g. by seeding the system with hand-selected "good" people and then comparing report patterns. This problem will need to be addressed anyway by the time the store is opened to everybody.</li>
</ul>
<p>And the super short version: I support paid mods.</p>on compiler bugs2015-05-11T12:40:00+02:00mrwonkotag:mrwonko.de,2015-05-11:blog/2015/on-compiler-bugs.html<p>There are still numerous older things I want to blog about, but in light of recent events I need to rant a little first.</p>
<p>I've recently started working on my Bachelor thesis: I'm creating a new programming language, <a href="https://www.github.com/mrwonko/perseus">Perseus</a>. It will be a statically typed script language, so similar to AngelScript in that regard. I have big plans for it, but limited time, so for now I'm just working on the very core.</p>
<p>I'll use <a href="http://www.boost.org/doc/libs/1_58_0/libs/spirit/doc/html/index.html">Boost.Spirit</a> to write the Lexer and the Parser so using <a href="http://www.boost.org/doc/libs/1_58_0/libs/test/doc/html/index.html">Boost.Test</a> for my unit tests was the natural choice. I quite like unit testing; besides helping to write correct programs it also allows you to see some results before it all comes together, which keeps the motivation up.</p>
<p>And Boost.Test is more powerful than I first thought: Yesterday it suddenly informed me I had memory leaks in my code. I had no idea it could do that, but it can indeed. So the leak hunt began.</p>
<p>I wasted the first couple of hours by misspelling <code>--detect_memory_leaks</code> as <code>--detect-memory-leaks</code>. How annoying. I ended up filing two bug bug reports regarding that (<a href="https://svn.boost.org/trac/boost/ticket/11279">one regarding warnings about invalid parameters</a>, <a href="https://svn.boost.org/trac/boost/ticket/11278">one regarding nonsensical parameter combinations</a>); if I lose that much time I'll try to make sure nobody else has to.</p>
<p>So I finally got it to break on the allocation that was leaking. It was in the constructor of <code>std::vector</code>. Since all my dynamic memory allocation is handled by the STL (meaning there are no direct <code>new</code> or <code>malloc</code> (et al) calls) this strongly hinted at a problem with the STL, but I tried not to dismiss the possibility of me being in error too quickly. After all I'm inheritting from <code>std::vector</code> in the leaking code; maybe I went wrong somewhere with my move constructors, not calling base constructors correctly or the like.</p>
<p>Cue hours of debugging. You tend to look in all kinds of places when you assume obviously correct code to work. In the end it turned out that the correct code was not actually working; I had stumbled upon a compiler bug. Or so I think, <a href="https://connect.microsoft.com/VisualStudio/feedback/details/1322217">let's see what comes of it</a>.</p>
<p>Running the numbers, I think I actually lost at least 10 hours to this. How annoying, I could have gotten a lot of work done in that time.</p>
<p>Oh well, it's all figured out now. Back to work.</p>
<p>Willi</p>Website relaunch2015-05-08T23:40:00+02:00mrwonkotag:mrwonko.de,2015-05-08:blog/2015/website-relaunch.html<p>If you've visited my website before you'll have noticed that it has a new look. Now with mobile support. Yay!</p>
<p>Last October to December I did an internship at a local web developer and learned that PHP and MySQL aren't exactly state of the art any more, web development can actually be fun! So I've moved from my web host to a Linux virtual machine where I can basically do anything.</p>
<p>But in the end it actually mostly does less. Instead of generating each page dynamically like I previously did with Wordpress, I now generate HTML pages offline with <a href="http://getpelican.com/">Pelican</a>. That makes most requests super easy: just serve a static page. Eventually I'll set it up to automatically regenerate them whenever I push new articles to the repo, but for now I just manually start a script on the server.</p>
<p>The only dynamic content so far are the comments (and download counts), which use a Python backend running <a href="http://twistedmatrix.com/">Twisted</a> with <a href="http://angularjs.org/">AngularJS</a> in the frontend. I used Angular during my internship and once you've learned how it works it's pleasantly simple and fast. The download frontend could still be improved somewhat; it could do with some sorting, searching and filtering and the download count isn't displayed anywhere yet, but I don't really have the time for that at the moment.</p>
<p>All in all I'm quite happy with the new site. I quite like writing my content in Markdown and there's not a bit of PHP left, which <a href="http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/">is for the best</a>.</p>
<p>Expect some more updates in the immediate future (though not necessarily regularly after that), I have quite some experiences to tell you about and a couple of opinions to share.</p>
<p>So long</p>
<p>Willi</p>On "GamerGate" and hateful people2014-09-14T11:58:00+02:00mrwonkotag:mrwonko.de,2014-09-14:blog/2014/on-gamergate-and-hateful-people.html<p>There's recently been some controversy about the objectivity of video
game reviews. My take on that? If you want objective game reviews, read
<a class="reference external" href="http://www.objectivegamereviews.com/">Objective Game Reviews</a>. But I
don't want objective game reviews, I'm fine with reviewers having
previous experiences and biases. Yes, tell me what <em>you</em> think about the
game. And please don't give me a score out of hundred, there's no way
you can rate anything that precisely. If you absolutely need a score,
make it out of five, but better yet, omit it altogether. That's why
gaming website of choice is <a class="reference external" href="http://www.rockpapershotgun.com">Rock, Paper,
Shotgun</a>, where the reviews are
called "Wot I Think" and have no scores. That, and the fact that I like
the authors and their style of writing.</p>
<p>So much for reasonable discussion and criticism. Sadly, that's not
really what the last weeks have been about. Instead, some people are
once again throwing around death threats on the internet, stealing
accounts, publicizing private information and being generally hateful. I
really don't get how anybody can be so vicious. I suppose it's a matter
of education, some people have very weird values.</p>
<p>And it's fairly widespread. You only have to read some comments on the
internet for an unhealthy dose of hate and stupidity. Personally, I just
get depressed really quickly and try to avoid reading comments these
days. There's only so much negativity I'm willing to expose myself to
when there are so many nicer things I could do instead and there's so
little to be gained from it.</p>
<p>This may be a good time to educate one of my readers. Here's a comment
for my last post which I chose not to approve:</p>
<blockquote>
I thought you were going to write a blog post twice a month. I knew
that was just talk.</blockquote>
<p>That's not particularly hateful, there's much worse, but what does that
comment achieve? The first half correctly observes that I haven't been
writing as much as I had once set out to, but the second sentence really
just turns it into an attack on me, doesn't it? It's not a comment that
invites any kind of useful discussion or provides helpful insight. I
reserve the right to moderate my comments and delete any I deem
unhealthy to the discussion. You are welcome to disagree with me, of
course, just don't be a dick.</p>
<p>Maybe this person meant to say "I thought you were going to write a blog
post twice a month. I was looking forward to your next post, please take
the time to write one soon, there are actually people who appreciate
it." That could have encouraged me to write one earlier. But as it
stands, the comment just has the potential to make me feel bad. Which
may be the intent, there are tons of trolls who thrive on angering
others, but I'm inclined to follow Hanlon's Razor here.</p>
<p>I just wish people were nicer to each other, even (or especially!) when
they disagree.</p>
<p>Peace,</p>
<p>Willi</p>
Extending the Scope2014-07-05T21:35:00+02:00mrwonkotag:mrwonko.de,2014-07-05:blog/2014/extending-the-scope.html<p>I just realized I should more often do things beyond just keeping a
journal on this blog. My life isn't really interesting enough for that
to be valuable to anybody, at least at the moment. Sure, when
interesting things happen to me that may be worth writing about... But
there's so much more I can write.</p>
<p>In particular, I should more often comment on things that matter to me.
Be it news, events, ideas, some game I've played, whatever. Sharing some
of my thoughts on different matters is probably more interesting than
what minor thing I've done this fortnight.</p>
<p>Of course I already do that to a degree. Briefly mentioning what I
thought of some game I've played and so on. I just think I should expand
on that.</p>
<p>I'll try to do that in the future.</p>
<p>So long,</p>
<p>Willi</p>
PlayStation 3 impressions & more2014-06-22T13:23:00+02:00mrwonkotag:mrwonko.de,2014-06-22:blog/2014/playstation-3-impressions-more.html<p>Another month has passed, which means I skipped one blog post. Oh.</p>
<p>So in the last post I talked about how I was writing a 2048 AI for a uni
coding competition with Marcus. It did well enough, placing 4th out of
15 in the end. We placed 1st in Lines of Code though (no, that was not
an actual category), having written more than everybody else combined.
Madness.</p>
<p>I also finally contacted Thrustmaster regarding my Steering Wheel which
broke half a year ago and got a replacement thanks to the warranty. Yay!
Too bad it's not supported by Gran Turismo 6... I have to get a G27 one
day. And Gran Turismo 6. Probably not in that order.</p>
<p>Which brings me to PlayStation 3 games. I've got quite a couple now; in
addition to the previously mentioned Demon's Souls, Red Dead Redemption
and Okami HD there's now also the Metal Gear Solid Legacy Collection,
Unfinished Swan, Little Big Planet 2, Heavenly Sword, the Devil May Cry
HD Collection, Lollipop Chainsaw, God of War 3 and Bayonetta, as well as
the recent Playstation Plus games. And Uncharted 1 will arrive soon.</p>
<p>You may notice a slight focus on Hack & Slash games - that's because I
enjoy them and there are quite some console exclusive ones. In general
you'll notice I'm only getting exclusives - I still prefer my games on
PC given the choice.</p>
<p>Of course I haven't started all those games yet, let alone finished
them. Well, I finished Metal Gear Solid 1 and 2, which were a lot of
fun, and have just started Metal Gear Solid 3. Which brings me to a
little rant: Why are there region specific PlayStation Stores? I'd very
much like that MGS5 Ground Zeroes discount, why do I have to be American
to get it?</p>
<p>That aside I'm quite happy with the PS3. It's also a better BluRay
player than PowerDVD 9 which refused to run when my rotated screen is
connected.</p>
<p>In the coming weeks I'll still be somewhat busy with Uni work. Besides
that I'd like to do some R&D regarding JIT compilation - for starters
prepare some machine code, allocate some executable memory for it at
runtime and execute it.</p>
<p>So long,</p>
<p>Willi</p>
Not happening any time soon? Humbug!2014-05-24T09:44:00+02:00mrwonkotag:mrwonko.de,2014-05-24:blog/2014/not-happening-any-time-soon-humbug.html<p>Remember how I said I wasn't going to buy a PS3 any time soon due to my
backlog on PC? Disregard that, I got one after all. Now happily playing
through Demon's Souls, Red Dead Redemption and Okami HD.</p>
<p>Besides that and the usual Uni work there's a programming competition
for students going on: Writing a 2048 AI. Marcus and I have entered and
we're now trying to win by breaking the game's RNG, which is
intentionally weak. And that's pretty much all that's happening.</p>
<p>So long,</p>
<p>Willi</p>
Non-Update2014-05-11T10:26:00+02:00mrwonkotag:mrwonko.de,2014-05-11:blog/2014/non-update.html<p>You may have noticed I skipped the previous blog post. That's really
just because nothing interesting has happened.</p>
<p>Well, there's Dark Souls 2, whose world doesn't quite reach Dark Souls'
quality but which is still a great game. I've finished it once so far
and will look into New Game Plus eventually, where there are supposedly
quite a few changes.</p>
<p>But other than that there's not much to talk about. I've been toying
with the idea of buying a PlayStation 3 due to the number of interesting
games not available on PC (like Demon's Souls), but then again I still
have lots of unplayed games on PC so that's not going to happen any time
soon.</p>
<p>So long,</p>
<p>Willi</p>
A MAZE 20142014-04-13T09:17:00+02:00mrwonkotag:mrwonko.de,2014-04-13:blog/2014/a-maze-2014.html<p>Hey everybody!</p>
<p>I really want to talk about the last couple of days, but first I'll talk
about the week before, just for the record. It began with the finals of
the <a class="reference external" href="http://www.dotacinema.com/">DotaCinema</a> Captain's Draft
tournament in Dota 2, where teams had to play less common heroes, which
led to some very interesting games. I bought tickets for that so I could
watch it in the ingame client and I'm quite happy with my purchase.</p>
<p>Later I visited the <a class="reference external" href="http://www.innogames.com/">InnoGames</a>
headquarters again - this time to get a tour of the offices themselves.
In general it seems like a nice place to work, with the possible
exception of the work itself. I don't know if I want to do
mobile/browser games... They are small though, so you experience a full
project in less time. I'll take a look at some other studios in the
coming weeks before I decide on where to do my internship and Bachelor
thesis.</p>
<p>Then I finally got around to working some more on the second uni
assignment for the holidays where I am to create a web interface using
the Google Web Toolkit together with another student. After a bit of
struggle I figured out how to properly persist objects in a database and
now it's just a matter of creating all the necessary pages.</p>
<p>Earlier this week I finished my other uni assignment, a boardgame port
in Delphi. Documentation took a little longer than anticipated, but
that's the way it usually is with just about everything. I still
finished in time. And then came Wednesday.</p>
<p>It's that time of the year again: Time for <a class="reference external" href="http://amaze-berlin.de/">A
MAZE</a>. This year it dropped the "Indie
Connect" from its title, but that's still what it's about; Indie
developers meeting up and connecting. So once again I found myself on
the 3.5h bus ride to Berlin. I did better research than last year and
took the bus that put me within walking distance of my hostel, straight
to the Ostbahnhof, instead of the ZOB on the other end of Berlin like
last year.</p>
<p>Some things have changed since last year - notably I have a Tablet and a
Nintendo 3DS now. I bought the latter last summer to see what all the
fuzz regarding Animal Crossing: New Leaf was all about, and shortly
thereafter got Legend of Zelda - Ocarina of Time 3D as a birthday
present. But I hardly played it since, only just reaching the first
dungeon. So I used the bus ride to play some more; I got past the
dungeon and met two faeries.</p>
<p>But let's talk about A MAZE. I first went there last year and met many
nice people, like Jana and Friedrich from <a class="reference external" href="http://ratking.de/">Rat
King</a>, <a class="reference external" href="http://sos.gd/">Sos Sosowski</a>, <a class="reference external" href="http://distractionware.com">Terry
Cavanagh</a> and Rami Ismail and Jan Willem
Nijman of <a class="reference external" href="http://vlambeer.com">Vlambeer</a>. It was great to see most
of them again - Terry and Rami weren't there, but most others were. Sos
is still as crazy as ever, I love that guy.</p>
<p>I also met a lot new people, which is great. I got to talk to <a class="reference external" href="http://www.sleepingbeastgames.com/">Henry
Smith</a>, whose game Spaceteam won
the A MAZE Award last year. He's been in AAA at Irrational and Bioware
before going Indie and shared some of his experiences; He thinks working
in the industry is a great experience, I'd just like to avoid the
contract clause which kept him from working on private projects in his
spare time - it's apparently pretty commonplace, but surely you can do
some negotiating when a developer wants you to work for them.</p>
<p>I also met Marius Winter of <a class="reference external" href="http://www.majorbueno.com/">Major
Bueno</a>, who I had wanted to talk to about
his experience at Double Fine for a while, so that was great, too. But
there was one utterly surprising meeting: I wear a "Hello, my name is
Willi/mrwonko" sticker, and somebody asked me about that. The guy was
called Robin and turned out to be a member of Killermic's startup,
<a class="reference external" href="http://klonk-games.com/">Klonk Games</a>. I know Killermic from my Jedi
Academy modding days - we were both part of the 3D-GET modding team,
where we worked on Spirits of the Sith for Jedi Knight: Jedi Academy.
Robin reminded me that we really need to finish that, and I agree. It's
about 80% done, and I can probably do 90% of the remaining 20% myself.</p>
<p>But A MAZE is not just about meeting cool people, there are also lots of
talks. I went to all of them, which was a great idea - sometimes you
don't know a talk interests you until you hear it. For example I didn't
know <a class="reference external" href="http://www.tale-of-tales.com/">Tale of Tales</a> were so
interesting, but now I really want to look into their games. I had heard
of them before, but never cared to investigate them. Not all talks were
surprises - I had imagined Sos' talk to be positively insane and got
exactly that; he talked about how A MAZE helped him find the motivation
to finish McPixel and did it in his unique Sos way. The talks were
filmed and should be available online soon.</p>
<p>Part of A MAZE is also the exhibition. I saw the
<a class="reference external" href="http://choosatron.com">Choosatron</a> which I had never heard of
before, but using a receipt printer as a console output is ingenious,
and I got to play a round of <a class="reference external" href="http://www.nidhogggame.com/">Nidhogg</a>,
which wasn't quite enough to learn about its nuances but sure was fun.
And I had no idea watching somebody play <a class="reference external" href="http://www.stanleyparable.com/">The Stanley
Parable</a> for the first time would be
quite as awesome. (She got the confusion ending first, and then played
it "properly.")</p>
<p>And lastly, A MAZE fills the evenings with parties. I don't usually
partake in that kind of activity, but since I'm around anyway A MAZE is
the one yearly exception. 3 evenings of dancing are fairly exhausting,
so by Friday my feet were killing me and my arms didn't like to be
raised anymore, but
<a class="reference external" href="http://havingfunwithrecords.com/kozilek/">Kozilek</a> still managed to
get me to dance. I had only just learned of him through Luftrausers, but
the music didn't quite compare - it was less chip and more bass. Well,
the speakers probably played a big part in that - most music will sound
more impressive with big, loud speakes.</p>
<p>My personal highlight as far as music goes was on Thursday. Just like
with games, it's nice to see the face(s) behind the music you hear, and
I had no idea <a class="reference external" href="http://chipzel.co.uk/">Chipzel</a> is a gal. I didn't
realize she actually makes her music with a Gameboy, either. And I
certainly didn't know she's so full of energy, jumping and dancing on
stage and loving what she does. Maybe I should go to parties and
concerts more often, it's great to be around happy people.</p>
<p>In general meeting people every now and then is nice. I learned about
two other places where I could do so: There's <a class="reference external" href="http://gamecity.org">Game
City</a> in England and <a class="reference external" href="http://www.gamearena.pl/pl/">Poznań Game
Arena</a> including the ZTG Game Developers
Convention in Poland, two countries I'd very much like to visit. I've
been to England before, but that was with family and friends and I
didn't get to experience much of the country. Maybe I should take a walk
with Ed Key or something...</p>
<p>On Saturday, after A MAZE was over, I met Florian Zender from
<a class="reference external" href="http://yager.de/">YAGER</a>, a AAA studio in Berlin, and had a nice
chat with him over a coffee/hot chocolate. We talked about a great many
things more or less related to game development and had a good time. I'm
happy to have met him, the time I'm spending contacting people from the
games industry is paying off.</p>
<p>So that's been my trip to Berlin. Now I'm sitting in the bus back to
Hamburg, writing this blog entry. Exhausted, but happy. I missed the
first 3 days of university due to the trip, but it's been worth it.</p>
<p>In the next two weeks I'll be fairly busy with uni work, I have three or
four assignments now. I'm also going to continue my networking
endeavors, I'd love to talk to somebody from <a class="reference external" href="http://rockfishgames.wordpress.com/">Rockfish
Games</a>.</p>
<p>And I also just found out I enjoy audio books; they're somewhat more
convenient than regular books since you can close your tired eyes while
consuming them in bed.</p>
<div class="line-block">
<div class="line">So long,</div>
<div class="line-block">
<div class="line">Willi</div>
</div>
</div>
It's jammed!2014-04-01T13:05:00+02:00mrwonkotag:mrwonko.de,2014-04-01:blog/2014/its-jammed.html<p>So I did not write this update on Saturday. What happened?</p>
<p>The InnoGames Game Jam happened. I joined a group of artists and spent
Saturday morning to Sunday noon coding nonstop. 3.3KLOC later we had <a class="reference external" href="https://github.com/mrwonko/IGJam6Platformer">a
simple platformer</a>.</p>
<p>It only came together in the last hours and still lacked the enemies and
collectibles. Why? Because I still haven't really looked into premade
engines, instead resorting to coding everything myself. I either need a
personal codebase that I can reuse or get into some engine.</p>
<p>But on the bright side I finally got to write a component based entity
system, something I had wanted to do for quite a while. Worked out okay,
but I'm wondering if something like Haskell's Typeclasses might be
better. With C++14 and Concepts something similar may be possible, but
I'm not sure what to think about template-based entities... Either way
gamejams are a great place to do these weird experiments.</p>
<p>So I got to use some C++11, especially Lambdas and std::function for
callbacks and unique_ptr and shared_ptr - although I probably overused
the latter to "fix" my order-of-destruction problems. And I already made
extensive use of another C++11 feature last week: Variadic templates.</p>
<p>How so? I wrote a small library for function call
serialization/deserialization, which I dubbed
<a class="reference external" href="https://github.com/mrwonko/SimpleRPC">SimpleRPC</a>. It doesn't care
about endianness because it's meant for local inter-process
communication.</p>
<p>Why would I need that? Because the GPL is impractical. I see its point
and kind of support it - in a perfect world it would be the ideal
license. But we don't live in a perfect world and some functionality is
only available in proprietary, GPL-incompatible libraries. In order to
be able to use those inter-process communication is necessary. It's
still against the spirit of the GPL I suppose... Oh well. For the most
part I was just interested in coding the library, I don't know if I'll
actually use it.</p>
<p>So what's next? I still have some Uni work to finish this week, and next
week I'll go to A MAZE in Berlin. If I have time for anything else I'll
probably continue my work on OpenJK cleanup.</p>
<p>So long,</p>
<p>Willi</p>
OpenJK for the win!2014-03-15T09:31:00+01:00mrwonkotag:mrwonko.de,2014-03-15:blog/2014/openjk-for-the-win.html<p>Small update on my exams: The remaining results are in and they did
indeed go as smoothly as it seemed at the time. That's good.</p>
<p>But what about my Uni projects? I said I'd like to finish at least one
of them in the past two weeks. In the beginning it went well enough and
progress was made. Then, whilst hanging out in the Jedi Academy Coder
channel #jacoders on the irc.arloria.net IRC server I was reminded that
I had once said I'd be interested in writing a new renderer for
<a class="reference external" href="https://github.com/JACoders/OpenJK/">OpenJK</a> so there was still a
name reserved for me and I was asked if that was still going to happen.</p>
<p>You may remember how I wrote I'd like to do some graphics programming
last week. So hell yeah, of course I was still going to write that
renderer! Bring it on!</p>
<p>Except OpenJK is not quite in a state where that can happen yet. Well,
it's technically possible, but right now there's still a lot of code in
the renderer that doesn't quite belong there or should at least be
shared between all renderers. Also, the Jedi Academy code base is split
in two, one for SP and one for MP. That's a lot of code duplication, and
this currently extends to the renderer, although the differences are
minimal. In short, some cleanup is due.</p>
<p>And now I'm the one who's cleaning. Which sounds less satisfying than it
is, because the result is worth it. I'm basically working on making
renderers easier to write and having a single one across MP and SP, as
well as getting rid of some Windows-related code in favor of SDL, which
is already used on unix anyway. In the end I'll profit by not having to
write my new renderer twice.</p>
<p>It's just that the uni stuff is not getting done as quickly as I had
hoped. Let's get to that in the coming weeks, eh?</p>
<p>So long,</p>
<p>Willi</p>
Exams: Done.2014-03-01T11:16:00+01:00mrwonkotag:mrwonko.de,2014-03-01:blog/2014/exams-done.html<p>My exams went pretty smoothly, as far as I can tell. They're not all
graded yet. How much I learned for them varied quite a bit, but in total
it was probably above average for me. It helps that I'm good at making
out high value targets: What's easily learned that will score me many
points?</p>
<p>Still, I did not learn as much as I had originally planned. I did keep
up the Cello practice and learning Russian though. I can find roughly a
quarter of the Cyrillic keys on the keyboard now. And my sleep patterns
are mostly as planned as well.</p>
<p>Now I have almost 6 weeks until the next semester's lectures start. I'll
miss the first 3 days of those due to <a class="reference external" href="http://amaze-indieconnect.de/">A MAZE
Berlin</a>, which I'm going to visit once
again. Maybe I should program a small game to show there? Which brings
me to how I'm going to spend the coming weeks.</p>
<p>First and foremost I have 3 university projects I need to do: A Delphi
port of a board game (which looks interesting algorithmically), a
database web interface with GWT (which I don't think I'll find
particularly enjoyable or satisfactory) and preparing a talk on Reverse
Engineering (which is something I'm interested in, that's why I chose
that topic for my talk). They pretty much all need to be done by April.</p>
<p>The talk is related to an old project: Over a year ago I started
reverse engineering FlatOut 2's level format. I didn't finish that, but
that's something I'm still very interested in. I'd love to have a level
editor for FlatOut 2, so I may try creating one. I probably legally have
to, actually, since to my knowledge Reverse Engineering is illegal in
Germany unless it's for interoperability that can't be achieved
otherwise.</p>
<p>Another project I'd like to do is related to my admiration for the
Millennium Falcon. And spaceships in general. I'd love a multiplayer
space ship game where you and your friends walk around a small spaceship
(like the Falcon, but Disney wouldn't like that), pilot it and man the
turrets, possibly do repairs etc. Originally I had thought of the ships
in The Matrix when I conceived this project (inspired by Enter The
Matrix), but then I remembered I love Star Wars. But I actually can't
use either of those franchises without fear of legal trouble.</p>
<p>I find that interesting in terms of gameplay, but also and especially
graphically. I've been thinking about a lot of graphics effects lately.
I want to write a deferred renderer, I want to implement light rays and
normal maps and so on. And I wonder just how detailed a spaceship
today's computers could render.</p>
<p>Well, that's a mighty big project. The upside is that if I keep
practicing modelling throughout the whole project I might actually be
able to create as cool a space ship as I want by the end. But that's
just me dreaming. Shouldn't I finish Spirits of the Sith, that Jedi
Academy SP mod, first? Probably.</p>
<p>Well, let's get back to the near term. In the coming 2 weeks I want to
work on the uni projects - I should be able to finish that web interface
and probably the board game as well. If I actually work on them. Here's
hoping.</p>
<p>So long,</p>
<p>Willi</p>
The Essentials2014-02-17T15:06:00+01:00mrwonkotag:mrwonko.de,2014-02-17:blog/2014/the-essentials.html<p>As you may have noticed, I haven't written much recently. It's similar
in other areas - I code little, I learn little, I don't get much done.
That's what it used to be like.</p>
<p>I'm finally changing that. Last year I stumbled upon <a class="reference external" href="http://www.iwillteachyoutoberich.com/">Ramit Sethi's
website</a>. I read some of his
blog posts and subscribed to his newsletter. He writes on becoming a
top-performer and all the things that encompasses. A lot of his material
he releases for free, but he makes his money through selling courses.
The idea being that his free material convinces you he knows what he's
talking about so you buy his courses. And that works: I bought his
course on finishing what you start.</p>
<p>So what did I learn? A lot of things, some of them common sense and none
of them things I couldn't have learned elsewhere, but the point is that
you don't know where to look and once you find something you don't know
if it will succeed. The problem is not the availability of information,
it's that there's so much of it and most of it is of little use. So I
appreciate someone taking the time to research this stuff for me.</p>
<p>One important thing is focusing on the important things. There are many
things I could be doing but which are worth doing? One interesting
metric is "how many people (can) do this?" The rarer a skill is, the
more valuable it is. I won't stop reading and answering the forum posts
on <a class="reference external" href="http://jkhub.org/">JKHub</a> anytime soon for this reason: There are
very few people with my knowledge of Jedi Academy modding so I'm
providing a valuable service.</p>
<p>It's also good to be aware of your fears (f)or they will guide you. I
realized the reason I follow so many news feeds and people on twitter
and why I read reddit is due to fear of missing out. What if something
interesting happens? Well, what then? I may miss it, big deal. Thinking
back, there's rarely anything I can remember later so there's evidently
not so much of importance after all.</p>
<p>If I have to check the news, I should value quality over quantity,
keeping only those that genuinely entertain or enlighten me. Like <a class="reference external" href="http://rockpapershotgun.com/">Rock,
Paper, Shotgun</a> or the <a class="reference external" href="https://www.idlethumbs.net/idlethumbs/">Idle Thumbs
podcast</a>. And only check
those at set times, I don't need to be notified every time a new post is
released, even if the hourly publishing of articles on RPS very much
encourages it. Same for email notifications. They're all just
distractions. When do I ever need to answer an email immediately?
Rarely, if ever.</p>
<p>Another powerful tool is scheduling something for a specific time. I
learned (both in the sense of being told and experiencing) that I'm much
more likely to do something that way than by just having a deadline, or
not even a deadline and just having the vague idea that I should do it
at some point. And if I keep doing it at the same time for long enough
(and ideally reward myself for doing it so I'm more inclined to) it'll
eventually turn into a habit (and I won't need the reward anymore).
Habits are a great thing since I don't need to think about them so they
take less effort. And since my (and everybody's) energy and willpower
are limited, minimizing effort is the way to go. That's also why habits
should be built one at a time.</p>
<p>I don't really do that though. I want to change way too much at once.
The problems are already showing: I don't learn as much for uni as I
scheduled. I do stick to some parts of my schedule though, and once
those have become habits I can look for more. So far I'm standing up and
going to sleep early and doing regular cello practice and Russian
lessons. Learning for uni and coding don't get quite so much attention
yet.</p>
<p>Wait, Russian? So yeah, that's mostly due to often having Russians and
Ukrainians in my Dota 2 games and wanting to be able to communicate with
those that don't speak English. I don't have much use for it elsewhere.
Well, I could experience the Metro books and games in Russian. At any
rate, learning new languages is a good exercise for the brain so I don't
think it's time wasted. Provided I keep it up until I get results.</p>
<p>So far I can read the Russian Cyrillic alphabet, albeit not very fast,
and I'm now learning the keyboard layout. That turned out to be quite
important when I wanted to start learning the actual language and found
myself helplessly pressing all the keys when trying to write something.
And <a class="reference external" href="https://en.wikipedia.org/wiki/Negative_transfer_%28memory%29">negative
transfer</a>
(also known as "damn you, muscle memory!") is making it hard: For
example there's the letter н: It's pronounced N and to write it I have
to tap Z (since I have a German keyboard). The N key writes т instead,
which at least is pronounced the way you'd expect. And that goes on and
on...</p>
<p>On the upside I now know why ХВОСТ is pronounced the way it is. And
there are a couple of words you can understand just by knowing the
alphabet since they're practically the same otherwise. We'll see how it
goes.</p>
<p>So while I'm building lots of habits I think it's a good idea to also
make a habit of posting more often. So expect bi-weekly posts on
Saturday from now on.</p>
<p>So long,</p>
<p>Willi</p>
Wait, e-books?2013-11-25T11:08:00+01:00mrwonkotag:mrwonko.de,2013-11-25:blog/2013/wait-e-books.html<p>As is evident bys the last post I just reviewed an e-book. Well, it's
also available on paper, but my review copy was an e-book. So, did I
start reading books on my computer's screen? You might think so, after
all I already use it to read long articles and way too much reddit
(especially lately), but no, I'm not going to read entire books on it.
Actually, I got a tablet.</p>
<p>Let's go back in time a bit. It's the end of August and I hear of a
<a class="reference external" href="http://lmpicnic.tumblr.com/">local multiplayer picnic</a> on October
19th in Utrecht, Netherlands. (In a local multiplayer picnic people
bring their local multiplayer games and play them together/against each
other.) I've had the pleasure of being part of one at A MAZE Indie
Connect back in April and it was a lot of fun. (That's where I learned
of <a class="reference external" href="http://maxistentialism.com/samuraigunn/">Samurai Gunn</a> and <a class="reference external" href="http://sportsfriendsgame.com">Super
Pole Riders</a>.) So I decide that I
should totally go. It's in the lecture period but hey, it's a weekend,
two days are plenty: One day for the picnic and one day to check out
Utrecht.</p>
<p>Except the picnic isn't until the evening. First, there's a 6h game jam
whose results are to be played. I guess I need a computer for that, eh?
But since I never really needed a laptop I don't have one... But wait,
what about these new tablet things? I could probably use one for uni,
browsing and typing on the phone is pretty awkward. And they support
external keyboards and even gamepads and some even have hdmi output, so
it should be possible to create and play games on them. Hey, that's
basically an Ouya you can code on!</p>
<p>So I went ahead and got a tablet. Most people told me to just get a
Nexus 7, but I didn't for 3 reasons:</p>
<ol class="arabic simple">
<li>It has no HDMI output</li>
<li>It has no microSD slot</li>
<li>It's only 7" and I'd much prefer 10"</li>
</ol>
<p>So I went for a cheap Chinese one instead and got the Ainol Novo 9. It
has miniHDMI, microSD, USB, a separate port for charging (which is nice
if you want to connect USB devices while charging it) and a glorious
2048*1536 9.7" display. The display's downside is that it consumes a
lot of power. And the touch screen reacts pretty slowly, much like the
one in my Xperia U. Performance in general is somewhat weak, switching
apps takes longer than I'd like and some games stutter horribly, though
the latter may just be due to bad coding.</p>
<p>(By the way, I'd much rather have an x86 tablet, but money.)</p>
<p>Unsurprisingly, I didn't finish the app in time. It would've probably
been possible but not for me. I did enough R&D to know that everything I
needed was possible but never got much further. But coding on a tablet
probably would've felt horrible anyway, even with a keyboard. Or that's
what I tell myself anyway.</p>
<p>À propos feeling horrible: I chose to travel to Utrecht by sleep train.
The idea: get in the train on Friday/Sunday evening, sleep, arrive at
Saturday/Monday morning. Worked out well, except for the sleep part. It
was loud and uncomfortable so I barely slept, especially on the way
back.</p>
<p>I also got to experience the typical delays of the Deutsche Bahn: On the
travel there I had to wait an additional 30 minutes for the train to
arrive in the first place, and it somehow managed to accumulate a delay
of 2h. It was then announced that we'd simply skip the Ruhr area
completely and the train arrived in Utrecht on schedule, albeit without
anybody who would've gotten onto the train in or near Cologne. The
journey back also took 30 minutes longer than it was supposed to.</p>
<p>Utrecht itself on the other hand was very pleasant. I quickly found the
Dutch Game Garden where the jam/picnic took place and got a lent laptop.
A team then asked me to join them and I ended up modelling. Not what I
do best, but then again we were using Unity so I couldn't have coded
anyway given the limited time and my lack of Unity experience.</p>
<p>An aside: I have an irrational dislike for Unity which may be based on
the fact that it looks more like a level design tool at first glance. So
I never quite got into it. I'm somewhat reluctant to use engines in
general. I recently read this:</p>
<blockquote>
<p>Give a man a game engine and he delivers a game. Teach a man to make
a game engine and he never delivers anything.</p>
<p>~
<a class="reference external" href="https://mobile.twitter.com/sandbaydev/status/403219167236857856">@sandbaydev</a></p>
</blockquote>
<p>There's truth in it and I'm afraid I'm past the point of return. I want
to do everything myself instead of using a full engine. That's way more
interesting. It's also way more work.</p>
<p>But thankfully I was not in charge of programming so we did actually
finish the game in time. We then proceeded to play each other's games.
JW (half of <a class="reference external" href="http://www.vlambeer.com">Vlambeer</a> and one of the
organizers of the event) created a local multiplayer version of
Luftrausers mixed with Super Smash Brothers ("Luftbrothers", I think)
and Tomasz Kaye brought his Flock Lords prototype. (Frankly the only
thing I can find about it on the Internet is <a class="reference external" href="http://www.gamedev.net/page/showdown/view.html/_/tomasz-kaye-r12647">this
image</a>.)
Samurai Gunn was also playable, it's still as fun as ever, and then
there were all the other games created during the jam.</p>
<p>So Saturday was satisfying and I spent Sunday exploring Utrecht - it's a
nice city with an impressive cathedral. I found out that unlike in
Germany shops in the Netherlands are open on Sundays and spontaneously
bought a couple of blurays, including Drive since Hotline Miami's
creators are quite fond of it. I've yet to watch it though so I can't
give you my impressions yet. Hmm, I should probably do posts on movies
I've watched...</p>
<p>So that was my trip to Utrecht. What remains is the tablet. I didn't
actually use it to program games, so what do I use it for? Well, there's
the browsing at uni. I'm actually there right now, writing this on my
tablet with an external keyboard between lectures. Also e-books. I
haven't started reading any yet - I still have a couple of old-fashioned
paper books that need reading first and I'm not really making progress
on those either - but I already downloaded a bunch of books from the
public domain. The one thing I actually take the time to read are
comics. Incidentally that's where the big high resolution display
shines.</p>
<p>Another thing I plan to do but haven't gotten around to is code a
tabletop rpg app. Having the character sheets digitally would make it
easier for the gamemaster to discreetly check somebody's stats and
simplifies changes. Add to that easy drawing of maps, then moving
characters around in there. It could also be used for playing over the
Internet, which would be convenient since one of my friends has moved
and we rarely see each other. I'll hopefully give this a shot in QtQuick
some day.</p>
<p>And that's the story of how I got a tablet and what I do with it.</p>
<p>So long,</p>
<p>Willi</p>
Review: SFML Game Development2013-11-10T15:19:00+01:00mrwonkotag:mrwonko.de,2013-11-10:blog/2013/review-sfml-game-development.html<p>A while ago I was contacted by Packt Publishing. They were looking for
"SFML professionals" to review a book they had published and I assume my
activity on the SFML forums and bug tracker convinced them I fit the
bill. So I got a free sample and a request to review it. I don't get
anything except the ebook out of this.</p>
<p>With that out of the way, let's talk about the book! It's aptly called
<a class="reference external" href="http://www.packtpub.com/sfml-game-development/book">SFML Game
Development</a> and
is about exactly that. So, what is SFML? It's the cross-platform <a class="reference external" href="http://sfml-dev.org">Simple
and Fast Multimedia Library</a> for C++ that lets
you easily create windows, handle their events, do 2D graphics (while
allowing you to do 3D graphics using OpenGL), sound, networking and
multithreading. I've used it in numerous small projects and some
medium-sized ones and would recommend anyone starting out making games
in C++ to use it. I may personally be switching over to
<a class="reference external" href="http://qt-project.org/">Qt</a> because it's more powerful, but it's
hardly as Simple and Fast so I don't recommend it to beginners.</p>
<p>So that's SFML. You may want to use it. The book aims to teach you how.
What it does not teach you is C++, and rightly so, because that's a
topic worthy of its own book, and sure enough there are plenty. (I don't
know any beginner's books on C++ though since I've mostly learned
through mentors so I can't recommend any. Once you're intermediate check
out Scott Meyers.) Well, that's not entirely true. C++ recently received
a much appreciated makeover, C++11 (as in 2011). A lot of cool new
features were added and the book introduces some of them where it makes
sense, explaining what they do and why they're useful. I really liked
that since I had not previously looked into C++11 in depth.</p>
<p>But I liked the rest of the book as well. It iteratively adds onto the
same game (a Shmup), resulting in a playable prototype at the end of
each chapter. All of SFML's major components are used and explained, but
you could just read the API documentation to learn about those. No, the
important thing is that you learn how to build a game with them: Yes,
just loading a texture is fairly simple, but how do you manage all the
textures in your level? Drawing a sprite is easy, but what's a
reasonable way of storing them for easy manipulation? How do you make
the keys customizable? How do you manage multiple states like menus, the
game itself and a pause screen? The book's so helpful because it answers
these questions in addition to teaching SFML.</p>
<p>One thing to keep in mind is that there are often multiple solutions to
a given problem. When the book presented Entity hierarchies as the way
to go I thought to myself: "Yes, they work for simple games like this
one, but once the hierarchy grows you run into all kinds of trouble. A
component-based system might be better in some cases." But then sure
enough the next paragraph explained that hierarchies aren't the only way
and mentioned component-based systems as one alternative. And that's not
the only place where the book mentions alternatives, there are multiple
links to further material for those interested. Being aware of ones
limits is important and this book certainly is aware of them and makes
you aware, too. Take shaders, for example: It explains them on a high
level but does not go into explaining the rendering pipeline, that's
simply outside of the book's scope, and that's okay since it's open
about it.</p>
<p>So in conclusion what makes this book valuable is not that it teaches
you how to use SFML, but how to program a game with it. And it's also a
nice introduction to some of C++11. If you know C++ and want to make
games with it, this is probably the book for you.</p>
University Summer Semester 20132013-10-01T14:31:00+02:00mrwonkotag:mrwonko.de,2013-10-01:blog/2013/university-summer-semester-2013.html<p>So what happened in Uni last Semester, the 4th one? Nothing
extraordinary, I still don't lag behind and pass my exams... mostly. In
3rd semester I even started hearing lectures before their designated
semester since they fit my schedule and I had few exams. I continued
doing so, resulting in a somewhat calmer 5th and 6th semester.</p>
<p>Last semester, I decided to hear Computer Graphics 1 early. My course,
Computer Science, usually does not include Computer Graphics 2, so I
took CG 1 early so I can voluntarily hear CG 2 this semester. I learned
some decade old OpenGL 1.2 and how Raytracing is so much simpler, as
well as some theoretical equations.</p>
<p>I also wrote the CG 1 exam. Remember those theoretical equations I
talked about? I didn't. Having programmed in OpenGL since 2005 I was
fairly confident and lazily didn't learn much. And that's how I failed
an exam for the first time. I've got two more tries so I hope this will
serve as a wake-up call. It's a good thing I wrote it early, this way
I'll still be done in time.</p>
<p>You see, I have this "good enough" attitude where I tend to do as little
work as possible. I could do so much better, since I'm not really having
trouble to begin with. I prefer to have more spare time, apparently...
Which would be okay if I used it to make stuff that could go in my
portfolio or otherwise help me grow, but I spend way too much time
surfing and playing Dota 2. Well, Dota 2 is fine, but I have so many
projects I'd like to be finished and I'm doing so little to finish them.
And then there's all the planned future projects...</p>
<p>So yeah, tl;dr: I need to get my priorities straight. Be more
disciplined. Work towards my goals.</p>
<p>Willi</p>
A MAZEing!2013-10-01T12:37:00+02:00mrwonkotag:mrwonko.de,2013-10-01:blog/2013/a-mazeing.html<p><a class="reference external" href="http://mrwonko.de/blog/legacy/DSC_0004_sm.jpg"><img alt="The venue where A MAZE took place" src="http://mrwonko.de/blog/legacy/DSC_0004_sm-300x168.jpg" /></a></p>
<p>I went to Berlin for the first time in my life this April. The reason?
<a class="reference external" href="http://www.amaze-indieconnect.de/">A MAZE. Indie Connect</a>, a small
indie developer conference. Turns out there's a cheap bus from Hamburg
to Berlin and a cheap hostel close to the venue (the Industriepalast
Hostel, which was quite nice), so it wasn't particularly expensive
either. In fact it was quite worthwhile. As was the smartphone I finally
got for the occasion, an Xperia U. Not overly powerful, but it has
served me well so far.</p>
<p><a class="reference external" href="http://mrwonko.de/blog/legacy/DSC_0037_sm.jpg"><img alt="I did better than I do on my phone" src="http://mrwonko.de/blog/legacy/DSC_0037_sm-300x168.jpg" /></a></p>
<p>There were a lot of talks during the day and many games were on
exhibition. I met <a class="reference external" href="http://sos.gd/">Sos</a> of McPixel fame, JW and Rami
from <a class="reference external" href="http://vlambeer.com/">Vlambeer</a> and lots of other nice folks. I
got to player C64nabalt, a Canabalt Demake for the C64 (my first
encounter with the system), Vlambeer's Luftrausers and many other games,
but two games left a bigger impression than the rest.</p>
<p>The first one was played during the Local Multiplayer Picnic we had one
evening: <a class="reference external" href="http://maxistentialism.com/samuraigunn/">Samurai Gunn</a>.
It's still in development but even in its unfinished state it was
already a lot of fun. Didn't even feel unfinished. You're a samurai with
a sword and a gun with 3 shots. 1 hit kills. Fast paced 2D platforming
deathmatch with an awesome showdown in case of a draw. Lots of fun.</p>
<p>The other game was an experimental project by a couple of students:
Stille Tänzer. The idea? Get a couple of people together, give 'em
Headphones, play music to them and let them dance. Then, unbeknownst to
everyone else, turn off somebody's music. If someone rightly accuses you
of having no music, you're out, otherwise they're out. It was somewhat
lacking in feedback, but the general idea is great. They had a pretty
elaborate setup with multiple wireless headphones and a DJ; Hardware
instead of software, basically. But thinking about it I realized it
would be a perfect fit for smartphones: They're very common - unlike
wireless headphone and hardware to control multiple of them
independently - and they have WiFi and audio-out jacks, so given an
appropriate app a lot could be automated. I may look into this once I'm
done with my other current projects, of which there are many.</p>
<p>Willi</p>
Oculus Rift2013-10-01T11:25:00+02:00mrwonkotag:mrwonko.de,2013-10-01:blog/2013/oculus-rift.html<p>I'm easily sold on innovative technology, apparently. 2 years ago I
bought the Razer Hydra because it seemed like a cool idea. Precise
absolute 6DOF tracking? Yay! Think of all the cool things I could
program for that! Intuitive modelling, lightsaber wielding and much
more! In the end I never actually used it much...</p>
<p>So in early April, when the first Oculus Rift developer kits had been
shipped, I got pretty hyped. Another technology with potential! Virtual
reality! I totally need to support that! And that's the story of how I
bought a devkit.</p>
<p>It arrived in early August and needless to say I haven't used it much so
far. Or made anything for it. I don't really regret getting it, but that
may just be the post-purchase-rationalization speaking. Well, here's
hoping it'll be of some use to me in the coming year, before the
consumer version is out, because otherwise I should've just waited for
that.</p>
<p>Willi</p>
It's been a loooong time... again.2013-09-01T10:46:00+02:00mrwonkotag:mrwonko.de,2013-09-01:blog/2013/its-been-a-loooong-time-again.html<p>So once again it's been over half a year since I last wrote something. I
originally planned to write a wall of text, but just as nobody would be
bothered to read that I couldn't be bothered to write it. So I'll write
multiple small entries instead.</p>
<p>After reading advice on keeping a journal so I can later look back at my
life I realized that this is very much that, so yay me for blogging, eh?
If only I'd keep it up. Like so much else. I tend to procrastinate,
unfortunately. For example I've meant to start writing down my knowledge
on Jedi Academy modding for about a month now. Alas, I still haven't
done it. I'm probably amongst the most knowledgeable Jedi Academy
modders and a lot of the old tutorials are no longer available so I
should get to it. Well, first I'll try to update this blog.</p>
<p>Willi</p>
Jedi Academy source code!2013-04-04T22:02:00+02:00mrwonkotag:mrwonko.de,2013-04-04:blog/2013/jedi-academy-source-code.html<p>I was going to write a long post about this, but I'm really to busy
poking around in the code. Jedi Academy and Jedi Outcast's full source
code was just released! This makes me very happy, obviously!</p>
<p>"Official" community repo is
<a class="reference external" href="https://github.com/Razish/OpenJK">here</a>, although the maintainer is
currently offline so it's still in a broken state - Raven got their code
mixed up and accidentally released the XBox version in jediAcademy.zip,
which is currently in the repo. jediOutcast.zip contained the Jedi
Academy PC code, and JK2 code was missing altogether.</p>
<p>So now we can do anything. Personally looking forward to Oculus Rift
support most.</p>
inter-semester holiday - time to work?2013-01-29T13:41:00+01:00mrwonkotag:mrwonko.de,2013-01-29:blog/2013/inter-semester-holiday-time-to-work.html<p>So my last lecture was last Thursday. That means I get over 2 months of
holiday, ending early April. A lot of time, I told myself beforehand.
Surely I can finish a lot of work!</p>
<p>Here's what I've done so far:</p>
<ul class="simple">
<li>Played quite some Dota 2</li>
<li>Finished my first run of The Cave</li>
<li>Finished DmC - Devil May Cry, which was surprisingly good, I'll
likely give it another go at Son of Sparda Difficulty</li>
</ul>
<p>And here's what I had planned to do:</p>
<ul class="simple">
<li>None of the above (with the possible exception of DmC)</li>
<li>Write a Blender Plugin for a friend</li>
<li>Improve my Blender Ghoul 2 Plugin</li>
<li>Write documentation for my Blender Plugins</li>
<li>Update my Python Bindings of the Sixense SDK to Python 3.3</li>
<li>Write a game for Uni (I missed the deadline for the previous one, but
since I had hardly that wasn't so bad and I like the new task better
anyway)</li>
<li>Learn for the exams (the first ones will be next Thursday and Friday,
I should get going)</li>
<li>Finish Reverse Engineering Flatout 2's level format so custom maps
are possible - a friend of mine will join me after the exams</li>
<li>Help <a class="reference external" href="https://github.com/dmead/jkaq3">iojamp</a></li>
<li>Finish <a class="reference external" href="http://sots-dev.3d-get.de/">Spirits of the Sith</a></li>
<li>Write that Turn-Based FPS I originally wanted to do for
<a class="reference external" href="http://7dfps.org/">7DFPS</a> - but do it as a Source Mod (that is,
using the Source Engine)</li>
</ul>
<p>In conclusion: I'm still a lazy bum. Woe is me! On the bright side, I
now have an idea why I don't do this stuff I actually kinda like. It's
probably because there's no (immediate) reward and/or because I'm too
impulsive, surfing or playing Dota instead. (Compare <a class="reference external" href="http://lesswrong.com/lw/3w3/how_to_beat_procrastination/">How To Beat
Procrastination</a>.)</p>
<p>On the bright side the holiday is far from over, so I might still get
some of this done. I'll have all the time in the world since my
application for a job at Daedalic got rejected - they don't want working
students. Oh, and I haven't coded anything for <a class="reference external" href="http://www.onegameamonth.com/">One Game A
Month</a> so far, so it looks like I'll
fail that as well.</p>
Christmas holiday - time to work?2013-01-03T01:24:00+01:00mrwonkotag:mrwonko.de,2013-01-03:blog/2013/christmas-holiday-time-to-work.html<p>So Christmas happened. That means I get/got two weeks of holiday,
starting Christmas and ending next weekend. A lot of time, I told myself
beforehand. Surely I can finish a lot of work!</p>
<p>Here's what I've done so far:</p>
<ul class="simple">
<li>Finished Gemini Rue. Great story!</li>
<li>Finished Max Payne 3.</li>
<li>Got myself a Steering Wheel so racing games are more fun, and played
some. It's nice, but gets in the way when trying to use the keyboard.</li>
<li>Played boardgames with friends. Great fun!</li>
</ul>
<p>And here's what I had planned to do:</p>
<ul class="simple">
<li>None of the above</li>
<li>Write a Blender Plugin for a friend</li>
<li>Improve my Blender Ghoul 2 Plugin</li>
<li>Write documentation for my Blender Plugins</li>
<li>Update my Python binding of the Sixense SDK (for the Razer Hydra
motion controller) to Python 3.3 (which probably requires recompiling
Boost.Python - how I loathe that!)</li>
<li>Write a game for Uni (that's supposed to be finished by the 14th -
guess I won't be making that this Semester)</li>
<li>Do some other Uni work (some of which is supposed to be done ASAP, at
the very last before next Monday, some by the 17th, some by the 18th)</li>
<li>Finish Reverse Engineering Flatout 2's level format so custom maps
are possible</li>
<li>Get a coding job, maybe at Daedalic</li>
</ul>
<p>In conclusion: I'm a lazy bum. Woe is me! It's not like I really dislike
any of the above, so I'm not even sure why I don't do it.</p>
<p>So, does that lead to any resolutions for the new year? I... don't know?
Maybe? I could participate in <a class="reference external" href="http://www.onegameamonth.com/">One Game A
Month</a>, it's really in my best
interest. And how about another handy To-Do list of things I want to get
done this year?</p>
<ul class="simple">
<li>All of the above</li>
<li>Help <a class="reference external" href="https://github.com/dmead/jkaq3">iojamp</a> by writing a Ghoul 2
renderer</li>
<li>Finish <a class="reference external" href="http://sots-dev.3d-get.de/">Spirits of the Sith</a></li>
</ul>
<p>Here's to another year of not getting as much done as I'd like.</p>
<p>So long,</p>
<p>Willi</p>
Frog Fractions is great, too, if totally differently.2012-10-24T23:31:00+02:00mrwonkotag:mrwonko.de,2012-10-24:blog/2012/frog-fractions-is-great-too-if-totally-differently.html<p>Go play <a class="reference external" href="http://twinbeardstudios.com/frog-fractions">Frog Fractions</a>.</p>
Dishonored is actually great!2012-10-12T22:52:00+02:00mrwonkotag:mrwonko.de,2012-10-12:blog/2012/dishonored-is-actually-great.html<p>Just a quick followup on my thoughts on the Dishonored Gamescom demo,
which left me a little underwhelmed: After playing the full game for 2h
I'm much more excited. It's a beautiful world, which a 15 minute demo
can hardly convey.</p>
<p>Update: 40 hours of Dishonored later I can safely say my initial
impression was correct. A wonderful game. No, I did not spend all that
time on a single playthrough, the first one took me about 20h, but
shouldn't a game's length take multiple playthroughs into account?</p>
7 Day FPS2012-10-07T21:44:00+02:00mrwonkotag:mrwonko.de,2012-10-07:blog/2012/7-day-fps.html<p>Just though I'd write a quick post about my 7dfps Challenge experience.
One week in June, based on an idea by Indie Jwaaaap of Vlambeer, people
were challenged to create a First Person Shooter in 7 days, and I
participated. Evidently I didn't make it.</p>
<p>Let's start from the beginning. I started thinking about a possible
project beforehand - my first idea was a Razer Hydra motion control
based shooter where your hand movement would be mapped to weapon
control, allowing you to shoot around corners, over cover, dual wield
pistols or do the actual shotgun reloading motion. I decided to use my
WIP Jedi Academy recoding project - a lot of the things I'd need for
that FPS were things I'd need anyway, like 3D rendering and physics. And
I thought if I wanted to have any chance at getting the actual game done
within a week I should get some of the systems in a working shape
beforehand, like the rendering or the physics.</p>
<p>So naturally I did none of that and spent most of the week coding 3D
rendering. But my plans had changed: In the 7dfps IRC channel I had
jokingly suggested a turn-based FPS, then thought about it and realized
I was talking about <a class="reference external" href="http://www.frozensynapse.com/">Frozen Synapse</a>
in first person, which seemed awesome on paper: A shooter where
everybody simultaneously records their input for the next 3 or so
seconds and then it's all evaluated. I wanted to prototype that for
7dfps.</p>
<p>But alas I still needed 3D rendering and physics. The rendering I got in
a working shape within that week once I realized I didn't need
animations or such fancy things, but the physics are where I got stuck.
I wanted to write a character controller from scratch to get good player
physics because restricting a rigid body (e.g. to stay upright) comes
with all kinds of problems so it's probably best to write the physics
yourself, just using the collision detection part of your physics engine
(Bullet, in my case). And that was somewhat scary.</p>
<p>Months later I read the following in an <a class="reference external" href="http://www.rockpapershotgun.com/2012/09/07/story-time-with-valves-erik-wolpaw-pt-1/">interview with Valve's Erik
Wolpaw</a>:</p>
<blockquote>
Someone at Valve said recently, “If you’re not doing something that
scares you, you may not be doing the right thing.” At some
fundamental level, you should be doing something that feels kinda
scary. Like, I could fail at this.</blockquote>
<p>That's true. If I want to grow I must not stick to my comfort zone,
because it consists of things I already know. So it's disappointing that
I haven't done any more work on this since then. My Jedi Academy
recoding project has not progressed in months. Which is sad. Especially
since I promised Jwaaaap, who was in the IRC channel as well, to finish
that prototype since he was eager to play it.</p>
<p>On the other hand writing everything from scratch <em>is</em> a lot of work.
Maybe I should prototype my ideas as mods, for example for the Source
Engine.</p>
Back in action!2012-10-07T21:44:00+02:00mrwonkotag:mrwonko.de,2012-10-07:blog/2012/back-in-action.html<p>Recently my life took a turn for the better. How so? I'm not just
playing and surfing anymore, I'm doing something useful: Modding.</p>
<p>That's right: Ever since 7dfps I've hardly done anything useful in my
spare time. Well, playing some of the games on my backlog is not exactly
a waste, not of money anyway, but there's better things I could do.
First and foremost modding and programming.</p>
<p>I currently have two big programming projects: One in Delphi for uni,
which includes a written documentation, and my Jedi Academy recode,
including the preliminary 7dpfs project and other related work. I can't
do the former because I can't find my Delphi installer so I'll have to
get a new one at uni once it starts again next week and can't do
anything until then, and the latter is a <em>lot</em> of work. Not that that
should discourage me, but I think my time is better spent on something
closer to completion.</p>
<p>Like <a class="reference external" href="http://sots-dev.3d-get.de/">Spirits of the Sith</a>. Started in
2003 as a Jedi Knight 2 singleplayer mod by some of the best mappers the
German mod community had to offer it soon switched over to Jedi Knight:
Jedi Academy, which - as far as modding goes - is clearly superior to
JK2. In 2007 I was asked to join the team and help them finish it - most
visual work on the levels was done and it was "just" a matter of doing
some scripting and tying it all together.</p>
<p>Except it's never that simple. As so often, the last 20% take up 80% of
the time. Or something roughly like that, I suppose. I really have no
idea how much time was previously spent on the maps, but either way
there was still a lot left to do. And somehow it never got done. I did
some work on some of the maps, but by and large little progress was
made. Maybe the mod was already more or less dying and I was supposed to
remedy that. Well, I didn't.</p>
<p>About a year ago or so the remaining team members - all 3 or so of us -
decided that yes, we did in fact still want to finish it. That's easy to
say, of course: "Sure, I'd hate to just throw it all away." But you
still need to actually work on it. We started organizing it better,
creating a wiki, a new forum and the previously linked page for it.</p>
<p>Eventually I got around to actually playing all the maps from start to
finish, which I don't think I had done previously, and added notes on
their status to the wiki. I have pretty high standards nowadays - I
don't want to release something bad - and the maps did not quite live up
to that. Visually they're fine, mostly, but some are confusing and
there's no real story linking it all together. Well, there was a story
on paper, but it wasn't properly told by the maps and partially didn't
even fit them.</p>
<p>So a couple of weeks ago I finally sat down and revisited the story,
making it fit the maps better. And a couple of days ago I finally
started actually working on the maps again. Guess what? It feels good.
Getting a little work done (almost) every day gets me closer to
completion bit by bit. It will still take quite a while, but I'm
positive we'll get there. It's just a matter of actually doing the damn
work, and it's strange I wasn't doing it, seeing as I like it.</p>
<p>And how is that good for my life? Well, I need experience if I am to
ever get a job at Valve or in the games industry in general, and having
a a finished mod to show is great. Admittedly a mod that's pretty much
just more content with no new gameplay is pretty much the worst kind,
but it's still an accomplishment. A big one, even. So here's hoping
we'll finish it. Maybe by April 2013 when it'll turn 10?</p>
Gamescom 2012 Impressions2012-10-07T21:44:00+02:00mrwonkotag:mrwonko.de,2012-10-07:blog/2012/gamescom-2012-impressions.html<p>Wow, I've neglected this blog. I originally started writing this post
way back in August just after Gamescom, but never got around to
proofreading and publishing it...</p>
<p><a class="reference external" href="https://twitter.com/mrwonko/status/237827003418558464">https://twitter.com/mrwonko/status/237827003418558464</a></p>
<p>Hotline Miami was probably my favorite game. I've played it for hours
(certainly over one, anyway) and had a lot of fun, while also being able
to chat with the artist working on it, who's also occasionally visible
in the video above. The guy playing is Rami Ismail of Vlambeer, an Indie
Team whose other member, Jan Willem Nijman, came up with the idea for
the 7 day FPS.</p>
<p>I've also played Far Cry 3, which I was pretty underwhelmed by - maybe
the controls where strange (possibly had mouse acceleration?) or it's
that we got to play a level already previously shown? Either way I'm not
looking forward to it all that much anymore.</p>
<p>Then there's Hitman: Absolution. Not much to say about that - I
apparently did everything right in order to be able to kill the target
silently and unseen, which was just as well since I wouldn't have had
enough time to try anything else anyway - I didn't even make it to the
extraction zone after the assassination. Possibly because I looked at
the options before playing - seems solid enough, with lots of graphics
settings. But I think this, like its predecessors, is a game you have to
spend some time to get into - and I'm not done with any of the Hitman
previous games so far, despite having them all. Unless you run around
shooting people, but that's not how it's supposed to be played.</p>
<p>I got to play a couple of rounds of Street Fighter X Tekken against
someone much better than me. I had hardly heard of that before, seemed
nice enough, but only just having purchased Super Street Fighter 4 I'll
stick to that for now.</p>
<p>While I was looking forward to Dishonored, and it played well enough, it
lacked the part where I was blown away. There's really nothing wrong
with it that I could point to - maybe I'm just getting to old? Well, I
wasn't going to purchase that any time near release due to its multitude
of pre-order bonuses anyway. Also, Bethesda's swag got worse. In 2010 I
got a nice New Vegas shirt for watching a Rage demo, this year they had
an ugly giant bag which is more like a billboard.</p>
<p>While Capcom also lacked swag, they at least had no less than 3 games
for you to play. I don't really like their decision to have a single
queue and then rotate the players through the games, but I suppose it
saved space. Choosing Chris' campaign in the Resident Evil 6 demo (since
having only played Resi 5 he was the only one of the available character
I knew) I was presented with a fairly standard shooter instead of the
horror game Resident Evil to my knowledge once was. Well, I guess if you
make it to the 5th sequel your game is eventually pretty mainstream (or
niche, but that's not the case here). When it was my turn to try Lost
Planet 3, I didn't even bother, instead returning to the game that was
the reason I had stood in line in the first place to try its other demo
level, since someone had apparently left prematurely: DMC - Devil May
Cry. Because it's just what I had hoped for, discounting the new Dante I
already knew about. But at least they got the gameplay right, from what
I played. It controls somewhat different from the previous games,
amongst others due to the inability to focus enemies, but that doesn't
make it any worse. No, it's apparently still a very nice hack'n'slay,
and there's far too few of those on PC. So I'm really looking forward to
this. Let's hope we get a good PC port.</p>
<p>So no noteworthy swag? Actually there was, but let's elaborate: Hotline
Miami and other Indie games shared the Steam Booth. Steam booth?
Shouldn't Valve be there? No, there was in fact not a single Valve
employee, and I would've loved to talk to them. But at least there were
two women handing out Steam keys. So I did get Ys: The Oath at Felghana
(which was actually on my Steam wishlist - I almost bought it in the
Summer Sale but then decided Ys: Origin would suffice for a while),
Resonance, AI War: Fleet Command, Wings of Prey and Star Ruler for free.
Not complaining here.</p>
<p>Then there was the Endless Space community event. I was hoping for some
nice chats, and got that and more: One of the game's developer's CEOs, a
Ubisoft employee, me and my friend talked quite a lot. One of the things
I learned: Beyond Good & Evil 2 is not actively being developed at the
moment, but hasn't been killed off yet: "They're thinking about it
[(BG&E2)]." I also got a Swag-bag containing, besides a shirt and a
poster, a Steam key for the game - which I actually did not have before,
I just went to the meetup because it sounded nice. And it was.. A
successful evening.</p>
Odds and ends2012-10-07T21:44:00+02:00mrwonkotag:mrwonko.de,2012-10-07:blog/2012/odds-and-ends.html<p>A couple of things from recent months that don't warrant a whole post
each:</p>
<ul class="simple">
<li>A couple of friends and I backed <a class="reference external" href="http://www.kickstarter.com/projects/659943965/planetary-annihilation-a-next-generation-rts">Planetary
Annihilation</a>,
a spiritual successor to Total Annihilation, which I admittedly did
not play, and, to a lesser extent, Supreme Commander, which I played
lots of with friends. It looks amazing and I'm looking forward to
playing the Beta and the final product.</li>
<li>I turned 20. Yay?</li>
<li>Exam time. I passed all, but somewhat worse than I would've liked in
two cases. Due to me lazily learning to little.</li>
<li>After spending €100 in the Steam Summer Sale I decided not to spend
so much money on games I'm likely never going to play. I only slipped
up when I bought Total Annihilation and Anachronox on
<a class="reference external" href="http://gog.com">gog.com</a> and the Humble Bundle 6. I don't think
Borderlands 2 and Darksiders 2 count, buying games at full price is
fine: You can't buy as many, you're more likely to play them and it
actually makes a difference to the publisher and possibly (hopefully)
the developer. And I'm playing Borderlands with friends, so that's a
good reason, too. It's the difference between buying a game because
you really want to play it versus buying it because it's cheap. Oh,
and there's also <a class="reference external" href="http://www.rockpapershotgun.com/2012/07/22/cardboard-children-some-games/">this great article on Rock, Paper,
Shotgun</a>.</li>
<li>I got a new computer, mostly. Kept my BluRay drive, my HDDs, the PSU
and the case, but got a new 128GB SSD, an i5-3570K, an HD6950, 16GB
Ram and a Motherboard to go with it. It's wonderful. The prospect of
Planetary Annihilation made me be a bit more generous with regards to
the CPU, which probably wasn't a bad thing.</li>
</ul>
Do I fulfill Valve's requirements?2012-04-21T22:48:00+02:00mrwonkotag:mrwonko.de,2012-04-21:blog/2012/do-i-fulfil-valves-requirements.html<p>Michael Abrash may not have done his post on the things Valve is looking
for in potential employees yet, but another source came up: Valve's
<a class="reference external" href="https://www.unrankedsmurfs.com/images/upload/blog/2017/11/Valve_Handbook.pdf">Handbook for new
employees</a>. As
the title suggests, it's supposed to help new employees understand how
things work at Valve. That includes tips on how to approach hiring,
because as always employees are free to do what they feel is best, which
includes the hiring process.</p>
<p>They've got quite the requirements, but that's understandable given
their lack of hierarchy and the high individual responsibility - not
everyone can work that way and people who can't may cause substantial
damage.</p>
<p>To work at Valve I should be:</p>
<ul class="simple">
<li>A generalist, i.e. highly skilled at a lot of things. I may not
exactly be "highly skilled", but I've sure got a broad range of
experience: Modelling, animation, a little image editing, some
electronics, webdesign and databases, drawing, basic video editing,
crafting, cooking, mathematics, ... But yeah, I'm not exactly highly
skilled in most of those.</li>
<li>An expert, i.e. one of the best at something. Compared to my other
skills I'm an expert at coding and maybe to a lesser extent software
design, but on an absolute scale I'm advanced at best. Uni will help,
but I'll only become an expert through actual experience.</li>
<li>Better than the existing employees. Not necessarily in general but in
some field. Haha. As if. Getting better than the best ones there at,
say, coding would require a lot of learning. And the best place to
learn new things is arguably Valve, so they'd likely only strengthen
their lead.</li>
<li>Collaborative. I guess I fit that, although I have little experience
of working on real projects in teams. Still, it's the trait Valve
values above all so I may have a chance yet. If everybody who's
better than me can't collaborate. Haha.</li>
<li>Productive. Well, I can be lazy at times, but when I work I do get
things done, don't I? I just wrote <a class="reference external" href="https://github.com/mrwonko/SFMLSpriter">an implementation of the Spriter
file format for SFML</a> in a
day, although that's of course in part thanks to the simplicity of
both the format and SFML. The goal was to be able to use it in Ludum
Dare. Why am I not doing that right now?</li>
</ul>
<p>So in conclusion I'm not someone they'd hire on the spot, but I may have
a chance. But who am I to say that? In order to get a better opinion I
just contacted Valve, asking whether they'd evaluate me and give me some
tips on how I should improve in the coming years so I can join them
after uni. I'll also try to talk to them some more at Gamescom, maybe do
a dummy-interview, though that won't work spontaneously. I'll have to
see about that.</p>
<p>So long,</p>
<p>Willi</p>
What have I done?2012-04-15T23:23:00+02:00mrwonkotag:mrwonko.de,2012-04-15:blog/2012/what-have-i-done.html<p>Yesterday I read <a class="reference external" href="http://blogs.valvesoftware.com/abrash/valve-how-i-got-here-what-its-like-and-what-im-doing-2/">a great article by Valve employee Michael
Abrash</a>
(and I suggest you do the same). I noticed it thanks to a tweet by Jeri
Ellsworth who recently started working at Valve, too, so I thanked her:</p>
<blockquote>
<a class="reference external" href="https://twitter.com/#%21/jeriellsworth">@jeriellsworth</a> Great
post, thanks! Reinforced my wish to join you after university.
Looking forward to the "what we look for" post, too.</blockquote>
<p>The "what we look for" post I'm referring to is an upcoming post Micheal
Abrash talked about in his article, but you should already know that,
having read it as I suggested. Right? Anyway, she promptly replied:</p>
<blockquote>
<a class="reference external" href="https://twitter.com/#%21/mrwonko">@mrwonko</a> We don't require
degrees here. <wink></blockquote>
<p>Which made me think about whether I could join Valve today. What
exprience do I have? What projects have I done?</p>
<p>First of all: I'm going to continue studying. The second semester has
just started and I'm learning a lot. On Thursday I started programming
in Assembler and I'm also learning about Finite State Machines and all
kinds of other interesting things. I'm pretty sure I'll profit from
this.</p>
<p>That didn't keep me from thinking about my portfolio and my résumé
though. Let's go back and look at what I've done in a roughly
chronological order.</p>
<p>Aside from some strategy game map making I'm pretty sure I started
modding in 2003 (or maybe late 2002) with Jedi Knight 2, creating custom
maps. I switched to Jedi Knight: Jedi Academy when it came out in 2003
and eventually got into coding in C through its SDK.</p>
<p>Well, let's note that when I say coding I mean changing some constants
here and there, and when I say eventually that means march 2005, if the
time stamps on the source files are to be trusted. Still, I started
coding and by February 2006 I had done some of NeHe's tutorials on
OpenGL and coded my first game, Suckman. It was supposed to be like
pacman, but I knew it'd suck, hence the name. I actually still have
<a class="reference external" href="http://mrwonko.de/blog/legacy/Suckman.7z">binaries</a>. Hell, after some
more digging I found out I even still have the source code!</p>
<p><a class="reference external" href="http://mrwonko.de/blog/legacy/suckman_shot.jpg"><img alt="Screenshot of my first game "Suckman"" src="http://mrwonko.de/blog/legacy/suckman_shot-300x234.jpg" /></a></p>
<p>I also started coding in PHP sometime back then, I can't pinpoint the
exact time, but I have some files dating back to may 2005. I <em>can</em>
pinpoint the time of my first modelling attempts though: Apparently I
looked into creating Jedi Academy playermodels with a 3D Studio Max
trial in March 2006.</p>
<p><img alt="image1" src="http://mrwonko.de/blog/legacy/mrw_playermodel_lol1.jpg" /> <img alt="image2" src="http://mrwonko.de/blog/legacy/mrw_playermodel_lol2.jpg" /></p>
<p>And then Oblivion came out, only days later. I got it on release and
played for hundreds of hours, literally. And I also looked into
modelling. That was around May 2006 and I was using the free modelling
software Blender by then, which I still use today. I don't think I ever
released any of my Oblivion mods, they were mostly me messing around. As
so often I had ambitious projects that I didn't finish.</p>
<p>In September 2006 I joined 3D-GET, the 3D Game Engineering Team, a group
of Jedi Academy modders that were working on a new singleplayer
campaign. Initial momentum had died down after over 3 years and they
were hoping to finish the mod soon, but it's still unreleased to this
date, although we (i.e. the 3 remaining team members) would love to see
it finished. Most levels were visually done but lacked
gameplay/scripting - which was partially my responsibility and is mostly
done by now - as well as cohesion; They were built by separate people
with only a loose story to tie them together. There was also barely any
playtesting so far, which is bad. Here's hoping we get it released, too
much work went into it for it to just die. Still, so far it's just
another ambitious project I haven't finished.</p>
<p>Around that time I started really getting into coding as well, thanks to
a C++ coding club in school. I had read a little about OOP before but it
wasn't until then that I truly understood classes. So I worked on quite
some projects in the following years, notably a Latin vocabulary trainer
in September 2007 and a console-based Tetris in May 2008. (Fun fact: In
order to not have to do last semester's coding exercise I had to write a
console-based Tetris in Pascal.)</p>
<p>I also started doing Case Modding in Summer 2007. That included dabbling
in electronics and programming some microcontrollers. The peak and
turning point was my participation in the Games Convention Casemod
Masters at the 2007 Games Convention (the last one), after that it died
down.</p>
<p><a class="reference external" href="http://mrwonko.de/blog/legacy/IMG_4045.jpg"><img alt="image3" src="http://mrwonko.de/blog/legacy/IMG_4045-300x225.jpg" /></a></p>
<p>I can't think of any remarkable projects in the following years... I
briefly evaluated several engines like Ogre3D, irrlicht and Newton Game
Dynamics and somehow got into Python and Lua, the latter possibly
through modding Supreme Commander.</p>
<p>Pretty much all my remarkable projects (and some unremarkable and/or
unfinished ones) since 2010 should be be available either on this
website or on <a class="reference external" href="https://github.com/mrwonko/">my github page</a>. I
started doing Ludum Dare games and some other small projects, but my
most ambitious project so far is what will eventually be a Jedi Academy
recode, Jedi Academy: Renaissance. Until then, it's going to be a series
of games reusing the same components and built with future use for Jedi
Academy in mind.</p>
<p>So I have quite some experience but lack big projects to back that claim
up. Is it enough to get hired by Valve? I doubt it, but honestly I don't
know. Michael Abrash promised to write an article on what they're
looking for in people, that should give me a better idea of how good a
fit I am, as well as some pointers to how I should improve.</p>
<p>I'd really like to work at Valve.</p>
<p>So long,</p>
<p>Willi</p>
<p><strong>Appendix I</strong></p>
<p>I actually forgot the Ace I've got up my sleeve. <a class="reference external" href="http://www.youtube.com/watch?v=BYRtfJ5iShI">My video for the
Midnight Riders music video
contest</a>. It got an
honorable mention for best use of black and white so a lot of Valve
employees have already seen one of my works, which is probably a good
thing.</p>
Doing nothing2012-03-25T14:14:00+02:00mrwonkotag:mrwonko.de,2012-03-25:blog/2012/doing-nothing.html<p>I've been quite lazy recently, I didn't even write any blog posts. What
happened?</p>
<p>University lectures went on until mid-January, followed by exams at the
the end of January/beginning of February. Even the harder exams turned
out surprisingly good, with my worst mark being 2.3 (or B-, I suppose).</p>
<p>And after that? Nothing. Holidays. Well, I did finally finish some of my
games, like Assassin's Creed 2 and Brotherhood, Sam & Max Season 3,
Damnation, Bastion and Alice: Madness Returns. I also finished replaying
Mass Effect 2 (I had lost my savegames) and got Mass Effect 3 on
release.</p>
<p>Mass Effect 3 was an interesting experience. Awesome for the most part,
but like many others I find the ending to be a huge letdown. Barely
influenced by your decisions, a Deus Ex Machina and unanswered questions
- here's hoping Bioware's going to change that, a lot of fans stating
their dissatisfaction might help. Still, it gets the full 5/5 from me.
(I recommend playing the predecessors first though. It'd be like
watching only the 3rd Lord of the Rings (but switching to something else
at the end) otherwise.)</p>
<p>I also got a job, which will formally start in April. Delivering
croques. I rather like it so far, I can use the car driving experience
and I also make money, which is pretty nice. And a little more than I
need for university, too. So I'll be able to buy some nice things.</p>
<p>I'll probably get some new hardware soon, in some games my CPU doesn't
quite cut it anymore but new ones for socket 775 have gotten hard to
come by, so I'll probably upgrade all the essentials in a couple of
months or so.</p>
<p>Another thing I now have the money for is a Kinect. Why would I want a
Kinect? I don't even have an Xbox! Well, it's just an idea I've recently
had. I'd like to experiment with Motion Capture using the Kinect (since
that seems like the cheapest way). More specificially, I was thinking
about doing Jedi Academy cutscenes with motion capture. The animations
really helped Devil May Cry 3's cutscenes and I was fantasizing about
getting a similar level of quality in the Jedi Academy SP mod I'm
working on.</p>
<p>Of course, in order to get MoCap animations into Jedi Academy I need to
be able to get any animation at all into Jedi Academy. I can't afford
3DS Max, I won't pirate it and I don't want to learn XSI Mod Tools, I'd
much rather stick to Blender.</p>
<p>So I'm sticking to Blender. I already started working on a Ghoul 2 (Jedi
Academy's model/animation format) <a class="reference external" href="https://github.com/mrwonko/Blender-2.6-Ghoul-2-addon">plugin for
Blender</a>a
couple of months ago but had only finished the importers. Well, my MoCap
thoughts made me come back to it and I spent the last 2 days or so
writing the animation exporter. It is now done.</p>
<p>The only remaining missing part is now the export of models. That's more
complicated than animations though, I don't really feel like doing that
right now. But that's how I often feel about something until I start
working on it, at which point I actually really like it.</p>
<p>The second semester will start in about two and a half weeks - I could
probably finish the .glm model exporter until then, let's see if I will.</p>
<p>So long,</p>
<p>Willi</p>
Sometimes I can't think of a good title.2011-12-08T23:44:00+01:00mrwonkotag:mrwonko.de,2011-12-08:blog/2011/sometimes-i-cant-think-of-a-good-title.html<p>What am I up to recently? Quite a lot, apparently, judging from <a class="reference external" href="https://github.com/mrwonko/">my
Github profile</a>.</p>
<p>I wrote a console based <a class="reference external" href="https://github.com/mrwonko/willis-pascal-tetris">Tetris in
Pascal</a> for Uni -
that keeps me from having to do the programming lessons, which means
free Mondays. No particularly big project, but probably the one with
the most obvious effect.</p>
<p>Then there's some Jedi Academy stuff. The community may be dying, but
it's not quite dead yet. Almost, but not quite. Won't keep me from
working on it though. In particular I've been trying to model a sword in
Blender 2.6a. I had to fix some bugs in an <a class="reference external" href="http://mrwonko.de/downloads/2011/blender-258a-md3-exporter-15.html">md3
exporter</a> and
<a class="reference external" href="https://github.com/mrwonko/MD3View">md3view</a> (<a class="reference external" href="http://sandervanrossen.blogspot.com/2010/05/md3view.html">whose sources I
luckily acquired last
year</a>)
first, but I did make it eventually.</p>
<p>The latter - md3view - is required for converting the md3 to a ghoul 2
model (.glm) as used by Raven's Quake 3 engine based games. It would be
much simpler if you could directly export those from Blender, and <a class="reference external" href="https://github.com/mrwonko/Blender-2.6-Ghoul-2-addon">I've
been working on that as
well</a>. So far I
can import the complete format but the exporter is a work in progress at
best. I'm writing it with my Renaissance project in mind - it could be
used to import a model, UV map it again (so there's no mirroring) and
create a hipoly version for normal/height baking. Because I'd like to
eventually add normal- and parallax occlusion mapping to my engine.</p>
<p>Once he heard I had compiled GTK Radiant
1.6, Darth-Arth
requested I did some changes. We're still working on Spirits of the
Sith, a Jedi Academy SP mod, after all. Actually, I'm hardly
contributing at the moment, so anything coding related is the least I
can do. (My ghoul 2 importer already was of use, too.) So I made some
changes, and while I
have no problem with making my sources available anyway I did not even
have a choice here once I published binaries, it's GPL after all. <a class="reference external" href="https://sourceforge.net/p/gtkradiantfork/home/Home/">So my
changes are available on
sourceforge</a>. (I
did not want to put such a huge project on Github, I think my space
there is limited.)</p>
<p>The thing that's most important to me is me working on Jedi Academy:
Renaissance again, though. I won't get this done if I don't work on it.</p>
<p>Well, I don't suppose working on a .ibi to lua converter is the correct
way of getting it done when you don't even have a menu system yet, but I
keep doing little things, tech demos pretty much, because those are more
interesting than designing a menu system.</p>
<p>Luckily, I've just thought of an interesting "side project" that will
actually be useful for creating the menu system - a new renderer. So
far, I'm using <a class="reference external" href="http://www.sfml-dev.org">SFML</a>'s graphic part, which
has pretty nice 2D rendering features - sprites, including image
loading, and texts are the things I need in my engine as well. I've
already written my own font/text rendering using Jedi Academy's image +
.fontdat format though (even if it currently is an extension to SFML,
extending its classes and using its renderer) and I need multitexture
fragment shaders - I'm not sure I can do that using SFML. Besides, I'd
like to be able to use all that in GTK as well (writing e.g. a
modelviewer using my renderer so it looks just like ingame).</p>
<p>So I'll be rewriting the rendering, mostly using pure OpenGL 2.0 with
some GLU and GLEW mixed in. I'll start by trying to replicate Quake 3's
"shaders" using fragment shaders, which should be both faster and more
powerful. Since it'll probably take me over a week to get the renderer
in a usable state, I'll need a backup of my engine in case I want to use
it for Ludum Dare next weekend. That's right, there's another "make a
game this weekend, here's the theme" contest incoming.</p>
<p>So I looked into git tagging and branching. I started by tagging the
current version as the LD22Fallback, but then I found out I actually
want branches. From what I learned so far, they're damn powerful,
allowing you to change the state of your current working directory with
a single command (git checkout <branchname>). So I'll be working in a
new branch "renderer" while leaving the master branch untouched for
Ludum Dare. Actually, I'll probably start a Ludum Dare branch. You can
probably synchronize commits between changes, e.g. pulling a bugfix or
new feature from the master branch to the renderer branch and in general
this seems perfect for trying out different things in a safe
environment.</p>
<p>Oh, and I got a Razer Hydra when they were on sale during the Black
Friday weekend - I'll have to do some coding with them, too. Using them
to play "ordinary" games works reasonably well, but games made for them
is where they'll shine. (I'm using plural since there are two
controllers.)</p>
<p>And I got myself Trine 2, which once again had beautiful music. To get
it, I needed to first unpack the archive, then use two converters
(ww2ogg and revorb) and batch rename the resulting files
(*.ogg_conv.ogg) - the bash proved very useful for this. (I'm using
the git bash on Windows - I have to fix my MBR and boot into Ubuntu to
test my Engine there some time soon though.)</p>
<p>So that's what I've been up to. In the coming weeks I'll probably be
working on Renaissance, the Ghoul 2 exporter for Blender and possibly
some other Jedi Academy related tools</p>
<p>So long,</p>
<p>Willi</p>
screwing up Windows2011-10-24T19:13:00+02:00mrwonkotag:mrwonko.de,2011-10-24:blog/2011/screwing-up-windows.html<p>As you may or may not know, getting Windows to not boot anymore is not
hard. Doing it accidentally is a little harder, but I managed to do it
nonetheless.</p>
<p>One of the [STRIKEOUT:current] last (this post is taking longer than
expected and I keep getting sidetracked) Weekend Deals on Steam
[STRIKEOUT:is] was the GTA complete Pack for 5 pounds. Needless to say I
bought it (i.e. got a British friend to buy it for me - it's neither
available in Germany, nor is it as cheap in €), despite 1 and 2 being
available for free and already owning 4. I was later shocked to find out
that its being uncut reportedly depends on the system language - Germans
get the cut version.</p>
<p>In theory that's easily fixed, of course: Change the language to
English. I meant to do that for quite some time since I like English.
Trying it once again I remembered why I didn't already do it - you need
Windows 7 Ultimate to be allowed to. But you can circumvent this by
downloading the language package and changing the registry - I changed
the registry first since that's obviously less legally questionable,
then looked for a way of legally acquiring the language pack and didn't
find one.</p>
<p>So I looked for other ways of acquiring an English Windows - an Upgrade
to Ultimate would cost me €190, as opposed to $140 in the US - almost as
unfair a pricing difference as Steam's other Weekend Deal, Alice:
Madness Returns, which costs €25 as opposed to $15. (Needless to say I
acquired it through a US contact.) Even $140 is too much for my liking
though, since I really don't need any of the other features Ultimate
has.</p>
<p>Then I remembered I'm a student now. There are special student deals.
Unluckily no Home Premium -> Ultimate upgrades, but I could get a
Professional upgrade for as little as €35, though I don't know if that's
available in English. (Incomprehensibly the US price is $65 and not
something ridiculously cheap as one might expect after the previous
differences...) Actually, since the FH Wedel takes part in the MSDNAA
program, I can get it for free. In English, if I want. I do, of course.
So once I've got some spare time at College, I'll probably get that.</p>
<p>Forgetting about the registry change I later shut my PC down, only to
find it not booting yesterday since it was looking for a non-existing
language pack. Whoops. I could've partially reset the registry to an
earlier state but I didn't like the possibility of unforeseen
consequences. Besides, I knew exactly what I needed to change. But the
regedit live CD I found online wouldn't start properly.</p>
<p>Oh well, my 40GB Windows partition was getting awfully full anyway.
Besides it's on the Samsung HDD and I already lost two of those, one of
them the exact same model (the current one being the replacement), so
I'd rather reinstall Windows on my 2TB Western Digital HDD.</p>
<p>But first I needed to make some space. Here, let's shrink this 500GB
partition by 110GB, of which we will use 25 for Ubuntu, 65 for Windows 7
and 20 for Windows XP in case I ever need to use that printer with no
recent drivers or replay Sam & Max Season 1 or 2 or anything else that
doesn't work on 7. And on the old ex-Windows partition I could install
this copy of Snow Leopard I've recently gotten from someone who got a
Mac and uses Windows on it. I hope I'll be able to get it to run, there
are some promising guides on
<a class="reference external" href="http://www.hackintosh.com">hackintosh.com</a>.</p>
<p>For the partitioning I used a GParted Live CD, though I should've used
an Ubuntu Live CD which not only includes GParted, but also a browser
and some other stuff to pass time. Because resizing/moving partitions
takes forever. Well, not forever, but over 12 hours in my case and that
sure feels like forever. So I wasn't done with that until today.</p>
<p>The first thing I installed was Ubuntu. I still had an old 8.10 CD
from... probably 3 years ago, so I figured I could install that and use
automatic updates. Turns out automatic updates only bring you to the
next version, so I'd have to do six incremental upgrades. And 8.10 is no
longer supported, so getting updates is hard. In the end I just
downloaded 11.10 and did a fresh install.</p>
<p>For some reason I'm feeling a sudden urge to play Devil May Cry 4 right
now. Yes, that is totally unrelated and I'm pretty confused about where
it came from. I'm ignoring it.</p>
<p>Everything worked pretty much out of the box, except for sound on any
other than the left and right speaker. No showstopper. And the ATI
drivers wouldn't let me save changes, I had to recreate the X11
configuration file <a class="reference external" href="http://askubuntu.com/questions/70108/dual-view-monitors-for-one-desktop-on-ati">as described
here</a>
to get my multi monitor setup to work.</p>
<p>I experienced the only other problems so far during writing this blog
entry - in the default settings, some accessibility features are
enabled, most annoyingly mouse keys (i.e. moving the mouse cursor using
the numpad, as opposed to writing numbers) and sticky keys. (Pressing
e.g. shift once keeps it active until after another key is pressed. The
only time I let go of shift before writing something is when I
reconsider and conclude I'd rather write in lowercase. Sticky keys make
me write in uppercase instead. Wonderful. No. Infuriating. Luckily
togglable.)</p>
<p>Later I told fellow Jedi Academy Coders on
<a class="reference external" href="irc://irc.arloria.net/#jacoders">irc://irc.arloria.net/#jacoders</a> about my registry woes. They told me
about linux registry editing tools, <a class="reference external" href="http://pogostick.net/~pnh/ntpasswd/">this
one</a> in particular. I rejoiced
and fixed my registry. Windows is working again. I should still move it
to the 64GB partition and install XP some day, but for now, I have more
important things to do.</p>
<p>This programming assignment being the most important important thing at
the moment. I have until next monday to code a console Tetris in Pascal,
adhering to a couple of rules, otherwise I'll have to do the programming
assignments this semester, learning interesting things like if
conditions and loops. I'd rather not, especially since that's the only
subject I have on monday. So being relieved means free mondays. Yay!</p>
<p>So long,</p>
<p>Willi</p>
Making money2011-09-30T15:51:00+02:00mrwonkotag:mrwonko.de,2011-09-30:blog/2011/making-money.html<p>I'll start college in about a week. It costs money. I don't have enough.
So I have several options:</p>
<ul class="simple">
<li>Work. Probably the safest way. Least fun, too.</li>
<li>Get a Scholarship. Once I'm in, it's the easiest way since I don't
really need to do anything, besides doing my internship/bachelor
thesis at the company granting me the scholarship. But I'd have to
apply there which includes telling them why I'd like to work for
them. And I actually don't want to - none of the partners I'm aware
of develop games, and they certainly aren't Valve. So I'd feel
somewhat miserable for telling lies and basically exploiting them.</li>
<li>Make and sell a game.</li>
</ul>
<p>As you might've guessed, I like the idea of making a game most.</p>
<p>I've been toying with this idea for quite a while, still another
incentive is the <a class="reference external" href="http://www.ludumdare.com/compo/2011/09/28/announcing-october-challenge-2011/">Ludum Dare October
Challenge</a>:
Finish a game - Take it to market - Earn $1. Sounds simple enough.</p>
<p>But my personal goal is to make about 7000x as much. Which should be
pretty easy if I get my game on Steam and do a huge sale for 1 or 2
bucks. And I have at least 6 months, not just one. But getting a game on
Steam is not that simple. Even <em>making</em> a game is not that simple.</p>
<p>"What's a simple to make game that'll make me a lot of money?" doesn't
seem like the right question to me either. I keep thinking I should
rather ask myself: "What would be a good game?" This is probably Valve's
influence - they also think about the fun first and monetarization
later.</p>
<p>So it has to be a fun game, it has to be simple, i.e. I need to be able
to get it done in a reasonable amount of time. Innovation would be nice,
too. And I'd like to use my WIP engine/framework (for Renaissance),
expanding it.</p>
<p>I don't really have a plan yet, but I have some general ideas. First of
all, the game should be procedural. That cuts down the amount of
assets/levels that need to be created, which saves time, besides I'm not
really got at that anyway. Recently I thought: "Hey, physics are
procedural in nature! What's a fun, simple and innovative physics based
game?" Not much later I heard of
<a class="reference external" href="http://www.rockpapershotgun.com/2011/09/27/impossible-creature-incredipede/">Incredipede</a>.</p>
<p>Another possibility are music based games, like Audiosurf, Beat Hazard
and 1... 2... 3... Kick It! or The Polynomal. They require some research
on music and how to procedurally generate events from a song, as well as
a fitting game design. I'm not quit sure which is harder, but probably
the latter. Because so far I have no idea.</p>
<p>Currently, I only have two game ideas. One of the is Jedi Academy:
Renaissance, a huge project that I won't get finished anytime soon,
besides I might get in legal trouble if I sold that (which I don't want
to anyway). The other is a top down 2D shooter I've had in mind for
about a year now, working title <em>Invisibility</em>.
(<a class="reference external" href="http://www.gamedev.net/topic/584710-mp-stealth-action-game-concept-looking-for-feedback/">Concept</a>,
<a class="reference external" href="http://forums.tigsource.com/index.php?topic=17218.0">progress</a>)
Hardly having done any MP coding this doesn't seem like such a good
project for me and I'm not sure how well it would sell, I'd probably
make it freeware. But it still seems like my best bet unless I get a
better idea.</p>
<p>I don't know... I've had the idea for a year now and haven't realized
it. Frankly I can't think of a better game right now and somehow feel
like I should make it, so I may just make it. Heck, why not. Making a
game is always a useful experience. Failing miserably can be, too. The
only thing I know for sure is this:</p>
<p>If I do nothing, I won't get anything done.</p>
<p>So long,</p>
<p>Willi</p>
<p><strong>Addendum</strong></p>
<p>Luckily my family paid for University. I ended up taking a small job on weekends to get some disposable income, but didn't have to worry about tuition fees. I have yet to make money off making games.</p>
GTK Radiant 1.62011-09-12T13:08:00+02:00mrwonkotag:mrwonko.de,2011-09-12:blog/2011/gtk-radiant-1-6.html<p>Hey,</p>
<p>Jedi Academy mappers probably know this: There are two popular versions
of the GTK Radiant map editor, 1.4 and 1.5. Some mappers - mostly the
old ones like me, who got used to it - prefer 1.4, other prefer 1.5. The
latter is different, but not necessarily better. Or worse.</p>
<p>Either way, those sticking to 1.4 sometimes experience trouble on
Windows 7/Vista - most prominently the save bug which prevents saving
unless you use the GTK file dialog instead of the Windows one, but then
you have to remember to add .map to the filenames.</p>
<p>What most Jedi Academy mappers probably don't know: There's a GTK
Radiant 1.6, a.k.a. ZeroRadiant (hosted on idsoftware's
<a class="reference external" href="http://zerowing.idsoftware.com/">zerowing</a>), based on 1.4. I believe
it started out as an open source version of 1.4 which has since been
improved, but I don't really know everything that's been changed. What I
do know: The save bug is fixed.</p>
<p>So yesterday I spent the evening trying to compile it and set it up for
Jedi Academy - successfully! I think I'll be using it henceforth.</p>
<p>So long,</p>
<p>Willi</p>
<p><strong>Addendum</strong></p>
<p>It has since moved from the zerowing to <a class="reference external" href="http://icculus.org/gtkradiant/">icculus</a> and has official builds. So I no longer supply my ancient build.</p>
Hindsight2011-09-06T17:23:00+02:00mrwonkotag:mrwonko.de,2011-09-06:blog/2011/hindsight.html<p>I just happened to think back to what I achieved in the last year/couple
of months. And it's not much. Besides finishing school. But coding-wise
I hardly got anything done. Some Ludum Dare games, but that's it, pretty
much. And the Razer Hydra DirectInput Wrapper. Really not that much...</p>
<p>But maybe I'm looking at it the wrong way. In this last year I've been
the most productive ever, I think. Before last year, I hardly got
anything done. I did improve. I just have to continue to do so.</p>
<p>How can I do so? I've got to get my priorities right.</p>
<ul class="simple">
<li>I'll start studying in a month and that should of course be my number
one priority.</li>
<li>Until then, there's a Jedi Academy mapping contest and I just decided
I'll give that a try. I've got about one month, plenty of time.</li>
<li>Once I'm done with that map (or the contest is over, whichever comes
first) I should concentrate on Spirits of the Sith, the Jedi Academy
mod my team 3D-Get and I were working on. We recently got back
together and decided to finish it.</li>
<li>After that, I have time to do coding. It'd be nice to get a game on
Steam and make some money. A good way to prototype some game ideas is
reportedly to create a game a week, so I might give that a try. By
then, I might also finally have a Razer Hydra. I'll surely do some
coding for it - possibly a Jedi Academy mod with 1:1 lightsaber
control? Or a Half-Life 2 mod with 1:1 gun control? (The latter is
probably easier.)</li>
<li>I should also not forget about my engine - But I'll likely just
create the weekly games using it.</li>
<li>And I should finish some little projects - md3 and Ghoul 2
im-/exporters for Blender 2.5, for example.</li>
</ul>
<p>So let's see how much of this I'll get done in the next couple of
months.</p>
<p>So long,</p>
<p>Willi</p>
The Whispered World2011-09-05T18:22:00+02:00mrwonkotag:mrwonko.de,2011-09-05:blog/2011/the-whispered-world.html<p>One of the many (well, not that many) games I picked up during the Steam
Summer Sale is The Whispered World. It's also one of the few (well, not
that few) games that I actually finished.</p>
<p>I'd like to share my thoughts on its ending, but I'll begin with a
spoiler free general review to help those that haven't played it yet
decide whether they should do so first or read on.</p>
<p>The Whispered World is a Point & Click adventure. It's got beautifully
drawn 2D scenes, interesting characters and good music and voice acting
- at least in the German version. I usually play games in English, but
The Whispered World is a German game and I figured I should thus play it
in German.</p>
<p>The riddles, on the other hand, are occasionally not that good. The most
important lesson I learned is: Always try closing the door. The game
hides important things behind opened doors way too often. But even
though I looked at a walkthrough multiple times - or maybe because of
that - I enjoyed the game.</p>
<p>The thing I probably liked most and will henceforth discuss is the
story. I guess you need a certain maturity to be able to appreciate it -
I don't really think The Whispered World is a game for children.</p>
<p>So let's talk about the story.</p>
<p><strong>Spoilers begin here.</strong></p>
<p>In The Whispered World you guide the clown Sadwick through a beautiful
world and get to know interesting characters. Early on you are
prophesied to destroy that world.</p>
<p>A prophecy that is bound to be fulfilled. You're on your way to the
king, trying to save him. When you're almost there, you cause the world
to start falling apart. To stop it, you freeze time. Successfully.</p>
<p>But nobody ages any more. Nothing changes any more. And there's The Evil
Guy. He planned an invasion of the king's realm. Change hurts him. With
time frozen, he's god. Or pretty damn powerful, anyway. So you've kept
the world from being destroyed at the price of The Evil Guy ruling...
forever. You decide to unfreeze time and risk the world's destruction
for a chance to save the king, hoping he can stop this.</p>
<p>But once you reach the king's room, it's empty. The only notable thing
is a mirror. Looking at it, you see a little boy. He pulls you through
the mirror. You're now between two such mirrors - one to the world you
came from, the other to a hospital where the boy - Sadwick, you! - is
lying in a bed, in coma. The whole world has just been a dream, based on
a story your father read to you. (Hence the name.)</p>
<p>The boy urges you to return to the "real" world. You're given the choice
to stay in your dream world which you know and love or leave it.
(Apparently you're not actually free to choose, but I chose "correctly"
so I didn't notice.)</p>
<p>Which, I realized, is just a metaphor for you playing the game. Which is
brilliant.</p>
<p>You've visited this beautiful world, full of interesting characters, but
now you've reached your destination and the game asks you to turn it
off. You could stay in the game and keep things the way they were, but
you know it's wrong. There's nothing for you in that world any more.</p>
<p>And it was bound to happen this way. By playing the game, you inevitably
got closer to its end, the destruction of the wonderful world you
visited. The story is over.</p>
<p>It's very effective. By (seemingly) offering you the choice to leave or
to stay, it makes you think back to this wonderful world you've been in.
I didn't want to leave. I liked that world. But I knew it was the right
thing to do. It still made me sad. I wept. I'm not even entirely sure
why, but I was deeply moved.</p>
<p>It may have made me question video games/my lifestyle... I'm not quite
sure. Is spending time browsing the internet and playing games not
somewhat equivalent to living in a dream world? Am I in some sort of
coma, missing out on the real world? I don't really want to think about
it.</p>
<p>But I agree that change is necessary. I should program more. Release
some games. Advance. Waste less time.</p>
<p>It's a great achievement for The Whispered World to provoke such
thoughts. I don't think it'll supersede Psychonauts as my favorite game,
but it certainly has one of the best endings I've seen so far - in my
opinion. I'm sure not everybody experiences it this way.</p>
<p>I'm glad I played it.</p>
<ul class="simple">
<li>Willi</li>
</ul>
first contact with .NET2011-08-27T10:23:00+02:00mrwonkotag:mrwonko.de,2011-08-27:blog/2011/first-contact-with-net.html<p>I've just been to the Gamescom. I don't have anything terribly
interesting to tell about that, besides that I lost my key, but that's
not really interesting either.</p>
<p>One of the things I did there was trying the Razer Hydra in the Portal 2
map we all know from the videos. I was able to get the hang of it pretty
quickly so my first impression was good. Maybe I should've done some
more extensive testing, but the more interesting part was a conversation
with someone from Sixense, the people behind the hardware.</p>
<p>I already knew they're working on DirectInput support, i.e. emulating an
ordinary gamepad, but now I got an estimate: This winter. So a couple of
days ago I thought to myself: Gee, I can do that faster, can't I?</p>
<p>Through some googling I found PPJoy, a virtual joystick emulator. After
trying to send data to one of its virtual joysticks without success for
some time I eventually found a working sample. Which means I'll be able
to get PPJoy up and running. That's one part out of three.</p>
<p>The second part is getting Input from the Hydra. Sixense has a free SDK,
available from Steam, which is pretty straight-forward. It doesn't
compile out of the box with MSVC 10 due to the lack of calling
convention definitions but that's easily fixed. The more serious problem
is that I in fact don't yet have a Hydra. I'm waiting for a version
without Portal 2, which is to be released "soon" for 100€. So I depend
on others to test my code. But so far everything seems to work, the SDK
works as expected (mostly). That's part two of three done.</p>
<p>The last part is creating an application that combines PPJoy and the
Sixense SDK and allows the user to configure it easily. Ordinary Windows
windows come to mind. So the time had come to make use of the "Visual"
part of Microsoft <em>Visual</em> Studio for the first time: Creating windows
with a visual editor using the .NET Framework.</p>
<p>It's surprisingly easy though I did have to learn about Microsoft's
superset of C++, which introduces garbage collection and new pointer
types for these reference counted objects. Still I'm making good
progress and most of the problems that pop up every now and then are
easily fixed. I might actually get this done this weekend.</p>
<p><a class="reference external" href="http://sixense.com/forum/vbulletin/showthread.php?3203-DirectInput-virtual-gamepad-%28version-0-4f%29">Link to my thread in the Sixense
forums</a></p>
<p>So long,</p>
<p>Willi</p>
3 months later...2011-08-09T21:03:00+02:00mrwonkotag:mrwonko.de,2011-08-09:blog/2011/half-a-year-later.html<p>Wait, it's been 3 months since I last wrote something? Wow.</p>
<p>By now enough has happened for another post to be justified... by far.
So prepare for information!</p>
<p>The first couple of weeks I spent in school. Then, in June, I was
suddenly done.</p>
<p>Before that happened, I started watching My Little Pony: Friendship is
Magic, which is surprisingly awesome. I'm not quite sure if that was
before or after my last blog post, but it doesn't matter, I don't think
I mentioned it here yet but I ought to.</p>
<p>Starting in October, I will study computer science. Until then, I'm
doing an internship coding software.</p>
<p>I'm also on on <a class="reference external" href="https://plus.google.com/101127119059250564535/posts">Google
Plus</a> now.</p>
<p>Next week I'll attend the Gamescom. I'll be there on Thursday and Friday
and fellow My Little Pony fans (and everybody else) may feel free to
meet me at 12 an 4pm between halls 6 and 7. I'll wear a <a class="reference external" href="http://mrwonko.de/blog/legacy/robe+mark_sm.png">jedi robe and a
button</a> so I'll be
quite recognizable.</p>
<p>Since I'd like to shoot some videos I got myself a (used) Kodak Zi8.
Very acceptable quality considering its price. Except the price
increases if you also buy a second battery, an SD card and an external
microphone, like I did.</p>
<p>Also, my old Jedi Academy modding team 3D-Get is currently being
revived. We're going to finish our old Single Player mod.</p>
<p>That's all I can think of at the moment, but that <em>is</em> quite a lot
already, isn't it?</p>
<p>So long,</p>
<p>Willi</p>
Portal 2, lost Yah, potatoes and Ludum Dare2011-05-04T21:52:00+02:00mrwonkotag:mrwonko.de,2011-05-04:blog/2011/portal-2-lost-yah-potatoes-and-ludum-dare.html<p>I seem to not have written a blog post for a while. That's probably
because I started tweeting small updates I don't deem worthy of a blog
post, thus preventing them from accumulating so they're eventually worth
one.</p>
<p>So here's what happened recently:</p>
<p>Exactly 4 weeks ago I left my hat in the train, a lovely Stetson I got
last birthday, I believe it's the "Yah" model. Since that happens rather
frequently you can report losses online and hope the train people come
back to you. But they didn't. And after 4 weeks they stop looking. So
all hope is gone. I will miss you, my beloved hat. (If you happen to
have found my hat and read this, please contact me. Ah, who am I
kidding?)</p>
<p><a class="reference external" href="http://mrwonko.de/blog/legacy/Klassenfahrt_Amsterdam-027.jpg"><img alt="image0" src="http://mrwonko.de/blog/legacy/Klassenfahrt_Amsterdam-027-300x224.jpg" /></a></p>
<p>So I'd like to have a new hat. They're useful against the sun, rain and
bad looks. Might just get the same model again since I liked it. It's
somewhat expensive though, 70€, so the sun may need to bother me a bit
more before I bring myself to buy one.</p>
<p>On the other hand I did get some games for free recently, so I should
have some money, right? Preceding the release of Portal 2 was an
Alternate Reality Game, the Potato ARG. You can read about it in more
depth on <a class="reference external" href="http://valvearg.com/wiki/">its wiki</a>, but here's the short
version:</p>
<p>Starting on April 1st 13 indie games got a "PotatoFoolsDay" update which
in most cases added potatoes to the games in some way or another. Those
13 games were then discounted and sold in a bundle, the "Potato Sack".
It also turned out that there were hidden clues/riddles in the games,
with later updates adding more, in some cases eventually even adding new
Portal 2-related levels. By solving the riddles and accomplishing tasks,
players could earn potatoes for their steam profile, 36 in total.</p>
<p>Once the riddling was on I got interested and wanted to have a look -
and it contained many nice games like Amnesia and Killing Floor (which I
already played when it was still a mod) - so I bought the Potato Sack.
And I started collecting potatoes. All 36.</p>
<p>Eventually the best ARG solvers were invited to visit Valve, play Portal
2 early and take part in the launch event, and Portal 2 was released a
couple of hours early as the result of the ARG being solved. Have I
mentioned that I love Valve? I love Valve. That was not of particular
interest to me though because I was still waiting for further
information on the Razer Hydra/Portal 2 bundle (which by now has been
released - the information that is, the bundle is due in June or
something), not wanting to buy Portal 2 without the bundle if it should
indeed contain the full version of Portal 2. (It will!)</p>
<p>Another ARG related thing has had far more impact on me: Valve gave
Valve Complete Packs to everybody who earned all 36 potatoes. That's
every Valve game there is! Including Portal 2! So that's how I got
Portal 2. (And CS, DoD(S) and some others I'm not very interested in. I
had pretty much every <em>released</em> Valve game of interest to me already.)</p>
<p>So what do I think about Portal 2? I think Notch pretty much nailed it
<a class="reference external" href="http://notch.tumblr.com/post/4771278428/portal-2-review">in his
review</a> when
he wrote: "Play it."</p>
<p>I also finally coded some more. Last weekend was <a class="reference external" href="http://www.ludumdare.com/compo/">Ludum
Dare</a> 20, a make-a-game-in-48h
competition, and I made a game. This time the theme was "It's dangerous
to go alone! Take this!", and <a class="reference external" href="http://www.ludumdare.com/compo/ludum-dare-20/?action=rate&uid=3631">this is my
entry</a>.
I'm not going to win anything with that, especially since there are over
200 entries - some most likely better than mine, though I haven't played
any so far - and no prizes, but it's nice to be able to add another game
to my portfolio. A somewhat buggy game though, it has terrible memory
leaks. I'll have to fix those one day. Soon, preferably. Especially
since only some of them are in the game code, while at least one is in
my framework/engine, which is to be used on many more games to come, so
it better be flawless.</p>
<p>Well, I think that's about it for now.</p>
<p>So long,</p>
<p>Willi</p>
Abitur, Bulletstorm, coding2011-03-16T17:24:00+01:00mrwonkotag:mrwonko.de,2011-03-16:blog/2011/abitur-bulletstorm-coding.html<p>What have I been doing recently?</p>
<p>The most noteworthy thing is probably my written Abitur, the final
school exam. I think I did best in maths, but the other subjects,
English and physics, were okay, too. In less than 3 months I will be
done with school altogether.</p>
<p>I recently bought Bulletstorm and actually finished the singleplayer,
twice even. I liked it. Two friends bought it, too, but we have not yet
really played online together. One of them is unable to active his key.</p>
<p>I also finished Chaser, which I got during the last Steam holiday sale.
It was okay and pretty long. I also recently bought and finished Call of
Juarez: Bound in Blood. I had been wanting to play it for quite some
time, but it was still better than I expected. I had a lot of fun.</p>
<p>On the other hand, I haven't done any coding for almost a whole month. I
believe that is because I don't know the "best" solution. If such a
thing even exists. I think I should stop trying to achieve perfection
and just code, gathering experience that I can later use to improve. Or
maybe I'm just lazy.</p>
<p>So long,</p>
<p>Willi</p>
cleaning up2011-02-23T22:45:00+01:00mrwonkotag:mrwonko.de,2011-02-23:blog/2011/cleaning-up.html<p>I just freed 16 GB on C:, mostly by disabling hibernation (which doesn't
work with >4gb ram anyway), moving the windows search index (>6 GB!) and
My Documents (another 4 GB).</p>
<p>Determining that those directories were the biggest space users was
pretty easy thanks to the tool <a class="reference external" href="http://windirstat.info/">WinDirStat</a>
which is very useful when trying to figure out where all that free space
went.</p>
<p>Coding-wise I haven't done enough recently... I don't quite know where to
start with the menu/hud system coding, or at least I keep telling myself
so.</p>
TIGCompo: Versus2011-02-06T21:25:00+01:00mrwonkotag:mrwonko.de,2011-02-06:blog/2011/tigcompo-versus.html<p>Recently I wrote about my plans. They included participating in Mini
Ludum Dare 23 - <a class="reference external" href="http://mrwonko.de/downloads/2011/year-of-the-rooster.html">which I successfully
did</a> - and in the Versus
competition at <a class="reference external" href="http://www.tigsource.com/">TIGSource.com</a>. Which I'm
also doing - see <a class="reference external" href="http://forums.tigsource.com/index.php?topic=17218">my forum thread
there</a> for updates
on that.</p>
<p>And while there's a lot of work to do and I'm not sure I'll make it in
time, I am still pretty productive since I'm forced to work. Deadlines
help. And since I've decided to work cleanly, creating components to be
reused in Jedi Academy: Renaissance (as opposed to doing it
quick'n'dirty), it may be more work but it will be worth it.</p>
<p>So long,</p>
<p>Willi</p>
finished: Sam & Max: Season 22011-01-30T19:50:00+01:00mrwonkotag:mrwonko.de,2011-01-30:blog/2011/finished-sam-max-season-2.html<p>I just finished Sam & Max: Season 2. And I had a lot of fun! Probably
because it's a funny game. Laughed a lot. And when I was stuck the new
help system helped in a subtle way.</p>
<p>I'm looking forward to playing Season 3, which I believe will run in
Windows 7. (Unlike Season 2, which I had to play in XP - which is why I
hadn't played it until a couple of days ago, although I've had it since
November)</p>
<p>Hmm that's a pretty short entry... Maybe I should use Twitter for posts
like this and add a twitter widget? Maybe...</p>
Plans2011-01-18T21:23:00+01:00mrwonkotag:mrwonko.de,2011-01-18:blog/2011/plans.html<p>Just recently I saw <a class="reference external" href="http://www.ted.com/talks/derek_sivers_keep_your_goals_to_yourself.html">a talk about not telling your
goals</a>.
It basically claims that you already get all the positive feedback you'd
ever want when you tell someone your plans, making actual execution
unnecessary. Luckily I don't ever get any feedback (besides spam) on
this blog so I might as well post my plans.</p>
<p>This weekend I'm going to participate in the Mini <a class="reference external" href="http://www.ludumdare.com/compo/">Ludum
Dare</a> 23, a 48h game making
competition. I'm curious if I'll be able to build a game from ground up
using SFML in 48 hours.</p>
<p>And yesterday <a class="reference external" href="http://www.tigsource.com/">TIGSource</a> was recommended
to me, it's supposedly a nice community of game developers. Just minutes
after that they announced a competition, the <a class="reference external" href="http://www.tigsource.com/2011/01/18/tigcompo-versus/">Versus
Competition</a>.
Its goal is the creation of a competitive multiplayer game. I know that
I'd better look into multiplayer some day and this seems like a good
opportunity. It will end on the 27th of February.</p>
<p>The next day my final written exams in school, the "Schriftliches
Abitur", will take place. I'm pretty confident that I'll do good, even
without spending much of my spare time learning. May do it anyway, but
I'll likely still have enough time for the Versus TIGCompo.</p>
<p>So long,</p>
<p>Willi</p>
1m Minecraft Sales2011-01-12T21:32:00+01:00mrwonkotag:mrwonko.de,2011-01-12:blog/2011/1m-minecraft-sales.html<p>Wow, <a class="reference external" href="http://minecraft.net/">Minecraft</a> now has over one million
sales! It deserves it. I have a lot of fun with it. (Super Meat Boy is
great, too. Playing a lot of indie games recently.)</p>
Happy New Year 2011!2010-12-31T23:14:00+01:00mrwonkotag:mrwonko.de,2010-12-31:blog/2010/happy-new-year-2011.html<p>A happy New Year to everybody who happens to read this, spam bots
included!</p>
<p>My New Year resolution is to code more, I guess. Get something done.</p>
<p>So long,</p>
<p>Willi</p>
Programming again :-)2010-12-29T18:29:00+01:00mrwonkotag:mrwonko.de,2010-12-29:blog/2010/programming-again.html<p>I recently started programming again. Feels good. :-)</p>
<p>I've continued work on my input system, which so far only supported
keyboards. Now I've got gamepad support, mostly. One important thing I
wanted to have was XInput support, for proper support of the XBox 360
gamepad (both analog triggers, rumble function), but I also want
DirectInput for legacy reasons.</p>
<p>Now I've got all that, except for rumbling on DirectInput devices. I
don't have any DirectInput gamepads that are capable of rumbling. Well,
I <em>didn't</em>. Just grabbed one off eBay, for a mere 6€. I doubt it's good
but it'll suffice. I feel a little crazy for buying a gamepad just to be
able to program, but that's okay. Nothing wrong with being a little
crazy.</p>
<p>The only other thing still missing is mouse support, then input is done,
I believe. Nice. Getting stuff done feels good. I still need to get more
stuff done before I have something usable, but I'm getting there. I'll
then start by doing Pong, and probably some simple 2D games, before
starting work on that big space shooting sidescroller I plan to do some
day.</p>
<p>But back to the present: I'm about to go and enjoy a concert by Van
Canto & In Legend, looking forward to it. I may not be able to return
though since the last train leaves at around 12:30am, I don't know if
the concert will be over by then. I don't want to say I hope so, either,
since that'd mean it'd be shorter... Nothing I can do about that anyway.
I'm not going alone, some friends will go there too, so I won't be alone
in Hamburg.</p>
<p>So long,</p>
<p>Willi</p>
VVVVVV2010-12-27T01:31:00+01:00mrwonkotag:mrwonko.de,2010-12-27:blog/2010/vvvvvv.html<p>I've finished VVVVVV today.</p>
<p>Super Meat Boy features Captain Viridian (VVVVVV's protagonist) as an
unlockable character, that's how I learned about the game. As part of
the Steam Holiday Sale it's available in the Indie 2D Pack for 4,50€.</p>
<p>So I got that pack and played VVVVVV (and the others too, as mentioned
earlier). I like its gameplay in general, though the controls in Super
Meat Boy are nicer. Which is why I want to unlock Viridan in SMB and see
if it's any better there. Should be. Requires 90 bandages though... The
other thing I really liked about VVVVVV is its soundtrack. Some of the
songs can be streamed
<a class="reference external" href="http://souleyedigitalmusic.bandcamp.com/">here</a>.</p>
<p>If you like the trailer I suggest you check it out - for <a class="reference external" href="http://store.steampowered.com/sub/6915/">currently only
4,50€</a> you also get Geometry
Wars and Galcon Fusion, amongst others. I'm playing a lot of indie games
at the moment and it's a lot of fun. I ought to program something
myself, maybe a space shooting sidescroller.</p>
<p>Willi</p>
Christmas! Minecraft! Skyrim!2010-12-25T00:44:00+01:00mrwonkotag:mrwonko.de,2010-12-25:blog/2010/christmas-minecraft-skyrim.html<p><a class="reference external" href="http://mrwonko.de/blog/legacy/xmas2010_01.jpg"><img alt="image0" src="http://mrwonko.de/blog/legacy/xmas2010_01-300x161.jpg" /></a></p>
<p>It's Christmas once again! Yay! More relatives are going to
visit tomorrow, but here are the presents I've received so far:</p>
<ul class="simple">
<li>Minority Report (book)</li>
<li>Venetica (game)</li>
<li>Bob Marley - Uprising</li>
<li>400g of Marzipan - Yummy!</li>
<li>Deathspank (Steam sale at just the right time :) )</li>
<li>Shoes</li>
</ul>
<p>So no big presents, but I like all of them; I currently don't need
anything big anyway, I'm very happy satisfied as it is.</p>
<p>Thinking ahead I had already bought a Half-Life 2 10-pack and a Left 4
Dead 2 6-pack at the Steam Thanksgiving Sale so I had some presents for
those of my friends unfortunate enough to not own those games yet. Since
I don't have 10 friends without Half-Life 2 my <em>free Half-Life 2 for the
first non-spam comment</em> offer still stands. That also means I needed
some other presents for the other friends. Luckily CS:S and the Overlord
Series are currently on sale on Steam - which two friends of mine want.
Or wanted. Now they've got them. :-D</p>
<p>I also just bought the Indie 2D Pack on Steam since it contains VVVVVV
(which seems interesting) and is currently only 4,50€. Today I checked
out all the games besides VVVVVV - I especially like Galcon Fusion, the
pack also contains Super Laser Racer, Geometry Wars: Retro Evolved and
Bullet Candy. Bullet Candy surprised me since it's so simple, I think if
I keep on programming for a bit I may be able to write something
similar, complexity-wise. Which means I may be able to make a Euro or
two on Steam, soon. (Within the next year?) That'd certainly be cool.</p>
<p>I've also bought the Oddbox, since I played Abe's Odyssey a loooong time
ago when it was on a videogame magazine's CD (which I've long lost) and
never finished it and kinda liked it and it was only 12,50€.</p>
<p>And I don't think I've mentioned that I bought Minecraft (just before it
turned beta and became more expensive). It's very fun, especially since
after seeing me play it a couple of friends immediately wanted it, too.
Now we play it together in multiplayer and have a very good time.</p>
<p>I haven't expressed my anticipation for The Elder Scrolls 5: Skyrim and
Mass Effect 3 yet, either. Since BioWare had announced that they'll
reveal something at the Spike Video Game Awards I stayed up until 4am
watching bad quality live streams. The game turned out to be Mass Effect
3, and I'm really looking forward to it. I totally did not expect the
next Elder Scrolls game to be revealed as well, though. Caught me by
surprise, in a very positive way. I loved Oblivion and spent multiple
hundred hours in it, I just hope the new engine in The Elder Scrolls 5:
Skyrim will be (at least) as moddable as Gamebryo.</p>
<p>This post became longer than I expected... Guess I should write more
often if I want the posts to be shorter.</p>
<p>Merry Christmas.</p>
<p>Willi</p>
More programming?2010-12-21T23:12:00+01:00mrwonkotag:mrwonko.de,2010-12-21:blog/2010/more-programming.html<p>Hi,</p>
<p>I don't program much at the moment. I'd like to change that.</p>
<p>I believe that one of the problems is my lack of experience. I just need
to program more.</p>
<p>Through Minecraft, or more precisely its developer Markus Persson, I
became aware of Game Jams, competitions/events in which developers try
to create a game in very limited time. Appearently <a class="reference external" href="http://www.mojang.com/notch/">Markus has built
games</a> for <a class="reference external" href="http://www.ludumdare.com">Ludum
Dare</a> in 48h, and World of Goo started as
<a class="reference external" href="http://www.gamasutra.com/view/feature/2438/how_to_prototype_a_game_in_under_7_.php">one prototype amongst many, all developed in one
week</a>.</p>
<p>I like the idea and I think I'll try to create a game for the
<a class="reference external" href="http://experimentalgameplay.com/">Experimental Gameplay Project</a> in
7 days. The theme is <em>drawing</em>. I don't know what I'm going to do yet,
but I'll think about it.</p>
<p>I'll have holidays soon, on Thursday, so I should have plenty of time.
Oh, and there'll be Christmas, but you probably know that. And I still
love the <a class="reference external" href="http://store.steampowered.com">Steam</a> Holiday Sale.</p>
<p>Willi</p>
Humble Indie Bundle 22010-12-14T18:32:00+01:00mrwonkotag:mrwonko.de,2010-12-14:blog/2010/humble-indie-bundle-2.html<p>There's another <a class="reference external" href="http://www.humblebundle.com/">Humble Indie Bundle</a>!</p>
<p>Included are Braid, Cortex Command, Machinarium, Osmos and Revenge of
the Titans, for a price you can choose yourself, with the option of
giving the money to charity. (Partially? Completely? Once again, you can
choose.)</p>
<p>I'm going to get it although I already own Braid. (Not on Linux though.
That's another nice thing about the bundle: You get the games on
Windows, Mac and Linux. And completely DRM free.) I've heard good things
about Machinarium, I'm interested in Revenge of the Titans and the other
two games probably aren't bad, either.</p>
<p>So go ahead and buy the thing as well. And be fair with the pricing!</p>
<p>Willi</p>
Completed: Darksiders2010-12-06T16:17:00+01:00mrwonkotag:mrwonko.de,2010-12-06:blog/2010/completed-darksiders.html<p>I'm done with Darksiders now. Not 100% done as in found every item,
bought every power etc., but I defeated the final boss and saw the
credits. That's enough.</p>
<p>Since it took me quite a while because I took some breaks I didn't get
the whole story, so I've got to read that up I think.</p>
<p>I had a lot of fun and liked the art style, I'm looking forward to
Darksiders 2.</p>
<p>Since I don't know what else to write I'll stop here.</p>
<p>So long,</p>
<p>Willi</p>
HDD not working again, actually.2010-12-03T21:59:00+01:00mrwonkotag:mrwonko.de,2010-12-03:blog/2010/hdd-not-working-again-actually.html<p>Just a quick update on my HDD: It's not looking good. Sometimes it
works, sometimes it doesn't, and I'm happy I could backup its important
contents.</p>
<p>I'm not programming much recently, I've been playing games I bought
during the steam sale; I've had a lot of fun with Just Cause 2,
Prototype, Lara Croft and the Guardian of Light and Blur so far. KOTOR
doesn't work properly on widescreens, there are some bugs with the GUI
which may be linked to my widescreen.</p>
HDD Working again?2010-11-30T12:03:00+01:00mrwonkotag:mrwonko.de,2010-11-30:blog/2010/hdd-working-again.html<p>It seems like my HDD is working again. Strange.</p>
<p>Of course I'll do some backups now, but maybe it will keep working now.
Could've made a mistake switching cases or something... Whatever.</p>
<p>It's over 2 years old so I doubt I still have a warranty, anyway.</p>
Snow? Already? And where is my HDD?2010-11-29T20:53:00+01:00mrwonkotag:mrwonko.de,2010-11-29:blog/2010/snow-already-and-where-is-my-hdd.html<p><a class="reference external" href="http://mrwonko.de/blog/legacy/hd502ij.png"><img alt="image0" src="http://mrwonko.de/blog/legacy/hd502ij-300x243.png" /></a></p>
<p>It's been snowing and freezing for some days now - I think
that's pretty early.</p>
<p>On another note, one of my HDDs just vanished. Or at least its
partitions partitions did. Among them were my Ubuntu Boot Partition
(containing GRUB things) and a general data partition (containing
amongst others my music, documents and programming stuff). I'll later
write a full image of it before trying any recovery.</p>
<p>I just changed my pc case and added a new 2TB HDD, I don't think that's
connected to my problems though.</p>
<p>Note that this has no influence on my current
write-the-first-comment-competition.</p>
<p>So long,</p>
<p>Willi</p>
Steam Give & Get Sale2010-11-25T13:32:00+01:00mrwonkotag:mrwonko.de,2010-11-25:blog/2010/steam-give-get-sale.html<p>Steam has another big sale, <em>The Give & Get Sale</em>, which focusses on
packs of games. I already mentioned this in the last post but I think
this is worth its own post.</p>
<p><a class="reference external" href="http://store.steampowered.com">Steam Store</a></p>
<p>As mentioned before I got myself Sam & Max Season 3, and by now I also
decided to give Prototype a try. I don't have enough space to install
them yet, but my new HDD should arrive in a few days.</p>
<p>I like how Valve is giving away Half-Life 2 for 2€ (if you buy 10). To
celebrate this, and to see whether anybody is actually reading this
blog, the first person to comment on this post <em>may</em> get one copy for
free. Or maybe not, that depends. But chances are (s)he will. Plus,
it'll be the first comment ever, besides the 222 Spam comments blocked
so far.</p>
<p>I feel I should also tell you about the 50% off everything sale at
Telltale Games that I just stumbled upon, though that ends today. I
bought Sam & Max Season 2, now I've got all 3 seasons. Got it even
cheaper because I already had one episode - due to a free giveaway by
them. Season 2 for 10.50$ is even better than Steam's Season 3 for 9.90€
deal. :-)</p>
coding again2010-11-24T21:58:00+01:00mrwonkotag:mrwonko.de,2010-11-24:blog/2010/coding-again.html<p>Hello blog readers,</p>
<p>I'm being productive again. I still play games (recently started Mini
Ninjas again - I lost my savegames earlier) and stuff but I'm also
coding some more.</p>
<p>What am I coding? My ultimate goal is recoding Jedi Academy. By now it
seems pretty unlikely Raven/Activision are ever going to release all the
sourcecode and even if they did I'd try a rewrite, since I prefer a
C++/Lua combination over C.</p>
<p>Lua? What's my goal? Having started my coding career as a mapper/modder
I keep modders in mind. I want the game to be highly extendible. At the
moment Jedi Academy MP mods can modify a dll, and since only one dll is
loaded only one such mod can be active at any moment. With Lua many mods
could be active simultaneously.</p>
<p>Besides making it more moddable I'd also like to improve the engine,
adding a physics engine (possibly DMM2 once it's released for free) and
stuff like pixel shaders and all that next gen stuff, but those are
long-term goals and first I'd like to have aa game capable of using
(most of) Jedi Academy's assets with a similar gameplay. (Luckily the mp
gameplay parts of the code are released.)</p>
<p>I've started working on that recode. It's a massive project and I'm not
going to code the whole thing at once. Instead I'll write many
increasingly complex applications, keeping the same framework and
extending it.</p>
<p>Since I also want to look into OpenCL I'll start with a 2-dimensional
gravity simulation, i.e. having a couple of (or many) planets with
gravity. I'm going to implement it both in C++ and in OpenCL so I can
measure the difference - so while I'm at it I might want to code a
profiler, too.</p>
<p>For that simulation I need some more features though. This is what I've
got so far:</p>
<ul class="simple">
<li>Keyboard input (Windows) / Event-System</li>
<li>PhysFS-based filesystem that can handle mods</li>
<li>Lua support</li>
<li>CVars (Console Variables)</li>
<li>Logging - there aren't many kinds of loggers so far, but I'll add
more later.</li>
</ul>
<p>I'll need some more for the simulation:</p>
<ul class="simple">
<li>Commands, i.e. the actions that happen when a key is pressed (or its
name is entered in the console)</li>
<li>a window (will use SFML)</li>
<li>OpenCL integration of some kind</li>
<li>(console)</li>
<li>(profiler)</li>
</ul>
<p>Now that I've listed them - it's not that much actually! I probably
forgot something, but still... May have this done by the end of this
week? Probably not...</p>
<p>In other news, I've managed to fill my 1.25TB of HDD space, only have
about 50GB free space in total left. Instead of doing some cleanup I
bought an additional 2TB and a pc case because the self-built case I
currently use has no space for additional hard disks, or additional
anything really. Will this be my comeback as a casemodder? Time will
tell...</p>
<p>And there's another sale at Steam. I just bought Sam & Max: Season
3, now I only need Season 2 since I'd like to play them in the right
order.</p>
<p>So long,</p>
<p>Willi</p>
Recently playing: Darksiders, Dead Rising 2, Borderlands, Metro 20332010-11-06T23:10:00+01:00mrwonkotag:mrwonko.de,2010-11-06:blog/2010/recently-playing-darksiders-dead-rising-2-borderlands-metro-2033.html<p>Hello,</p>
<p>so I haven't really done that much recently. Been coding a little,
things regarding Raven Software's IBI (interpreted block instructions)
file format - didn't need to reverse engineer as much this time
(compared to ROFF) since most of its source is in the Elite Force code
which has been released.</p>
<p>Besides that (and surfing/idling around) I've been mostly playing
games.While I was still playing Darksiders, which is a pretty nice game
and has a good art direction, Dead Rising 2 arrived. I started playing
that and finished it 2 1/2 times, though it's not really finished since
you keep your character and I'm not the highest level yet.
Forty-something. Had quite some fun in that game, especially that one
time I played it in coop where me and my coop partner threw cakes at
each other.</p>
<p>Then I got myself the Borderlands GOTY and had some fun playing that,
and I'll probably have more fun with it in the future. Nice mix of RPG
and shooter and has a nice art direction as well.</p>
<p>The other game I actually finished is Metro 2033. Very nice game, I
remember the developers saying they wanted it to be as good as Half Life
2. While they don't succeed completely - for example the sneaking parts
are too hard in my opinion, mostly due to the lack of feedback - it's
still a very nice game. Interesting story/setting, too, but the end left
me wondering whether things couldn't have been done differently. And
appearently there is an alternative ending, so I'm going to play it
again, trying to get that.</p>
<p>And this weekend Supreme Commander 2 is 66% off on Steam. (And
appearently GTA games outside of germany...) I liked Supreme Commander,
but from what I read about it, SupCom 2 seems to be lacking quite some
things I liked about the first one to make it more... casual? To make
more people play it. Well, I played the demo and decided to actually buy
it. 8,50€ is not that much, after all, and I haven't played many RTS
games recently.</p>
<p>Talking about RTS games, I'm keeping an eye on Valve's DOTA2, which is
probably going to be as great as (nearly) every other Valve game.</p>
I'm happy :-)2010-10-09T20:27:00+02:00mrwonkotag:mrwonko.de,2010-10-09:blog/2010/im-happy.html<p>Lot's of nice things happening recently.</p>
<p>I'm back from a nice week in Amsterdam with my class. Visited some
museums as well as the Hard Rock Cafe Amsterdam, also ate quite some
Italian food, had a quick tour through the Blender Foundation (and got a
glimpse at all the nice tutorials going to be included on the Sintel DVD
I preordered) and watched Resident Evil Afterlife in English and 3D. I
also found out I like Jazz Clubs, I might visit some more in the future.</p>
<p>Now I'm back home and I've got... holidays! No school for 2 weeks. :-)</p>
<p>Remember when I told you about <a class="reference external" href="http://www.youtube.com/watch?v=BYRtfJ5iShI">my entry to the Midnight Riders Video
Contest</a> in the last
post? I told you I wouldn't win (well, not in here the blog, but <a class="reference external" href="http://forums.steampowered.com/forums/showpost.php?p=17219954&postcount=529">I
wrote it in the Steam
Forums</a>)
- and I didn't win. But I <em>did</em> receive an <a class="reference external" href="http://www.l4d.com/blog/post.php?id=4433">honorable
mention</a> for "Best Use of
Black and White". Yay!</p>
<p>I stopped having fun with Darksiders, because now I'm having fun with
Dead Rising 2 which arrived shortly after the last post was written. I
have finished it twice by now, once with ending D, once with S, and I'm
not going to stop yet - it's a great game. Darksiders will have to wait,
it doesn't have as many zombies.</p>
<p>Talking about zombie games - do you know Zombie Driver? I know little about
it except that it exists and you drive around killing zombies. Well,
that's about to change since I just won it, together with the A New
Beginning soundtrack.</p>
<p>I'm off playing some more Dead Rising 2, see you next time!</p>
<p>Willi</p>
I've been silent - because I was busy.2010-10-02T09:37:00+02:00mrwonkotag:mrwonko.de,2010-10-02:blog/2010/ive-been-silent-because-i-was-busy.html<p>As you may or may not have noticed I didn't write anything for over a
month. That may partially be due to my lazyness, but it's also because I
was busy (i.e. not lazy).</p>
<p>On September 1st, Valve started a
<a class="reference external" href="http://www.midnight-riders.com/videocontest/index.html">contest</a>:
Create a music video for the song "Save me Some Sugar" by the (fictional)
Band "the Midnight Riders". That's right, Valve invented a band, and
they actually wrote and performed songs for the band. And now they let
the fans create music videos. I was one of those who did that.</p>
<p>I had actually lost motivation half-way through when many good entries
started appearing and Darksiders arrived. Then, on the 28th September,
Chet Faliszek, a Valve employee, wrote this:</p>
<blockquote>
Damn, these are getting really good as we near the finish. Remember
the contest ends the 1st. With this many great entries I think we
are going to have to give away more than just one prize. Will have
to see if the Riders left anything else behind...</blockquote>
<p>That motivated me to try and finish my video. I barely had any time
left, so I started cutting the song to shorten it. In the end I barely
finished and learned quite some things. For example that render time
shouldn't be underestimated, that you should check that all objects are
set to be rendered before rendering 1000 frames (luckily I could get
away with only re-rendering the missing object, a spotlight) and that
playing Darksiders is way more fun than creating a video. More on
Darksiders once I've finished it.</p>
<p>Anyway, here's the video:</p>
<p>
<object width="425" height="344">
<embed src="http://www.youtube.com/v/BYRtfJ5iShI?hl=de&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">
</embed>
</object>
</p><p>At least I didn't have to do any homeworks this week (don't let my
teachers hear that, I think I was supposed to do them anyway...) because
I participated in the "Mathematische Modellierungswoche" (roughly
translates as "mathematical modelling week") and couldn't/didn't have to
go to school.</p>
<p>The goal of the Modellierungswoche is to solve one of 4 given problems
by creating a mathematical model. The problems available were:</p>
<ul class="simple">
<li>How to fight wildfires using swaths</li>
<li>How to rate decathlons</li>
<li>Planning a wind farm</li>
<li>Should you turn the heating off during the night?</li>
</ul>
<p>We picked the first one. I liked it because I thought I could program a
fire simulation and that's what I did. That doesn't include swaths, but
Bernd did some swath related calculations as well.</p>
<p>The simulation is simplified, of course, and the values used may not be
close to reality, but it works and you can watch fires spread. It's
written in Lua, using SFML via luabind.</p>
<p>It's great how many things can be easily done in Lua, on the other hand
the dynamic typing can be a PITA, especially when debugging. Well, I got
the job done and there are no bugs I know of. (Of course that doesn't
necessarily mean there are no bugs.)</p>
<p>The Fire Simulation <a class="reference external" href="http://mrwonko.de/downloads/2010/wildfire-simulation.html">can be downloaded
here</a>.</p>
<p>Next week I'll be in Amsterdam with my class. We're going to visit
museums and stuff, but I'm looking forward most to my planned visit to
the Blender Foundation. I'll write more about that once I'm back.</p>
Holiday's over, GamesCom too2010-08-25T12:38:00+02:00mrwonkotag:mrwonko.de,2010-08-25:blog/2010/holidays-over-gamescom.html<p>Hello everybody!</p>
<p>My final 6-week holiday is over - that's right, I'm now in my final year
of school. Didn't do too much during the holidays, except for the last
two weeks which I spent in southern England (Hastings to be exact) with
my family and (some of) the family of a friend of my mother and the
GamesCom in Cologne which I visited last friday.</p>
<p>Let's talk about England first. We didn't do anything remarkable there,
if you ask me. I got myself X-Men Origins: Wolverine (cool game) and
Fallout 3 GOTY (not played this one much yet) for the PC (those are
harder to come by in Germany) and some new shoes but that's about it. We
lived in a trailer that wasn't really comfortable and did some trips
that weren't overly interesting, oh well...</p>
<p>The GamesCom was better. It was very useful that I just turned 18 and
could see everything - everything there was, that is; some things, e.g.
Bulletstorm, weren't shown.</p>
<p>I got to try out Star Wars: The Force Unleashed 2, which is pretty much
like The Force Unleashed 1, and Torchlight 2, which is pretty much like
Torchlight 1 except with multiplayer and different classes.</p>
<p>I could also try out the Crysis 2 Multiplayer, unfortunately on the XBox
360 (would've preferred a PC but there were twice as many 360s), still
it was pretty playable, in fact I was the best in my team and my team
won. Looking good, even on the 360, and was fun. We also saw a Trailer
in 3D, which looked nice as well, and I got a Crysis 2 "I love NY"
shirt. I like getting merchandise.</p>
<p>I also watched a Portal 2 presentation with some new scenes, though by
now they're online as well... But I got a Portal 2 T-Shirt, one of the
last ones in fact. It later turned out that they cost 20$ in the valve
shop, that makes me even happier. And to advertise Steam Valve gave away
free Keys, now two of my friends have Left 4 Dead 2. Very nice of them.</p>
<p>I wanted to have a look at Darksiders because it sure sounds
interesting, but since the only new thing in the PC version is
mouse/keyboard support you had to play with mouse and keyboard there,
and Darksiders is one of those games which I want to play with a
controller. Well, those playing didn't feel like stopping anyway. I took
that as a good sign.</p>
<p>Red Faction Armageddon was another game which I saw, they played it in a
presentation and the destruction's still nice. Didn't see any Witcher 2
related presentations, though I stopped looking after I found the
posters - now I've got 2 nice Witcher 2 posters. I've still got to
finish the first game but I'm looking forward to the second.</p>
<p>Another T-Shirt I got was from Fallout: New Vegas. I believe that was playable.
I didn't try it though, I let Andy (I think that was
his name) show me and a couple of others Rage, while Tim explained
stuff. Since id Software is now owned by Zenimax/Bethesda both Rage and
Fallout: New Vegas where at the same booth, though in different rooms.
Brink was there as well, though I only looked at Rage, at the final
presentation in fact. Looks like a good old id Software shooter with
some racing/vehicle combat. Tim told me they'll include the editor and
that eventually the Doom 3 Engine will be opensourced, just like the
Quake 3 Engine before it.</p>
<p>So while the GamesCom wasn't as spectacular as I'd hoped I still got a
lot of T-Shirts etc. and it was a nice thing nonetheless. I'll probably
go there again next year.</p>
<p>17 or so days of absence from the internet... In my case that means 113
new mails, a quarter of them newsletters, another quarter spam, and one
mailing list mails. Though those were mostly spam as well.</p>
<p>So no more holidays... Now it's school again. Thankfully I've got a new
English teacher, Mr. Adler, who so far I like very much. He seems like
a nice guy. This semester's topic will be London - a pretty vague topic
- and I just missed the chance to go there... Well, I didn't really know
why I should go there so I didn't. I don't really regret it. (Yet?)</p>
<p>Willi</p>
ROFF - the Raven Object File Format reverse engineered2015-04-08T15:15:00+02:00mrwonkotag:mrwonko.de,2010-07-27:blog/2010/roff-the-raven-object-file-format-reverse-engineered.html<p>Did you know that Raven Software included information on the Ghoul 2
model and animation file format in the Jedi Knight 2: Jedi Outcast SDK?
I didn't until yesterday or so.</p>
<p>I was looking for information on the format because I'd like to write
im- and exporters for Blender. As you may or may not know I'm a Jedi
Knight: Jedi Academy modder and I've been one since it first came out.
That's how I came to be a programmer actually, because they released
their multiplayer sourcecode.</p>
<p>Anyway, once I had the information on Ghoul 2 GLM & GLA I was pretty
happy. "What file formats do I not know about yet?", I asked myself. The
.efx effect files are pretty straight-forward since they're plain text.
The same applies for the botroute .wnt files. Compiled scripts, .ibi
files, are a little harder since they're binary, but I can just write a
lot of scripts and analyze the compiler's output. But I didn't know what
to do with the .rof files.</p>
<p>ROFF, or Raven Object File Format, contains complex animations for level
geometry. A couple of older Raven Software games, including Jedi Knight:
Jedi Academy and Jedi Knight 2: Jedi Outcast, use it e.g. for rolling
rocks, flying spaceships and camera paths.</p>
<p>There's an exporter for 3D Studio Max 4 & 5 which exports ROFF
animations, Raven released that. But I don't have 3D Studio Max, and if
I had it, I wouldn't have such an old version. I prefer
<a href="http://www.blender.org">Blender</a> though, it's free and open source.</p>
<p>So I looked at the .rof files using a hexeditor, the <a href="http://sourceforge.net/projects/npp-plugins/files/Hex%20Editor/">hex editor
plugin</a>
for <a href="http://notepad-plus-plus.org/">Notepad++</a> to be precise. The
beginning, "ROFF", was obviously the identifier. Guessing that the
following integer 2 was the version wasn't that hard, either. I wasn't
sure, but I supposed the next integer would be the total number of
frames since it was bigger when the file was bigger. Using some basic
math I could prove my theory and calculate a size of 20 bytes for the
header and 32 bytes per frame.</p>
<p>So what are the remaining 8 bytes in the header? The first 4 are the
time per frame in milliseconds as an integer, e.g. 50 (ms) for 20 fps. I
still don't know what the other 4 bytes in the header are, but I didn't
worry about them since they're always the same. Instead I looked at the
remaining 32 bytes. Since they were supposed to represent movement I
suspected them to be floats. Thus I wrote a little python script to read
them as floats and save them in a csv. I could then look at them in
<a href="http://www.openoffice.org/">OpenOffice.org</a> Calc. The last two rows
were always <code>nan</code> and <code>0</code>. They're probably actually ints, at least <code>-1</code>
makes more sense to me than <code>nan</code>. I still can't tell what they are, but
I don't really care.</p>
<p>Instead I looked at the remaining 6 floats. They should be position and
rotation, and they were. Once I saw these values in the 6th row of one
file I was pretty sure it was a rotation:</p>
<div class="highlight"><pre>30.1187744141
-329.881225586
30.1187744141
</pre></div>
<p>I thought they were absolute positions and 360° = 0°. It later turned
out that they were actually relative movements since the last frame, but
I had to write the exporter and do a test export to notice that. And
that's what I did next, writing the im- and exporter. The order of the
rows turned out to be deltaLocationX, deltaLocationY, deltaLocationZ,
deltaRotationY, deltaRotationZ and deltaRotationX.</p>
<p>So eventually I was done and the result can be downloaded <a href="http://mrwonko.de/downloads/2010/blender-249-roff-im-exporter.html">on this very
website</a>. There's an <a href="http://www.youtube.com/watch?v=t6JISk-h1cs">example on
youtube</a>.</p>
<p>And I'm happy.</p>
<p>Willi</p>
<p><strong>Appendix</strong></p>
<p>I just found out that the Elite Force SP Mod Code contains the source to
the ROFF format. ROFF is actually an abbreviation for "Rotation, Origin
File Format" and the number of frames was a float in version 1, but that
is apparently no longer the case. The header used to be only 12 bytes
long so I still don't know about the last 8 bytes, and there's no
information on the last 8 bytes of the frames either.</p>
<p><strong>Appendix 2</strong></p>
<p>Since Jedi Academy's source code has since been released, I urge anybody looking for information on the file format to consult that instead.</p>Free Game: Alien Swarm2010-07-19T20:48:00+02:00mrwonkotag:mrwonko.de,2010-07-19:blog/2010/free-game-alien-swarm.html<p><a class="reference external" href="http://store.steampowered.com/app/630/">Alien Swarm</a> just got
released. For free. Hooray?</p>
<p>Well, I don't know. Appearently I'm not the only one who noticed, the
download is pretty slow. Once it's done I'll try it out and tell you
what I think.</p>
<p>So far I think it's probably great. I like nice top-down shooters like
Shadowgrounds or Alien Shooter. This one is based on an old Unreal
Tournament 2004 mod whose developers were hired by Valve and helped
create the Left 4 Dead series. Now they're working on Portal 2. And
appearently they've also had time to port their mod over to the Source
Engine.</p>
<p>So far every Valve game I've played was great. Half-Life 2? One of my
favorite shooters, maybe the favorite. Left 4 Dead? Great Coop fun.
Portal? Cake. I'm pretty positive Alien Swarm's great as well. I'll know
soon enough.</p>
<p>I don't know if you knew but I want to be a programmer. A professional
programmer programming for a living, that is. I'm already a programmer,
I just wouldn't call myself professional yet. Well, the game's
sourcecode is available for free so I'll have the chance to look at it
and maybe learn from it. In fact I'm already downloading it.</p>
<p>Well, more on that later when I've had the chance to play it and look at
the source.</p>
<hr class="docutils" />
<p>Okay, now I've played it. And it's a lot of fun! I suggest everybody
grab it, especially since it's free. There's a nice tilebased level
editor included, unfortunately only one tileset is available. The
community will create more though, thus fixing the game's biggest flaw:
its lack of levels. There's only one so-called "campaign" (consisting of
multiple levels) included and completing takes like two hours or so.
Unlockable new weapons keep you playing though.</p>
</p><p>Willi</p>
I've got a website!2010-07-15T09:44:00+02:00mrwonkotag:mrwonko.de,2010-07-15:blog/2010/ive-got-a-website.html<p>So I've got a website now. Finally. I used to have one at funpic.de but
it became unreliable, which shouldn't surprise me since Funpic is a
freehoster. It also had annoying ads. If this page was ever to get
annoying ads at least I'd be the one to get the revenue.</p>
<p>Wait. Let me first introduce myself first. I'm Willi "Mr. Wonko"
Schinmeyer and yesterday was my 18th birthday. Being 18 is great,
because here in Germany it means I can now do many things I couldn't do
before. Like getting this website. Or a credit card. Or driving a car.
Or smoking, if I wanted to. But I don't.</p>
<p>I can also get some videogames more easily now. We've got rather strict
ratings for videogames here in Germany, though barely any games are
really "forbidden". Way more are only on the "Index" which means they
mustn't be advertised and you've got to ask for them, they mustn't be
openly visible in the shops. The only forbidden game I can think of
right now is Manhunt. That's why I can't understand how Steam refuses to
sell <em>some</em> games on the Index (like Left 4 Dead) uncensored in Germany,
while others (like Necrovision) are completely uncensored. But
fortunately I can now easily import uncensored games.</p>
<p>Don't get me wrong, I think restricting the games that children are
allowed to play is good, you just shouldn't infantilize adults.</p>
<p>Birthdays are great, too. As are holidays, which I happen to have right
now. So I've got a lot of time to enjoy my presents, which include the
great CD "Death by Sexy" by the Eagles of Death Metal and the book "Game
Engine Architecture" by Jason Gregory.</p>
<p>Game Engine Architecture? That's right. I want to program games. As a
matter of fact I already am, I'm just not very good yet. One book won't
change that but it can help me on my journey. During this journey quite
some small games may drop out and I'll upload them here so you can have
a look at them.</p>
<p>So this website will mainly serve as my Blog and my Download Center.
Some bigger projects may also find a home here, if I ever do any. I plan
to.</p>
<p>Willi</p>