How we chose our games engine

July 10, 2017 Pavo Man Miscelanea
Games engine

After the first two posts about 7 challenges to overcome as a indie games company and setting our two foundations with product and marketing, we had to dive right into drinking loads of coffee and speaking code, therefore making games. In this post I will explain which games engine I have chosen and the reasons for it.

Requirements

I had to think about what factors should I weigh to decide whether to find, install and learn a games engine or just do everything manually. What do I look for in a games engine? So I made a list of the most important requirements.

  1. Speed as I want to be able to build games as fast as possbile
  2. Easy to use so I don’t need to lose time on little things
  3. Supports iOS and Android as I want to build for mobile games. Other platforms like desktop or browser would be a nice to have, but it’s really not an essence.
  4. Easy integration with third party utilities, such as, analytics. This is a must-have.
  5. Fun to use as I plan to spend a lot of time using it.

The candidates

This part of blog post will be extremely subjective, which means, that it’s definitely something that works for me (I am the only one coding right now) and might not work for others. But if you are in a similar situation it might just help you decide.

I have gone through 3 candidates which are Cocos2d-x, Unity and Unreal Engine. It’s important to remark, that I don’t have any experience with any of them for more than 2 weeks. So my analysis is very opinionated, but I had to move fast.

COCOS2D-X

The use cases and the vast community that they have. That’s what first got my attention with a games engine Cocos2d-x. I downloaded it and decided to build a simple asteroid game, just to try it out.

Main things I like:

  1. There is a lot of community out there. Solving issues is not a big deal.
  2. It is very easy to use, even if my coding was shi**y, it was really easy to build a simple game.
  3. The learning curve is extremely fast.
  4. The documentation is pretty well done and easy to follow.

Main things I didn’t like:

  1. How manual is to do so many things… so I invested a lot of time to work through different resolutions or to build in different platforms (iOS and Android).
  2.  I started to doubt between 2D and 3D. At the beginning I was very sure to build something in 2D, since I don’t have much resources or experience. Later I thought: if I am earning a lot of experience with that engine and I wasn’t sure how useful it will be if I move to cocos3D.
  3. It doesn’t have an editor. Well they have one with javascript, but I was not convinced. It seems that the tools, 2d and 3d are too spread in different projects, so that confuses me.

UNITY

Probably the most used game engine that I really wanted to give a chance, since I have heard a lot about it. Also I am a constant buyer of their asset store, I don’t really know why 🙂

Main things I like:

  1. They have a lot of community and they take care of it.
  2. There is a lot of documentation and tutorials made by them and by their community.
  3. It has a very cool editor which makes things very easy.
  4. They have editor, 2d and 3d all together, so everything is a part of the same engine.

Main things I didn’t like:

  1. I am not very big fan of C# or TypeScript, since my experience is mainly in Java and I have done some things in C++. So both available languages made me start from zero. Learning a new language, even if it’s something funny and not really hard, but it does take my time. And time I don’t really have…
  2. It still felt that many things were a bit manual or certainly my limiting knowledge was a problem 🙂
  3. I was so fast in comparision with Cocos2d-x.

UNREAL ENGINE

I felt to give it a try, since it seems the most spectacular game engine. An engine is made for AAA games, which is a plus. I was very impressed with the power of this games engine.

Main things I like:

  1. It has a blueprint system. I can build simple games without specific coding knowledge. That opens the door for not-so-technical people to help with my projects, if somehow needed.
  2.  C++ is the main language, which I can combine with the blueprint system. So it’s a language I am familiar with, but hopefully I won’t have to use it.
  3. It has a really good editor.
  4. The quality of the games you can do, seems really spectacular. No limitations at all.
  5. I saw it also allows to build multiplayer games fairly easy. The engine takes care of the networking.
  6. It has 2d and 3d, although 2d is not very recommended, since the engine is not meant for it. But it has 2d!
  7. Installing plugins it’s really easy and with blueprints, are very easy to use.

Main things I didn’t like:

  1. The learning curve is slower, due to difficulty. But still it’s not so difficult that it wouldn’t be possible.
  2. There is much less of different helpful documentation and a smaller community.
  3. The builds are quite heavy compared to the other engines, but at this point, I don’t know the size of that issue just yet.
  4. It seems that is the most consuming engine in terms of phone battery, than others.

Conclusion

After playing a bit with those 3 engines, I have decided to go for Unreal. The blueprint system, all the things that they have out of the box and the fact that I am a dreamer (the power of the engine really excited me) were  just too amazing, even if the learning curve is a bit slower. Also I liked the editor of Unreal a bit more than the one from Unity. I think I am going to try a very simple 3d game, which will come in the next post 🙂

Thank you for reading!

If this was interesting to you, it might be for others. Spread the word :)
Pavo Man
Pavo Man

2 Comments

  • Tanishq

    i just wanted to start game development for mobile and i found unreal engine perfect for my needs but they says it needs a high end system to run and thats the only reason im choosing unity. Can you please tell me what are your pc configurations and is it a laptop or desktop or if you tried unreal on any other laptop. It will help me a lot. Thanks!

    • Pavo Man
      Pavo Man

      Hello Tanishq, thanks for reading us!

      I have a desktop and and a laptop that I use to develop. The laptop is a Dell Latitude M3800 and it runs all the engine needs without problems.

      You will have no problems developing in Unreal for mobile devices with any PC with a mid-low grade graphic card (the Quadro K1100M is like a GeForce 750M) since the graphic needs are very low compared to developing games for Desktop PCs and way less if you dont use mobile HDR.

      I have also tested developing in a i5-5300U ultrabook with integrated graphics card, and while the graphics lagged a little bit some times, it was ok.

      The Dell Latitude M3800 specs are:
      – 16 GB RAM
      – 256 GB SSD
      – NVIDIA Quadro K1100M 2GB
      – i7-4712HQ

Leave your comment