Hi, I'm FL, one of the first developers to make a full game using Essentials (Pokémon Island). Several times I'm asked how to make a pokémon game, so I here to give tips and recommend guides/sites/resources about making a game. I will focus on a game made using Essentials.
Keep in mind that making a full game requires a iron will, a good portion of planning and lots of time, around 200 hours for sample ones but I estimate that I spend more than 2500 hours making my game until now. Knowing about pixel art or script isn't necessary (except the basics), but your game will be very better if you know.
Keep in mind that any help to your project is a bonus! Making a team and recruting people probably is the most effective way of making a high quality game, but you should know how to carry on the project if no one shows up or if someone quits from your team. Have a B plan or you unlikely will complete a project. Don't try to master all areas (script, pixel art, level desgin, story, audio). Ideally everyone should specialize in what they are best at. I concluded that the best to go making the game and putting placeholder graphics/system where you can. If you find someone to help you, just replace these placeholders, else try to use other resources or sample things.
A very good guide is How to use Essentials. Attention for the first item! I suggest for only starting using Essentials after learning about 90% of what events commands do. Make a test project and test these commands.
Remember: The more you train before, better your game will be. Experience is very important in several aspects, even in game design! The more games you do, the better you will be.
Planning and taking decision
Planning is VITAL for big projects. It's VERY easier to correct problems or restruture things in this stage than later on. I suggest you to think about, at least, 90% of bosses (AKA Gym Leaders, Team Leaders and rivals) and their characteristics before start making the game, as well other impactful things like 90% of places/locations/main points to define the game main phases.
There are some decisions that you need to take before making the game, otherwise you will have a big rework, decisions like using charsets/tilesets of generation 3 or generation 4/5. Avoid rework because the time that you take to do two times the same thing can be the time you release you game earlier or time you could make extra features. But some rework is inevitable, specially when you are making a graphic and it doesn't look good in the game. Analysis is fundamental.
Making the game "playable"
Some people make the game only for themselves, some try to be popular/high critically praised and some seek a combination of these two. It's out of scope of this guide about which of these is the right/wrong, but I suggest you to make a game for yourself as if you are other person. Think about a player who thinks in a similar way of you. If you like to everyone enjoys your game, keep in mind the general tastes, example: You love insane games, but the majority players don't like games extremely hard, so make the game (at least in the start) not so hard.
Remember that all players, even the non-so-smart ones and the ones with low patience, will play the beginning part, but not all will play to end, so don't make the firsts hours of gameplay too hard or too boring. If the first hours of gameplay aren't too interesting, the majority of players will give up of playing without reaching an ultra-super-cool climax, so is important to make the beginning interesting too.
Also, make sure that these people don't miss important stuff or, worse, became stuck. So, don't make things like "go back to the third city to find the thief" unless you make this very clear to the player, and even make some game character repeat the instructions if player overlook this information. This is a very important thing to keep in mind when you are playtesting your game.
Try to make your game up to date with latest stable Essentials release. I suggest to upgrade 1-3 months after a new Essentials release. Unless the upgrade process take a huge time (like 15 hours or more) or break things that you can't fix (like an Contest script, only available to Essentials v19 for example and very important to your specific game), try to stay up to date. Newer Essentials has a lot of bugfix and nice features and being stuck in a old version may be a nuisance if you plan to maintain your project during years. Follow Essentials Upgrade guide, so every time that you change something in the scripts, remember to put some tag (like '#newscript') so you can easily find all changes with Ctrl+Shift+F.
I suggest you to make the secondary customized things with no much impact in the gameplay (like extra Pokédex/Pokégear screens) and visual things (like redone the pictures) only after the main game is practically done since these changes may make the upgrade progress harder. Other advantage is that the beta testers can play the beta version and give the feedback while you make these things, and if you can't continue making the game there's a full game already done. If you know how to handle with it, the feedback is vital, pointing where you should improve.
Don't reinvent the wheel! Before making resources, search if them already exist! There some very neat stuff on resource sections that you can't even imagine! Sometimes you find resources better made that you could do! The reverse also apply, but, at least you have a base to do yours resources. If I take 1 hour to make a resource I prefer to, at least, search for 1 hour this resource. I suggest you to spend at least some hours looking for resources (including scripts). Try also some other places to find resources, like DeviantArt, just remember to search in the right section and use the right keywords in the search tools.
A very good way to learn how the things works is to look into the official games, SPECIALLY the graphics. But don't forget that the official games have several flaws, specially in the story. There severals gameplays at Youtube and several database in the internet (look specially at the wiki ones) if you need to check some part like the Pokémon Marts item list screen, the trainer party screen or some escalator/doors animations.
There three tools that are indispensable for me:
- Turbo/Fast-forward Button debug: You can test thing A LOT faster with this script.
- RMXP Event Exporter: With this you can do Ctrl+F in ALL your text and event scripts. Helps a lot when you want to change some trainer/item ball/dialog and forgot where the event is.
- Call Event: This is like Call Common Event, but with all events. This helps to avoid duplicate events.
If you didn't code scripts (small edits don't count), skip this section.
You MUST extract the game scripts if you code, it allows the use of a professional editor with A LOT of features, like tabs, more shortcuts and detecting syntax errors without playing your game. Believe me, you will be more efficient with a good editor. Extracting scripts also make the game work better with a versioning system (like Git on GitHub) which is also good to make backups and work in a team.
To extract the script, you can use extract/combine from Essentials open source project, they require ruby to be installed but work very well. Alternative tool: Easy Script Importer/Exporter. If you extracted the scripts, I suggest using Visual Studio Code or Atom to edit the scripts.
Take a look at editor extensions! I gonna put here the links for VS Code versions, but there are Atom versions too. For ruby development, use Solargraph and Rubocop.
Solargraph provides several IDE features like an autocomplete (with class/method/variable names), you can check class/method/variable with a mouseover and ctrl+click to instant go into definition.
Rubocop is focused on linting, it display warnings for unused variables and even point syntax errors without running the game. You can configure it to raise warning for things like too long methods.
Besides ruby extensions, currently my favorite extension is Code Runner, so you can select and executes a code, very good to check how some things work on ruby, or even test more secluded methods.
Making the game
Eventually you will find an obstacle to do something, but eventually you will manage to surpass (or bypass) these issues. Anyway, search before asking a question. I strong suggest you to read the related pages at Essentials Wiki. If you want to make a NPC that only appears at one day per week, look at wiki pages related to time. If you want to make an island appears in the Town Map after a certain event, look at the pages related with region map! Remember, knowledge is power! If even after you spend a good time searching you didn't found an answer, so it's ok for asking.
With the Essentials kit you can do everything essentials for a standard pokémon game. Some non-essentials things like the Player Room or Secret Bases requires eventing/scripting or third party scripts. Keep in mind that is very hard to someone make a complex feature for you, so enjoy the tutorials/scripts already released in the internet.
Keep track that you are doing! A certain level of organization is very important in any complex thing! A good example are the trainers in the areas. If you sort and comment in trainers.txt every trainer area, is much easier to find and edit trainers after.
Frequently test the game or some changes may result in a great rework for you. Example: If you make the trainers for the entire game and, after this, you start testing and conclude that the game is too hard, so you need to rebalance all the trainers. Sometimes you only need to increase a few levels, sometimes you need to redo some parties. Fortunately the pokémon games have a relatively balanced system, including pokémon levels, exp gain, money and item cost, so this part is very easier than a standard RPG game. This tip applies not only to trainers but also maps and theirs items, so avoid big/complex maps and strong items in the beginning. Pay attention in some details and compare with official games, like the levels of your pokémon at latest boss and when some items are avaliable in the marts.
Backups are INDISPENSABLES. So do a backup schredule.
The time is a very important resource! Very few people can make the same game for more that five years without becaming tired of it. Not to mention raising a chance of someone from your team will have a problem that may ruins the game/team. If you can do everything as twice as fast that other people, you can reduce a game that requires 8 years to 4, considerably raising the chance of finish a game! Beware of drop of quality! Some mistakes can make you waste more time on rework! Haste makes waste.
For my experience, I suggest you to spend some hours making your game every week. If you stop doing this, the chance of you give up greatly increase. Keep the rhythm!
If you are going to do a very simple game and keep around 10 hours per week making the game (without counting the time advertising it and things related), the game will be ready in a few months.
If you want a lot of people to play your game, remember than advertising a game is even more important than making a good game.
FL (not required)