Skip to content
This repository has been archived by the owner on Sep 25, 2018. It is now read-only.

Latest commit

 

History

History
189 lines (181 loc) · 9.53 KB

manaserv-use_cases-characters_movement_system.md

File metadata and controls

189 lines (181 loc) · 9.53 KB
title layout
manaserv-use cases-characters movement system
wiki

{% include toc.md %}

Mana Server - Use cases for the Characters' movement system

Here is a list of proposed use cases to test the quality of the movement system under the Mana server:

Component description:

The server sided movement system is tile-based under the Mana server. On the contrary, the client emulates pixel coordinates handling in order to attempt to smooth the user experience. Please keep in mind that characters/monsters/ NPC/... are moving pixel-wise while keeping a tile logic, expecially for collision handling.

Please, also make use of the F key to toggle the grid and path view when testing.

As a last note, the current use case are made against the <del>http://gitorious.org/~bertram/mana/mana-manaserv-movement-fixes&lt;/del> branch.

Prerequisites: To be able to realise these tests, a compiled version of the client of the above branch and a fully running the Mana server version is necessary. You should also be able to connect to the server with some prepared testing maps, characters, and monsters. Some collision case should also be available in these maps to test the corresponding cases. Last but not least, don't forget to enable debug mode with the default 'F' key, to actually view the being's path existence, and other useful things.

Use case Description Expected Results
::: ::: ::: Git Version Next version
General view
? ? ? ? ?
Player Mouse pathfinding tests
Make a one tile away click Try to click one tile away from the character.
Neither the destination tile nor its surroundings should be blocking to test the simplest walkability.
The character walks directly to that pixel exact position. ok ?
Make a few tile away click Try to click a few tile away from the character.
Neither the destination tile nor its surroundings should be blocking to test the simplest walkability.
The character walks directly to that pixel exact position. ok ?
Make a few tile away click with obstacles Try to click a few tile away from the character.
Between the start and destination tile, there should be blocking tiles along the way but a path should be existing.
The character walks to that pixel exact position avoiding smoothly obstacles. ok ?
Make the character go through a narrow (1 tile free) passageway Try to make the character go between two blocking tiles in one or more path tiles.
Between the start and destination tile, there should be blocking tiles along the way but a path should be existing.
The character walks to that pixel exact position avoiding smoothly obstacles. ok ?
Test blocking corners. Try to make the character do a quarter-turn on each corner of a blocking tile.
A path should still be existing.
The character walks to that pixel exact position avoiding smoothly obstacles. ok ?
Go through-wall test. Try to click on a collision-free tile as no path is found to go there. The character should do nothing. ok ?
Player keyboard pathfinding tests
Mouse walking interruption. Try to click on a tile with a valid path, and interrupt the character while it is moving with keyboard movement keys. The character should start to move correspondingly to the keyboard input. ok ?
Smallest move. Try to push a keyboard movement key as short as you can. The character should do a very small move within the same tile, proving pixel exact client efficience. ok ?
Make a one tile away move Try to move one tile away from the character.
Neither the destination tile nor its surroundings should be blocking to test the simplest walkability.
The character walks directly to that pixel exact position. ok ?
Make a few tile away move Try to move a few tile away from the character.
Neither the destination tile nor its surroundings should be blocking to test the simplest walkability.
The character walks directly to that pixel exact position. ok ?
Make a few tile away move with obstacles Try to move a few tile away from the character.
Between the start and destination tile, there should be blocking tiles along the way but a path should be existing.
The character walks to that pixel exact position avoiding smoothly obstacles. ok ?
Make the character go through a narrow (1 tile free) passageway Try to make the character go between two blocking tiles in one or more path tiles.
Between the start and destination tile, there should be blocking tiles along the way but a path should be existing.
The character walks to that pixel exact position avoiding smoothly obstacles. ok ?
Test blocking corners with straight direction. Try to make the character do avoid each corner of a blocking tile by approaching straightly (Left, Right, Up or Down only) to it from a tile not in the same line or row as the blocking tile.
A path should still be existing.
The character walks to that pixel exact position avoiding smoothly the corner. ok ?
Test blocking corners with straight direction. Try to make the character approach straightly (Left, Right, Up or Down only) to a blocking tile corner, this time in the same line or row.
A path should still be existing.
The character walks to the pixel exact position and stops in front of the blocking tile taking in account its collision radius of 16 pixels. ok ?
Test blocking corners with diagonal direction. Try to make the character do avoid each corner of a blocking tile by approaching diagonally (Top-Left, Top-Right, ...) to it from with a tile not in the same line or row.
A path should still be existing.
The character walks near the blocking tile and avoid it smoothly, walking straight temporarily when necessary. ok ?
Other beings tests
Other players, NPCs, monsters and actors observation. Have a look at monsters and other beings movement. They should never walk into a wall, but can still walk over other beings. ok ?
Other players, NPCs, monsters and actors speed factor. Have a look at monsters and other beings movement. You'll need this time to configure beings with different speed value (in tiles per second) The different beings movements should correspond to their speed without adding glitches in the animation. ok ?
Networking - Other players behaviour
Other players observation. Play with a friend or from another account in a preferably distant server. Make your two players be one next to another, and walk around. The position of the each other's remote being should be tiled-based correct when the being stops. Note that the path could slightly (but slightly) differ when moving. Ok ?