Coding text-based MMORPG games in PHP and MySQL

I’m out of the professional coding world for ten years, but it hasn’t stopped me from creating a BBS-style online text adventure game in the spirit of TradeWars 2002 and Legend of the Red Dragon using PHP and MySQL.

I remember well the specs of my first brand-new PC in the fall of 1993 that cost me $3,000: an Intel 486DX processor with 8MB RAM, 340MB hard-drive, and a USRobotics 14.4K modem. With that PC came the joy of exploring local dial-up BBS systems, namely the Trenton NJ area It’s All Rock ‘N Roll and the online text adventure games the SysOp offered his members.

I lost interest in console gaming in my late teens which I attribute to coinciding with the time I started learning how to code.  I think this took the mystery out of the games for me.  But I never lost the special place in my heart for BBS-style online text adventures.

During this past winter of 2016-17 I felt nostalgic for the bygone era of personal computing.  To kill some time in the evenings I installed a DOS emulator on a second-hand netbook and loaded a copy of the WWIV BBS system to see if I could get it to run.  It did.  While I knew there was no merit to keeping that setup, I turned my attention to creating an online, text-based, space exploration game playable in the browser across laptops, tablets, and phones.  (You know, for old people like me who aren’t into button-mashing games.)

Having no expectation that I would be creating a marketable game product, I selected PHP and MySQL with the intent to experience different technologies and, quite possibly, release the source code as an open-sourced, community-developed project in the future.

I designed the game where players move across space “sectors” using X,Y,Z coordinates.  The game world builds itself as a sector is first explored, which adds randomness and interest yet saves me the headaches of trying to pre-populate sectors with objects that players can explore.

From a technical perspective, the most challenging aspect I encountered  was tweaking CSS and HTML to render and resize across different browsers and devices.  I’m happy that I managed to get the single user interface to work across a laptop, tablet, and smartphone.  I’m disappointed that it is twenty-years later and there are still big differences in the way each major browser renders HTML.

The phpMyAdmin software is a gem!  I had forgotten much of my database administration skills in the past ten years and would be hopelessly stuck if I had to rely on creating database tables in the console window.

I edit my PHP code in Notepad++, a great open-source IDE product whose multi-document tab interface and syntax highlighting makes development much easier for someone learning a new development language.

Based on the little attention I currently give this project, I am probably six to twelve months away from this game being considered “enjoyable.”  What pleases me is that I surprised myself in getting it to actually work as well as it did in my mind.

Click to watch a 30-second screen recording of the game in action.