I've been looking around for a good framework or engine to create 2D games with, and an open-world skill RPG with a large world. I had been using SFML for a bit to try some things, but I couldn't get it to work with portable C::B without getting many build errors, though, it works just fine with VS2017.
I've asked many groups of people and... have got very conflicting answers. Some say it's stupid to make a larger game with a game framework because it's a waste of time and effort while others claim that it only makes sense to create a large 2D game with a framework, rather than an engine. So, I'm rather confused in this area.
Basically, I just need some way to develop this kind of game that I can work with via a flash drive and will be powerful enough to handle a larger game, oh, and C++ compatibility would be great, considering this is a C++ forum.
The problem with frameworks are that they want you to work with their tools, so usually the engine will give you things like a base map editor and that is the problem.
Open world games don't necessarily work with how a normal map would be implemented, thus requiring you to get nitty-gritty with how the engine stores the map (implying of course that you plan on making a seamless openworld game, like ultima 7).
The best part of SFML, SDL, opengl, is that you can easily write your own tools, and you know exactly how your data is oriented and you can extend it if needed, but that isn't necessarily easy.
I do believe that unity/godot are perfectly capable of doing what you want (you might even find a add-on that implements a open world 2d map for you!), but in the worst case scenario it could be more work, and more buggier than writing something in a raw API, especially if don't care about what the perks the engine offers, like a 2d physics engine (mainly designed for a platformer) which has many fancy widgets.
Also note that the second you chose C++ you can easily cross out "easy portability" off the table. The second you have the slimiest ability to screw something up, you will, and C++ has many opportunities to give you portability Gotchas even if you use something like SFML2 with all the portable libraries, the compilers are not the same in many small ways, even between the gnu style compilers. The closest bet would be emscriptem web assembly code, but that isn't what you are looking for.
Learning how to do snake, tetris, and a tank game or whatever can be a fun learning experience that gets you comfortable with solving problems (like actually doing things without reading a tutorial line by line, and quickly learning from trial and error by moving to new projects, with postmortem research how other people solved your problems to make your code better on the next try).
But just remember there is a good balance between writing engine code and game code, don't spend 4 years writing an engine, or spend 4 years making half baked games. Overall good simple ideas, good sound and good art is harder to find than good code, as long as you aren't falling for the over-ambitiousness trap.
I couldn't find anything. I'm trying to use the latest CB build of SFML 2.5.1 on CB 17.12, which seems to have a matching compiler. I don't get errors in the file I build, but in the SFML headers instead.
I'm not sure if actually making a game engine would be good to start, or not.
I'm not sure if actually making a game engine would be good to start, or not.
It depends what you want.
If you plan to make dozends of games it might be a good idea to create your own game engine.
In this case you just implement what you need.
For a simple project it might not worth the effort.