UserExperience

User Experience
On this page, list features you would like by narrating a fictitious, but complete, user experience that demonstrates the usefulness of the feature.

UserExperience 1
Crap!!! I need to format this!

log in there is black on the screen and our non-obtrusive, non-cluttered gui elements you create the map by typing in the chat-box /create map (dimensions, tile dimensions) /create tile palette (load palette or individual bmps) press t to turn the mouse cursor from a select tool into a tile painting tool paint some tiles, or use the paint bucket (b) to fill a space. we fill in the black space with a grass tile we paint a line roughly along the y-axis of starry space tile. On the right side of the line, we use the paint bucket tool to quickly fill in the remaining tiles with starry space. Now we want to use the split tool. We draw a line of flashing tiles enclosing the area we want to split, in this case the starry space. Upon closing the area, a message appears in the center of the area, "Sink or Float?" Sinking takes that area down a layer, Floating takes it up a layer. We hit the down arrow to sink it. We right-click on the layer slider (A small vertical switch that highlights the current layer, and repsonds to clicks and drags) to bring up Layer Properties dialog. Each layer, except Ground, has a Enable/Disable Paralax Button, and a Parallax Ratio (float). Obviously if we are making a layer scroll faster, we need to make sure it covers a larger area than the main player area. Since we are playing the game engine right now, there is no need to stop and compile, or run a simulation of our program. Any changes you make to the world are instantaneous.

We hit a keypress or check a small button on the tile palette to enter solidity mode. The tilemap is overlayed with a solidity grid, showing transparent X's over impassable tiles. Alternatively, you can right click a tile in the Tile Pallette to bring up a Properties dialog for that tile. In there you check a box indicating that the tile is solid. This means that you will not be able to unsolidify instances of that tile in the map. We do the latter to the space tile so it is impassable.

we type in the chatbox: /avatar to bring up an avatar properties box, or we can type arguments after "/avatar" to instantiate it directly. Since we don't have any animations for our character yet, we just load a placeholder graphic, and use the default avatar control input scheme (up down left right interact). When we hit ok it creates your avatar at the desired location. Oh no! We brought our avatar to life in the middle of the space, not on the grassy part. He's stuck! Simply type /respawn and you will spawn at the nearest spawn point. We don't have one of those, so type /placeavatar to turn your mouse cursor into a tool that will place your avatar wherever you left-click the mouse.

Now, given that this world will users some limited ability to script for their own avatars and make them animate and move in special ways, we have to assume that someone will be able to defy our collision. Maybe they have a scripted a jump command that lets them temporarily go un-solid while playing a jumping animation. So lets alter the behavior of our game world a little to make it so anyone who collides with a starry space tile will be have their sprite scale down while rotating, simulating falling. Why? Cause its fun and it make our little Sim have more character.

We Alt-Tab over to a text editor to edit the Global Behaviour Script, the GBS is simply a text file in the same directory as the server. It is read by the server at startup, can call an unlimited number of other scripts, and can be reread at anytime while the server is running if the admin desires.

We make something like: if( collided(ANY_AVATAR, TILE_PALLETTE[TILENAME]) ){ var counter; while (counter < 1500){ // milliseconds scale rotate }	respawn }