diff --git a/Steps-1.md b/Steps-1.md new file mode 100644 index 0000000..2d0fe97 --- /dev/null +++ b/Steps-1.md @@ -0,0 +1,36 @@ +While the sources provide valuable information about the game's original engine, design, and mechanics, **please note that the specific technical steps for modern web development, reverse engineering, and the AI coding prompts provided below are information from outside of your sources**, and you may want to independently verify those technical details. + +Here is a step-by-step approach to getting this project started, utilizing the information we have about the game's architecture and your chosen tech stack (Ubuntu, Apache, MySQL, PHP). + +### **Step 1: Extracting the Original Assets** +The sources confirm that *The Realm Online* was built using the **Sierra Creative Interpreter (SCI) engine, specifically version SCI2.1**. All of the original hand-drawn, cel-animated artwork and audio files are packed into this proprietary format. + +* **What to do:** You will need to find an SCI resource viewer/extractor. While the exact software name isn't in the sources, the sources do mention that the **"SCI Wiki" contains sections for "SCI Tools" and "SCI Documentation"**. You can search the internet for "SCI2.1 resource extractor" (such as *SCI Companion*) to unpack the `.wav` files and graphics into standard formats like `.png`. + +### **Step 2: Database Initialization (MySQL)** +Based on our previous conversation, your first coding milestone is creating the database for users and characters. The sources note that players must choose a gender, a race (**elf, giant, or human**), and a class (**warrior, adventurer, wizard, or thief**). Characters also have highly customizable physical attributes (hair, skin color, body size) and "build points" for skills. + +* **Prompt to give your AI:** + > *"I am building the backend for a retro 2D MMORPG using MySQL. Please write the SQL queries to create two relational tables: `users` and `characters`. The `users` table needs fields for id, username, password hash, and an access level (Player, Mod, Designer, Developer, Admin). The `characters` table must link to the user ID (max 4 characters per user). The characters need columns for Name, Gender, Race (Enum: Elf, Giant, Human), Class (Enum: Warrior, Adventurer, Wizard, Thief), Level, Experience, Build Points, and JSON columns to store customizable visual features (hairstyle, skin color, body size)."* + +### **Step 3: Building the Backend API (PHP)** +Once the database exists, you need your server to communicate with the frontend browser. You will need PHP scripts to handle login authentication and character retrieval. + +* **Prompt to give your AI:** + > *"Using PHP (PDO) for an Apache server, write a secure login API endpoint. It should take a POST request with a username and password, verify it against my MySQL `users` table, and start a secure session. If the login is successful, it should query the `characters` table and return a JSON array containing the stats of up to 4 characters owned by that user."* + +### **Step 4: Creating the Frontend Prototype (Browser/HTML5)** +The core gameplay of *The Realm Online* takes place in **discrete rooms organized into dungeons, forests, and towns**. You will want to build a basic HTML5 Canvas interface that can draw an extracted room background and render a character sprite on top of it. + +* **Prompt to give your AI:** + > *"I am creating a browser-based 2D game using HTML5 Canvas and JavaScript. Write a script that initializes a canvas that fills the browser window. Create a 'Room' class that loads and draws a static background image. Then, create a 'Player' class that loads a character sprite image, places it in the center of the room, and allows the user to move the sprite around the screen using mouse clicks (point-and-click movement)."* + +### **Step 5: Implementing Instances & Tools** +As we discussed earlier, you want to build in-game editor tools for your 'Designer' and 'Developer' roles. Additionally, the sources note that *The Realm* was **the first virtual world to use instances, moving every battle into a special room outside the open world**. + +* **Prompt to give your AI:** + > *"In my PHP/JavaScript browser game, I have an access level system. Write a JavaScript function that checks if the logged-in user has the 'Designer' or 'Developer' role. If they do, render an HTML overlay menu containing buttons to 'Edit Room', 'Place Mob', and 'Save to Database'. Also, explain how I can architect my backend so that when a player collides with a monster sprite, they are disconnected from the public room state and moved into a private 1-on-1 'instanced' battle state."* + +By taking this one module at a time—starting with extraction, then the database, then basic rendering—you can use AI to incrementally build out the complex systems that made *The Realm Online* work. + +