Terrain renderer

I'm currently working on implementing terrain rendering for the next version of CopperCube. I have some experience with implementing stuff like this, but this time it is a bit different: The implementation needs also be able to be editable, as being used in an editor. It currently looks like this:

It is not that difficult, but a you have to try around a bit until it not only looks nice, but also works nice with all the features of the editor, such as undo management, material editing, light mapping, serialization and so on. I like how it works so far, but a lot of work is still to be done.

Wait, is this the right page?

I log into LinkedIn about once every 6 months or so. And I feel every time I do this, the page looks completely different... :)

Shadows: Heretic Kingdoms

Shadows: Heretic Kingdoms an Action-RPG developed by Games Farm. Honestly, I never heard of this game before - I'm really not totally up to date with current PC gaming - but it looks promising:

I like the idea that you can play as demon in this game. The early access version was released just a few days ago. And the game probably has some nice sound. Because it uses irrKlang as audio library :)

Why developing in C++ for the Windows App Store sucks

As you may know, I have a Windows RT Tablet and since the update to Windows 8.1, I'm very happy with it. My only main concern is a bit the lack of apps for it, although that situation seems to get better every day.

Last weekend, I had a small problem which a small app could have solved for me, but on the Windows Store, I could not find any app doing this. Being a programmer, I decided to write that app myself. I even have a Windows Store developer account, so I would be able to publish that app then for free, for others. C++ being my favorite programming language (although I'm also very fluent in C#, which would be the second option here), I decided to start writing that app using the new Windows API, or 'Windows API for Windows Runtime apps', how it seems to be called now. I've developed a handful of Windows Store apps already, so I knew that it would be no picnic, but this time, the design of the API stopped me from being able to create that app at all. Or to make it more clear:

Microsoft! Developing for your new Windows API sucks! And here is why:

First, not to be unfair, there are also good sides.
But the bad sides are sometimes a real show stopper:
So in short: The API works, but - IMO - it is only usable for creating toy apps. Maybe one reason why there aren't that many Windows Store apps is that it might be a bit too complicated or sometimes - like in my case - even impossible to implement your idea for an app. If you want to do some serious app, then this is sometimes simply not possible. The API is young, so I hope Microsoft will make some changes to it - That's why I wrote this blog post. I know a few Microsofties read this blog :)

HearthStone Review

On the weekend, I was able to try Blizzards latest released game HearthStone, finally. It is free to play, and apparently not one of those evil "pay to win" games. In short, it's basically a collectible card game, and reminds me very much on Magic: The Gathering - admittedly being the only collectible card game I ever played :)

In short, the game is fun, the rules are very simple, it is learnable quickly, and seems to be fair and balanced. If you are a PC gamer and in your mid 30s like me, you will also like the occasional Warcraft II reference, including various Warcraft 2 soundtracks playing in the background. Additionally, the game is ideal for an "old" gamer like me: I don't have much time to play games, and it is possible to quickly start it and play it for a short amount of time, and have fun.

But there are also bad sides:
I'm pretty new to this game, so my impression might be wrong, but as newbie, it is very, very difficult to win a game against people who already own hardened decks and advanced cards. I currently have a win-loose ratio of about 1:20, I think. One time a player decided not to kill me although he could have, but to heal me instead. Assuming he had done a misclick, I continued to play, struggling for my life. But after a few rounds, the same happened again: Instead of finishing me, he healed me and continued playing, demonstrating his superiority. I felt like a mouse in the clutches of a cat, pretty helpless. It's a bit frustrating, being confronted with overpowered players like this. I'm not sure if the disabled possibility to chat in the game is positive or negative in that respect.

Regardless, it is fun and I'm looking forward to the game being available on my Windows RT tablet. :)

irrKlang 1.5 released

I currently don't have much time to blog, but this one should at least be mentioned shortly here: Last week, I finally released the .NET and C++ audio library irrKlang in version 1.5, with unicode and 64bit support for all platforms. It also comes with 24 bit FLAC support, which seems to be a thing, lately. :)

Gamedev news update

Just a reminder: The website Gamedev news still exists, and you are free to post your game development related news on there yourself. Just hit the submit button. Until now, I am basically the only one posting on there, although companies have started to continuously send me their press releases already at least, which is nice. And the site already has readers, commenters and twitter followers.

So it looks nice so far, but the only problem is one I didn't anticipate: There aren't actually that much game development related news to report. I think this has changed a bit since the good old flipcode days: Maybe there are now much fewer developers creating game development tools and software than before? And with some of them and their just started race to the bottom, they will probably not become more now?

Working with Ubuntu 14.04 LTS

I am currently doing a bit of work on Ubuntu, to be more precise on their just released version 14.04 LTS. It was quite a pleasure installing it, much has changed since I tried my first Linux distribution (I think it was Suse 7.0 back in 2000). It also works perfectly with all my exotic hardware, to my surprise. I am used to have to spend days searching through web forums for the right configuration file change or shell command to make everything work correctly, but this time everything worked. Cool.

I'm not sure how popular Linux is, and if users on there are also paying for software (I don't think so), but it maybe would be an idea to port some of my software to that platform as well.

The Business Guy vs. the Programmer

I'm a very bad business guy. Maybe because I'm a programmer, and programmers and business guys don't mix very well, or only in very rare circumstances. Frequently, when some company contacts me in order to propose a partnership, buy a bunch of my products, or want some technical help, the conversation is very awkward because of this. In the worst case, the email conversation goes something like this:

Guy: Hi, I'm X from company Y, we want to do a partnership with your company because of your nice product Z, can you forward me to the person in charge?
Me: Yes, that's me. What do you want to do?
Guy: Can I get your phone number / When do you have time for a meeting, so I can talk to you in detail?
Me: My time is very limited, maybe you could first tell me roughly what this would be about?
Guy: It's about your product Z, we are very interested in it.
Me: You already told me that. But what do you want to do? What do you want to talk about?
Guy: Would Thursday, 14:00 GMT be ok with you? [Added in CC are now a CEO and other people I don't know from that company]
Me: No, you didn't even fucking tell me what you want to talk about.

I've had several dozen conversations via mail like that now. It's like these people don't understand that email is also a form of communication. You can communicate everything via email, no need to do some phone conversations or even real world meetings. In my opinion, phone calls are for details. They cost a lot of time, and should be reserved for talking about details. Just because you are better with talking than with typing doesn't mean that this is the same for me.

I don't know if I maybe lost a few nice business opportunities because of my attitude regarding this, but maybe at least I had more time programming new features for my customers that way.

Shameless plug: the software I am working on

Development tip: never remove features

If I have learned something since starting developing and selling my own software, then it is to never, never, ever, remove a feature when creating a new version of your software. No matter how stupid or irrelevant or buggy you think the feature you want to remove might be. Because there will be people who use this feature. And who will absolutely be pissed about you removing that thing they need.

I think this is also one thing which Microsoft didn't get, when they decided to remove the start menu in Windows 8, and replaced it with the fucked up start screen, which doesn't even contain half of the features of the start menu.
If you need to remove something, then don't remove it completely, but hide it instead, so that if users who rely on this feature can at least find it and continue using it.

On a related note: One similar important thing I learned as freelance developer is this: although it might be tempting as programmer to rewrite a whole, old app or parts of it completely because it is now absolutely fucked up and not maintainable anymore, don't do it, for the same reason. People rely on the strange and probably even buggy features deep inside of old software, and you can never reproduce all of them easily in a rewrite.