Fan Games

The Pros and Cons of ROM Hacking vs. Game Development

Want to create your own Pokémon game? In this article we’ll be learning about the two primary frameworks for making fangames, and which is best for your purposes.

Game Development

The main advantage is flexibility. ROM hacks have hardware limits due to being emulated (obviously game dev does too, but they’re much greater and nearly a non-issue). And some things like communicating with Windows (touch input for RSE games, additional windows, etc) are incredibly difficult to accomplish with an emulator. Speed of programming would be another. Granted, I haven’t really done much with ROMs, but I would imagine something that would take me just a couple hours to implement in Essentials would take much longer.

– mej71


  • Higher level programming language. Pokémon Essentials uses RGSS, a version of the Ruby programming language intended for game development. While higher level languages are not a straight upgrade to the lower level languages used in ROM Hacks because of trade-offs such as execution speed, RGSS has a vastly lower barrier to entry and makes it much easier to create complicated new features and interfaces from scratch.
  • Easy to install community features and plugins. PokéCommunity’s Scripts and Tutorials subforum features many ready-made additions to Pokémon Essentials. Most of these are plug and play, meaning that the user need only copy and paste them into new scripts sections in RPG Maker and they will work immediately. Some of the most advanced plugins even come with their own installers, which will let the user configure various options and then add themselves to the game automatically.
  • No palette restrictions. Use whatever colors you want, anywhere, at any time. You don’t need to make thirteen different palettes for your tileset either.
  • Vastly better tools. RPG Maker XP’s editor, though not perfect, is a lot better than the competition. It comes with a built in script editor window, built-in support for three layer mapping (which AdvanceMap sadly lacks), and proper keybinds and shortcuts.

In game dev, you have no hardware limitations such as how big your game can be. You don’t have any color palette limitations either. You need a billion tools for different things in the ROM hacking scene, whereas in game dev you just need RPG Maker XP to do your maps and scripts. Pokémon Essentials, the base kit 99% of all of game devs use, is very complete. Just about everything from all generations exists in one way or another, as a thing inside the kit itself or as a public resource. Programming is very easy compared to ROM hacking. It uses RGSS (Ruby Game Scripting System), which is the “Ruby” language (version 1.8) with a library for displaying graphics/sprites. The syntax is very simple and can be learned in no-time.



  • Inferior performance. Pokémon Essentials is locked at 40 frames per second, which to many PC gamers is annoyingly low compared to the 60 that is considered standard in the industry. Part of this is due to inefficient programming inside Essentials, but much of it is simply caused by RGSS itself being quite laggy. Improving this is one of the main goals of the various new game development engines mentioned in the introduction.
  • Not playable on many devices. Don’t have a Windows computer? No playing or developing Essentials fangames for you. It is possible to use workarounds like Wine, but especially because of the increasing popularity of playing ROMs on mobile emulators, this is an area in which Essentials is very much lacking.
  • Dependent on Win32API for features. Ruby, the parent language of RGSS, introduces the concept of gems, which are small packets of Ruby or C code that can be imported and used in Ruby programs. Many gems add useful features, such as calculating the difference between two dates. RPG Maker XP, despite using Ruby as its programming language, lacks support for gems, and thus misses out on many useful features, some of which it has to rely on the Windows API for imperfect replacements.


Consider your priorities when planning a project, the options are not black and white. If you’d prefer an authentic-feeling Third Generation experience, a large development community, or a greater chance of making a popular game that’s playable on lots of platforms, you’d probably choose ROM Hacking. If you want to implement a bunch of your own features and interfaces, improve the graphics far beyond the level of typical hacks, or have access to a large resource of easy to install plugins, game dev is probably the best choice for you.

Once you’ve made up your mind, PokéCommunity has some fantastic resources for beginning a project of either type – good luck!