The same game, twelve years apart

My end-of-high-school project is still online. So I rebuilt it from nothing, with the same rule: no game engine.

PokeWorld in the browser: a pixel-art map with tall grass, the PC storage window, a chat box and a party of two. Same idea, two very different versions of the same person.
Contents
  1. One rule, kept on purpose
  2. How the scope crept
  3. What building it twice taught me

Twelve years ago my final high school project was a Pokémon game in the spirit of the old Pokémon Crater days. It was held together with HTML, CSS, PHP, jQuery and sliding images, and it just about worked. The surprise came later: the school never took it down. It is still on their servers, exactly as I left it at 17.

I have gone back to look at it about once a year, sometimes just to show it off. Eventually that turned into opening the old backup and starting again.

One rule, kept on purpose

No game engine. The first time that was because I did not know any better. This time it was a choice. PHP did go, replaced by Vue 3, mostly because that makes the whole thing free to deploy.

How the scope crept

The first job was porting it across while keeping the original feel, including the bugs that had become features. After that, each feature demanded the next one:

  1. Clean up the data, movement and old bugs.
  2. Add NPC battles.
  3. Add multiplayer.
  4. Multiplayer needs chat.
  5. Chat needs PVP.
  6. PVP needs to feel like the real games, so: a move editor, a better PC and Pokédex, and much better battles.

That is where I stopped, about two weeks in. Maybe I will be back in ten years with another architecture. Maybe next week.

What building it twice taught me

Doing the same project a decade apart shows you which parts of the first attempt really mattered and which were luck. I recommend it as an exercise. The old version is still up, so you can play both and compare.

The new one is live in beta at pokeworld.noga.zip. Come and say hi.

Originally shared on LinkedIn.