<<Previous Archive | Next Archive>>

Ambiera 2015 software development progress review

The year 2015 was quite eventful for me, both for the private and the business side of my life. Here is a short overview what I did in the latter part, in 2015:

I created numerous free updates of CopperCube, my flagship software product. Including the addition of realistic realtime 3d water, fog, and improvements of the WebGL renderer.

I programmed and launched a new website editor for creating responsive websites, and named it RocketCake. I risked the experiment and made if free. And People seem to love it!

We launched CopperCube on Steam, which was a first time for me. It was interesting to discover Steam from the developer side as well, as opposed to only as gamer, before.

I launched a first, playable version of my post apocalyptic survival simulator game, 'Endtime at Home'. Lots of stuff already works, and I'm proud that the world is 100% procedurally generated. The game is apparently interesting so far, and so a few people already bought it :)

Summary I'm pretty fine with my progress so far. Income is ok, and I like the new products and updates I created, and best: My customers seem to like them as well.

What's next I hope to get more to people know of the existence of my new game and the new responsive website builder. This is the part where I usually suck at: Marketing. But let's see what 2016 will bring.

The strange case where Internet Explorer is faster than Chrome

In the WebGL game I'm working on in my free time, Internet Explorer beats Chrome's WebGL game performance. Strange, you think? Here are the details:

Chrome 47 seem to have introduced a change which is causing Endtime at Home not to work anymore nicely. Try it for yourself: start a game, go forward for about 600 meters, and then turn your head quickly about 180 degrees. If 'lucky' you can even skip the "walk 600 meters" part. The game will nearly freeze, dropping to a frame rate of about one frame per 5 seconds. I made a lot of tests, and I'm pretty certain this is likely caused by Chrome's garbage collector (or something related), which now kicks in more aggressively once your used memory has reached a certain threshold. But I'm not 100% sure yet, so any hints would be welcome.

It is possible to work around this issue by showing much less of the world to users using this browser version, but I decided to show a warning message for now. It works nice for all other browsers like Firefox and older Chrome versions. Interestingly, even Microsoft's Edge browser works nicely with the game. And it is pretty fast!

Curious, I even tried the game with Internet Explorer 11. And yes. Even IE is running this game faster then Chrome 47. What a shame. I reported the bug already to Google, let's see if they get the problem fixed soon.

Does any other developer discover a similar problem? Or a solution to this?

Update: The problem has now been fixed. I'm still unsure what was causing this, but I moved my code to use requestAnimationFrame() instead of setInterval(), and now it is also smooth on Chrome. Strange.

3D Scene Geometry Compression

So I just wrote a small plugin for compressing the geometry of a 3d scene. It went surprisingly well: It achieved a reduction between 50% and 70% for some of my test scenes:

What it does is to merge vertices with similar attributes. I noticed that for most scenes, people don't need the exact vertex colors and normals, so vertices with the same positions and texture coordinates can be merged. This doesn't work with all types of scenes of course, but for some, they look identical, but have now a 70% smaller file size. Which is a huge deal if you are using a web based platform such as WebGL.

I plan to add some more features into CopperCube like this, like making the file format used for WebGL more compact. I guess it will be possible to make it again about 20-30% smaller. But let's see.

Software user behavior change (2003 - 2015)

Since more than 18 years, I'm developing and selling commercial software. I noticed quite a change in the behavior of the customers of my software, when it comes to support and problem resolution. To show what I mean, see the typical (shortened) exchanges I usually have with my customers:

2003 and before:
Customer: Hey, there seems to be a problem with your software. I tried for a few days now, and read all the documentation, but I cannot find a solution for $My_Problem$.
Me: Hi, just try $Solution$, and it should work for you.
Customer: Great, thanks! BTW, great software!

Customer: Hey, I think there is a bug in the software, I can't do $My_Problem$, can you help me?
Me: Sure, just do $Solution$, and it should work for you.
Customer: Great, thanks! BTW, great software!

Customer: Hey, your software sucks, I want a refund!
Me: Hm, what problem do you have with it? Any details?
Customer: I have $My_Problem$! Worst software ever!!!1!
Me: Maybe if you try $Solution$? Does that help?
<Customer doesn't bother to write an answer at all anymore>

<Customer Requests refund without contacting me at all>

Of course not all customers are like this, but there is a tendency of more people behaving like this. If they notice that something is not working as they expect it to, they quickly give up. They seem not to try to solve a problem themselves anymore, and become frustrated quite quickly. Requesting refunds without contacting me has fortunately not becoming the norm, but it is happening more often recently. I'm not trying to write a solution on how to prevent this, because I honestly have no idea how to do this. But if you are thinking about trying to create software for a living, you should prepare yourself for experiences like this.

DZone Q&A with me

DZone did a short interview with me, about Irrlicht, Game Engines and CopperCube.