Wilminator.com Logo

Dragon Star PHP RPG Engine

I had originally called it the PHP RPG because it was my first attempt writing an RPG in PHP. Recently, though, I learned that there is already another PHP based RPG engine at PHPRPG.org. However, since I feel that I am no longer calling this a tech demo, it needed a name. The name Dragon Star is to give credit (and props) to Dragon Warrior and Phantasy Star, from where I got all the initial artwork. While I'm at it, a big thanks to Tyln Sylverwind for daring me to make this project. This is all your fault, man! :P

This here is the ground work for this project:

  • For the combat sequence, the web browser would perform two simple jobs: combat playback and player input. The page would be hard-coded with JavaScript and playback the combat sequence in classic Dragon Warrior fashion. After playing the combat sequence, the player would then direct the heroes for their next turn. When finished, the player would click a button that would submit the heroes new actions to the server and the process would repeat until one side lost.
  • For the world map, JavaScript would be used to move around the world. Upon an event occuring, the browser would send back a response to the server, and the server would cause something to happen, IE random encounter, opening a treasure chest, etc.
  • Since it ran over the web, I was hoping to make this a multiplayer RPG, where players could band together to form parties. This, however created a few problems and issues:
    • Combat would have to be synchronized between many players. Not really difficult to do, but I would have to redesign the combat page layout to accommodate multi player and multi-party combat. Players would have a set time limit to submit their responses or the server would continue without their input (and have the AI play their characters for them.) If you made your decision and were waiting for others, your page would simply refresh every couple seconds.
    • The world map (and other maps in general) would be very difficult to implement. Since pages usually have to refresh in order to send and receive data, I decided to create a hidden iframe that would constantly refresh. It would collect the user input and receive the server output. The world client would then act on the server output received from the iframe. This idea lead to my fake chat demo.

I will eventually split this into three projects: a single player version, a multiplayer combat 'only' version and a massively multiplayer version.

Current Versions

Engine Core

Single Player RPG - Waiting for completion of engine

Multiplayer Combat - On standby

MMORPG - On standby