I started this project when Pokemon Go had just come out, and was interested in returning to the older style Pokemon games, but backporting the new geolocation ideas and easy mobile internet connectivity for trades and battles.

In this demo, I’ve reused assets and mimicked the Pokemon Red UI (perhaps too faithfully), with some differences. Talk to the NPCs in the building, then head out to battle the trainers right outside. You can even try catching a wild monster with a “Roc Gem” from your bag, jump ledges, use healing items, and cross into other parts of the stitched overworld. Enjoy! 😃

Controls:

  • WASD keys to move
  • Shift to run
  • Space to interact, accept
  • Enter to open the menu
  • Esc to cancel, go back

The most challenging part of this project was developing a scalable scripting and events system for entities like NPCs, doors/portals, and battles. I decided not to implement a second layer programming language – like some do with Lua/Ruby in a C++ engine – since C# isn’t as verbose and unsafe as C++ to begin with. Instead, I had Objects in my Tiled maps specify custom properties like "class": "Rocket1" and analogous C# classes which subclass and compose more base classes like NPCTrainer and Portal.