Game Engine vs graphics api: Where to start?

Started by
6 comments, last by Geri 1 year, 2 months ago

I would like to try my hand at creating a 2d Pixel art top down GTA. Are game engines powerful enough(Game Maker,Unity) or should I go lower level (Vulkan, DirectX)?

Advertisement

Depends on what you're trying to achieve as a whole. Ultimately an existing game engine (Godot, Unity, Unreal, Game Maker) will allow you to iterate on ideas faster, and if you're very knowledgeable about how to use said engine you can probably squeeze as much performance and graphical fidelity out of it as if you were making a custom engine, so it's probably a safer bet for you to go with an existing engine if you're not looking to make anything too workload intensive.

But if the game is very simple and you're only targeting a single platform under a single graphics API and you want to learn a lot about game engine programming and game development then maybe starting at the lowest level using Vulkan and/or DirectX is a better route. Or if you're already an experienced graphics programmer and you want top notch performance and the most customizable pipeline then that would also work.

So it's a function of preference. One way will get you to the end product faster but be more automated (existing engine), and the other way will take a lot longer but teach you a lot more (custom engine).

EDIT: Just wanna clarify, existing engines are more than powerful enough to handle any sort of independent game needs so it's probably the safer bet if your primary focus is working on and improving the game itself.

I'm inclined to concur, overall: If your goal is to make a game, then an appropriate extant game-engine is likely more than powerful enough.

(By “appropriate” I just mean “not rather poorly-suited to the task”. You may or may not get good results trying to do what you describe in, say, Adventure Game Studio, which is designed for a completely different sort of game. But a modern, generalist engine like Unity or Unreal (or my own preference, Panda3D) should have little trouble.)

Now, depending on your specific intended feature-set (for example, should you want a huge, fully-open world), you might have some work to do in getting it to perform well. But then, the same will I daresay hold true if you work at a lower level--save that the process may be even more technical.

MWAHAHAHAHAHAHA!!!

My Twitter Account: @EbornIan

The important piece of information with this question is: are you a programmer?

If you are not a programmer it is pointless to learn to use graphics APIs and not use higher level tools (like a game engine). If you want to be a racecar driver, you don't start that by learning automotive design.

If you are a programmer, then it's more a matter of what you want to do and why you are doing it. But ultimately, if your goal is to make a complete game (and/or sell that game when you finish it), using existing high level tools will make that much easier.

As for the question of are game engines powerful enough for the kind of game that you mentioned: they are. Your description (top-down GTA-like game) doesn't have anything that tday's popular game engines can't handle.

I have a love/hate relationship with Unity (and other ‘novice-oriented’ toolkits).

On one hand, it is easy to pick up, hard to break, and has volumes of tutorials, assets, and ready-to-use solutions. With it, it is possible to make your own little nice finished game, show it to friends, get the dopamine kick, and get hooked on game development.

On the other hand, it severely skews the perception of what is a ‘good solution', what is game development, and overall gimps your capabilities. Downloading a script that implements a required piece of functionality for your game is easy. It's also easy to start using it. But, that's a false feeling of progress. As the number of scripts and random assets increases, it becomes harder and harder to cobble everything together. Strange freezes, bugs, and the overall complexity of the system intimidate novice developers. And guess what? They intimidate experienced devs too. It's easy to start making the game, and easy to make it such a mess that you cannot continue. Also, far from all tutorials are well-made and promote good practices.

I want to punch a wall when I hear this “where-can-i-download-plugin-for-that” attitude. So, whenever I see a baffling question in the Programming forum section, I blame Unity.

BUT! I have two unorthodox solutions for you:

Learn HTML and plain JavaScript. JS is a relatively easy language. Canvas API, embedded in our modern browsers, is easy to use to draw stuff on screen and build visual representation (especially for 2D games). HTML will ease making HUD and menus; making which in other cases often feels like a chore. That's a toolkit with no whistles nor blows - but it has enough to make a game you want. You get cross-platform capacity for free, btw.

Make a board game. You need a sheet of paper, a pencil, and a dice (and a friend to play with… if it's a major obstacle - I feel you, it sucks). The medium is more restricting than HTML - but (again), I see it as a benefit again. You won't be tempted to sidetrack from actually developing the game. It's an excellent choice if your primary interest is designing complex systems, watching people interact with them, and carefully tuning the knobs and springs inside the systems to make the experience of playing the game exactly right, exactly how you imagine it. But, if, for example, you are fascinated with graphics/AI/other aspects, it may be not quite suitable.

P.S. The game you describe looks unrealistic as a first project.

None

You probably don't want to get into the low-level programming. I would suggest either of these:

Cocos2d-x - Mature, lightweight, open cross-platform solution

Make 2D Games With GameMaker | Free Video Game Maker

AppGameKit - About AppGameKit

The first two are free. There is a steam bundle on sale for AppGameKit.

opengl (es) will be fine for your 2d game far more than anything else, at least you can port your game easily to phones.

This topic is closed to new replies.

Advertisement