Hey everyone, this was a question that occurred to me as I was flubbing around with Unity's GUI scripting for my own game: What engine do you typically use(I'm guessing the common answer will be Pokemon Essentials) and why? When working with your engine of choice, have there been times that you have had to reconsider design choices to fit it?(throwing away features which don't work with what you have, designing areas to showcase a certain feature of the engine, etc. )
I wrote my own engine for Evoas in ActionScript 3. I chose AS3 just because that was the language I was most proficient at. I wanted to make a truly different fan game, with a new battle system, so I decided to make the engine from scratch. It was quite challenging, to say the least...
The battle system features 2 on 2 battles, similar to Pokemon Colosseum. Wanting to maximize this feature, the moves pokemon can learn were completely redone, with a lot more emphasis on cooperation. For instance, there are many more moves that heal or assist the allied pokemon in some way.
One feature I wanted to add but couldn't was an "action command" similar to the Paper Mario games, where pressing a button at the right moment would result in an attack doing extra damage or defending. This would be how critical hits and dodges would be integrated, but the system was getting too complicated.
I had to make the overworld myself too, but this is a lot more standard. The most notable difference is movement isn't restricted to a grid, and diagonal movement is possible. There was no real reason for this, I just wanted to try it out. I used the popular Box2D physics library to handle collisions.
Essentials because it had (almost) all pokémon systems and I like RPG Maker because I used a lot in the past. Without the pokémon systems I will lose several months and ever years coding the battle system.
Every time that I think about a feature, I also think about if the feature deserves the time that I need for implementing with my skills, so since I rarely think about features that require big changes and rarely have problems with the engine limitations.
I built my own engine in Game Maker. I have found that building my own thing from scratch from a very basic and flexible framework allows me to have a ton more control over my project, as well as understand every facet much better. Of course, this approach isn't great for everyone, so yeah.
I think the only time I had to change a design choice for my game was when I had to dismiss JAWS compatibility because GM natively isn't compatible with JAWS. NVDA still works though...
Corvus of the Black Night
Also Known As: the rage inducer in young children who don't know how to handle themselves on the internet
I use RPG Maker XP with Essentials, simply because my area of expertise is graphical work, not programming and Essentials provide an amazing base engine to work off of.
I'd really like to use my own engine for more control, but honestly, it isn't worth the time to learn programming and code my own engine when Essentials exists.
Me being me, I prefer having a custom engine that I've written, even if it uses features from other frameworks. As for implementing new features, I normally think it through - Does it fit with everything else, and if so, how big an impact is it going to have - performance, storage and response wise.
What steps should I take to learning this awesome artform known as game creating?
(I mainly want to work on the graphics, and getting it to look amazing) Most likely using Gen IV style overworlds, and a GEN V graphic battle system, with GEN VI like battle mechanics.
If your main concern is making your game look nice, I'd probably recommend Pokemon Essentials so that you don't have to work on unique functionality, especially if you have no intention of changing the battle system significantly.
I'm in the "build your own" camp. I started with FlashDevelop, the Flixel library, and a simple tutorial from kcnhgames.com on coding basic RPG structures. My experience thus far is quite similar to what Daigonite said. The only major limiting factors as to what can be in my game are my imagination and my understanding of the code I've written.
As I built my engine's skeleton from the tutorial, step by step, I saw how the parts fit together, and refreshed my memory of object-oriented programming. The really deep understanding of coding came from figuring out how to fix the bugs that seemed to come from nowhere. It's taken weeks to solve some of these, but I wouldn't understand what I was doing so well if not for that process.
It's not the path for everyone, though. If you don't want or need to understand how to write code, you're better off using someone else's engine.
For my pokemon fangame I use the essentials engine It totally fits with what I need and with a bit of coding you can add or modify whatever you want , having this open project makes nosense building your own engine for a pokemon fangame, It would be like reinventing the wheel.
But for original projects I actually prefer to build my own engine starting from zero because It gives you a lot more of flexibility and even if It takes long to build It gives a lot more of freedom and any change you want to make is very easy because you know how everything works.