I've been doing this for a month and am still not 100% sure what I want to happen to it, but I figure anything is better than nothing.
To make a long story short, I cloned and played around with Pokémon Unity back in September. I don't like Unity, at all, but it got me thinking (again) about what nonstandard Pokémon fan games might look like.
Lots and lots of fantastic games have come out of Pokémon Essentials [citation needed], but developing in fourteen-year-old software has its issues and Ruby is kind of aterrible divisive language. With that in mind, I decided to do a sixth or seventh attempt at a turn-based battle system (Pokémon or otherwise), and to my great surprise it actually worked this time.
I've only been working on this for a month so it currently only works for the parameters provided, so almost any other monsters, moves, abilities and items will be ignored or outright break. There's a bunch more stuff I have planned, though, see below, and I intend it to be open source so you can add to it if there's something you want it to do while I'm busy doing something else, or more probably, playing Skyrim.
It's a tool.
Implemented:
Planned, probably in order of priority:
Currently not interested, but can be persuaded:
Will not, and do not ask:
The last three lists are subject to change, depending on how development goes and how much free time I have. Obviously I'm going to keep working on this barring nuclear armageddon for as long as I can get away with it, and will hopefully remember to update this as time goes on. Check the github (below) for what is probably more up-to-date information.
I only have five and Deo prefers six, but I'll add more as I go. Images are gifs, if they don't play right-click and say "view image:"
The Github can be found here. I was originally going to fork this off into something else when the demo is done, probably with a different name, but now I'm thinking it'll be easier to just leave it where it is.
If you're not familiar with Github, the current release can be found here (0.0.0.1).
I came up with these mostly on my own, so if any of them strike you as odd, that's probably why. There might have been other things I wanted to achieve at one point or another, but pretty much everything that I ended up with can be explained by these.
Use this if:
In a nutshell, I'm (a) looking for an excuse to use Game Maker to make Pokémon again and (b) trying to make it easier to do things that would probably be a lot of work in Essentials.
Don't use this if:
I figure someone is going to ask most of these eventually.
All of that doesn't matter really though, because I'm by far most familiar with how Game Maker works (and how it doesn't, and how to get around the limitations) and can write code for it faster than pretty much anything else. (10k lines in 30 days, during which I also went to school and spent almost 60 hours playing Skyrim.)
If your game is 100% trademark free - monster names, monster sprites, UI sprites, audio, and preferably using different type, move, ability and item names, and some modification to the battle loop, although none of that is trademarked, and to be safe you probably want to remove all pieces of code that include the text poke even if it's not visible in the final product - I don't really have any ethical objections to anyone using this to make money. With that being said, I don't see this project being a state where that's a reasonable goal for a very long time.
Either way, credit me, or I'll be pretty pissed.
That's that. It's now 2 AM so I'm either going to go to sleep or get started on the ol' to-do list.
What it is
To make a long story short, I cloned and played around with Pokémon Unity back in September. I don't like Unity, at all, but it got me thinking (again) about what nonstandard Pokémon fan games might look like.
Lots and lots of fantastic games have come out of Pokémon Essentials [citation needed], but developing in fourteen-year-old software has its issues and Ruby is kind of a
I've only been working on this for a month so it currently only works for the parameters provided, so almost any other monsters, moves, abilities and items will be ignored or outright break. There's a bunch more stuff I have planned, though, see below, and I intend it to be open source so you can add to it if there's something you want it to do while I'm busy doing something else, or more probably, playing Skyrim.
Plot
It's a tool.
Features
Implemented:
- A Pokémon-ish turn-based battle system that's reasonably easy to extend
- The ability to localize text strings for languages other than English
- Nine-slice text boxes
Planned, probably in order of priority:
- The ability to play the game at different resolutions (within reason)
- Forward-compatibility with Game Maker Studio 2, since that's going to be the version that most people are likely to use in the future
- 3D overworld navigation, as well as an external editor, because Game Maker Studio 1's map editor is terrible and nobody wants to hard-code map details
- Event scripting (in Game Maker): writing world interactions inside the Game Maker IDE
- Make sure multi (at least double) battles work, and possibly tag battles
- Initiating battles from the overworld: wild random, wild stationary, trainer and otherwise, as well as cleaning up and returning to the overworld when the battle has concluded or been forfeited
- Mid-battle flavor text, and the ability to interrupt the battle at a certain stage to progress or branch: you know how a lot of important Trainers in Pokémon will jump in to say something on certain events in battle, such as being down to their last Pokémon, or how other games might only require you to bring a boss down into the yellow without needing to defeat them in order to advance the story?
- A Pause menu, and all of the things that you would expect to be able to do inside of it such as managing your team and applying Repels and admiring your Badge collection
- Rebindable controls, for both keyboard/mouse and (common) gamepads
- I still hate the idea of HM items but the world is clearly trending in that direction and they won't be difficult to make
- A compiled game data format, because human-readable PBS files are slow for the computer to parse and obfuscated binary buffers are fast
- Saving and loading, in a manner that can be extended without causing everything to fail catastrophically
- Audio zones, as you'd find in a Bethesda game, so that you can bind an indefinite number of songs to different situations in an area (day, evening, night, plot) and have them play randomly
- Event scripting (externally): I'm going to try to bind Lua, but if that ends up breaking the cross-platform constraint, over the summer I made a proto-language that I should be able to plug in
- A quest/faction system, because I like that kind of thing even if most Pokémon games don't demand it
- A dedicated title screen and a dedicated credits screen: a single image splash as Essentials does and/or something more interactive
- Event scripting (visual): for those who would rather design than code and like the way you can click on an event type in RPG Maker, input the relevant properties and be done with it, or for those who would rather do both
- 3D camera trickery, to whatever degree is necessary? Think about the events that transpire atop the Dragonspiral Tower or in the depths of the Whirl Islands
- Side mechanics such as breeding and farming berries or berry-like entities
- Some kind of move/effect animation editor, because keyframing stuff through code is the actual worst thing ever, which is why I did so little of it for the demo
- 2D overworld navigation, as well as an external editor, because Game Maker Studio 1's map editor is terrible and nobody wants to hard-code map details
- Some kind of Mystery Gift thing
- Something vaguely resembling the Pokéwalker
Currently not interested, but can be persuaded:
- Bug Catching Contest and Safari Zone(s)
- I'll probably do at least one of the PokéNav/gear/tch/C-Gear eventually but I don't really care which, although the tch is the most modular and thus makes my nerd senses go off
- Riding Pokémon would be cool but my animation skills are not nearly strong enough to do this convincingly
- I think Contests are stupid but if enough people want them I'll work on them
- Secret bases, Join Avenue, Battle Frontier, Ruins of Alph, Sinnoh Underground, other minor minigames
- In-line colored (and otherwise formatted) text: I think this kind of thing is distracting to look at but a lot of people don't
Will not, and do not ask:
- Distributable PBS files, and other TCPI assets beyond what I've already made available. The odds that Nintendo are going to take an interest in what I'm doing are low, and I intend to keep it that way.
- Online connectivity. I've hopefully designed the player/AI pawns in a way that you don't have to rip everything apart if you want to do this yourself, but I have never used Game Maker's netcode and have no interest in starting.
- A speed-up button. If your game requires a speed-up button, either you've screwed something up design-wise or humanity is beyond saving.
- A less ugly UI. I'm a programmer, not a designer. I took a class on Interface Design and slept through it. If someone wants to do this for me that'd be fantastic, but for now I'm just giving you pieces and skeleton code that will probably help you make your own.
The last three lists are subject to change, depending on how development goes and how much free time I have. Obviously I'm going to keep working on this barring nuclear armageddon for as long as I can get away with it, and will hopefully remember to update this as time goes on. Check the github (below) for what is probably more up-to-date information.
Screenshots
I only have five and Deo prefers six, but I'll add more as I go. Images are gifs, if they don't play right-click and say "view image:"
Battle opening (the final version is slightly more snappy):
Sample status effect:
Turn switching
Sample abilities:
The AI fighting itself:





A basic overworld composed of the ground and planes sticking up out of the ground, as the DS games are

This is my favorite part, honestly.
Slapping down entities
Editor => Game
Slapping down entities
Editor => Game
Credits
- I
stolere-interpreted a lot of AI code from Pokémon Essentials. (It's still pretty incomplete, though.) Whoever wrote that was a big help. - PBS files also came from Pokémon Essentials, because nobody in their right mind would reacquire all that data on their own.
- Battler sprites, (most) other minor graphics and the small collection of sound effects came from, you guessed it, Pokémon Essentials. Where would I be without these guys. Making something else, probably.
- The few graphics that are unaccounted for came from spriters-resource or are programmer art.
- I'm pretty sure everything that doesn't fall into the first three categories was written by me, so all of the code except the ~1000 lines in the "standard ai" folder.
Download/Distributable
The Github can be found here. I was originally going to fork this off into something else when the demo is done, probably with a different name, but now I'm thinking it'll be easier to just leave it where it is.
If you're not familiar with Github, the current release can be found here (0.0.0.1).
Design constraints
I came up with these mostly on my own, so if any of them strike you as odd, that's probably why. There might have been other things I wanted to achieve at one point or another, but pretty much everything that I ended up with can be explained by these.
- You should be able to make more than just Pokémon games with this
- It should be reasonably easy for someone familiar with Pokémon Essentials to pick this up and learn how to use it, even if they've never used Game Maker before
- There should not be a hard limit on how many participants you can have in a battle
- This should be cross-platform (by default; unless the author doesn't want it to be)
- Hard-code as little as possible
- Open-source is nice
Who should be interested
Use this if:
- You like Game Maker/Game Maker Language
- You don't like RPG Maker/Ruby
- You are interested in the nuts and bolts of how a game engine/turn-based battle system works
- You grow weary of being confined to a 512x384 window in 2018
- You are intrigued by the concept of system/total overhauls that would be difficult in Essentials, such as complex questlines and factions
- You want to be able to adapt this to be another type of turn-based battle system, other than Pokémon
- You are excited by the prospect of 3D (or hybrid 3D), as in the DS generations
- You have need for a fully-featured debugger
- You're tired of having to jump through hoops to make games work on Mac/Linux
In a nutshell, I'm (a) looking for an excuse to use Game Maker to make Pokémon again and (b) trying to make it easier to do things that would probably be a lot of work in Essentials.
Who shouldn't be interested
Don't use this if:
- You don't like Game Maker/Game Maker Language
- You like RPG Maker/Ruby/object oriented programming
- You want/need something that's fully-featured out of the box
- You prefer the GB* aesthetic
- You're more of a designer than an engineer
- You don't have a need for the bells and whistles that have caught my attention
- You prefer that your code is properly documented/commented
Questions and stuff
I figure someone is going to ask most of these eventually.
- Why?
- What's with the name?
- Why Game Maker?
All of that doesn't matter really though, because I'm by far most familiar with how Game Maker works (and how it doesn't, and how to get around the limitations) and can write code for it faster than pretty much anything else. (10k lines in 30 days, during which I also went to school and spent almost 60 hours playing Skyrim.)
- You didn't include PBS files in the download!
- Can the AI battle itself?
- You mentioned localization? How?
- Can I make money from this?
If your game is 100% trademark free - monster names, monster sprites, UI sprites, audio, and preferably using different type, move, ability and item names, and some modification to the battle loop, although none of that is trademarked, and to be safe you probably want to remove all pieces of code that include the text poke even if it's not visible in the final product - I don't really have any ethical objections to anyone using this to make money. With that being said, I don't see this project being a state where that's a reasonable goal for a very long time.
Either way, credit me, or I'll be pretty pissed.
That's that. It's now 2 AM so I'm either going to go to sleep or get started on the ol' to-do list.
Last edited: