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 write 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.



CopperCube 4.5 released and new demo

I just uploaded CopperCube 4.5, this update includes Oculus Rift support, but also WebGL and Flash fullscreen and pointer locking support, which is very nice for doing first person shooter games running on websites. There is a new demo showing this in action. If you can, try the WebGL version, the Flash version doesn't do pointer locking on some few browser/Flash player combinations because it is included on that page as an iframe.

It was really fun developing for the Oculus Rift, it's a very nice device and it's very elegant how they solved everything, both on the hardware and software end. I'm looking forward for the final, customer version of that VR device.



Oculus Rift Demo

I created a small Oculus Rift demo with my preview build of CopperCube, which will support the Oculus Rift. It is nothing special, and looks like this:


You can download the demo from here (25MB), it also works if you don't have a Rift.


A version of the editor with this feature should be released next week. But let's see. Any feedback regarding the demo is welcome.



War of the 3D Engines

Last week, something strange happened: First Epic Games announced that you can now develop for their Unreal Engine for 19$/month (+5% of your revenue), making their AAA engine very, very cheap, especially in comparison to what they charged previously.

Then, one day later, Crytek countered with a similar offer: CryEngine for just 9.90$/month.

I think this is a reaction to their now 'new' competitor, Unity, (who just announced version 5), which for some time now is free for the basic edition. Maybe even Unity will now try to get cheaper, who knows?

What we see here might be a begin of the phenomenon known from various app stores: The race to the bottom, where the app developers try to undercut each other, and prices for the apps drop, so far that even 90% of the developers can't live anymore from their apps, and only developers of very popular apps survive. It's conceivable that this won't work for 3D engines: Those are incredible complicated beasts, and need a lot of time and resources to be developed and kept up-to-date. Making them available for peanuts can only be sustainable when you have many, many users.

I hope this move just didn't start the death of some nice 3D engines. It would be a pity for those developers to go bankrupt or similar.

Disclaimer: I'm the developer of the commercial 3D engine 'CopperCube', with which you can create games and 3D apps without programming, and I might have a slightly skewed view to this.




Oculus Rift CopperCube integration test

So now I finally sat down and programmed a test to see if Oculus Rift support in CopperCube would be possible/easy/nice to have. And although CopperCube uses a left handed coordinate system, I wanted to work it with D3D9 instead of D3D10 and other smaller unusual technical obstacles, it was relatively easy to implement. On my system, I now have a build of CopperCube capable of creating Windows apps which use the Oculus Rift:

It's cool with the headset on and running in 'real 3d' through your own 3D worlds.
I didn't implement all necessary features yet, for example 2D elements won't work yet. Also, I don't think particle systems will look correct without adaptions, it will be fun to try them out. All in all, there is still much work to do, but chances are now really high that the next free update of CopperCube will include Oculus Rift support.



WTF, de.wikipedia?

Last weekend, I edited a few articles in the Wikipedia again, as I do from time to time when I see an article about a topic I know a bit about (in most cases programming related, but somtimes also some local stuff). Usually, I first add this stuff into the english Wikipedia, and then I do the same in german language, in the german Wikipedia.

All the text I ever wrote for the english one is still there, and can be still read. People even have extended the articles I started. But the german wikipedia seems to be run by wiki-nazis still today: Although I add nearly twice as many sources and references into my texts in the german version, my stuff gets deleted and reverted all the time. They now even have a mechanism where the change you did to the article won't be displayed until some admin has read it and unlocked it. (In my case, this didn't happen now for 4 days) Even for completely unimportant, small articles.

WTF, de.wikipedia? Isn't this exactly the opposite of what you wanted to be?
From now on, I will only continue writing for the english version. And I hope a lot of other people feel the same.



Oh those poor, poor, spammers

I just received a mail from a company, asking me to remove a few comments from this blog, linking their website. Because they say it affects their google rank negatively.
I am usually not censoring this blog, but being surprised to see such a request, I was curious to see what comment it was, and why they don't like it. Turns out the comments they are talking about are blog spam comments with links to their website. Which somehow made it through my spam filter.

BAHAHAHA!

So, summarized: They spammed my blog. Now google has introduced a kind of penalty, punishing this behavior. Now they are asking me to clean up their own spam comments.
I think this time, I am happy to leave the spam on this blog.



Devkit arrived

Finally, this package arrived yesterday in my office:

I was able to try out an Oculus Rift before a few times, but now I have my own. I only tried the demos before, so I never wrote any actual code for it, but skipping shortly through the documentation, it doesn't seem to be difficult. The next days, I'm going to try to figure out if and how support for the Oculus Rift device will make sense in CopperCube. Because, yes, it would be great to create 3D apps for that device with just a few clicks. :)



MS-DOS 3.3

Just cleaned out my office and discovered this:

Yes, this is an original disk containing a legal copy of MS-DOS 3.3! Microsoft's operating system from 1987. It also contains GWBasic, the programming language I thought myself programming with. Very cool :)



Which IDE is the best?

I'm currently updating and rebuilding a few libraries I wrote years ago, and my software and even software of some of my customers is depending on. To ensure the widest possible compatibility, I'm using for that a quite range of IDEs: Visual Studio 6, 2003, 2005, 2008, 2010, 2012 and 2013, Code::Blocks, XCode 2, 3, 4, 5 and even raw make files. It's not that easy, because not every IDE works on every operating system anymore. But my experience so far is this, surprisingly:

Visual Studio 6 is still the best and fastest of all of those. In my opinion. It gets its job done, it has a clean user interface without all the clutter, and it is incredible fast. Don't get me wrong, I really like Visual Studio 2012 - some its new features are impressive - but an IDE which simply gets out of the way, lets me do my job, and doesn't require tons of memory just to start up - like Visual Studio 6 - is also a very nice-to-have.