Side-Scrolling Fighting Game: Thoughts and Questions
TL;DR - I want to make a hand-illustrated, side-scrolling fighting game with RPG elements and motion comic cutscenes. Is Godot suited for this?
Hello! I have an idea for a hybrid game which would be equal parts side-scrolling beat'em-up (Streets of Rage, Battletoads, Scott Pilgrim vs the World, etc) and 2D fighter (Street Fighter, Mortal Kombat, Skull Girls, etc), with just a splash of RPG added in. The game would mainly play like a beat'em-up, with the addition of some more 2D fighter-esque combos and specials. The boss battles would be strictly in 2D fighter mode, with all of the attacks (combos, specials, etc) carrying over from the beat'em-up sections of the game. The RPG element I'm after would just be a simple leveling up system increasing health and attack power, possibly unlocking special attacks. I would also love to include a "tournament," or "arcade," mode which is entirely in 2D fighter format.
The main hurdles I'm aware of are:
-Importing hand-drawn images for virtually every character and object in the game.
-Switching camera styles between the beat'em-up (player centered) and 2D fighter (player on the left) sections of the game.
-Tracking stats and unlocking longer health bar, higher attack, and special moves for the leveling up system.
-Importing and playing video files for the cutscenes.
-Adding an extra playable mode to the title screen options.
When initially conceptualizing this game it occurred to me that I could either start with a beat'em-up game and add in 2D fighter elements - add support for combos and such, make the boss battles their own levels with narrow stages, effectively locking the camera on the 2 characters and emulating what a 2D fighter generally looks like - or I could start with a 2D fighter and add in beat'em-up elements - extra wide stages allowing for side to side travel to emulate side-scrolling, multiple enemies that don't all spawn at once, adjusting the camera. This line of thinking lead me to both OpenBOR (an open source beat'em up engine) and M.U.G.E.N. (an open source 2D fighter engine). While both of these are good options (with possibly less of a learning curve than Godot), I worry that since both engines are essentially tools for modding a base game, I wouldn't be given as much creative control over what the final product feels and plays like. Also, with M.U.G.E.N. any game you make must absolutely be free, as charging for it violates the license agreement. While I do appreciate that, I think I would eventually like to charge a small fee for my work.
So, I'm leaning towards using Godot for this project. At first I was put off by the need to learn scripting, but I have a little experience scripting in M.U.G.E.N. and RPGMaker, and in the myspace days I was good with HTML lol, so I'm willing and ready to learn. Another thing that really draws me to Godot is that it does both 2D and 3D. Most of my current ideas are in 2D, but I might want to transition to 3D in the future (would love to make a stealth action game someday), and I imagine already being familiar with the program at that point would be greatly helpful.
Of course I plan to make a handful of smaller games to learn and practice with, but I want to be sure that in doing so I am sharpening skills that will help me when I eventually get started on the game I really want to make, and not wasting time and effort on things that don't really apply. The tutorial most relevant to what I want to create that I've seen so far is a series of tutorials for making a platforming game. My game won't be a platformer, but I think I'll start there to get a feel for the engine and at least learn about making side-scrolling games. Are there any other tutorials or resources that I should look into, given the type of project I have in mind? I especially feel like building everything from hand-drawn art might be a tough challenge. I really want that as a feature (partially because I'm just more familiar and comfortable with creating art "by hand"), but am not absolutely married to it.
If you have read to this point, thank you very much for your time. I'm excited to learn more about Godot and become a part of the community!