pokejs #1: Introducing pokejs!

This is a project I’ve been thinking about for a while.  Come check it out.

Here’s the long and short of it (you can also read this in the project’s README on GitHub):

Goal:

The goal for this project is to create a lightweight, browser version of the 1996 Nintendo game Pokemon. The game will be initially created in the style of the original Pokemon Red and Blue, but made highly modular to support multiple versions of the game engine, graphics and UI, rules, and Pokemon set.

Purpose:

The purpose for this project is not to replace Pokemon or get people playing the game in browser instead of on the 3DS, but rather to investigate the behind-the-scenes mechanics that make the game so great and timeless, and eventually carry the lessons learned over into a new game.

Architecture:

The program itself will be VERY modular.  I want everything to be able to be easily switched out, from battle logic to monster code and from movesets to tilesets.

The repo itself is currently divided into three branches: the master (of course), which will be reserved for finalized code; the “overworld-engine” branch, and the “battle-engine” branch.  We’ll work on each part separately and merge them in later.  Eventually, we’ll see branches spring up for all of the project’s features.

Roadmap:

  • Build complete battle engine
  • Build battle engine UI and sprites
  • Build “overworld” engine
  • Build “overworld” UI and sprites
  • Add all Generation 1 Pokemon
  • Tweak battle engine to match the modern version’s more expansive ruleset
  • Add Pokemon from generations 2-7
  • Build the complete Gen 1 Kanto region
  • OAuth login for game saves
  • “New Game” options, including Support for an “enforced” Nuzlocke run (including variant rules)
  • Mobile interface
  • Build various visual interfaces that mimic generations 2-7

Testing Assets:

We’ll begin testing the battle engine with only three Pokemon evolution lines (the Bulbasaur, Charmander and Squirtle lines, of course). This will limit the number of Pokemon and moves to a manageable size while giving a good, representative amount of diversity to the testing.

The overworld will begin testing with only Pallet Town, the brief path of tall grass to the north, and the short stretch of ocean to the south; but we will make the NPCs in the town battleable to test the integration between the overworld engine and the battle engine.

A note about the é:

Yes, the word should actually be spelled with an accent (Pokémon), which means that the name of this project should be “pokéjs” and the code should include accents wherever the monster or game is mentioned. While the game’s title screen, UI, and dialogue will all use the correct form, I’m an English-speaking American developer, which means that the code itself will be limited to characters that actually appear on my keyboard. A keyboard that doesn’t include é, unfortunately.