Postapocalyptic 3D World Generation, Part 3

After a lot of feedback, I decided to rename my post-apocalyptic simulator hobby project game to simply PostCollapse. I've also uploaded an updated version of the game, which has some cool new features:

Yes, the procedural world generation creates water bodies such as rivers, complete with shores. Looks actually pretty cool in action. You probably recognize the water rendering method, it's simply the water code from CopperCube, of course. Took me about 10 seconds to add it into the game:

Also, there are now lots of cars in the world, which can be searched:

The game is playable already, and I'd say it is 30% finished now. Maybe I should try to motivate some people start testing it from time to time, in order to get more feedback. If you like to, you can play the game directly on its website. It runs in the browser.

Texture Packer

Because I noticed that a lot of people are using unoptimized 3D models downloaded from the web, I implemented a texture packer which is built-into CopperCube. It works like this:

So basically, you can greatly optimize the speed of your games with that, without much work. The texture packer will be included in the next free update of CopperCube.

Flash now is last

I'm currently polishing some minor UI parts of CopperCube for the next free update. I also just updated the "publishing settings" dialog, and reordered the tabs by importance:

If you remember, the first version of CopperCube was just a simple tool for creating 3D scenes for Flash. (Back then when Flash didn't have 3D features at all) Today, I had to move the Flash tab in that dialog back to the last slot. Because it is nearly irrelevant today. Yes, there are lots and lots of CopperCube users using Flash. But they have become the smallest group today. But fear not, of course Flash will still be supported in CopperCube, also in the future.

Why you should not develop apps for Windows 10

I wrote a couple of apps for the Windows Store (I also blogged why it sucked, but I did it anyway). Most people never heard about it, but yes, there is an app store for Windows. It is quite empty, and IMO, most apps are low quality. My apps are in there since Windows 8, I then upgraded them to Windows 8.1, and now also one of them to Windows 10's universal app platform.

The problem: Since Windows 10 arrived, the sales of all of my apps, which have been very low compared to other apps stores, have gone down significantly, nearly to zero (even the one I upgraded to Windows 10). And it is not surprising that this is the case: You cannot find my apps anywhere in the app store. Unless you know the exact name of my app, you won't find it. You can type any of the keywords my apps have in their title, description or even in the list of keywords submitted to the store, and it won't list my apps. Instead, the app store will simply list 2 or 3 other, useless apps. In total. Judging from the developer forums, there are many other developers with this problem. When contacting Microsoft about this, they apparently sent the other developers a prewritten text, saying basically that "they have no control over the search results shown in the store". So I contacted Microsoft myself, to see what this is about. Here is how the mail exchange went (drastically shortened):

Me: Hi, since Windows 10, my apps cannot be found in your App store anymore. Please help, and please don't send me that "we have no control over the search results" text you seem to just paste into the forum.
Microsoft: Hi, we don't have any control over the search results in the app store.
Me: [I didn't answer, because I got quite angry about this.]
Microsoft: Hello, it seems you didn't answer to our mail for a week now. Wasn't it helpful?
Me: No, it wasn't. It was just the same text you sent to all the other developers. Are you even aware of the problem?
Microsoft: Sorry that I couldn't help.

one week later
Microsoft: Hello, it seems you didn't answer to our mail for a week now. Wasn't it helpful?

So it seems like they don't care. The quality of the App Store is extremely low - no wonder - there are probably nice apps in there, but they cannot be found at all. Why should any developer create an app for Windows 10, if the sales will likely be zero?

It's not like this is a recent bug or similar: It is the way now since about half a year. I am not sure what Microsoft is thinking here. It seems like there is this big corporation, and the people in there have no clue what they are doing. With Windows 8, the process of creating software for their app store was really nice. The documentation is great, signing, testing, verifying and uploading was a piece of cake. And the website for managing all this (named 'Dashboard') and looking at your sales was impressive. With Windows 10 thing got worse. There is no way to update your Windows 8 (.1) C++ project to Windows 10. You have to manually edit your solution and project files with a text editor at a few dozen places to make them work. And they replaced that Dashboard with a new version, which is barely useable, shows only half of the information and only works if you have a very big screen and surfing with a browser made full size. Really strange.

Whatever the reason for all this is, I won't develop any apps for Windows 10 anymore, since I cannot make any money with them. And I can recommend other developers to do the same: Don't start developing apps for Windows 10, in the hope your apps will sell on the app store.

Update: Some people are suggesting that my apps are maybe not of good enough quality. They are, Microsoft even once featured one of them in their hand picked promos. So that's not the problem.

Update 2: The way they say they have no control over the search results was also quite shortened by me. Their exact words are: "Please note that we do not control or guarantee the way an app is found within the store. There have been some changes made to the search algorithms and [...] we have no impact on how apps are found. "

Update 3: After this went viral on several sites, some employees of Microsoft contacted me and confirmed this as a problem / bug. Told me they are now looking into it.

Update 4: Now after two weeks during I haven't heard anything, a friendly Microsoft employee finally told me that the problem has been removed. Looking into the store, it seems like my apps can now finally be found, as it seems. Hurra. :)

Smoother FPS camera

Interestingly, the first person shooter camera, probably the one mostly used when using CopperCube as Game Engine, doesn't move very smooth at all. I'm currently working on improving this:

It is a bit tricky to make this work nicely and exactly the same independent of frame rate, but it works. Once available, this will be a simple checkbox to select, and a value where you can control how much 'smoothness' should be used. All your existing projects will still work as before, as always.

Tips for Starting your own Software Business in 2016

In the comment section of my 2015 review post the question came up how I make money by creating software. I get asked this by quite a lot of programmers. So, if you are planning to develop and sell software on your own, here are a few tips about how to create a software business in 2016:

Creating the product is only 50% of your work
Since I'm working mainly on old-school desktop software and sometimes on games and websites, the most important step is of course to create a product which solves a problem people actually have, or fills a need. People need to want to give you money for it. Obviously. But although creating a working, bug free and polished software is already a difficult task for itself, it is not the most work you have to do. It is about 50% of the work, I'd say. The tricky part is to market and sell it. Throwing an app into an app store and hoping that it sells for itself doesn't work anymore today.

You won't create a super star app
Your first software is not likely to sell anything. And it is highly unlikely that you create a very successful app. In fact, most people developing software won't create something which sells at all. If you think you could create a hit, think again. Take a look at the lucky developers: Even companies which created a top seller usually struggle to repeat this success. A nice example is Markus Persson, who had massive hit with Minecraft and wasn't able to create a second success. Or Rovio: Before they had created Angry Birds, they had created dozens of other, mostly unknown games, for 6 years.
So be prepared for this.

Be prepared to fail
I am creating sofware since 18 years, and doing it with my own company for 8 years now. Around the time when I started my own business, about a dozen of people I know also did the same. Of all of those only two other persons still managed to 'survive' with their own business. It's is not that easy.
I've created lots of software, about three times more products than listed on my companies website. Only two of the products listed on my website are really successful. (Guess which of those are the successful ones, if you like.)
What I'm trying to say: It is likely that you will fail. Be prepared for that. Have some money sitting somewhere, in case you don't make it.

Charge a sustainable amount of money for your software
You are a programmer, you should be able to do the math: If you need about a minimum of 1500 euro per month to live (might vary from place to place), then you need to generate an income of about 3000 euro per month before taxes (that's the tax rate where I live). Because you are just starting up, you are not likely to make this by selling a cheap smartphone app for just one euro, because for that you would need 3000 new customers per month. You probably will have more something like 2. Or 10. Sounds low, but - depending on your type of software, distribution method and marketing budget (which is likely 0 at the beginning) - that's a realistic amount when just starting up.
So assuming after a bit of time, you get about 100 customers per month, you need to charge at least 30 euro for your software, in order to just make your minimum amount of money to live from it. Doesn't sound to bad, but it could get difficult to achieve this.

Use a real payment processor
Don't Use PayPal. Repeat: Don't use PayPal. I've heard numerous times now that PayPal froze accounts for about half a year after a software business somehow broke through. Which is extremely bad. So don't use them. Use a real payment processor. I'm personally using BMTMicro (which are great, btw!), but there are numerous other options out there. Payment Processors handle VAT for you, Refunds, Invoices and more. There is no need to risk your companies income and to use a company with a bad reputation, just because they are big and popular.

Do your own marketing
Marketing is essential, and important. And it is really, really difficult to get it right. I'm now trying since 8 years, and I'm still not good at it. Don't rely on Twitter doing marketing work for you. Twitter and other social media help, but my experience has shown that this isn't enough. You need to do your own ads, blog, press releases and more. Maybe this doesn't sound very 2016-y, but this is how it still works. The internet is a moving target, and new options (like Facebook ads) pop up and vanish all the time, and you have to try them out. Don't rely on other peoples reports, telling you that ads on "that website" or "this ad network" don't work. Try them out yourself with a very small budget. For me, ads worked on some pages where people told me they are just scam, and the other way round.

I could probably write a book about this topic, but this is a blog. But I hope this short blog post might have helped you, if you think of creating and selling your own software. And by the way, if you are looking for a nice website or game editor, take a look at my software. :)

Happy New Year 2016!

I want to wish all readers of this blog a happy new year!
As every year, I'm also using this moment for shamelessly offering some of my products for a big discount, for a few days:

You get CopperCube, WebsitePainter. RocketCake Professional, DiagramPainter, irrFuscator and EndTime at Home for -50% for a few days. Only from this page.

Hope you had a nice start into 2016!

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.