Wednesday, 29 November 2017

StarKid Development Update 2: Level Complete & Gathering Feedback

I have been continuing work on my prototype and it is now in a finished state where I'm happy for people to test it. There is about 20-25 minutes of content that players can play around with. Here are some updates on what I've added and changed to the game.

Level Intro Cutscene


Completing Block Map Level

The initial block map for testing has been finished, I've added collectibles, hazards and challenges for the player to complete. So they can explore, and have tasks to complete which will help give them the adequate time they need to get accustomed to controls and get a feel for the game.

Tutorial Sign


In order for players to easily understand what mechanics they have at their disposal I have added a placeholder tutorial sign at the beginning of the game that will tell them how to activate certain moves. It's a very counter-intuitive way to introduce mechanics, however without animations and a tutorial level it can be difficult for players to understand what actions they may be doing. Down the line when I have animations I will create a proper tutorial level which will introduce players to mechanics through gameplay. Tutorial levels should always be done last during development anyway, no point doing a tutorial for a game that may not have all the mechanics implemented yet.

Health/Damage/Death & Checkpoints


As the player takes damage the player's health count goes down and changes colour. When in critical condition (1 health) the health star will beat rapidly. there will also be visual cues on the character as well as an audio cue when the player is on low health.


Players can find heart pickups around the level to replenish their health. If the player's health is already maxed, picking up a heart will reward the player with 5 Novas instead.


This try again screen will appear whenever the player dies. Whether it be by losing all of their health or falling into a death pit. They will respawn at their last activated checkpoint.

Timed Challenge


Clocks ticking! Once you press this button a nearby gate will open, get there before it closes to collect the Aeon inside.


Failing to get there on time will cause the gate to close. You can go back and press the button to try again.

Bouncepads


Now who doesn't like bouncepads am I right? Here we have a bouncepad I can place with adjustable bounce height. Made a very quick mesh of a rotating star for it. 

Bug Fixes

Along with adding new stuff I also fixed a couple of issues, mainly the homing attack and the ledge grab. I will definitely be shown more bugs as I send it out for testing.

Now, onto testing!

I've got my feedback sheet at the ready and I'm currently getting a bunch of people to play the game. After starting today I've got 5 people to play the game and have received some great feedback, but the more the merrier! Just got to pester people now. I will report the results of my feedback here once I have the data. Stay tuned.

Wednesday, 15 November 2017

StarKid Prototype Development Update 1

Just an update on the development of my 3D Platformer prototype. I've been mixing between working on this and working on my essay so this is around 6 days of work.   

A very quick "story" idea for the player character's motivation. You play as a star kid who falls from the sky due to an evil doer opening up a black hole and knocking you away from your constellation. You land on a nearby planet and must find items known as "Aeons" to power you up, increasing your jumping ability in the HUB world. The ultimate goal is to gain enough power to be able to jump back into the sky.

I'll start off with talking about the gameplay mechanics I've implemented to the player character. I'm using the default Unreal Guy for animations right now but I will be creating my own quick character along with animations soon. So some of these may look silly but they work just fine. 

Ground/Air Speed & Auto Adjusting Camera


Basic Movement
First off I messed around with the character movement on the default third person character. The default character starts off with the bare minimum in terms of movement and controls. I've changed a lot of values for the movement such as max movement speed, acceleration, ground & air friction and air control as a few examples. With these changes I believe I've made a good start to creating a character that is fun to control in the air and on the ground, but other people play-testing and giving feedback will determine whether I change it at all. 

Auto Adjusting Camera (Shown in GIF above)
After this the next thing I went onto was the camera system, I'm not sure why I jumped straight to this but I just hate the default unreal camera and wanted to change it pronto. I've made the camera now auto adjust dependent on which way the player is moving while also allowing them full manual control with the right analogue stick.

Types of Jumping, Weight & Gravity


Weight & Gravity
Next we have one of the most important elements of a 3D platformer, jumping. First I messed around with the gravity and max jump height values to get a normal jump height I was satisfied with along with setting a "jump max hold time" to allow the player to jump higher or lower dependant on how long they press the jump button. After messing around with falling speeds I noticed when jumping off a high platform the natural behaviour of gravity causes you to fall faster and faster which I didn't like. So I made it so gravity would be normal during a jump, the player will still fall at a fast speed but after they have fallen for a set amount of time, gravity changes to 0 so the player falls at a constant speed. This feels much better because the player has more control over their aerial movement as they're falling, whilst keeping a sense of weight to the character. Nothing makes a 3D platformer worse than a "floaty" character.

Jump, Double Jump, Triple Jump
Following previously done before practices in games such as Super Mario 64 I've included all sorts of different ways for the player to jump. Shown in the GIF above is straight up Super Mario's "Triple Jump". It functions exactly the same as it does in Mario, if you jump as soon as you land on the ground from another jump, your next jump will be higher (double jump) then if you do it again as you land from a double jump you will perform a triple jump which will give you the maximum height possible from a jump. I wanted the triple jump because it has an almost majestic flow to it that makes jumping feels satisfying as well as providing a skill ceiling for players who can successfully pull off quick triple jumps in succession. I wanted to stay away from a traditional double jump (when the player jumps in mid-air) as I believe this kind of double jump has the potential to trivialise platforming. 

Other types of jumps are performed by chaining other movement mechanics together, I will talk about those kinds of jumps when I get to it.

Crouching, Crawling, Super Jump, Drill Spike & Drill Jump


Crouching
Once you press the left trigger the player character will crouch, when I say crouch right now I mean the collision for the character gets smaller, no animations to go with it right now. 

Crawling
While crouching you can still move around to crawl. You can crawl through tight spaces that you wouldn't be able to go through without crouching. 

Super Jump 
If you press jump while crouching you will "Super Jump" a super jump is a higher jump than a normal or double jump, but not quite as high as a triple jump. However when super jumping your aerial speed won't be as fast due to crouching slowing down your movement speed and you won't be able to gain enough acceleration after the jump. So this move will mostly be used for gaining vertical velocity rather than horizontal. 

Drill Spike (Shown in GIF above)
Next we have a move that I will call the "Drill Spike" this move is performed by pressing the crouch button in midair, the player character boosts them self up a little before crashing straight down at a high speed. (Imagine the animation being the character preparing to spin and then spinning like a drill as they fall) This move will be used as an attack will be be used to defeat enemies, smash objects or weak structures as well as providing the player a means to reach the ground quicker. 

Drill Jump
Lastly the "Drill Jump" will be a jump that the player will perform by jumping as soon as you touch the ground from a Drill Spike. It functions the same as a crouch jump in terms of height, however you will be moving a little faster in the air as well as being an active hitbox allowing you to attack enemies and destroy objects in midair (Animation will be the player flying through the air like a drill) 

Slopes & Momentum


Taking a page out of Sonic the Hedgehog's book is momentum based movement on slopes. Pretty self explanatory, going up slopes will slow the player down a little (emphasis on a LITTLE, higher slow down values annoyed me), whilst going down them the player will speed up. The cool thing about this momentum is that if you jump you will retain your current momentum, so if I were to run down a slope, gain speed and jump I will gain way more distance than I would moving at normal speed.

Comet Dash



Comet Dash
The "Comet Dash" is a move that propels you forward at a high speed while giving you a tiny bit of vertical height. You can use the comet dash on the ground or in the air. While comet dashing you will have very little control over left and right movement and if you crash into a wall while dashing you will bonk into the wall and will be unable to move for a second or two. 

Comet Cancel (Shown in GIF above)
While Comet Dashing you are able to cancel the dash by jumping. This can be used to regain aerial control after dashing forward as well as getting a little more distance from your dash and avoiding bonking into a wall. 

Comet Jump??
I haven't implemented it yet but I want to add another use for this mechanic, I want the player to be able to jump as soon as they land on the floor from a comet dash to be able to perform a jump with a lot of horizontal velocity and speed. 

Ledge Grabbing


Self Explanatory, when you can't quite make a jump but are close enough the player character will grab onto the ledge of the platform. The player can move left and right while hanging, I made sure to make "Ledge Shimmying" quicker than normal as a slow shimmy can really kill the pace of a game and it's also just boring. In terms of how to handle the animation of a quick shimmy, look at this gif on how the game "Darksiders" handles ledge grabbing (Quality is a bit low, but hopefully you get the picture), it's quick and looks cool, I'll be replicating that "run on the wall" kind of motion. 


Homing Attack


Getting this to work was a pain, took me a fair amount of hours to get working properly. The Homing Attack is a move performed in midair after you press the X button. It will be used as a way of attacking enemies as well as enabling players to home in on objects to get past certain challenges and obstacles. I'm detecting if the player is within a certain radius, checking how many radius' the player is in and returning whichever target is closest to the player. After you press X you fly straight towards the object and bounce off of them upon impact. You can chain homing attacks quickly one after another as shown in the GIF above.

Collectables & Mockup HUD 


Novas
I've added a two different types of collectables for the player to collect as a means to reward players for exploration and completing challenges. First up we have "Novas" which serve as a type of currency which will be used to purchase items down the line. I made a quick model for the Nova and made it purple to stand out from the rest of the world (not too hard with a black and white block map) once I add colour to the level I will determine whether I need to change the colour of the Novas or not. I will want them to stand out, attracting players to certain areas to collect them. 

Hud 

You've probably noticed it by now from all the other GIFs but I have a simple Hud at the top left side of the screen. Right now it shows the player how many pickups they have collected. I feel like I need to change the colour of the icons, they blend into the black background a bit too much.

Aeons (Shown in the GIF below)

Aeons are the objective collectables that the player must collect in order to "win" the game. Aeons will usually be rewarded to the player by completing certain objectives or reaching the end of platforming challenges. Aeons can also be discovered through exploration. Upon collecting an Aeon the player character will pose with the Aeon in hand and a text widget will appear showing the title of the Aeon you have discovered. 

Future Aeon Idea (Not implemented yet) 

Your Aeon count will directly impact the players jumping ability in the HUB world. The HUB world will be on a floating island just outside the planet's stratosphere. The gravity will be lower than usual here and the players jump height will be increased for each Aeon collected. The goal being to have enough Aeons to be able to jump back into space and return to your constellation. 



A bit of a long post but that's what I have done so far, current tasks involve finishing building a level for playtesters to play around in, making ways for the player to take damage and die, along with a health indicator on the HUD.

Playtesters will have platforming challenges to complete, places to explore, stuff to collect, all that good stuff. Hoping to have this done by Friday, get some good feedback within the week and make some good changes to the game.

Saturday, 4 November 2017

Research: The Importance of Player Mobility in Games

Have you ever played a game where the player character just felt good to control but you couldn't quite explain why? Or perhaps you've played a game that had amazing visuals but actually playing the game didn't feel right or was frustrating? Chances are you've discovered a good and bad example of a player character's mobility affecting gameplay. In these series of posts I'm going to be looking into the specifics of player/world interaction through a character's movement system, discover how it affects gameplay and what steps I should take to start creating an enjoyable playable character for a 3D platformer.

What is a Player Character?

First of all let's get the definition of a Player Character out of the way. A Player character is an in-game animate character or object that is directly controlled by the player. Every input that the player performs on a controller will cause the player character on screen to react in some way. So for example if a player were to press the A button on a controller, the player character would immediately jump. Or if they pressed the X button, the player character would immediately attack. There is a direct relationship between intent and action.

An in game character that isn't directly controlled by the player is referred to as an NPC (Non-Playable-Character)

In a lot of games there is only one player character, in Spyro the Dragon for PS1
                           you control...well, Spyro the Dragon, and that's it.

Whereas some games may have multiple player characters, Street Fighter V
has over 28 characters for the player to choose from, each with their own unique talents, stats and abilities.
Player Mobility, what is it and why is it important?

To put it simply, player mobility refers to the actions that the player character can perform in game to move around a game's environment. These actions can vary from game genres and can include running, jumping, climbing, rolling, shooting etc.

So why is mobility so important? Can I not just give a character 360 movement, a jump, an attack and call it a day? Absolutely not. Whether you are designing an action, racing, sports or any other type of game, the most significant part of the design is the central character and the intricacies of how they behave to player input. "Whether the character is a real person, a fantasy character, or a vehicle, how the player moves when controlling the "character" is among the most important aspects of most games" - Troy Dunniway

Designing Mobility Around Game Genre

A character's mobility must be determined based on game genre and context. In a platformer game such as Super Mario 64 the player has access to a variety of moves to be able to bounce around the large open ended environments. Jumps, dives and kicks are used for Mario to be able to easily get around the levels, collect important power stars and coins, stomp on enemies and so on, these are the usual kinds of actions you would expect a colourful platform game hero to possess.



Now in the horror, third person shooter Resident Evil 4, movement is a lot more restricted. Players control Leon Kennedy. Moving around is naturally a lot slower and you don't have much control at all over directional movement while running forward. You can only shoot while standing completely still. Due to this more restricted movement style, players are made to adapt to the movement system by learning how to correctly position themselves before aiming and shooting. This can create tense situations where they are surrounded by zombies and they have no easy way to escape or run away. This sense of powerlessness really helps encounters feel nerve-racking and fills moments between them with frightened anticipation.



Now take the two examples of mobility I've just given and swap them around. Mario now has limited movement, it takes him ages to get from one place to another and he can't jump. Moving around levels now doesn't feel as fluid and it's boring. (Although I can imagine shooting Bowser with a shotgun might be funny) Leon Kennedy on the other hand is now able to easily run away from zombies or jump over them and ignore them completely, ruining any sort of threat the monsters in Resident Evil 4 may of had over the player. Both of these games were easily ruined by having player mobility that didn't correlate to the game's world and design.

Making a character feel good to control in a 3D platformer

Making a character feel good to control means a lot of time needs to be put into every aspect of a players movement. Running speed needs to be adjusted, how fast is the character going to be? Where's the line in being too fast or not fast enough? Acceleration and Deceleration are extremely important as these can affect a player's thoughts on their input. When they tilt the analog stick is the character moving at a pace that feels believable but instant? Having a character's acceleration being too low can frustrate players, they may not feel like they are fully in control and this can also affect platforming, especially on small platforms where the player will not have as much room to perform a run up jump.

Interviews with Shigeru Miyamoto, the game designer responsible for the Super Mario games have revealed how he approaches movement in game design. He starts by implementing the most basic feature, running, and makes that fun, then he moves onto jumping, and makes that fun, and by the end of it you have an enjoyable movement system. I'd like to follow Miyamoto's way of designing his games.

To create an enjoyable movement system I will need to look at each individual aspect of a character's movement. For the sake of not making one post too long I'm going to split this case study into different parts. Each part will contain theory and practice on how to make each mechanic in a platformer feel good.

I've started a new project in the Unreal Engine for a 3D platformer, I'm going to play around with a characters movement and make a quick level that players will be able to move around in. Along the way, as mentioned in a previous post, I will get playtesters to provide feedback as I believe it's important that I create a movement system that other players can get behind. Being the designer/developer I will have an easy time getting used to a movement system that might not actually be that good.

References 

Dunniway, T. (2008) Game development essentials : Gameplay mechanics, Clifton Park, NY, Clifton Park, NY : Thomson Delmar Learning.

Rogers, S. (2014) Level up! the guide to great video game design, Hoboken, Hoboken : Wiley. 

Images:
Insomniac Games, Spyro the Dragon
Capcom, Street Fighter V
Nintendo, Super Mario 64
Capcom, Resident Evil 4

Thursday, 2 November 2017

Research: Game Design and Game Designers, what are they?

Before I make a start to researching various design aspects of a platformer I would like to first answer these questions, "What exactly IS Game Design?" and "Who is a Game Designer?". I want to answer these questions as I feel like sometimes the terms "game design" and "game designer" are falsely thrown around, and would like to abbreviate their definitions from my own stand point, as well as provide references from notable game designers to back up certain claims and definitions. Along with this, it can help you, the reader understand what I believe my job role should be as a designer, and take that into account for my future posts.

Game Design & Gameplay

Game Design can be easily explained once you understand what "Gameplay" actually is. Gameplay is a component of any game whether it be a computer game or board game that is not found in any other art form: Interactivity. A game's gameplay is the degree and nature of the interactivity that the game includes. For example, how players are able to interact with a game world and how the game world reacts to the choices the players make.

"Gameplay does not include how the in game world is represented graphically or what game engine is used to render that world. Nor does it include the setting or story line of that game-world. These aesthetic considerations are elements from games that may be shared with other media; they are certainly not what differentiates games from those other media. Gameplay, remember, is what makes our art form unique." Richard Rouse III, in his book, Game Design Theory & Practice


So now we know for certain what gameplay is, what is game design? The definition of game design can be easily explained now we have this information. Game design is the thought process that goes into creating video games that determines the form of the gameplay. A game's design determines what choices a player will make in game, and how those choices will affect the in game world and in turn, affect the player. A game's design determines how a player character moves and controls, how difficult the game will be, what challenges, puzzles and obstacles will stand in the players way and how will the player overcome them. What will the win/loss criteria be for the game? What will go through the players head when they arrive at this part of the level? I could be here all day, to put it in short: A game's design determines every single detail of how the gameplay will function.

The term, "good game design" has now been used in such a variety of contexts that the exact meaning can be difficult to pin down. All game designers seem to have their own definition and theories of game design that they like to follow and use when designing their games. Like music, art and food, "good" game design is almost completely subjective. One designer's theories on how a game should be designed could be entirely different to another designer. The same can be said for the players: one person might think a certain game is a masterpiece and the most enjoyable gaming experience they have ever had; whereas another player might think the same game was a boring, repetitive chore and they never want to touch the game again.



What is a Game Designer?

A lot of people nowadays like to refer to game designers as anyone working on a computer game, whether they be an artist, programmer, writer or producer. This is a very vague way to describe the job title. I prefer a more specific definition: A game designer is the person who creates ideas and rules that comprise a game, and establishes the shape and nature of the gameplay. Indeed, many game designers perform a wide variety of tasks on a project, but their central concern should always be the game design and gameplay.


A game designer must love to play games and should be able to tell the difference between a good and bad game, but most importantly they should be able to communicate why. "It's just amazing" or "because it sucks" are never acceptable answers. Another task that a designer is responsible for is making sure a game is "fun" to play. Designers have different ways of figuring out what is fun about a game, and they will all have different opinions on it. Some designers like to gauge fun from what everyone else likes about games, and designing games around what everyone else wants. Whereas other designers prefer to gauge whether a game is fun or not from their own enjoyment of the experience. An example of a famous designer gauging a game's "fun factor" for themselves is Game Freak's Satoshi Tajiri, responsible for the famous Pokémon series. Whilst designing Pokémon he thought of a game that he himself would want to play, and was inspired by his personal hobby of bug collecting. Pokémon then went on to become a worldwide phenomenon, sold millions of copies, and the series still releases brand new games to this day.

To get another description of what a game designer is, Brenda Romero, an award winning games designer gave a great explanation to what she thinks a game designer is;

"A game designer is the architect in a sense of a game, if a character walks up to an NPC and talks to them and they say things, that's because I told them to do it. If you press the A button on a controller and for some reason it brings up the pause menu, that's because I said that was going to happen. So game designers basically are the architects of play. One of the easiest ways in fact to explain this is to open up a board game and take the rules out, that's my job, I make the rules, I determine how much experience you get when you complete a quest, I determine how much damage an enemy does to you if they hit you with their sword" 

Summary

To conclude, I've given my own thoughts on what Game Design is to me and what I believe my job role as a game designer should entail. Through looking at the thoughts and words of various notable game designers via interviews or books, I believe the information they have provided has justified my definitions and reasoning as well as providing me with some extra insight into what game design is. I also found some very quick, easy definitions of what a game designer's job is, (Thanks Brenda, I'm stealing that board game rule book quote). Hopefully you have enjoyed this outlook to game design, and maybe your own design theory correlates with it, or maybe not. Either way thank you for taking the time to read this research post.

Next up:

Research & Practice: Player character mobility and how it affects gameplay

References

Game Design Theory & Practice Second Edition, Richard Rouse III, Pg 21
Level Up! The Guide to Great Video Game Design, Scott Rogers, Pg 20
Brenda Romero, "What is a Game Designer" https://goo.gl/2ZFXyz