Game Development MK2

Picture of admin

admin

Software Engineer | Robotics Enthusiast

When I was a teenager I used to be a game developer, you know, as a hobby.

My main game engine was Game Maker Studio 1.8, where I did most of my projects.

I started with a Sonic the hedgehog game prototype, and then a breakout game.

Taking this as parameters, I think I can learn again the skills of a game developer because I still want to make games in future. But I need to face some beginner decisions again, because even being a talented programmer and engineer, I am now on the game development field, a beginner.

Table of contents

Choosing a game engine

GMS1.8 was my get go choice, but today I don’t remember most of the things I used to do, and GMS is now on the version 2.0. Is it worth to learn everything again? Or must I choose another engine, let’s compare the options:

Custom Game Engine

I’ve said I am a talented programmer and engineer, so I could make my own game engine right?

Yes but wrong, I mean, I could. But the effort and time I would spend on that is enormous, and we have solid solutions on the market to do that. I don’t think I will reach this point working alone on a custom game engine.

So, discarding this one.

Phaser 3

I am very good at JavaScript, and Phaser is a JS game engine. Uses Three.js and can work with TypeScript for better long-term development.

The community is very nice, but we don’t see much relevant projects there made using Phaser 3. And I know that “if everyone thinks like this, would phaser be relevant one day?”.

Well, maybe it will, it is on a good path, and I would choose this one if I was the type of person who likes to stay on the same place. But I want to get out the JS/TS box. So that’s why I am not choosing this one, maybe one day.

Game Maker Studio 2.0

I know a lot of things about making games on GMS1.8, 2.0 update is big but not something I can not learn. So this one is, of course, the choice with the lowest learning curve among all options.

So well, Why not choose GMS?

Simple. Because I know this very well. And I know it’s limits. So if I’m learning something anyway, I need to look for things I don’t have here.

For example UI components, it is one of the things you will struggle a lot to make in GMS and is simple on other game engines, when I was using version 1.8 I needed to create my own customizable UI components library because we didn’t have a native one.

And other thing that keeps me from it, is 3D. GMS can do 3D games and honestly 3D is not my main type of choose when creating games, who knows me will know I’ma more a retro guy. But as a game developer I need to be open for 3D games, 3D doesn’t mean realistic, it can be low poly 3D for a Nintendo 64 look. Doing 3D on GMS is not a natural thing, is more difficult than other game engines because GMS was designed for 2D.

So I would like to 3D as an option for me to use, so sorry GMS, I love you in the deep of my heart, but this is a no.

Unreal Engine

That one is hard. I always wanted to learn UE, when I was creating things in GMS I was looking at me in the future as a UE developer in a crazy badass computer (that I didn’t had at the time).

The time has passed, I had a crazy computer with a crazy RTX video card, but I really never got interested on UE during this time. I tell you why:

The learning curve for UE is huge, and I don’t have much time for it…

And UE is mainly designed for photorealistic 3D games, Mixed reality, breathtaking visuals… God! Of course I would like to learn how to do it, but I would not like to play it.

Games are one of my passions, but “todays” games aren’t. This crazy photorealistic things are good, but not fits my tastes. UE can do 2D as well, but it’s the same thing of GMS doing 3D, 2D is natural there and is not not the main thing of UE.

So if I need to take a huge learning curve for doing 3D, and even bigger for 2D here, UE may be the better one in the market, but I cannot choose this one, sorry.

Unity

Now things are getting interesting!

Unity is the all-star game engine, it can be used from the tiny-est indie game, to the huge AAA enterprise project. It do 3D and 2D very well, and has a low learning curve.

May be not the better one in the market right now (loosing to UE), but it is the most used for sure.

The interface is intuitive and uses C# as the main programming language for scripts.

But people who use it long time don’t seem to like it… I’ve seen a lot of people migrating from Unity to other game engines like GMS and Godot.

So, Unity is very positive, but is it really worth to go with? I will pick it for now.

Godot

Godot is a surprise, is an open source project and people who uses it like it very much. Seems like the correct choice.

People from other engines were migrating to Godot, and looks like it have a good learning curve.

The community is fresh and always come up with new interesting stuff. The engine developers are very active in the development. So why not choose it?

Honestly, there are 3 things that worries me.

First, the scripting language. Godot has its own scripting language called GDscript, that I need to learn if I choose it. The syntax is like python, which I love what it can do, but I hate the syntax. Learning a programming language that I can use only inside Godot seems very limiting for me.

Second, the UI and UX is not much of my taste, specially for mac computers, controls and experience is not very good as it is on windows, I use a macbook, so I really need the experience to fit it.

And third, it is a good engine, but still not far used in the overall market, it’s hard to find people who knows how to use it. So thinking as a long term solution to that will grow team and a successful company, will not be that easy to find people who work one that.

Conclusion about the engines

After all this, I am now with 2 potential engines to use:

  • Unity
  • Godot

So let’s compare the positive and negative points of each:

Unity

Positive:

  • Starting at a free price
  • Largest community over all options
  • Explosive amount of tutorials and sample projects
  • Can do 2D and 3D very well
  • Very used in the market
  • UX is very optimized

Negative:

  • Expensive as the project grows
  • People who use it long time is migrating to other engines
  • Watermark can be removed only on paid plans
  • Can look “cheap” (because cheap games use it)
  • The company sucks
  • Paid licensing subscriptions

Godot

Positive:

  • It’s free and open source
  • Good and welcoming community
  • Low learning curve
  • No licensing costs
  • Relevant amount of tutorials and sample projects
  • Can do 3D and 2D
  • Can use Git for collaboration

Negative

  • GDscript is exclusive for Godot
  • UX on mac devices are not good
  • Less used in the market
  • It’s not ‘there’ when doing 3D

Next steps

Unity and Godot are now my current choices, but I need to choose one.

Factors

To make this properly I will do a period of test on each engine, evaluating some equal properties on them so I can compare better and choose. Each engine will get a 1 to 5 value on the next factors:

  • User experience: How good it is to use according to my vision, if the UI attracts me and make me want to use it. And if it’s easy to get in place with the features.
  • Learning Curve: I already know some C# and Python, so the languages will be no surprise. But I need to evaluate how hard will be to do something on each.
  • Toolset: Compare the available tools to do the job. Doing the same thing on each, which one is more natural?
  • Problem solving: The problems/bugs/questions I will get through the process of learning, which one is easier to find information about what I had? How frequently I am having problems?
  • Complexity: What I have done to complete the same goals, and how much complex they are from one to another.

Project types

I will do the same type of projects in both engines and choose based on a factors/project spreadsheet.

Basic Game 2D:

  • Breakout
  • 2D Sonic Plataformer

Multiplayer Web:

  • TicTacToe Online Multiplayer Web

Mobile:

  • Fruit Ninja like

Advanced 3D:

  • 3D MMO shooter

Leia Também

Rolar para cima