As usual, not content to limit myself to one (or two, or three) hobby projects, I've started work on an MMORPG you can play in your browser. What makes this one interesting is two things: 1) Total Character Freedom - You never have to limit your character to "Paladin" skills, or "Rogue" training, or magic. Whatever experience you gain, whatever attributes you use most, will mold your character accordingly. As those attributes go up, you can find people to train you new skills in those areas. So you could be a Necromancing Warrior Assassin Bard if you wanted. 2) Faction Conquest - As you perform tasks and go on missions, you effect the influence your race has on the region. Each region can shift fealty to one of two factions: The Faelor or The Auran. Missions change depending on whom controls the region. If the entire island falls under one side's rule, new missions are unlocked for that faction!
When you start, you choose your faction: The Auran - Value might and metal (think Conan the Barbarian's world) The Faelor - Value balance and nature (think Druids)
No levelling! No XP! The stats you use go up as you use them. Trainers will teach you skills appropriate to your stats. Eg. Shabadu will likely play a rogue-like character, so will spend a lot of time building his agility. At some point he finds a cutpurse willing to train him the stealth skill. He still can't fight worth a damn, but he'll be hard to spot. Conversely, Hawkeye will probably attack anything that moves. His strength will go up significantly, but until he works his agility, he won't be able to learn to sneak.
The Stats Each character starts with 1 point in each of these areas: Observation - finding items, spying, spotting social cues Strength - inflicting damage, resisting toxins, health Intelligence - healing, skills you can remember, spells Agility - sneaking, spying, dodging, speed, avoiding traps Charm - dealing, currying favour, blending in
It's not all hack and slash Although there will be plenty of things and people in need of killing, you don't necessarily have to be the one to do it. Aside from teaming up with other people playing at the same time as you, effort will be made to make the game move forward even if you don't harm a fly. It will probably be harder, but hopefully there'll be enough incentive to keep the game from being a mass of barbarians running around.
The clincher You get to make the maps and missions! No, not all of them. I'll make a few, so there's something to start with. But the game will be designed so that it can grow. Over time, this island should get pretty huge. I will include instructions on map making once I settle on a format. I tried going with just a simple text editor (eg, notepad) but it took too long to get the map made, and the missions would get too hairy to follow. So I'm trying some other things. Here's my latest attempt at making a map for the Faelor landing. (Each faction lands immigrants on the island, trying to take it over.. that's how your character arrives).
Comments or Suggestions are totally welcome, especially since this project is still in the design phase.
Shabadu and I were talking at lunch today about this game. Specifically, we were discussing combat, and how it would work.
One of the key requirements I gave myself is to keep gameplay simple. You want to interact with anything? Just run into it, and the default action will occur. It's a door? You open it. It's a locked door? You try to unlock it. It's a friendly npc? You talk to it. And if it's an enemy npc, you attack it.
But what if Shabadu and I are both playing and run into the same monster? How does that work? How does combat work even for just one on one?
The latter question is the easier one. Remember the old BBS game The Pit? I think when you engage an enemy a "combat window" opens and you face each other in this window. Able to run around shooting, zapping, punching, whatever.
So how about when another player comes along and wants to join in the fight? Simple! They appear in the combat window as well!
I think the combat window might be the first thing I work on for the actual game.
I've built the foundation of the server for the game editor, and have started on the editor itself. Maps can be drawn at any size, but are made up of tiles 48x48 pixels. You can upload your own tiles, which are organized into categories. (Screenshot shows this function).
Each map comprises of 3 layers:
The Surface Layer, which is what everyone walks on
The Interactive Layer, which is all the stuff you can encounter
The Upper Layer, which floats above everything else
Once I iron out a few bugs, I'll make the editor available so people can start designing their maps.
1) I've fixed a DB issue in the back end, so Tiles now save and load correctly. 2) I've fixed a tree rendering issue for the categories, so the tree renders properly.
Now that tile categories and tiles are working as expected, the next step is actual map editing!
RPG Editor v0.1 is live. Here's what you can do so far: - add tile categories - add tiles to categories - load tiles from categories - create new maps - load existing maps - edit all 3 layers of maps - save maps - view all or single map layers while you work. (Be aware, you CAN be viewing a layer different from what you're editing, so wouldn't see any changes!)
Next things to add to rpgeditor: - "Erase" Tile. I'll probably put that in the Root category. - Prevent user from editing one layer while looking exclusively at a different layer - Edit Tile ability, even if it's just uploading a modified picture. Some of these tiles already would look better with transparent backgrounds - a "Cursor", so you can tell where the tile would get placed if you clicked.
RPG Editor update: - added _ERASER_ tile. It appears in every category as a Pink Pearl eraser. Use to it remove a tile from the current layer - When viewing a specific layer, you will be editing that layer. Switching back to viewing all layers leaves you editing the last layer you were viewing.
That should be enough to get started. I look forward to seeing what people come up with. There's already been some surprising tiles added.
RPG Editor update: - Fixed "Open" bug, where only the first map in the list was being shown. - Added "Move" option for tiles, so they can be moved between categories - Added special Trash category. Yes, Tiles can't be deleted, but you can throw them in trash. Tiles in the trash category can not be used to draw on maps.
RPG Editor update: - Added Export function, to save an image of your map on your computer - Added Update Tile function. Allows you to edit the name and image of the currently selected Tile. You can save a copy of the tile to your computer and edit it using your favourite image editing software, then upload the edited result back to the server using the same dialog.
Another RPG Editor update: - Added Flood Fill capability. Now you can paint (or repaint, or even erase) large areas with a single click. - Added mode buttons for switching between Draw, Fill, and Select
Select Mode will be for selecting the properties of interactive objects. It is currently just a place holder for later.
I've updated how the RPG Editor saves and loads maps, and thus how they get transmitted between server and client. This has drastically reduced the amount of time spent waiting for a map to load.
No data was lost, but make sure you clear your browser cache so you know you're running the latest editor.
One final update to the RPG Editor for a while. No need to worry about browser caching, I've got it covered.
- Added progress bar to map loads - Added "cursor" such that if you have a tile selected, it will appear semi-transparently on the map square your mouse is currently pointing at. This helps tremendously with editing.
Now I'm going to start working on the gaming side of this RPG. My next goal is to let you log in, create a character, and walk around some of these maps.
I've started working on the actual game side of things now. Using the Union Platform for server communication, in conjunction with the existing Web Services I wrote for the editor, I have been able to log a user in and load a map.
The wiring is in place for multi-user communication, but I got a bit stalled on the graphics. I was going to use FlashPunk but it got really difficult to get the graphics in a format that library wanted (which is ironic because it's already in the format FlashPunk derives for its own use!)
So instead I've started building my own graphics engine. Here's a screenshot so far.