Picking the right engine for an indie game: Unity3d vs Unreal Engine 4

Unreal Engine 4 GraphicsIndie game developers have never had so many options when it comes to cheap, easy-to-use game engines. Picking the right engine is a very subjective decision and often depends on language preferences as well as graphical requirements. I know CryEngine is also available but based on other reviews I’m not considering it for my projects (seems too complicated to use for my basic knowledge of game development).

  1. Unity3d
    • C# or JS (Relatively easy languages to learn)
    • Intuitive UI
    • Not as powerful as the alternatives when it comes to next-gen graphics
    • Great asset store full of content
    • For mobile games license is $1,500 per platform or $75 per platform per month
  2. Unreal Engine 4
    • C++ (Arguably a slightly harder language to master)
    • Intuitive UI (I would argue that the latest release UE4 is at par with Unity 3d)
    • All the power you will ever need from an engine
    • Have never tried the marketplace, opinions?
    • License is $19 per month + 5% of profits when the game makes over $3K

I have only worked with Unity3D and I love how fast it is to get started, the great asset store content makes building prototypes even faster. However, Looking at the video tutorials for Unreal Engine 4 it seems that the editor is now just as user-friendly as Unity’s. The only barrier remaining is C++, I have a very basic knowledge of C++ and it would be a steep learning curve.

The price point is also a very important consideration. 5% of profits is potentially a very steep price to pay. But in the interest of not putting the cart before the horse the likelihood of one of my games succeeding is low, so the idea of paying only $19 per month at the beginning against the $150 for Unity is appealing. Opinions?

Check out the Unreal Engine tutorials channel on YouTube.

Day trip to Bowen Island

After months of hesitation and procrastination we finally moved to Vancouver. It wasn’t easy to pick everything up, say goodbye to good friends in London and just leave. However, it was time for our new life to start – new place, new job, new continent.

I often repeat this to myself: “There ain’t stopping us going but the leaving of it all”

We have now been in Vancouver for one month. Almost settled in and as the summer approaches and the weather turns we took our first day trip. Bowen Island for a day trekking in Crippen Regional Park as suggested by my new favourite book. This was also the perfect excuse to pick up my camera again, my flickr account has been inactive for way too long!

DSC_8214-Edit

We took the 10am ferry from Horseshoe bay and arrived at Bowen Island bright and early. From Snug Cove we first walked the Dorman Point Trail as we were promised a stunning view over Snug Cove – disappointingly the view was obscured by trees. Nevertheless it was a great way to start the day as the walk was short and at times steep, makes for a great warm up.

DSC_8245

After resting for a bit at Dorman Point we came back down and had lunch at Doc Morgan’s, a nice local pub just next to the Union Steamship Company Store. The pub offers a great view on the cove from the patio but the food wasn’t anything to write home about.

After lunch we picked up the Killarney Lake Trail. This is a beautiful, easy walk. It can easily take up to a couple of hours to complete the entire loop from Snug cove and the panoramas are great.

DSC_8266

We will definitely go back and perhaps bring our bicycles for a more complete tour of the island.

MotoGP is back!

Rossi Wallpaper
The doctor in action

I can’t wait for the MotoGP season to start again. It is pretty much the only sport I wach on television and actually follow. My occasional forays into F1 are simply a palliative for the lack of motorbike action.

This should be a cracking season with Rossi back at Yamaha, Pedrosa on a mission to finally get his first world title and Marquez ready to jump in the mix.

I am a huge fan of Rossi and watching him languish in the middle of nowhere (4th or less) with Ducati was painful – the guy is a hero to me and I think he deserves to leave MotoGP with a few more victories under his belt, another world championship would be astounding.

Stoner was hugely fast and I admire his riding style and skills to push that Ducati to the limit. Even so, I have never been a big fan, something about his attitude. I completely understand his decision to retire. It clearly looked like he wasn’t having fun and decided it was time to dedicate himself to his new family, while doing a bit of racing on the side, rather than the other way around.

Lorenzo is always a favorite for the title. He is a spectacularly good rider and incredibly consistent. I know many people blame him for the lack of “action” over the past 2 seasons in MotoGP but I think that is unfair. He was racing to win the championship, points over risks, and I don’t think he was challenged enough by his rivals. They were either too far ahead and impossible to catch up without taking too many risks or so much slower that there was no need to push. Either way, with Vale on the same bike hopefully they should be some excitement as they battle it out.

Bring on Qatar this weekend!

keeping your code in shape

Not too long ago ID Software published a document detailing its coding guidelines. It makes for interesting reading and we can all learn something from it.

I certainly picked a few rules from it as I was putting together a set of coding guidelines for cloudbase.io.

However, web development is very different from game development. Iterations over a piece of software in the web world can be as brief as half an hour, production bugs need to be fixed and released promptly. When building a game you spend months testing and refining your code.

Fast iteration is one of the biggest advantages of web development, a centralised code-base that can be adjusted and updated without needing to re-distribute your software. Unfortunately the speed of development and release is also what causes “spaghetti” code to appear.

What I thought I’d do is try to set, on top of some detailed coding standard rules, more architectural and structural rules for the code. These will hopefully guide developers when they are furiously fixing issues and adding functionality.

These are in no particular order and I’m writing them as they come to mind. I would like to hear from developers and CTOs out there to complete and adjust this list.

  1. If parts of your software need to interact with some code without knowing its entire structure and meaning, in an interface-like style, then it should be an Object. Weakly typed languages are no excuse to produce code that will be harder to debug and maintain in the future.
  2. Your variables should be your comments – use readable variable names and split an instruction in three separate steps if needed for the sake of readability.
  3. Think big – when fixing a bug or adding new functionality think about the rest of the code and how it interacts with what you are re-writing, you are most likely missing something. Then pause again and think even bigger, what will your business look like in the future, in which direction is it heading, perhaps you could add some hooks in your code which will make it easier to re-use as your software evolves.
  4. Objects are nice and keep your code clean – however, if the object you are creating will not be reused, or you already know it can’t be reused because it’s not going to be compatible with the rest of your code, then it probably shouldn’t be an object, keep it simple.
  5. Divide to conquer. If your application can be separated in different components, for example an API and a management console, make sure they can run independently from each other. If one is down ideally it shouldn’t take down the other. This will also make your code easier to re-engineer, you will be able to do it one little logical component at a time without having to go through a monolithic rewrite which almost never works.
  6. If you are writing a 10 lines IF statement there’s probably something wrong with your logic, review and simplify.
  7. Prototype your code quickly but make sure to cover the entire business case from beginning to end. Once you have mastered all of the use cases, write the code for your application.
  8. When adding new functionality also write a test case for it.
  9. If the functionality you are building already exists in a library your project is using or could use, use that library. DO NOT REINVENT THE WHEEL.
  10. Write some java-doc style documentation for your functions. It will make other developer’s life easier, your business will be able to produce a documentation for all of its code.
  11. Write comments to explain the logic of your code if it’s needed. don’t state the obvious.
  12. We are building web apps. The web server is already multi-threaded, each page loads in its thread, you don’t need to spawn sub-threads in a page.

Is London still the right place for a startup?

I moved to London 8 years ago because of the booming job market and, well, because it was London. Many things have changed since then.  I now find myself in the position to start my own business.

Naturally, I assumed that London and the UK was a great place to do it. Simplified bureaucracy, great talent from all over the world constantly flowing in and out of the country, the ever-more prominent Silicon Roundabout, a tory-led coalition government which, for all its faults, should be trying to boost business and entrepreneurship (isn’t that what torys are all about?) – London is the right place to do it.

aboriginal population of englandOver the past few months, I have grown sceptical and wonder if London is the right place for me.

  • Cooling off period - Businesses big and small around London rely on the flow of skilled immigrants to hire the talent they need. The aboriginal population, whose new generation is pictured here on the right, seems to have decided to leave these jobs to immigrants and focus on other things.
    The government has now introduced a cooling-off period for Tier 2 VISA holders – what this means is that if someone’s VISA is sponsored by a business and I decide to hire them, they will have to spend 12 months (12 MONTHS!!!??!!?) outside of the UK cooling off before they begin working for me. I struggle find a justification for this, other than that they were probably red hot by having such an easy time getting the VISA to begin with and needed to cool off a bit before they can work for me here.
    An idiotic populist rule. Clearly drawn up by people who have never had to hold a real job, hire anybody other than their wives and close relations, to keep receiving the votes of the very same aboriginal population who isn’t producing any wealth for their country
  • Commercial real estate – The next step, after taking skilled immigrants off the table, is clearly to take the offices away from small business by making commercial real-estate in London prohibitively expensive. Because of the recession a lot of the commercial spaces in London remain empty. The root cause of the problem is the weak economy not encouraging businesses to expand and new ones to start. As usual, politicians decided that instead of fixing the underlying cause of the issue they will put a patch on it, by making it easier for property developers to convert commercial real estate into blocks of flats. These are properties in the heart of London, no Londoner will ever be able to afford them given that the average salary is $56,000 per year. What we will end up with is a lot more Emirati and Sheiks owning penthouses in central London, the price of commercial real will go up, business will have to move out.

I thought London was a great place to start a business because the benefit of the inflow of skilled immigrants from all over the world (everybody wants to live in London, like New York) far outweighed the high prices.

They have taken both away – I think it’s time we move to another great city in the world.

Why I’m not applying for TechStars

TechStars LogoI was invited to apply for the TechStars program in London with cloudbase.io.

The program looks amazing and after the initial invitation I took to Twitter to ask other entrepreneurs who already went through the process if it was all worth it. I only received glowing reviews, not a single detractor. It all looked very promising. However, I have decided not to apply.

As I understand if your application is successful, and you are accepted in the TechStars program, you will instantly receive €15,000 worth of funding to keep you going, a €70,000 convertible debt note and – more importantly – 3 months worth of intense mentoring with experienced entrepreneurs and investors. On top of that they offer some nice perks. In exchange for all this, TechStars will take a 6% equity stake in your business (approximately).

My main reason for considering applying to TechStars is the network of contacts cloudbase.io would gain in the tech industry. I am not particularly interested in €15,000 nor in the convertible debt note.

Cloudbase.io is in production and doing rather well. From the financial point of view 6% percent equity stake for what effectively is €15,000 undermines my ability to go to out and raise angel or institutional money at a much higher valuation in the short term. Additionally, I don’t know whether this 6% stake can be diluted or what the terms of the contract are.

Will the simple fact that I participated in TechStars raise the valuation of my business by more than 6%? Possible, but still a gamble.

As TechStars themselves point out the money is just a part of the deal (the least important one at that) – the big value is that you would have the TechStars mentors effectively as your co-founders.

I also have a problem with that. It would be a fantastic proposition if I was sitting in cafes building a new product by myself or with my co-founder. However, cloudbase.io is a live business supporting a number of customers. I cannot just take 3 months off to participate in the program. Even if it was just 1 day a week, that’s time I don’t have.

Based on all the feedback I received from other entrepreneurs I think TechStars is a fantastic opportunity for entrepreneurs building their product who are at early stages of their business.

Unfortunately I don’t think it quite works for me. People will call me crazy and I may very well end up regretting this decision, but it seems the only possible one for me at the moment.

update: TechStars pointed me to this blog post making the case for the “it’s never too late” camp. Definitely worth a read but I haven’t changed my mind as my concern is still time.

Should I charge for my service?

I think the answer is almost always yes. This, of course, is based on the assumption that your service is useful, intelligent and saves somebody time and money.

If all of the criteria mentioned above are met then you should definitely charge for it.

Just a few years ago it seemed that everything was free on the internet. While I appreciated that and certainly took advantage of it I never quite understood why they were doing that.

The thinking process is always, offer the service for free and find an alternative revenue stream by monetizing the data you collect. Very clever. Hardly ever works.

I’m a big fan of keeping things simple. Business is made much easier and enjoyable when it’s simple. You make a loaf of bread for 5, you sell it for 10. Stick to this principle and you can’t go wrong.

Last year I spent some time with a friend of mine in India. He’s a doctor and donates his time to visit villages around his town that have no access to healthcare where he runs an open clinic.

He told me something that made me think.

He’s selling the medicines to his patients rather than giving them away for free. Not for the normal price of course, they wouldn’t be able to afford it. Just 1 cent. A small amount even for them but they will feel it. That’s exactly the objective. If they know they have paid for something they will value and care for it.

I believe the same basic psychology applies in all other areas. If you believe your service is good enough to justify you asking money for it. Then you probably should.