fredag 30 april 2010

Here are som screens from the latest build, seems like things are shaping up!







måndag 22 februari 2010

Coders' meeting

Last couple of days have been spent doing planning. Some game design ideas, some programming design but mostt of all planning.

torsdag 18 februari 2010

Coders' meeting

We did lots of planning and documenting today.
More info will follow tomorrow.

onsdag 17 februari 2010

Coders' meeting

We produced some preliminiary tasks for the coming sprint:

  • NetworkSchedule
    • Create a basic structure. Discuss and test it.
    • Create a structure that's ready for implementation.
    • Should have a manager.
    • Should have terminals with Time Slot functionality.
  • EventHandler
    • Posting events.
    • Listening for events.
    • Can handle global and local events.
  • Movement
    • Physics.
    • Gravity.
    • Physical collisions.
    • Sprinting (only forward).
      • Stamina drain/regeneration.
  • Animations
    • Customized blending.
    • Improve animation scripts.
    • Variable speed.
  • KeySampler
    • Take key samples.
    • Network synchronization of key samples
  • Weapon
    • Collisions.
    • Inflict damage on players.
  • Shield
    • Collisions.
    • Able to block attacks.

tisdag 16 februari 2010

Coders' meeting

We estimated features and created some basic acceptance tests.


Move player on level with physics, without animations, with orientation. - 16h

AC: Move player on level to test interpolation/extrapolation.

R: The movement is smooth.


Draw with the mouse and perform all combat moves, perform animations. - 32h

AC: You draw with the mouse for a specific move.

R: The corresponding combat move is performed.

R: The drawing can be seen by other players.

R: The move's animation can be seen by other players.


Strikes should hit and harm players. - 16h

AC: A player strikes another player.

R: The struck player is harmed.


Blocks and parries should affect other players. - 16h

AC: A player blocks/parries an attack of another player.

R: The player that attacks notices (text output) that his attack has been blocked/parried.



We also discussed the network structure.

måndag 15 februari 2010

Coder's meeting

15/2
Discussed new Animation system.
Discussed and decided how to prototype the different parts of the new network structure.
Finished programming first version of the new network structure.
Started implementing it in the scripts (movement etc).
Discussed what we need to test/benchmark in the new network system.

Coder's meeting

Friday 12/2.
Discussed how to interpolate time when latency is improved.
Started programming the basic structure, discussing the different approaches as we tested it.
Tested "Saving BitStreams", did not work. Discussed other solutions for saving future events.
Discussed the new animation system.

torsdag 11 februari 2010

Coders' meeting

We discussed and planned our Time Slots system and different scenarios and problems for server-client communication.

Which slot to use would be calculated by X = ServerTime - ClientTime.

Time Slot index:

1 -> 20 = i + 0

21 -> 40 = i + 1

… ...


We also discussed peer-to-peer vs server.


We came up with a list of stuff left to do:

EventHandler

NetworkSchedule

Movement (Physics)

Basic Combat

Animation

Effect System


Stuff to test:

Saving Bitstream

SetSending false to avoid "Client->Client" communication

EventHandler, Finalize functionality

Tool using RigidBody

onsdag 10 februari 2010

Coders' meeting

Discussed pros and cons with physics and trigger collisions.


Using built-in physics:

Pros: Less to manage.

Cons: Hard to simulate gravity.


Using trigger collisions:

Pros: None (but it seemed like the only solution at first).

Cons: Self-authored physics system. Possible collision problems.


Later on we prototyped a solution that used physics to move the player around the sphere - it worked well.


tisdag 9 februari 2010

The coders' meeting

Our discussion mainly handled the topic of using a single or several Netviews per player.

A single Netview:
Pros: Knowing the exact order of messages. Easier to modify the structure. Implementation of the Time Slot structure in one place.
Cons: Less dynamic code structure.

Several Netviews:
Pros: Easier to manage.
Cons: No way of predicting the order of messages. We would have to do the sort ourselves.

We also discussed different scenarios and solutions for the Time Slot buffer.

onsdag 27 januari 2010

Tivoli Level - The Tavern

Concept art of the tavern where you might stop for a pint, or not.

Tivoli Level - Trailer


The Tivoli level is coming to life nice and creepy. Here we see the Wheel-o-Voodoo trailer (Don't know if I wan't to win a price at that stand, however).

fredag 15 januari 2010

Key gaming sessions and tests


Join game

Players can choose to join a game already hosted by another player or host one themselves.

Test: (Join Game)

Host:

  • The player should be a person who has some experience with network games.
  • The player should be able to understand configuration options for the server.
  • These should be presented in a simple and clear gui.

Join:

  • The player should be a person who has some experience with network games.
  • The player should be able to understand connection options (IP, PORT, PASSWORD) .
  • These should be presented in a simple and clear gui.

Pick/Customize character

The player can choose to pick a premade character or to customize one. The characters have three different body types agile, strong and resilient and are available in both male and female form. The body types will affect the stats in the following ways:

Resilient

  • Movement: medium
  • Attack: weak
  • HP: high

Strong

  • Movement: slow
  • Attack: strong
  • HP: medium

Agile

  • Movement: fast
  • Attack: medium
  • HP: low

The player can also equip armor and weapons that not only have an impact on attack and defense stats, but also give the player access to different types of attacks and effects.

The weapons are divided into the following categories:

Melee (1 hand + shield, 2 hand)

Type of attacks/actions for melee weapons are Swing, Chop, Stab, Heal, Parry, Block

Ranged (Throw, Mortar, Ray)

Type of attacks/actions for ranged weapons could be AoE damage, Heal,

Effects

E.g. Crowd control, Buff, Debuff, Heal


The characters and their equipment will follow the surreal art style that characterizes the game. Weapons and armor look like they've been assembled from junk that could be found on dumps or other forgotten places.

Test: (Pick/Customize character)
  • The player should be able to select different body types.
  • The player should be able to select different equipment and tools for his character.
  • Information about body types, equipment and tools should be available and presented in the gui.
  • A customized character can be saved to a template.
  • A customized character can be loaded from a template.
  • Both premade and user-created templates can be selected and loaded.
  • Everything should be presented in a simple and clear gui which the player should be able to understand.

Attack/Defend/Move

The combat system in the game is quite unique. Mouse movements will be translated to attacks in the game. For example pressing the left mouse button and drawing a half circle on the screen will have the character perform a swing attack that corresponds with the direction the mouse was moved in.

The core of the combat system is the ability to react, predict and counter other players' actions.


Test: (Attack/Defend/Move)

  • A player should be able to see and counter an incoming attack. Example: "Player A" sees that an opponent is Drawing a mouse movement that will translate into a Swing attack from the left. "Player A" Draws a mouse movement that translates into a Parry in that direction. The attack is parried and "Player A" gains a slight advantage as the opponent is temporarily stunned.
  • The attack speed in the game should feel fast but still controllable.
  • The characters movement speed should be fast enough to keep a good pace in combat while at the same time make a clear difference between the different body types.

Capture zones

Each level with this game mode contains a certain number of capture zones. These can be captured by players if they stand within the zone for an amount of time. Every interval the capturing team gets capture points according to the following formula:

(Number of players from Your team in the zone) - (Number of players from the other team in the zone)

No team can get less than 0 capture points in a zone. When a team has enough capture points the zone will be theirs until claimed by another team and during this time it will generate score for the team that owns it.

Test: (Capture zones)

  • Players should understand the mechanics and the meaning of the capture zones.
  • Players should be able to capture a capture zone.
  • Players should understand when they have captured a capture zone.
  • Players should understand when they have lost the control of the capture zone.
  • Players should be able to see and understand the state of conflict over a capture zone (which team is capturing the zone and which team is losing the zone).
  • Players/teams should be able to gain points by controlling a capture zone.

Target audience relations to key gaming sessions

We've written down the audience relations for the following audience profiles:

Former hardcore gamer
Claes, 28 years. Has played a lot of competitive games like Counter Strike where he was a member of a pretty good clan. When playing World of Warcraft he was especially into PvP and spent a lot of time in battlegrounds together with his guild mates.

Since he now has other things that need his attention he doesn't have as much time as before to spend on gaming.

Game developer
Yun, 34 years old. Works at a games company. Has a wife and a daughter.
Has played all kinds of games and is interested in trying out new things but doesn't have a lot of time to spend, and he doesn't want to waste time on games that aren't worth it.

Journalist
Fredrik, 26 years old. Writing for one of the more popular gaming blogs in Sweden. He's single with quite a lot of time to play games (it's his job to try them out after all...)
Fredrik likes competitive gaming and also being the first one to know about cool games.


Key gaming sessions:


Join game

Former hardcore gamer
This part is very familiar for Claes. The process of joining or hosting a new game is familiar to him. He wants an easy way to find a place to play together with some of his workmates or friends. It should be a quick and painless procedure. Claes doesn't mind hosting the game and only have players he knows in it.

Game developer
This process is familiar to Yun as well. He could very well play the game without friends but he prefers if the other players are somewhat mature.

Journalist
Ok, so I'll just join one of the games and see what this is about. It's nice that you don't have to be that many people to set up a team though, that will make it much easier to play it with your friends if you want to.


Customize character

Former hardcore gamer
Customizing characters is also a familiar process. Claes has a clear picture of the types of game play that may come with a certain customization. He usually plays an offensive character and at first will try to set up a character that he thinks will suit that play style. After a couple of game rounds he tries out a more sturdy character to get some variation. Claes doesn't care that much about how the character looks but is more interested in how he can customize the stats to make his character as lethal as possible.

Game developer
Yun takes some time to go through different character setups and is likely to try out setups that seem unusual and interesting. He's also amused by the look of the characters, especially the resilient body type in a bunny suit. After some looking around he picks one of the setups that appealed to him, doesn't matter that much which one since he will probably try out a couple more if the game turns out to be amusing.

Journalist
Fredrik likes the appearance of the characters, he hasn't seen this style before, at least not in this kind of game. He thinks it's a nice break from the ordinary dull looking characters that are usually featured in competitive games. The different weapon types are also amusing. He's looking forward to seeing what the level looks like.
Hmm, this axe looks totally absurd, interesting effects though. Let's just equip it and see how it works out.


Attack, defend, move, bring down the other players

Former hardcore gamer
This is where Claes can show off his skills. Nothing gives more satisfaction than bringing down the other players, especially if he manages to win a fight where the opponents thought he would be an easy kill. E.g. when being caught with low health or getting ambushed by two other player while running around alone.

Game developer
While in combat with other players Yun finds the controls interesting. He knows there has been at least one other game where the mouse was used to "draw" the attacks but he hasn't tried that one. He likes that it requires more skill from the player than just mashing buttons (especially in melee combat). While playing a couple of rounds he tries to get a feel for if this is a good way to control the character that lets the player immerse in the game without being distracted.

Journalist
This combat system is pretty unusual, I haven't seen that before. It should appeal to all the players that want to show of their combat skills, it does require some timing and I can't just hit buttons and hope to kill something. I think I will try out some other weapon types to se which one feels best.


Capture zones

Former hardcore gamer
Claes really likes fighting for the zones if he's in a good team. He easily gets irritated though if his team mates don't get the strategy and thus may revert to just killing the opponents if he thinks his team wont pull it off. This is the reason he wants to play with friends, he knows that they probably wont suck and also he has a bit more patience with them since he likes them.

Game Developer
Oh, this is sort of a classic, thinks Yun. Now what would be the best strategy for capturing the zones? Is there a way to always win? Yun's analytical side takes oves as he tries to analyze which strategy would be the best one and if there are any spots especially suitable for his character.

Journalist
Well this is actually quite fun! I like fighting to capture the zones, it's easy to get what the game is about but still there are lot's of strategies to try out. The matches aren't that long either so it's easy to fit in some rounds when there is time. There are many games where you should capture zones but the environment and the characters make it feel new and fresh.

Level design

This is the level design that we will start implementing. Hopefully it should provide the players with some fun gameplay.

Character movement flow

Menus flow

Capture zones flow