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.

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:
- Clean up the data, movement and old bugs.
- Add NPC battles.
- Add multiplayer.
- Multiplayer needs chat.
- Chat needs PVP.
- 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.