C++ multiplatform engine/framework/library?

Started by
9 comments, last by uglybdavis 9 years, 3 months ago

I would like to start making a game, I don't want to learn a new language so please don't suggest me to do so.

Windows/Mac are my main target, though it would be nice to have the possibility to compile for Android too.

This is my first time in game development biggrin.png

Advertisement
The most important thing, is to set yourself a small goal that you can reach in a couple of weeks or less.

You could start with something very simple like a text adventure game where you only need to be able to use iostreams and some fancy string compares. But that will teach you the basic input-update-output loop of any game, as well as managing assets. Games like this rarely need any kind of libraries beyond std::.

If you want to jump right into something with graphics, a game like Tetris, Pac Man, or Arkanoid are great ways to start. For these you'll probably want to grab Cinder or SFML or something similar.

If you don't mind spending $20 (and 5% of any revinue generated) you can go all the way to the top and get Unreal 4 with full C++ source code. Admittedly, a lot of the development process of the game at that point will probably be in their editor, but with C++ you can rip it apart and get it to do whatever you want.

The most important thing, is to set yourself a small goal that you can reach in a couple of weeks or less.

You could start with something very simple like a text adventure game where you only need to be able to use iostreams and some fancy string compares. But that will teach you the basic input-update-output loop of any game, as well as managing assets. Games like this rarely need any kind of libraries beyond std::.

If you want to jump right into something with graphics, a game like Tetris, Pac Man, or Arkanoid are great ways to start. For these you'll probably want to grab Cinder or SFML or something similar.

If you don't mind spending $20 (and 5% of any revinue generated) you can go all the way to the top and get Unreal 4 with full C++ source code. Admittedly, a lot of the development process of the game at that point will probably be in their editor, but with C++ you can rip it apart and get it to do whatever you want.

Unreal is quite an overkill, also I forgot to write that I'm going for 2D games and I already have a good knowledge of C++, I've checked SFML but I've noticed that it doesn't officially support Android, what about SDL? it should be based on OpenGL as well but with mobile support right? also is going for pure OpenGL a bad idea for a beginner in game dev?

Godot engine looks promising, it's open source, cross-platform, and also provides a GUI for many things ranging from animation to world management.

New game in progress: Project SeedWorld

My development blog: Electronic Meteor

Watch Handmade Hero, it starts with nothing but Visual Studio and every step is explained.

Aether3D Game Engine: https://github.com/bioglaze/aether3d

Blog: http://twiren.kapsi.fi/blog.html

Control

I've checked SFML but I've noticed that it doesn't officially support Android, what about SDL? it should be based on OpenGL as well but with mobile support right?


SDL supports Android using OpenGL ES. There are also some tutorials linked in the Wiki that might give you a starting point.

also is going for pure OpenGL a bad idea for a beginner in game dev?


I guess that depends on the individual. Personally I started with the XNA framework and later switched to DirectX. Only after that I started learning OpenGL and the prior knowledge from DirectX definitly came in handy. OpenGL can be kind of confusing in the beginning so it might be good to have at least some knowledge of graphics programming before using it. But, as I already said, other people might have diffent experiences.

Watch Handmade Hero, it starts with nothing but Visual Studio and every step is explained.

This is really great stuff - really good for starting completely from scratch on Windows. Of you are on linux or other operating system you should search for video tutorial about SDL/SFML game programming - doesent matter which one... SDL is more like old style C and SFML is more object oriented like C++.

Unreal is quite an overkill, also I forgot to write that I'm going for 2D games and I already have a good knowledge of C++, I've checked SFML but I've noticed that it doesn't officially support Android, what about SDL? it should be based on OpenGL as well but with mobile support right? also is going for pure OpenGL a bad idea for a beginner in game dev?


Well if you want to develop for Android then you have to use OpenGL - or at least one of the several mobile variants depending on your hardware and Android version and whatnot. DirectX is only available on the Windows or XBox platforms, Mantle is only available on desktop Windows, and... I think Apple has some sort of low-level Mantle-like API for their own products, but I can't remember the name right now.

For a beginner, it is much less important what you use, just that you make a choice and learn it. Since you want Android support, you must use OpenGL, so go ahead and learn it. If you change your mind and want to move to DirectX, Mantle, or something else later you'll already have learned a lot from using OpenGL that will transfer over, so your time won't be wasted.

This is, of course, assuming that whatever engine you use doesn't completely abstract away the graphics API - though understanding the basics of that API will make debugging issues much easier.

Another good open source C++ framework is openFrameworks.

It supports Windows, Mac, Linux, iOS and Android, and features Add-ons.

Blog: http://www.julianloehr.de

Twitter: https://twitter.com/jloehr_gamedev

HID Wiimote - Windows Device Driver for Wii Remote & Wii U Pro Controller: http://julianloehr.de/educational-work/hid-wiimote/

Urho3D might be worth checking out.

This topic is closed to new replies.

Advertisement