The Real World doesn't have Undo

Software projects are quite often compared to other scenarios, like building a house or a car. I've often heard the claim that time estimates, planning or defect management are so much better in those other areas of engineering. But they are not true, in my opinion.

How many programmers do you know, who ever did some "real world engineering"? If you are a software developer, have you ever built something with your own hands? During the last 5 years, I've build a lot of stuff which was not software, and I can recommend to try it out: It is different to the process of building software, but you learn a lot which you can also re-use for your programming skills, interestingly.

For example, during the last 2 or 3 weekends, I build this thing here:



It is just a simple wall, a walk-in closet. But it is complex enough, and you need a bit of planning for it. When I built something like this the first time, and did something wrongly, I thought "Damn! There is no Undo button". There is also no copy and paste or version control system, so you need to do that project a little bit more differently than a software project.
But there are also a lot of similarities: Time and resource estimates are nearly always completely wrong. In the beginning usually by a factor 2, by my experience. But it gets better. It also doesn't matter if you are doing the project or parts of it yourself or are outsourcing it. It will usually take longer. And more money then anticipated. Also, there will be bugs. And the way they are fixed will not always be the correct one.

Basically, things I learned from building "real world stuff" is that planning and re-using is much more important than for software. Also, I think the way I am doing software projects has been improved quite a bit since I started building stuff like this. It is also a nice way to 'relax' from a thinking intensive programming session. So I can really recommend trying to do some DIY projects from time to time.



My Adventure of Getting a Code Signing Certificate

It was a surprisingly strange procedure to get a Code Signing Certificate. Which I decided to obtain in order to make the nasty ones of the browsers like Internet Explorer stop complaining when downloading installers for the software I develop.

Finally, I now have one. If you should decided to get one too, one day, read here what I had to go through: After having read quite a few times now that hackers and malware programmers apparently are able to easily sign their software with false certificates, I wonder if all this was it worth at all. And since the certificate is only valid for one year, I hope I won't have to do this again in 2016.

The process of getting this was costly (from the perspective of an indie developer) and quite complicated - and this although mostly everything went well. Imagine something would have gone wrong. I think this might also be the reason why code isn't signed that often.



High-Tech solar eclipse gadget

For watching the partial solar eclipse event today in Europe, I used only high tech equipment. It even apparently had HDMI support:

It actually worked, and the sun appeared like a crescent moon in that device, with a size of about half a centimeter. I didn't notice any benefit of that advertised HDMI support, though. :)



Cities: Skylines Review

About 25 (!) years ago, I played the first SimCity. You could build your own city, with streets, electricity and everything, and try to let it withstand catastrophic events like Godzilla or nuclear metldowns. It was great. I spent a lot of time with it. I also played Sim City 2000 as a teenager, but I didn't try the newer versions, especially not the latest incarnation from 2013, called simply 'SimCity' (without a number), which apparently sucked, according to many reviews.

Then, a few days ago, a SimCity style game named Cities: Skylines was released. I saw a few Youtube reviews of it, and was fascinated. I bought it, and had even a few (much too less) hours to play it. This is the city I built so far:

Boy, is this game fun. It has all the features you'd expect from a modern city building simulation. And it is quite impressive. You can build very huge cities with streets and layouts as you like, as here:

And zoom into every detail of your city, and follow every car, truck or even person:

Playing it gives you the same feeling as the old Transport Tycoon did, but with todays modern graphics. The game has so many options and features, it doesn't get boring quickly. It is also very impressive from a technical perspective, because it seems every person and car is actually simulated. It felt wrong paying only 27 euro for this. Not sure why they are selling it that cheap. Same for the name of the game: Why is it that strange?

Anyway, if you like city simulations, I can really recommend this game. Too bad I don't have much time for playing.



Amazon Prime Instant Video

Since about two months, I'm a Amazon Prime user, and quite happy with that. You don't only get free delivery with this, you also get to access to Amazon Prime Instant Video, an on demand video service, like the better known Netflix.

I was skeptical in the beginning, but although I have to live with our slow country side internet access, it works like a charm. You can watch whatever you want, whenever you want, without commercials. Amazon seems to be just starting with this, so the list of videos is big but limited, but I never have switched on the TV for one month now. I think if something is going to kill television, it is netflix, amazon's instant video and co. It is so convenient. Wondering why the TV stations still offer only very few of their shows online, and if, then usually not for a flat rate.



CopperCube 5.2 and its water rendering

I just released the game engine CopperCube in version 5.2 as free update. Besides other features, it includes the announced water surface rendering, which I managed to make work on all supported platforms: Windows (D3D and OpenGL), Mac OS X, WebGL, Android, and even Flash. It looks nicely on all of these, here are some examples:

It looks much nicer in movement, of course. If you want to see it in action, you can try it directly on a website, I created a small demo with two different scenes: WebGL Water rendering demo. It works surprisingly fast, and also does look nicely.

I'm very happy about this release. It also includes a lot of other changes (detailed list here), like localization. Meaning the editor user interface now also works with different languages. I already added a german translation, and planning to add some more later.

Hope you like this release!



Baffled by Microsoft Developer Support

I think I mentioned this already on this blog, but this week, the Microsoft Developer Support again has left me completely astonished: I had a small problem and left without any other options, I contacted Microsoft directly, via mail. After a couple of hours, a real human answered my mail, with a working solution and friendly text referring my mail, which proved that the support guy didn't even copy and paste that text from some existing solution. I thanked him for that quick help and he even replied friendly again, like a real human.

If you ever had a problem as software developer, developing for a platform of Apple or Google (as I did), you will be totally surprised by that. I never, ever received a helpful answer from any Apple developer support or App store reviewer. In most cases, it seems like they don't even read what you write. And in more than one case, I received an obviously copy and pasted text back, insisting that everything is my fault.

Microsoft is really doing very well there. Wonder why my products are so much better on Windows, and have less bugs there? Now you know why.



Water

I just implemented a nice looking feature into CopperCube, which will very likely make it into the next free update: Nice looking realtime water surfaces:

It will be possible to create oceans, lakes and rivers with it easily. I think this will also work nicely and pretty fast in WebGL, I'm not so sure about Flash and Android yet, but I'm positive so far. The implementation is pretty simple: And if you do the texture access offsets in a nice way using a decent normal map, it looks actually like waves. This technique is not very new and doesn't need many resources, and that's why I think it will work nicely in WebGL as well. Will post a WebGL test example once I have some. But first, I have to finalize this feature in the editor first.



Pieces of modern Art

People sometimes forget that a programming language is a tool to tell the computer what to do, and to tell other programmers what you wanted the computer to do.

Programming languages are not a way to write a piece of modern art, to create algorithms in the most inconvenient, unreadable but shortest way possible. Unfortunately, some people seem to think that way. Fortunately again, this is also the reason why a lot of programmers still have a job.



The Long Dark

I'm not a fan or early access games, or "paying for beta testing games" as I would call it, but after a recommendation, I bought the survival game "The Long Dark" which isn't a finished game yet.

The game play works basically like this: Without a lot of tools or supplies, you get thrown somewhere randomly into the Canadian wilderness during Winter, and you need to survive. You mainly fight against hunger and the cold, and sometimes also wolves, but that's it already.



I don't have much time for playing games, but this type of game still fits quite well into my gaming habits: I usually die pretty quickly in this game. The best I've done so far was surviving for about 4 days, I think. And although the game isn't finished yet (there is only the sandbox mode available, the game will apparently contain a story as well once finished), it is both fun and frustrating at the same time.

So far, I can recommend the game, especially if you are interested in learning how much nature sucks. :)