Mostrando entradas con la etiqueta Game Design. Mostrar todas las entradas
Mostrando entradas con la etiqueta Game Design. Mostrar todas las entradas

domingo, 13 de septiembre de 2015

Redefining Skill Themes

The defined skill matrix doesn´t match nicely with the actions the player can do, so a redefinition of it is necessary, as well as a reevaluation of the player´s actions.

Actions:
  • Move Towards
  • Move Away
  • Attack (Spin against enemies)
  • Use (Spin against contraption)
  • Disarm (Spin against trap)
  • Change Pace (Turbo)
  • Avoid (Manual Jump)
  • Trick

Entities
Entities in the game fall in 2 groups:
  • Obstacles: non-desirable entities.
  • PowerUps: desirable entities.

Obstacles
Obstacles can be structured in 4 groups:
  1. Enemy: Moving obstacles that can be saved with a spin attack or by not colliding.
  2. Traps: Stationary obstacles that can be saved with a spin attack or by not colliding.
  3. Berserk: Moving/intermitent obstacle that can only be saved by not colliding.
  4. Rock: Stationary obstacle that can only be saved by not colliding.

ObstaclesAttackAvoid
MovingEnemyBerserk
StationaryTrapsRock

PowerUps
PowerUps are always desired and the player will always try to move towards them when possible. They can be structured in 2 groups:
  1. Simple: These are stationary and don´t require any additional action by the player.
  2. Switch: These are stationary and require the player to activate them with a spin attack,
  3. Prize: Moving/intermiten powerUps that don´t require to be activated.
  4. Capture: Moving powerUps that require to be activated.

ActivateSeek
MovingCapturePrize
StationarySwitchSimple

Main actions
The 2 main actions the player can perform are:
  • Move: Move away, move towards, change pace, avoid
  • Fight: Attack, use, disarm
Both actions have to be considered in all elements.

Skill Theme Axis Definition


MovingStationary
ObstacleBerserk/EnemyRock/Trap
PowerUpCapture/PrizeSimple/Switch

  • Navigate: Move towards/away from the target.
  • Confront: Move towards/away from the target and activate.

The final matrix is:

Movement\PacePrecissionSpeed
TowardsCapture TargetBoost
AwayAvoid TrajectoryReact

Pace
  • Precission: The player must think before acting and get the solution before entering the event. These are complex events with some duration.
  • Speed: The player must react instantly, getting the solution only to the current part of the event. These are simple, short events  that come in series.

Movement
  • Towards: The player must move towards the element.
  • Away: The player must escape from the element.

Skill Themes

Movement\PacePrecissionSpeed
TowardsCapture TargetBoost
AwayAvoid TrajectoryReact


Capture Target
Player must foresee and intersect the PowerUps´trajectory. Prize and Capture fall here. It can combine nicely with React elements.
Elements:

  • Moving boost: Boost pads changing lanes, so the player must follow the sequence to intercept it.
  • Flying Boost: Flying Boost in a periodic path, the player must try to capture it. 


Avoid Trajectory
Player must foresee and avoid the Obstacle´s trajectory. Berserk and Enemy are used in this group. It can combine nicely with Boost elements.
Elements:

  • Flying mine: Series of mines flying describing a path, so the player must understand this path and avoid it (snake).
  • Patrolling mine: Mine moving in a periodic fashion, so the player must understand it and look for the best place to pass.
  • Intermitent gates: Player must understand the period and choose the correct one to pass.


Boost
Player must move towards and use a series of PowerUps in a fast way, reacting by instinct. Simple and Switch make this group. Combines with Avoid Trajectory elements.
Elements:

  • Ramp: Series of displaced ramps in an irregular fashion.
  • Boostway: Lanes with turbo boosts describing an irregular path.


React
Player must react to Obstacles on his way. Rock and Trap are used in this skill. The player can avoid them or use them, but he must decide fast. Combines with Capture Target.
Elements:

  • Red floor: Slowing floor describing an irregular path.
  • Bouncers: Bouncers laid out in an erratic way.




















sábado, 12 de septiembre de 2015

Level analalysis: SMW Yoshi´s Island 4

T1 Training Wheels challenge:
Single sinking platform: H(N, 1), W(1, 2)
Mario falls from above, jump with delta height  = 0, width = 2 to exit.

S1 Standard challenge:
Single sinking platform. H(1,1), W(1,3)

V1 Evolution challenge:
2 sinking platforms: H(0, 0, 0), W(2, 3, 1), I(0, 0, 0A)
This is an evolution because it adds something new (an intercept) rather than just modifying the existing characteristics of the challenge.

E1V1 Expansion challenge:
2 sinking platforms: H(N,0,2), W(3, 3, 1), I(0, A, 0)

Reward by fun/Crossover challenge

E2V1 Expansion challenge:
2 Sinking platforms: H(-3, 0, 3), W(2, 3, 1), I(0, A, A)

E3V1 Expansion challenge:
3 Sinking platforms: H(-3, 0, 0, 3), W(2, 3, 3, 2), I(A, A, A, 0)

M1V1 Mutation Challenge:
Sinking platforms: H(-3, 0, 3), W(2, 3, 1), I(A, 0, B)
This is a mutation because it modifies an already existing component (an intercept). I t really doesn´t add anything new to the challenge it mutates, it just changes it slightly. The skills used are the same as before.

Cadence:
T1-S1-V1-E1V1-E2V1-E3V1-M1V1.
Basically, the level presents the challenge, then evolves it by adding an intercept, and then lays out a series of different expansions which make the meat of the level, ending with a mutation.



viernes, 11 de septiembre de 2015

Track Design: Trickster

Skill Theme: Boost (Towards/Speed)
Complementary Theme: Avoid Trajectory (Away/Precission)

Main mechanic: Ramp
This mechanic requires 2 things from the player: positioning and activation. Positioning is rather intuitive, so the training wheels challenge will focus on activation.

Complementary mechanic: Trap Ramp
Trap ramps appear, marked with a "forbidden" symbol. When taken player´s speed will decrease,  boost jumps won´t be available and the landing lane will become a red floor.

Complementary mechanic: Mines
These are an evolution of the Trap Ramp mechanic: instead of positioning the hazardous elements in the ramp itself, mines can be located just before the ramp. In long ramps, groups of  mines can be located at different parts in the ramp´s length.

Challenges

Training wheels challenge:
All the starting zone will be divided in separated lanes that don´t allow z-movement. The player will watch 2 opponents on different lanes. One of them just advances normally while the other performs repeated spins. After a while they will come to a ramp, the first one will jump normally while the second one will perform a spin and then make a boost jump. Then the player will come to a ramp so he can try to boost jump himself. After this first jump, all lanes will come together so Z-Movement becomes possible.

Standard challenge:
The standard challenge makes the player move towards a ramp and activate it. The ramp will be displaced only one lane up or down from the player´s initial position and it will be very wide.

Expansion challenge:
Floors which reduce speed will appear, thus increasing the penalty of the standard challenge.
The number of ramps will have more z-distance between them, so the player has to navigate the whole width to keep on getting on them.
Reduce the width of the ramps.
Series of ramps will appear allowing little time for the player between each one, so the Skill Theme becomes present.

Evolution challenge:
V1: Trap Ramps. The skills in play are the same, but the player must first consider which ramp to take.
V2: Trap Ramps are replaced by moving mines. The mines can be located anywhere relatively to the ramp: just before, in the ramp itself if it´s long enough...so it changes the challenge in an important way: the player must plan a bit more in advance if mines are before the ramp and, most of all, he still has to maneuver after entering the ramp and before boosting from it.
V3: Combine Ramps, Trap Ramps and Mines. Mines will only appear before the ramp moving in opposite direction to the mines, so there´s only one correct place to enter at any time. It´s not more difficult than V1 or V2 as the space to enter will be the same, but it will look more complicated. Difficulty can really be made harder if we force the smallest gap to be of 2 lanes in V1 and V2 and use a smallest gap of 1 in V3.

Mutation challenge:

Variying length ramps will appear, so the player must wait to reach the border before attempting the boost jump. This breaks the rythm and makes the player stay alert...so hazards can appear while the player climbs the ramp.


Crossover challenge:
Moving mines without ramps. It can be used to both break the monotony of the repeated series of ramps and to introduce mines in a forgiving way.

Cadence Prototype
  1. T1: Training Wheels Challenge, 1 lane width ramp, no Zmovement allowed.
  2. S1: Standard Challenge: Ramps that take the whole width. 2 consecutive instances.
  3. X1...XnS1: Expansion challenge: All lanes but 2 will have ramps. From now on, all lanes without a ramp will have a Red Floor. Steadily change the number and width of ramps and add Red Floor to all ramps so it can only be avoided by boost jumping.
  4. M1S1: Mutation challenge: longer ramps star appearing. Start with a ramp of L=2 or 3 and width=all.
  5. X1...XnM1: Expansion challenge: modify ramps like in the standard expansions.
  6. V1S1: Evolution challenge: A ramp that takes all lanes will appear, with 1 moving Trap Ramp. Repeat.
  7. X1...XnV1: Expansion challenge: Reduce the number of safe ramps. Repeat while reducing the number of safe ramps until there´s only one left.
  8. C1: Crossover challenge: Mines taking all lanes with a hole of width = 2 or 3. First instance: stationary, next instances will have the mines move up/down.
  9. V2V1: Evolution challenge: Mines. Start with positioning mines before Ramps.
  10. X1...XnV2: Expansion challenge: Moving mines. Change their position to only in the middle of the ramp, then combine, tweaking ramp length to get more options and instances.
  11. V3V2: Ramps, Trap Ramps and Mines. Only 1 instance as a final challenge.

Cadence formula:

The cadence will have to follow the Hishotenketsu structure (Intro-Development-Crysis-Resolution).

T1-S1-X1...XnS1-M1S1-X1...XnM1-V1S1-X1...XnV1-C1-V2V1-X1...XnV2-V3V2

These challenges may be too much to include in one single lap and don´t overlay well with the Hishotenketsu structure. What´s more, it could become too repetitive to have to go through all this 3 times, so we will reorganize the cadence with Lap Variations.

Lap cadence
To break up successfully the cadence into 3 laps and make the game engaging while keeping an eye on repetition, we must give a different purpose to each lap:
  1. Lap1: Introduction: The simplest lap, it will comprise basically of the training wheels challenge, the standard challenge, some expansions, a mutation, one instance of the first evolution and a final expansion of the mutation. The idea is to keep it simple around the standard challenge, while laying the basis from where the more complex evolutions will grow in the next laps.
  2. Lap2: Conflict: The first evolution briefly presented in Lap1 will take focus on this lap alternating expansions of it and of the standard challenge mutation. A crossover challenge will appear before a single instance of the next evolution.
  3. Lap3: Resolution: The 2nd evolution will take focus now, alternating with the standard challenge and the first evolution while gaining weigh. the disruptive element (the 2nd evolution) will have to share time with the standard challenge and 1st evolution derivations, so it won´t be as present as the 1st evolution was in Lap 2. This will be like saying "this is all there is to this track", so that this lap provides closure.

In this case we have 3 mechanics: Ramps, Trap Ramps and Mines, so we can present each one in every lap. However, by doing this we may loose some coherence between all laps, so a better method would be to make a double division of the level so mechanics can cross over from one lap to the others:

ChallengeLapMechanicIntroDevelopmentCrysisResolution
Intro1RampTW1
S1
X1...XnS1
M1S1
X1...XnM1
V1S1 XfM1
Conflict2Trap RampX1...X2V1Xn...XmS1/V1
M2V1
X1...XnM1/M2
C1
V2V1
XfM2
Resolution3MineX1...X2V2Xn...XmS1/V1/V2
M3V2
X1...XnM1/M2
V3V2
X1V3V2
XfM1

The complexity peak will be in Lap3: Crysis VS Resolution. After that, the expansion of the first mutation will be repeated to relax the complexity and present the end of the race. Focus here will be set on the player himself, who will have to use his last resources for this final part of the race.

So, the general lap cadence will be:
[(T+S)/(X2S)]+[XnS+MS+XmM]+[V+(0/C/X)]+[XM]
We have simplified the lap cadence while at the same time arriving at a nice structure for each lap.

The track will be adapted in every lap, maintaining the same basic structure so the player knows what to expect to some point.

The AI will also have to follow this narrative, though this will be discussed more deeply when the time comes.


jueves, 10 de septiembre de 2015

Trick System Overhaul

With the current trick focused gameplay system some problems may arise: Performing chains of tricks require the player to be a lot of time in the air. During this time they aren´t doing anything besides inputting tricks. They are isolated from the world as they can´t change trajectory or interact with anything in the world. Thus, jumps must become shorter and tricks must be performed faster. Performing tricks can be a repetitive action, so this can´t be repeated too much or it will become old and tedious fast. To solve this issues, the track design must get the spotlight and propose interesting interactions to the player at a continuous pace. So the gameplay focus will shift from tricks to platforming.
The adjustments that need to be made to achieve this are:
  • Reduce air time: So the player stays more time on the ground dealing with obstacles.
  • Reduce speed: So more complex obstacles can be used.

Reducing air time 
To reduce air time we can do 2 things:
  • Augment gravity: The player will fall faster. Jumps will become wilder.
  • Reduce jump speed: Less height achieved when jumping. Less spectacular, but will help with keeping the track visible so incoming challenges can be detected in time.
Gravity manipulation is straight forward. However, jump speed manipulation must be done in separate cases:
  • Normal Jump: This jump is achieved by going off a ramp and not performing a Boost Jump. The jump height is related to the horizontal speed, so this relation must be tweaked and tested. This jump is usually a consequence of the player failing to do a boost jump, so the ability to do tricks with it should be little.
  • Boost Jump: In this case the vertical speed depends mostly on the speed level. We can try making it a fixed value independent of the horizontal speed. The player must be rewarded for doing this, so more tricks should be available during a Boost Jump.

Reducing speed
This will allow for the player to have more time watching incoming obstacles, as well as reduce jump height in normal jumps (and somewhat in boost jumps).


Trick System Overhaul
As a result of these modifications, the trick system must be altered to fit the reduced air time in the following ways:
  • Faster tricks: So the player can perform or chain tricks with the reduced air time.
  • Reduced, simplified system: Instead of requiring L1->L1->L2/L3 and allowing cancels (L2->L1 or L3->L2) the trick system will be more straightforward: L1->L2->L3->L3->L3...Tricks upgrade one level until the max level is reached. Also, there´s no posibbility of moving down the level ladder.
  • Change trick relative speed: spL3>spL2>spL1. This way introducing higher level tricks in normal jumps won´t need to rise the air time that much. Also, the higher level the trick is, the harder it will be to keep the chain going as inputs will be required more frequently.




miércoles, 9 de septiembre de 2015

Movement Definition

Trick requirements with zero height delta:

Normal Jump

  • SpeedLevel 0 must allow no tricks
  • SpeedLevel 1  must allow L1
  • SpeedLevel 2 must allow L1lpL2
  • SpeedLevel 3 must allow L1cL2
Boost Jump
  • SpeedLevel 0 must allow L1cL2
  • SpeedLevel 1 must allow L1cL2lL3
  • SpeedLevel 2 must allow L1cL2cL3lL3
  • SpeedLevel 3 must allow L1cL2cL3cL3

Skill Themes

DIRECT APPROACH

Skill Themes
This is a racing game, so the main objective is getting to the goal in the least possible time. In platform games, the objective is to get from A to B, which means getting to B depends on the player´s performance. In action games the objective is to confront the enemies and best them. So this game will have a lot of platformer component and little action component.

The obstacles and opponents will try to make the player loose speed, so all penalties will affect that. At the same time, there will be penalties by avoidance: some elements will help the player gain speed, so not taking them will have a relative similar effect to being affected by an obstacle.

Penalties:

  • 0: No penalty
  • 1: Speed gain opportunity lost
  • 2: Speed loss
  • 3: Crash (big speed loss, points loss...)


The different types of elements in the game are:

  • Targets: The player must get to them to continue without loosing speed AND even gain speed. Sometimes they are related to other targets, like switches controlling the state of a different element. Penalty = 1.5;
  • Boosters: Targets that are not enforced: not getting them won´t have a negative effect, but getting them helps to gain speed. Penalty = 1.
  • Obstacles: The player must avoid them by moving to a different lane. Penalty = 2.5;
  • Contraptions: Must be activated to get a speed boost, otherwise they don´t affect speed. Penalty = 1.5.
  • Traps: Must be activated to get a speed boost, otherwise they affect speed dramatically. Penalty = 2.5.
  • Intermitents: Have different states not controlled by the player that can allow free pass or generate speed loss.
  • Sand: The player must manually jump over them.

The player must learn the following skills:

  • Navigation: identify and move towards a desired position.
  • Activation: activate targets, contraptions and traps, defend against opponents.
  • Avoidance: avoid quick succession of obstacles.

Navigation - Optimal path
Elements: Targets, Boosters.
Instances:
 Turbo boosters (1)
 Ramps  (1)
 Speed Lines
 Jump pads (1)

Activation - Contraptions and Intercepts
Elements: Targets, Contraptions, Traps
Instances:
 Ramps (1)
 Jump Pads (1)
 Speed Lines (1)
 Bouncers (3)

Avoidance - Periodic enemies and Intercepts
Elements: Obstacles, Intermitents
Instances:
 Color Floors (2)
 Speed Gates (2)
 Laser Walls (3)


Skill Matrix

Skill ThemePlanAct
TargetOptimal pathContraptions
AvoidPeriodic enemiesIntercepts


Optimal path
These levels will be focused on having different routes and an optimal one which the player must take by navigation. The optimal path will be highlighted with elements that help the player gain speed, so the penalty will mostly come from omission. Periodic enemies can also be used to discard other routes, or to force the player to use manual turbos to bypass them. Contraptions can be used deceptively as the goal of the level isn´t to use them. For example: activating a jump pad can launch the player into a floating bomb, or activating a turbo launcher can make him crash against a periodic enemy. Color floors can be used as guides to the optimal route.

Contraptions
These levels will be focused on using a single contraption. The optimal route will always be the one that has more instances of this contraption and is reached by making more succesful uses of the contraption. Intercepts will be only avoidable by the use of the contraption or in other words, failing to use a contraption will launch the player into an intercept. This way the penalty will be double: for missing the speed boost due to the contraption and a direct speed loss due to the intercept. However, as there are a lot of contraptions to use the player will have an easy time gaining points and recovering from crashes.

Periodic enemies
These levels will focus on avoiding environmental hazards with 2 cycling states (on/off), or moving in such ways that they change the place where they are avoidable. Contraptions can be used to help with some obstacles, like a full lane of turbo launchers: the player must choose the correct moment to activate one so he can bypass an obstacle in the right moment. Manual jumps will be most used in these levels. The player is required to spin before being able to jump, so some planning ahead on his part is guaranteed.

Intercepts
These levels will focus on avoiding enemies and using traps quickly and in series, so one-instance events will happen regularly. The player will have to perform 2 actions: avoid enemies (fixed like bombs or barriers and moving like lasers, bullets or other incoming objects) and use traps as contraptions (bouncers). Enemies with irregular paths will appear which will force the player to react quickly, either avoiding them or spinning to defend himself.



REVERSE APPROACH
Genres
  • Platformer: there are jumps.
  • Action: there are enemies. 2 different types of enemies exist in the game: opponents (the other runners) and active obstacles (those which require an input from the player upon collision).
  • Racing: the main objective is to go fast and end the race 1st.

The racing genre doesn´t affect the core gameplay in the same way as the other 2 genres, but in a higher scale. Jumps and dealing with enemies will directly affect the player´s actions with high priority, while going fast and ending 1st is a consequence of those actions. Only at times where the player is free from any imposition will he be able to truly choose to perform additional actions that affect the main objective. thus, the skill themes must be divided in 2 layers:
  • Lower layer: Any skills which have an immediate effect on the player, opponents or world. Platform and action skills fall here. These will have a direct effect on the level design down to the detail.
  • Higher layer: Any skills which don´t have an immediate meaningful effect, but which will help the player to achieve the final objective. Racing skills fall here. These skills affect the overall level design, like including big empty zones to allow the player to use turbos safely or big jumps to perform many tricks.
Player actions
An action is something the player does to exercise a skill. It´s the way the player has to show the skills he has obtained. The player actions available in the game are the following:
  • Move Up/Down: Move to avoid obstacles and to choose a more favorable route.
  • Power spin: Spin in place to attack or defend from enemies, avoid or use obstacles, as a preparation for a Power Spin Jump, use friendly contraptions.
  • Power Spin Jump: Low jump used to avoid obstacles.
  • Jump: Medium jump used to avoid obstacles and sometimes to perform tricks. In certain situations, it will be more advantageous to use this jump instead of a Boost Jump, sometimes to choose a more favorable route (Higher Layer action) or to avoid obstacles. The ability to perform tricks lies also in the Higher Layer.
  • Boost Jump: High jump used to avoid obstacles, as a preparation to perform tricks or choose a more favorable route.
  • Tricks: Used to gain speed, get points, level up or unlock manual turbos after landing.
  • Recovery: Used to stop loosing speed (gain speed), save points (get points) and in certain situations can be necessary to avoid obstacles.
  • Bounce Jump: Used to attack or defend from enemies, avoid or use obstacles, get points, level up, unlock manual turbos.
  • Manual turbo: Used to gain speed, avoid obstacles or attack or defend from enemies.
  • Speed Line Grab: Used to avoid obstacles, choose a more favorable route or to get points, level up and unlock manual turbos.
All actions have one or more purposes:

Avoid obstacles: Avoid incoming obstacles.
Use contraptions: Use contraptions to gain an advantage. Some obstacles may be turned into friendly contraptions. At the same time, some friendly contraptions may be necessary to avoid obstacles. In these cases, the contraptions become part of the obstacle themselves and are regarded as such.
Choose a more favorable route: The player may choose different routes based on personal preference (like choosing a route that centers around a preffered skill) or to gain an advantage. This way this action transcends the Lower Layer as it doesn´t have an immediate consequence on gameplay and is related more with a general objective.
Attack and Defend from enemies: It can be necessary (so the enemies become obstacles themselves) or optional (mostly when attacking, in which case it´s done with a bigger purpose and lies in the Higher Layer).

Perform Tricks: Has no immediate effect other than opening the possibility of a crash. The player will consciously put himself in a dangerous position for a not immediate gain (speed, points, turbo, level up...) so it lies in the Higher Layer.
Gain speed: Doesn´t affect gameplay immediately->Higher Layer.
Get points: Doesn´t affect gameplay immediately->Higher Layer.
Level up: Doesn´t affect gameplay immediately->Higher Layer.
Unlock manual turbos: Doesn´t affect gameplay immediately->Higher Layer.

Lower Layer Skills
Lower layer actions are executed in reply to an event in the game:
  • Avoid obstacles: Platformer
  • Attack and Defend from enemies: Action

The player can reply to these events in 2 ways:
  • Act: Actions that must be carried as fast as possible once the event that requires them becomes active.
  • Plan: Actions that require the player to choose the right moment to execute them and give more thought to them.

Skill ThemesPlanAct
PlatformerOptimal path selectionQuick navigation
ActionPeriodic obstaclesIntercepts

The 4 skill themes are:
  • Navigation: The player sees in advance a series of obstacles or contraptions and must navigate to avoid them/get to them. The player has some time before seeing them, so he can decide the optimal path. The contraptions or obstacles are complex and come in individual events. These are usually obstacles that allow or deny passage in different lanes at every moment.
  • Quick navigation: The player will see a series of fixed contraptions and must navigate avoiding them.
  • Periodic obstacles: Avoid Intermitents.
  • Intercepts: A quick succession of obstacles that have to be avoided while going fast.





Reverse Design: Super Mario World

Source: http://thegamedesignforum.com/
Basic definitions

Composite game
A composite game is one in which a player can use the mechanics and abilities of one genre
to solve the problems of another genre, making it a composite of two videogame genres.

Declension
Now, when we talk about a level or section of a level in a composite game that emphasizes one genre
more than another, we’re talking about that level’s declension. (I.e., that level or section declines or “leans”
toward one genre, but never abandons either genre.)

D-Distance
The danger distance or D-Distance is the amount of lateral distance that Mario has to cover in a single jump event. D-Distance measures the size of deadly obstacle Mario is trying to avoid, whether it’s a bottomless pit or some kind of damage floor (or, in some cases, a fall that forces the player to tediously climb back up).


Delta Height
Starting height - target height > 0 Descending jump, easy
Starting height - target height < 0 Climbing jump, hard


Target width
Width of the landing platform. Wider = easier.

Starting width
Width of the starting platform before making a jump. Doesn´t affect much difficulty usually.

Soft sizes
  • Good objects/platforms/... have a hitbox greater than their sprite.
  • Bad objects/hazards/... have smaller hitboxes than their sprite.
Intercepts
An intercept is an enemy timed and placed so that it interferes with a jump that Mario needs to
make. It is not the cause of the jump event, but rather an obstacle that modifies the jump event. 

Penalty
Penalty for failing a challenge. It can take 3 values:
  • 0: If the penalty for failing a jump that the player has to try that jump over again, and Mario doesn’t lose a life or take any damage, the penalty rating is a zero.
  • 1: Jumps whose penalty is guaranteed damage but not necessarily death are rated one.
  • 2: Instant death pits are rated two.
The 4 main skills
  1. Getting Mario to the right momentum: Preservation of momentum
  2. Standing at/jumping from the right place: Periodic enemies
  3. Jumping at the right time: Moving targets
  4. Avoiding the sudden appearance of enemies: Intercepts


Challenges

A challenge is the essential unit of content in a level: a cluster of actions that must be undertaken
in one attempt, although that attempt can take a long time if the player chooses to stall, in many instances. The most reliable indicator of the space between challenges is a safe platform. The types of challenges are:
  1. Punctuating challenge
  2. Standard challenge
  3. Expansion challenge
  4. Evolution challenge
  5. Mutation challenge
  6. Evolution challenge
  7. Training wheels challenge
  8. Crossover challenge
  9. Expansion by contraction challenge
  10. Reward by fun challenge
Punctuating challenge
A kind of small mini-challenge that sometimes breaks up two challenges in a cadence. The punctuating challenge is a kind of punctuation mark in the sentence of a cadence. It is sometimes used to cleanse the palate, so to speak. Rather than having the end of every challenge be a safe platform that starts the subsequent evolution, expansion or mutation, sometimes the designers will throw a simple punctuating challenge at the player to refresh and refocus him or her. The key identifier of a punctuating challenge is that it is never developed. Although a punctuating challenge may be reiterated, it will never really evolve or expand, or else it would simply be a second standard challenge.

Standard challenge
The standard challenge is the first and most basic form of the challenges that get developed in the course of a level. The standard challenge is, in a sense, defined by its relation to later challenges. It’s not always the case that the first challenge in a level is the standard challenge. Sometimes the first challenge in a level doesn’t actually evolve, expand or mutate. Sometimes that first challenge is just there to accomplish something else, identifiable only on a case-by-case basis. Nevertheless, a standard challenge is usually simple, and no subsequent challenge in the cadence will be simpler qualitatively (excepting punctuating challenges, which are intentionally not developed), although some may be quantitatively easier to compensate for qualitative decay.

Expansion challenge
An expansion challenge is a standard challenge with one or more of the event variables increased numerically. An expansion challenge doesn’t change from the standard challenge qualitatively (or at least not by much), but it does change quantitatively. That is, the player is using the same skills in an expansion challenge as they would in a standard challenge, but the difficulty is greater because some aspect of the standard challenge has been increased. The variables that can be increased in an expansion challenge are:
  • D-Distance
  • Delta Height
  • Intercepts
  • Penalty

Evolution challenge
In contrast to an expansion, an evolution is a qualitative change that uses all the same skills as the standard challenge but in a more qualitatively complex situation.

Mutation challenge
A  mutation challenge is an iteration of any challenge that neither increases the complexity by evolution
nor expands the quantitative aspects of the challenge that is being mutated. Rather, a mutation challenge simply reiterates a challenge in a slightly different way that is more or less equally challenging. It’s not more complex, it’s just different. Mutation challenges are important because not every single challenge can get more difficult or complex, or else many levels would become terribly tiresome. Part of establishing a good sense of pacing in level design lies in knowing when to give the player a break or an easy challenge to restore their morale and give their concentration a rest.

Training wheels challenge
A training-wheels challenge is designed to allow players to use new skills in a low-risk, easy-to-understand
environment. In order to make acquisition of these skills easy and not frustrating, the designers do two things:
  1. Break what would be a standard challenge in any other level into its smallest component parts, teaching players how to execute each individual part of the challenge before putting them together (whereas an evolution would either throw them into a strange new element, added to the old, or combine two already-deadly challenges).
  2. Use one or more methods to reduce the penalty of the challenge down to 0.
Crossover challenge
A crossover challenge is a challenge that features a brief shift from one declension to another. They
are generally brief, featuring five or fewer events, and rarely more than one or two sequential challenges.
They are put in place to break the monotony of doing the same declension of challenge over and over (i.e.
moving target jump after moving target jump). They are usually built out of the complement skill theme (but not always).

Expansion by contraction challenge
This is just an expansion challenge that operates by narrowing the amount of safe space in a challenge. Most expansions are literal expansions of some numerical element; in these cases, they’re just reductions in the size of safe space or beneficial features like platforms.

Reward by fun challenge
The primary criterion for a reward by fun is the availability of non-death failure. Usually this means that Mario has to do something strange to get a reward. He can lose that reward, but it’s almost impossible for him to come to real harm—the only penalty is not succeeding.

Cadences
A cadence is the progression of challenges, explained by their relation to the standard challenge.
Almost everything in a level relates back to the standard challenge clearly, although the punctuating challenge
is often a minor exception to this.

Skill themes
Just as jump events add up into challenges, challenges add up into skill themes. A skill theme is a
series of levels which develop a consistent set of player skills through the use of fundamentally similar
but ever-evolving challenges. Skill themes in a composite game are the material embodiment of composite
design. A designer can take advantage of the various elements of the contributing composites to get specific
effects in any given level. There are basically four skill themes in the game, and they lay out well on a matrix:

Skill themeTimingSpeed
PlatformerMoving targetsPreservation of momentum
ActionPeriodic enemiesIntercepts

Each skill theme has a complementary theme which is usually used for crossover challenges:

Skill themeComplementary challenge
Moving targetsPeriodic enemies
Preservation of momentumIntercepts
PlatformerAction











martes, 8 de septiembre de 2015

Height Detection System

Target
Detect the maximum level of the trick the player can safely perform before landing. The time will be calculated supposing the trick is performed at normal speed (no link or pefect link).

System

  1. Detect the time until landing. This is done as soon as the player leaves the ground.
  2. Check against the time for every trick level.
  3. Show a gizmo on the UI with the color of the corresponding trick level.

Detecting the landing time

int GetLandingTime(){

bool landingSpotFound = false;
float distX = 0f, distY = 0f;
float safetyDistance = 10f;
float ySpeed = currentJumpSpeed;
int landingTime = 0;
//RaycastHit landingSpotInfo = new RaycastHit();

while (!landingSpotFound){
origin = new Vector3(transform.position.x + distX, transform.position.y + safetyDistance, transform.position.z);
 if (RaycastHit(origin, Vector3.Down, out landingSpotInfo, safetyDistance + distY, layerTerain)){
  landingSpotFound = true;
 }else{
  distX += currentSpeed;
  distY += ySpeed;
  ySpeed += gravity;
  landingTime++;
 }
}

 return landingTime;

}

lunes, 31 de agosto de 2015

Track Design II - Obstacles and themes

Obstacles

  • Ramps: If traversed with enough speed will make the car jump. If the trick button is pressed at the correct moment a boost jump will happen.
  •  Bouncers: If the player collides with them it will send him rolling to a different lane and make him loose some speed. If the player uses the trick button when colliding he will go through them and get a turbo boost. If the player lands on top of one he will crash, but if he uses the trick button he will bounce upwards and make the multiplier rise by one.
  • Gates
  • Speed lines
  • Drones
  • Boost arrows
  • Turbo walls: The player must be using the turbo to be able to cross safely.
  • Switches: to activate/deactivate floors, gates, ramps...
  • Jump pads: If the player pushes the trick button he will get a boost jump.
  • Speed lights: Not an obstacle, it indicates if the lane which it´s above is free to pass or has an obstacle the player can´t currently pass because of level or anything else. They can be used to make lap 1 easier and then progressively start making them fail.
  • Shield stations: The player has a shield that protects him from environmental damage, but this shield is constantly running out, so he must pass through the shield stations to replenish it. Running out of shield will make him loose speed gradually.

Themes
Testing track
Cloud city
Dome/Stadium
Space
Wasteland

Useful Links

The Pure Advantage: Advanced Racing Game AI

40+ Fantastic Game Development Tutorials From Across the Web

Lenticular game Design

 Tools for Game Design 

The Chemistry of Game Design

Game Career Guide

 Critical-Gaming: Game Design 101

 mrBossDesign

Super Mario Bros. 3 Level Design

Game Design Forum (great in-depth SMW analysis)




lunes, 24 de agosto de 2015

Car Customization

Cars have different skills:

  1. Acceleration: How fast it accelerates and how slowly it looses speed after a turbo.
  2. Max Speed: Maximum speed attainable in every level. Care must be taken so it is in a certain range. This way levels can be designed with accesible paths for different speeds.
  3. Boost jump: How high the player can jump in every level.
  4. Agility: Lighter cars will perform tricks faster. 
  5. Style: Cars with high style will get more points when performing tricks, but the imput windows will be more demanding.
  6. Endurance: High endurance allows for faster recoveries after crashes and less speed loss dues to obstacles.


Cars are composed of 3 parts:

  1. Frame: Affects max speed and agility positively, boost jump and endurance negatively.
  2. Engine: Affects acceleration and endurance positively, max speed and style negatively.
  3. Stabilizers: Affects boost jump and style positively, accceleration and agility negatively.

Each individual part will also have an unlockable perk:

  • Trick booster: Yields more points when doing tricks.
  • Zero boost: Start the race with a turbo token.
  • Experienced: Start the race at level 1, but rising the level will require more points.
  • Safe pass: Lower the requirement of color obstacles by 1 level. Rising the level will require more points.


domingo, 23 de agosto de 2015

Turbo System

When landing after performing tricks the player will get an instant turbo. Turbos have 3 characteristics:

  1. turboSpeedIncrement: The increment of the current speed. This is applied instantly. It is always the same.
  2. turboDuration: The time the speed will be maintained at the max turbo speed.
  3. turboDecceleration: How much the speed will drop every frame after turbo duration has passed until the max speed of the currentSpeedLevel is attained.

turboSpeedIncrement and turboDecceleration are constants. However, turboDuration is directly proportional to the trickPoints achieved before landing. It is calculated with the following formula:
 turboDuration = (trickPoints/scale)*turboDurationMax;

scale has to be defined once the trick point system is balanced.

sábado, 22 de agosto de 2015

Track Design I

Main concepts
Each track will introduce one main mechanic. They may also introduce other secondary mechanics or use mechanics shown in previous tracks.
Tracks are divided in 4 main parts:

  1. Intro: The new mechanic is introduced in a safe environment. The player can experiment with it with little or no penalization. There will always be a starting safe zone to help build up speed.
  2. Challenge: Some challenge is presented with the new mechanic.
  3. Crysis: A different element is used in combination with the main mechanic. If the new element hasn´t appeared before, this part will be divided in 2 so the player has a chance to test the new element safely.
  4. Conclusion: The player´s abbility with the main mechanic will be put to test with a final challenge. There will always be a final zone free of obstacles just before the goal with special signaling to help with final overtakings.

The player must complete 3 laps to finish the race. The track will change slightly in every lap, rising the difficulty and requiring more speed to overcome obstacles. This can be done with colored obstacles.

Main mechanics
Ramps
Bouncers
Gates
Speed lines
Drones
Boost arrows
Turbo walls
Switches: to activate/deactivate floors, gates, ramps...
Jump pads


Track 1 - Trickster

  • Main mechanic: Ramps.
  • Secondary  mechanic: Red floor.
  • Description: The first track of the game. The player will learn to use ramps, boosted jumps and to change lanes.
  • Parts:
    • Intro: All the starting zone will be divided in separated lanes that don´t allow z-movement. The player will watch 2 opponents on different lanes. One of them just advances normally while the other performs repeated spins. After a while they will come to a ramp, the first one will jump normally while the second one will perform a spin and then make a boost jump. Then the player will come to a ramp so he can try to boost jump himself. After this first jump, all lanes will come together so Z-Movement becomes possible.
    • Long ramps will occupy all the lanes so the player is forced to use them.
    • Challenge: Ramps will become narrower, so the player must change lanes to take them.
    • Crysis: Red floors will appear, so the player must change lanes to avoid them. Some opponents will spinJump over them to guide the player. Then, Red floors taking all lanes will appear so the player must use ramps to jump over them.
    • Conclusion: Long red floors with very narrow and short ramps. Boost jumps are necessary to jump over the red floors. Few ramps to take.
  • Variations: In each lap the area covered by red floors will grow. There is also a superior level at some parts that can only be reached after boost jumping with enough speed and that will allow for higher jumps.
  • Notes: Allow for long parts with no ramps so the player can see the changes in speed after landing tricks.



martes, 18 de agosto de 2015

Trick System (II)

1st Input -> L1 trick (TB not allowed).
2nd Input -> L1 Trick (TB not allowed)
3rd Input:
 if TB->L2 trick
 else->L3 trick
4th Input:
 if lastTrick was L2{
  if TB->L1 trick with the not used input
  else->L3 trick
 }else (lastTrick was L3){
  if TB->L2 trick removing the oldest input of the last L3 trick
  else->L3 trick removing the oldest input of the last L3 trick
 }



Instead of basing the system in inputs, it´s better to base it in trick levels:
  • Direction = L1 trick  X
  • L1+Direction = L1 if tricks.Count == 1 X
  • L1+Direction = L3 if tricks.Count>1.
  • L1+TB = L2 if tricks.Count > 1
  • L2+Direction = L3
  • L2+TB = L1 with unused input->Resets trick chain completely
  • L3+Direction = L3 removing oldest input
  • L3+TB = L2 removing oldest input
We´ll need:
trickInputs = To keep track of inputs
trickLevels = To keep track of trick levels
Maximum size will be 2, so every time a new trick is performed all the lists are shifted one position and the data of the oldest trick is deleted.



viernes, 14 de agosto de 2015

Trick System Implementation

Performing tricks

Performing the first trick
Player must be in air. Depending on how this state is reached, there are 3 options:
  • Boost Jump: player boost jumped by pressing Trick just before leaving the ground. In this case the trickInputWindow timer will start the moment the Trick button is pushed before jumping and only a direction input must be supplied. 
  • Normal Jump/Fall: player jumps normally or falls from a cliff without jumping. The player must press the Trick button to start the trickinputWindow counter and then input a direction before the counter reaches 0.
 The 3rd option will be discussed on it´s own alongside the concepts of Chains, Links and Perfect Links.

Consecutive tricks: Chains, Link and Perfect Links
Just as the first trick ends, counter trickChain is set to trickChainMax. The user has to press the trick button before trickChain reaches 0 to perform a different trick. If the counter reaches 0 with no input no penalty will be applied, but the player will have lost the chance to score more points. Also, once the Trick button is pressed the counter trickInputWindow will be set to trickInputWindowMax and start counting: if it reaches 0 the same as for trickChain will happen. This creates the concepts of Links and Chains:
  • Chains: Chains are tricks that are performed in the same jump with no restrictions.
  • Links: If the player presses the Trick button at the correct moment as the previous trick is ending (trickChain > trickLink, set trickInputWindow=trickInputWindowMax) and inputs a direction the player will perform a Link instead of a Chain. The next trick will be performed faster and rack up more points.
  • Perfect Link: The same as Links, but the time window is much more narrower. The next trick will receive an ever bigger boost (score as well).
Pressing the trick button during a trick will not register.

Examples
TB+R=FlipF(L1)->TB+R=FlipF(L1)->TB+TB=Double FlipF (L2)
TB+R=FlipF(L1)->TB+R=FlipF(L1)->TB+U=Double FlipFSpin(L3)
TB+R=FlipF(L1)->TB+R=FlipF(L1)->TB+TB=DoubleFlipF(L2)->TB+U=Double FlipFSpin(L3)

 Implementation

stDrive: exitingRamp
if (trickJustPressed){
  trickInputWindow = trickInputWindowMax;
  trickLink = 0;
}

stJump

if (trickInputWindow > 0) LaunchTrick();
else if (trickJustPressed){
 trickInputWindow = trickInputWindowMax;
 LaunchTrick();//This allows simultaneous presses of TB+Direction
}

LaunchTrick
if (tricks.Count < 2){
 if (rightJustPressed) StartTrick(trickNFlipF);
 else if (...)
}else{
 if (rightJustpressed){
  if (tricks(tricks.Count-2) == trickNFlipF){
   if (tricks(tricks.Count-1))==trickNFlipF) StartTrick(trickNTripleFlipF);
   else if (tricks(tricks.Count-1))==trickNSpin) StartTrick(trickNDoubleFlipFSpin);
   }else if...
  }
 }
}

StartTrick(int newTrick)

trickInputWindow = 0;
currentTrick = newTrick;
tricks.Add(currentTrick);




switch (newTrick){
case trickNFlipF:
 trickTurns[axisZ] =  1;
 trickSpeed[axisZ] = -1;//Set speed according to Chain, Link or PerfectLink
break;

}


EndTrick()
currentTrick = -1;
trickChain = trickChainMax;


jueves, 13 de agosto de 2015

Trick System

Description
The player can perform tricks when in the air. Some conditions apply:
The trick button must have been pressed recently. This starts a counter during which the game will listen for inputs to determine which trick to perform. If the counter ends without input there´s no penalty.
If the player jumps using a ramp he can press the trick button to get a jump boost and automatically start the trick window. This allows to launch tricks earlier in the air.
Tricks are executed in level order.

Option 1: Each trick being an evolution of the previous one:
  • Trick button+Left=Flip Backwards (Lvl1) -> TB+Down=RollFlip Backwards (Lvl2) -> TB+Up=Total Rotation (Lvl3).

Option 2: Each trick input is independent:
  • TB + Left = Flip Backwards (Lvl1)->TB+Left,Down = RollFlip Backwards (Lvl2) -> TB+Left, Down, Up=Total Rotation (Lvl3).

Option 1 allows for simpler controls, but doesn´t enforce variety and there are much fewer possible combinations. For example, to do a Triple Flip B the only possible sequence is L, L, L. It forces the player to plan ahead the tricks and makes it so after a Lvl3 trick only other Lvl3 tricks can be performed.
Option 2 has more complex inputs but gives more freedom to the player, as any combination can be made, even lower level tricks can be performed after a Lvl3 trick has been done. It will also allow to make longer jumps and rise the requirements to Lvl3 tricks to something like Lvl1+Lvl2+Lvl2->Lvl3.

Seeing as in the air the player can´t move and the only possible inputs are turbo (not required) and trick button (for landing, already using it to perform tricks), Option 2 seems better. Special attention must be paid to the time it takes to execute the tricks so the player can make the necessary inputs.

Option 3: Each trick is an evolution of the ones before it:
  • TB+Left=Flip B (Lvl1)->TB+Up=Spin(Lvl1)->TB+TB=SpinFlip B (Lvl2)
  • TB+Left=Flip B (Lvl1)->TB+Up=Spin(Lvl1)->TB+Down=Total Rotation (Lvl3)
  • TB+Left=Flip B (Lvl1)->TB+Up=Spin(Lvl1)->TB+TB=SpinFlip B (Lvl2)->TB+Down=Total Rotation (Lvl3)
This way combinations like Lvl1->Lvl1->Lvl2, Lvl1->Lvl1->Lvl3, Lvl1->Lvl1->Lvl2->Lvl3 can be done.This gives more flexibility as after performing 2 level 1 tricks the player can opt to go for a Lvl2 trick or a longer Lvl3 trick, while maintaining the inputs simple. At the same time, the player must plan ahead the trick inputs to reach the desired Lvl3 trick. After reaching Lvl3 the first input is discarded, so the player can do a Lvl2 or Lvl3 trick:
  • TB+Left=Flip B->TB+Up=Spin->TB+TB=SpinFlip B->TB+Down=Total Rotation->TB+TB=TotalRotation-Flip B= RollSpin (Lvl2)
  • TB+Left=Flip B->TB+Up=Spin->TB+TB=SpinFlip B->TB+Down=Total Rotation->TB+UP=TotalRotation-Flip B+Spin=DoubleSpinRoll (Lvl3)->TB+TB=DoubleSpinRoll-Spin=SpinRoll(Lvl2)->TB+TB=SpinRoll-Roll = DoubleSpin(Lvl2, we add another spin to create a level 2 trick).

 In this case the difference between Lvl2 and Lvl3 tricks must be very big because Lvl3 tricks become accessible at the same time as Lvl2 tricks.
Level 1 tricks can also be executed:
  • TB+Left=Flip B->TB+Up=Spin->TB=SpinFlip B->TB+Down=Total Rotation->TB+TB=TotalRotation-Flip B-Spin=Roll (Lvl1)
From there the whole chain can start again.
A safety timer must be set after the first TB so it doesn´t execute a Lvl2 trick instead.

Option3 has easy inputs, allows multiple combinations, has flexibility but at the same time requires a bit of planning to reach the desired Lvl3 trick.

Implementation
List<int> tricks = new List<int>();
List<int> inputs = new List<int>();
const int inpRight=0, inpUp=1, inpLeft=2, inpDown=3, inpTrick=4;

if (trickEnable){
 if (rightJustPressed){
  inputs.Add(inpRight);
  trickEnable = false;
 }else if (upJustPressed){
  inputs.Add(inpUp);
  tricEnable = false;
}else...

}




miércoles, 12 de agosto de 2015

Development Route

Basic navigation
  • Driving forward.
  • Climbing ramps: allow for turbo jump at the end.
  • Descending slopes: no cliffs.
  • Transitions.
  • Falling down if there´s no floor.
  • Z movement: check after moving in x, y and apply restrictions.
  • Power spin: restrict z movement while powerspinning.
  • Jump.
  • Turbo

Tricks

  • Trick level system: player must perform tricks in order: Level1->level1->Level2 or Level 3->Level2 or Level3.
  • Trick inputs: create trick chart and define inputs and available combinations.
  • Level 1 tricks.
  • Successful landing: update speed level gauge and turbo.
  • Speed gauge UI.
  • Failed landing: crash state.
  • Level 2 and 3 tricks.
  • Trick chains: if Trick button is pressed at the correct moment the next trick will be faster and more points will be given.
  • Trick checklist: keep track of performed tricks.
  • Full turbo system
  • Recovery: after crashing the player will bounce off the floor turning with no control and loosing speed (and one speed level). If the trick button is pressed just as he touches the ground in a bounce, the car will instantly recover and switch to the Drive state. 
  • Height Detection: When in the air, show the height relative to the landing point so the player can estimate the time he´ll be in the air and if it´s possible to launch more tricks. It can be done in 2 ways: showing a line downwards with the current height to the landing point (maybe use color to indicate the allowed trick level) or by a simple gizmo on the speed UI and /or car (for example in the stabilizers) that shows which levels are allowed. Another option is zooming out the camera so the player can always see where he is going to land, so he can decide by himself. It must be tested to see if the zoom isn´t too much though.
Extended test track
  • Adjust speeds, jump heights, jump boosts, trick speeds, turbo boosts, camera zoom...

Basic car model 
  • Create a car model with 3 parts and different materials in each part.
  • Modify car colors in runtime with the speed level.

Sample track
  • Complete sample track with 3 laps. Identify best methods in Blender to triplicate the track.
  • Start sequence: countdown & starting boost.
  • Lap counter.
  • Time counter.
  • Lap variations.
  • End scene.
  • UI overhaul.
Basic obstacles 1
  • Slowing down terrain: 
    • Implement terrain type detection
Polish 1
  • Add FX to touching an obstacle when trying to change lane.
  • FX when boost jumping.
  • FX when jumping.
  • Polish car trail renderer.
  • FX when crashing.
  • Camera zoom relative to speed.
  • Trick UI effects when landing, crashing, gaining a level... 
Basic obstacles 2
  • Color coded obstacles
  • Jump pads
  • Speed gates

Track selection screen
  • Global score.
  • Scene transitions: set spawn variables.
  • Simple scene transition effect. 
  • Scene transitions 2: return to selection screen after race, update score.
Speed lines
  • stSpeedLine: create new state.
  • Apply multiplier and speed, hold score until landing on the ground.
  • Side Jumps: boost multiplier and speed, hold score,  roll on X.

 Bouncer
  • Bouncers are in fact Speed Gates that force you to use the trick button in the correct moment.
  • Boost speed gauge and get instant turbo if powerspinning, crash otherwise.
  • Boosted jump if landing on top and trick pressed (apply multiplier, hold score), small bounce otherwise.
AI
  • Create first opponents.
  • Routes or waypoints?
  • Rubberbanding.