Skip to main content

Which Game Engine ?

Long Long ago ... so long ago I wrote blog.. After many months writing again. This time about Game Engines.

While I was learning during my school/college period, I want to make games using the language features alone. I never wanted to make a game using game engine. Somewhere in my mind I felt that using game engine is an inferior activity. I wanted to be a hard core guy!

As the time passes, game making becomes secondary and other tech stuffs like .net, web apps , db occupied my mindspace. When I later decided to quit my job and take up game development as my primary focus area, the first problem that came to me was Which Game Engine / No Game Engine?

That time I was little experienced, so ultimately my number of years in technology told me that going for Game Engine is the right way. Then comes the problem, Which Game Engine?

With the help of google, I came to know about the following game engines/frameworks. Unity, Unreal, LibGDX,GameMaker, SDL, Allegro, Mono...

Whole internet recommends me to Unity or Unreal. It is like you should belong to either of the parties or you are no good. This was the image given by the internet forums and articles.

Something in me always wanted to avoid highly sophisticated tools. So I avoided Unity, Game Maker, Unreal and other similar engines. That time I was highly fascinated by object oriented approach towards solving problems and thinking in terms of objects. So I have avoided functional programming based frameworks too. I decided to go by either Java or C#. I went by Java. LibGDX looked promising to me for my requirements because it has everything and it will not give everything. Yes. You have to get it out and make it work for your game. I loved it bcoz of its freedom that it gives to the design of the developer, programming first approach and no IDE. After using LibGDX for few years to make games, have understood that it consumes much time and it's cross platform abilities becomes challenging once robovm is dusted from LibGDX because it wast bought by Xamarin. I believe LibGDX is good and not good enough for the current trends. I might be wrong but check for yourselves.

We have more indie developers now and many are making games these days. And that too for early stage indie game developers like us cannot afford many months making games that too you won't know whether it will become successful or not.

While I was using LibGDX, I have experimented myself with other engines/frameworks like Unity, Cocos2DX, Cocos Creator, Defold, SDL, Phaser, ... and GODOT

Because of its open source nature and rapid application development abilities, Chose Godot for our current projects which are in making. It looks promising. Still I could not come to conclusion that this is it.

Lets Godot and see how far it can travel with us.

It is always my wish to develop custom game engine from the scratch using OpenGl if not a big engine like Unity/ Unreal, at least a powerful and robust 2D game engine that I love. I don't want to sell that engine. I want to make it for me, work for me and my company. Will do once I have enough money and time for it.

The question still exists. Which Game Engine?

See you in the next article.




Comments

Popular posts from this blog

Tabs at the bottom of TabActivity

Tabs at the bottom of TabActivity By default tabs in Android are displayed at the top. It is a general guideline for android developers to keep the tabs at top of the Tabs based application since lot of Android mobiles are having their home, back,search buttons or touch interface at the bottom But its purely our decision :) There are two ways to achieve this. Using RelativeLayout Using "android:layout_weight" attibute  1) Using RelativeLayout: .xml will look like the following. <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@android:id/tabhost"     android:layout_width="fill_parent"     android:layout_height="fill_parent">     <RelativeLayout         android:layout_width="fill_parent"         android:layout_height="fill_parent">         <FrameLayout android:id="@android:id/tabconten

How to access PC's internet from Android Emulator?

PC's Internet and Android emulator If PC's Internet connection is configured with manual proxy settings, Follow the below steps. 1) You can launch your Emulator from command line with DNS server detail.  Syntax : "emulator -dns-server <DNS Server IP address> "  Example: emulator -dns-server 8.8.8.8 (8.8.8.8 is Google's Public DNS Server)    (or)   Goto Eclipse->Window->Preferences->Android->Launch and give "-dns-server " and then launch your emulator. 2) In emulator goto " Settings->Wireless & Networks->Mobile Networks-> "       2.1) Ensure that " Data roaming " is checked.       2.2) Select Access Point Names       2.3) Select an APN. (eg. Telkila )       2.4) Manually set the Proxy Server and Port details. If PC's Internet connection is configured with Automatic proxy settings, Follow above steps except step 2.4  and ensure that No proxy server detail or port detail is

Windows Workflow : Dependency Property "does not define a static dependency property with name"

If you encounter the below exception while registering a DependencyProperty "Error 103 Could not create activity of type 'xxxxxxxxxxxxxx'. System.ArgumentException: Type 'xxxxxxxxxx' does not define a static dependency property with name 'xxxxxxProperty'. Parameter name: ownerType    at System.Workflow.ComponentModel.DependencyProperty.ValidateAndRegister(String name, Type propertyType, Type ownerType, PropertyMetadata defaultMetadata, Type validatorType, Boolean isRegistered)    at System.Workflow.ComponentModel.DependencyProperty.Register(String name, Type propertyType, Type ownerType)    at xxxxx..cctor()" Fix: If you are registering Dependency Property with name 'XYZ' then the declaration should be exactly like this, public static DependencyProperty XYZProperty = DependencyProperty.Register("XYZ", typeof(bool), typeof(ApprovalWorkflow));         public bool IsRestarted         {             get { return ((bool)(Get