10/13/2010

Player Map Making in the Browser

After spending some time creating maps and thinking about story telling, quest designing, and map making I've decided to move the map making process to the browser.

For one, it'll help speed up the flow of the development of content for the game.
I've decided to use jQuery for this.

Since the beginning I've thought about the ability of players to be able to create the story and world around them.  The infrastructure was set up with the thought in the back of my head.

So, now that I've decided to port the map maker to a web interface I've also decided to add the ability for players to make the world.

Here's a break down of this new feature-set:


== Player Web Interface + Web Map Maker ==
    Each player has a login to the web interface.
    One can create maps using existing tilesets.
    In each map one can create events/npcs.
    Npcs are javascript driven.
    
    World is empty except for current areas
    Player creates account either in web or in client (pre-allocates X scripting switches)
    Player can then create areas.  
        Set Name, Select a tileset.  Width and height are 20x20.
        Area Settings:
            Name
            Troops (if empty, non-battle area)
            Encounter Rate
        The area is automatically added to the system.  
        Player can add event and script them as necessary
        Regular players cannot modify stats.
    Only an admin can link the outside world to you.
    You can ask to be teleport into your created areas.  When done you can ask to be returned to your previous position.
    Needed Features:
        Upload character sets. (OPTIONAL)
        Create item
    For fast scripting:
        A list of switches (filter by 'created_by_you', 'system_switches')
        A list of items (filter by 'created_by you', 'system_generic_items', 'created_by_others'
    Areas must be able to be deleted!!!
    
    Scripting (Pseudo-code):
            /*********************************************************************************************************************/  
//Merch Area Trader - 10x Small Wolf Claw Quest
//Go to the forest, collect 10 wolf claws and come back and i'll give you a red pin
                       
 if (checkSwitch(25)) //quest_finished_yn
 {
     //player already finished this quest
     message("Hey, how u liking that pin?");
     return;
 }

 if (checkSwitch(24)) //10x wolf claw quest
 {    
     //player has accepted this quest, check the status...
     var nWolfClaws = getItemCount(1005); //number of walf claws collected
     if (nWolfClaws >= 10) //small wolf claw
     {
         //the player has collected the necessary amount of claws...
         setSwitch(25, true); //quest_finished_yn
         addItem(1006, 1); //add 1 red pin item, created by me
         message("Well done!  You've earned this pin!");
         return;
     }
 }
 else
 {
     //player has NOT accepted this quest...
     message("Man I need me some wolf claws, go fetch me 10 claws and I'll give you this shiny ribbon!");
     var response = choice("Do you accept this quest");
     if (response == true)
     {
          //player has accepted the quest....
          setSwitch(24, 10); //10x_wolf_quest
          message("Great!  Good luck!");
          return;
      }
      else
      {
          //player didn't accept the quest...
          message("Fine then...");
          return;
      }
  }
            /*********************************************************************************************************************/  

I want to make map making as easy as possible.  Event/NPC making will be way more difficult.  It'll be scripting based.  The cool thing is you should be able to create areas, modify, and test them using the master server with the android client.  Once approved these areas can become part of the larger world and story.

The scripting will be very RM2K/RMXP inspired and powered by Javascript, so hopefully it'll be easy to use.  I'm guessing the most challenging aspects will be the new territory such as scripting in a multiplayer context.

With this detour there is going to be a significant delay in the release of the game, however there should be no reason this can't be achieved in a reasonable amount of time.

I'd be interested to hear any thoughts on this!

Update:
Here's some snapshots of the work in progress:

No comments:

Post a Comment