Thursday, 25 January 2018

Third Person Shooter: Development 1 - Building a Level & Cameras

Today I made a start on my third person shooter project. I'm in the process of block mapping a quick level for the player to run and jump around in. Here I can make a start on figuring out how the player should move around in both Haste Style and Strike Style.




Along with that the cameras for both haste and strike style are set in place. Pressing the right shoulder button on a controller will activate style change. Upon switching styles the camera will locate to the appropriate position.

Haste Style

Right now the camera is positioned a decent distance away from the player. They have full manual control with the right analog stick and I changed the default sensitivity so the camera moves a little faster. The camera also auto adjusts dependent on the players movement so they don't have to worry about camera control all the time during gameplay.


Strike Style

During strike style the camera moves closer and the aiming crosshair will appear (crosshair not yet shown). Clicking down the right thumbstick on a controller will switch which shoulder the camera is positioned on. This can be used as a preference for people who are left handed as well as allow players to look around corners on either side of the player.

When changing to Strike Style the camera will assume this position, the crosshair will appear in the centre of the screen when I get to adding it in. The camera defaults to being positioned on the right side of the player.

Clicking the right thumbstick changes which shoulder the camera is positioned on. Players can switch for preference as well as situational points where the player wants a different vantage point or to see around a corner.
That's all for today, tomorrow I'll further block map the level and make a start on getting the player's movement and mechanics working during Haste Style.

Wednesday, 24 January 2018

Third Person Shooter Idea Generation

Today was spent brainstorming about what features I would like to include in the shooter I'm creating. I've written it all down into a notebook but I'll type it all out here and show what I came up with.

Story/Main Character/Context

While not super important for the gameplay I thought about what the context would be for needing to shoot enemies. A playable character could be scrambled together too based on the context of the game, their environments and what they are capable of.

#1 You play as a secret military creation. A being created by humans using an mysterious alien energy resource. You were created to become the ultimate weapon, a perfect foot soldier, a one man army. Using your various alien techniques, abilities and your large arsenal of weapons you charge into battle to combat the invading monsters, who have taken over various continents of the planet. With the guidance of your human creators you must liberate continents by completing missions such as destroying the monsters army resources, or killing their army commanders.

#2 A run of the mill pizza delivery guy gets hit by a meteorite during a meteor shower and is crushed to death. In the afterlife he is given an opportunity to be revived by an unknown voice in the darkness of death. The voice grants the guy life, along with divine powers and weapons but with a cost. He must be revived cursed. The curse functions as a ticking time bomb, once time runs out, or the hero falls in battle, the world will be destroyed. In order to prevent this from happening, the hero must obey the voice's every command. Completing missions and tasks in different worlds until the voice is satisfied.

#3 The hero in this story is an alien child. Humans invade his planet and enslave his race. His mother is taken away from him and it's up to the hero to get her back. After escaping his captors he steals their tech and uses it against them in order to save his mother and take back his home planet.

I think out of those I prefer the first one the most. Seems like I could have an easier time to manifest a cool character design from the backstory, create enemy monsters and will be able to use the human companions as guides or a way to incorporate dialog or NPC interactions.

Main Gameplay Features

Haste Style & Strike Style: The player will be able to seamlessly transform between these two styles of gameplay with the press of a button.

Haste Style will focus on enhancing the player's movement abilities, when this style is active the player will change appearance and the camera will zoom out to allow the player to see more of their surroundings. The player will have increased movement speed, and have various movement abilities such as jumping, double jumping, sliding, wall running & jumping, aerial slamming, and gliding. Along with this they will gain access to quicker melee attacks that they can combat enemies with. In this style the player will NOT be able to shoot. When in Haste style the players crosshair will disappear. Players must rely on their melee attacks during haste style to deal damage, however while quicker and able to chain attacks together, melee attacks won't deal as much damage as shooting.

Strike Style will focus on enhancing the players shooting and combat abilities. When strike is activated the player will change appearance different to haste style, the camera will zoom in just a little away from over the shoulder and a crosshair will appear to allow precise aiming. Strike style allows the player to shoot many different shots depending on how they are moving, for example they shoot normally while the shoot button is held down, however performing actions such as directional dodge rolls, dashes and temporary lock-ons will cause your weapon to fire different kinds of shots. Charge shots, dash shots, and homing shots are a few examples which will have different properties and damage outputs from one another. When strike style is activated the player will not be able to jump, and they won't move as fast as they do in haste style.

Different Weapon Types

I want to make multiple weapon types to allow for different combat styles. Each weapon will have a "type" and will control and fire differently from one another. All weapons will be able to shoot projectiles as well as be used for melee attacks.

Some ideas for weapon types:

Pulse Hands 
Arm Cannons 
Mind Turrets 
Magic Lances 
Potions/Grenades
Elemental Fists 
Blaster Blades 
Virtual Mallets 
Chain Sticks 
Claws
Laser Daggers

I won't be able to make all of these but I'll pick out some favorites/ones I could do some cool stuff with.

Weapons don't need to reload. 

They will have different fire rates, properties, and damage outputs from one another.

Some will be better for ranged attacks, some will be better for melee attacks, or some will be all round decent at both.

Weapons may or may not have ammunition, I'm still deciding on this. On one hand I want players to be able to not have to worry about ammo and let them be able to run and gun, but at the same time if there were ammunition it could be used to encourage the player to use different weapons when on low ammo with one weapon type. I think I'm leaning more towards having ammunition.

Exploration Pickups/Items/Power-ups

Players will be able to explore the levels, upon finding a secret area or a place of interest they will usually be rewarded with items that will help them during gameplay. Some examples of possible pickups and items include:

Health Pickups 
Armor Pickups 
Ammo Pickups (Maybe) 
Weapon Upgrades
Temporary Damage Buff Power-up
Temporary Speed Buff Power-up 
Temporary Invulnerability Power-up 

Along with pickups you could locate usable items which will become mapped to an item button once picked up. Items will have a number of uses until disappearing.

Gamma Pushback: A shockwave that blasts away nearby enemies as well as poisoning them, slowly draining their health for a short amount of time.

Cyclone Trap: A portable tornado that sucks enemies towards it, immobilizing them and allowing yourself a clear shot.

Guardian Swords: Spiritual swords surround and spin around the player, protecting them from enemies and dealing damage to anyone that gets close.

Regen Talisman: Slowly regenerates health for a short amount of time once activated

Death Clown: Summon the legendary death clown, which causes enemies to cease fire and run away in fear.

Possible Scoring System?

While not absolutely necessary there could be a points system where the player is rewarded points for attacking and defeating enemies, collecting items and completing the level in a fast enough time. Points could be used to promote replay-ability for high scores and also increase player satisfaction by rewarding players with points when performing certain actions in game.

Goal of the Game / Win & Lose Conditions

The "win" conditions of the game will be to successfully complete the level(s). I would like the end of a level to be finished with a boss fight as I've never done one before.

The loss condition would be to simply die by having your health fully deplete. The game will however have checkpoints, allowing you to restart after you die. (If I include the scoring system the player will lose points upon dying)

and that's it for today's brainstorming.

Plan of Action

No time for dilly dallying, I'm gonna begin work on making the game straight away. Tomorrow I will create the Unreal Engine project file and get to work on creating the first prototype. I will show my development on here at the end of the day.

Tuesday, 23 January 2018

MA Semester 2 Preparation - Third Person Shooter

For semester 2 I would like to make a Third Person Shooter game with an emphasis on fast paced, dynamic combat with multiple different types of weapons and an advanced movement system that will allow the player to approach combat situations in many ways. I have wanted to make a shooter for a really long time and I'm glad I'm finally doing one.

Why a shooter?

My main reason for wanting to create a shooter is due to my love/hate relationship with playing them. Shooters are an extremely over saturated genre nowadays and while I do enjoy a handful of them a large portion usually rely on cover mechanics. I hate cover mechanics. Combined with auto regenerating healing you've served up a delicious combo for a slow paced game where players are forced to wait behind cover until their health has regenerated, only to do it again and again until finally all the enemies have been defeated. Cover mechanics promote inactivity. Doing nothing isn't gameplay. 


Shown above: Max Payne 3 introduced cover mechanics to the franchise to bring it more aline with modern shooters. While received well by critics, many fans of the franchise believed it ruined the more "run and gun" nature of the Max Payne games and created a slower game flow compared to the original Max Payne games.

This semesters goal is to create a shooter that is constantly active. The player will always be doing something, whether that is performing an action such as shooting, dodging enemy fire or jumping around the environment.

A couple of key areas that I want to focus on are:

Gameplay Design/Play testing - As always my biggest focus will be on the gameplay. I want to create new mechanics I haven't done before and make them fun for the player. I also want to create weapons that feel good to use. Through play testing I will determine what players like or dislike about the gameplay and make changes with the feedback I receive. While we are on the topic, play testing is a key word here. With StarKid I did have a lot of people test my game, but I only had two play tests. That's not enough, with each play test I made changes to the game that made it play better. Imagine how good it could be if I did more. So expect to see a lot more feedback blog posts this semester.

Level Design -  I want the players to be able to forge their own game flow by allowing them multiple ways to approach and tackle combat situations. To do this, I will need to carefully design levels and have people play test them, so I can analyse different kinds of players' decision making and make sure no areas of the levels design are not being properly utilized. I also want the levels to have many areas to explore while not in combat, players will be rewarded for their exploration each time they discover a secret area, hidden pathway or shortcut. These rewards will be an incentive for the player to get the most out of a level, extending the time they spend in one level while also building up player satisfaction when they do find secrets.

Animation - I have done two projects where I have animated a character, one for Heart of Copper in third year and recently StarKid for semester 1 of the MA. StarKid showed that I had improved on animation a lot since HoC and I can only further improve the more I do it. This time I would like to animate the playable character again as well as animate some enemies too.

Particle Effects - I have never made a particle effect before, particle effects make a game look more visually appealing as well as make certain gameplay actions more satisfying, such as smoke effects as a character lands from a jump, or the explosion effect from a grenade. Particle effects are a key component to help bolster player satisfaction, this semester I'm going to learn how to make them, which will help further expand my skill set.

Plan of Action

Tomorrow is the first day back and the start of semester 2. My current plan for tomorrow is to continue idea generating and at the end of the day provide a blog post showing what I've come up with.

Thursday, 11 January 2018

MA Semester 1 Submission - StarKid Playthrough & Learning Agreement

Summary
Well the 3D platformer lately named "StarKid" has reached it's final prototype and is ready for video submission. Semester 1 is over and looking back on what I set out to do I believe I accomplished what I decided to do in the end. I wanted to create a 3D platformer in order to further advance my knowledge of the unreal engine, and create an enjoyable gameplay experience focused on Player Movement. My playtesters had a good time playing my game, so mission accomplished. I know there were a lot of things I could do better, and moving onto semester 2 I'm hoping I can further grow and make an even better game.


A highlight of the semester was finding some great game design books. Here are some of my favorites.

Level Up! The Guide to Great Video Game Design by Scott Rogers

Game Design Theory & Practice by Richard Rouse III





















Learning Agreement: 




Video Playthrough Youtube Link

https://www.youtube.com/watch?v=xFE2kUHTT5A

StarKid: Character Development 2: Rigging and Animating "Starkid"

Over Christmas I successfully managed to teach myself how to rig and animate (again) and StarKid is now ready to be placed into the game. The rig isn't perfect, but for someone who has only tried 3D animation once for my 3rd year of uni it's definitely not bad.




Overall I did 32 animations. These were for: 

Collecting an Aeon 
Aerial Attack 
Aerial Attack (Falling) 
Comet Dash 
Crouching 
Crouch Walking 
Dash Jump 
Dash Jump (Falling)
Death Animation for falling into a bottomless pit
Death Animation for dying through loss of health 
Double Jump 
Double Jump (Falling) 
Drill Spike 
Drill Spike Landing Impact 
Grounded Spin Attack 
Homing Attack 
Homing Attack Finisher Pose 
Idle 
Ledge Grab 
Ledge Hang 
Ledge Jump 
Shimmy Left 
Shimmy Right
Running 
Single Jump 
Single Jump (Falling) 
Spin Jump 
Taking Damage 
Triple Jump 
Triple Jump (Falling) 
Walking 

It would take ages to Gif them all so here are a few examples.

Single Jump Animation
Double Jump Animation
Spin Jump Animation - This animation will occur when bouncing on jump pads.
Drill Spike Animation - An Aerial Slam move that sends StarKid shooting towards the ground at high speeds
Death Animation
Next I'm going to hook up StarKids animations to unreal engine and get each animation playing to their relative mechanic. After that it's a case of populating the level with colours so the level looks less...prototypey.

Saturday, 9 December 2017

StarKid: Character Development 1: A quick "Frankenstein" character - Star Kid

Over the Christmas holidays I'd like to quickly get a character modeled, rigged, animated and put in game. If I focus, this could be done within a week. The other day I "Frankenstein'd" a character. I'm no character designer, so I'm not going to waste time on proper character design studies, drawing concept art etc. I'll leave that to people talented in those fields.

I've taken aspects of different characters I like. I took heads, body types, and features from other characters, modeled them and stuck them together to form the shape of a platforming hero.

Star Kid has a star shaped head, a small round body, trademark mascot character gloves and shoes and a crystal wedged into his back. (The crystal will change colour depending on Star Kid's current health)

Here he is at the moment, done in about 2 hours, over Christmas I'll mess around with his design a little more before finalizing him, right now he looks...too much like Sonic. I'll show whatever changes I make on my blog.




StarKid Playtest Feedback Results, Plans of Action & Essays

Quiet week on my blog, I've been working on my literature and contextual essays. Finished the literature one on Friday and I'm currently writing my contextual one.

Verdict: Essays are boring, drain my life force and will to live, can I make games now?

Alongside that, I've pestered enough people to playtest my game (including my grandma, she couldn't play the game at all though, it was worth a shot). I managed to get 16 playtesters to try out my game and each and every one of them gave me fantastic feedback. The game was met with lots of praise, as well as having a fair share of criticisms.

Movement Speed

This was probably the most mixed reviewed aspect of the game by testers. Some testers found the speed was fine and there was nothing wrong with it. Some testers thought the character's running speed felt too slow at first, realized various mechanics could be used to speed through the game environment so it was no longer an issue. So how do I solve this problem of people thinking the game was too slow? The simple solution would be to increase the characters running speed, but then that would devalue the speed gained from other movement mechanics. I think i can speed the character up a little, but definitely not too much. Another possible solution is by having a sprint mechanic, this way players have the choice to run faster, but I would have to someway limit other movement mechanics, as holding down a sprint button could make platforming easier with the added momentum the player would have. It would also have the possibility of making moving around less engaging, as the player will be pressing less buttons and performing a lower amount of different movement techniques to get around the environment. I would like to give the player the choice though.
Plan of Action: Increase movement speed slightly, add a sprint mechanic and maybe add some move limitations while sprinting, but don't take any sort of control away from the player.

Weight & Jumping

When asked how players found the jumping and if the character felt like they had a weight to him, the majority of testers said it was fine, they didn't pick up on any issues. However a few testers said that jumping felt "overpowered". They thought an average jump was too high, which caused them to rarely have an incentive to triple jump, dash jump etc. One tester in particular said the dreaded F word, and I don't mean the swear, I mean the word "floaty". Floaty, to me, is a word you NEVER want to hear associated with a platformer. A game being floaty says to me that the player was waiting too long to land from a jump, which directly effects the pacing of the game. This could also mean that the player didn't feel like they were in control all the time. Which is exactly what I don't want, I want players to feel in control of the character 100% of the time. The only time a platformer should be floaty is if it is used as a gimmick, to change the gameplay up in some way, so for example a space themed level or maybe a hover/glide mechanic. Plan of Action: Decrease single jump height to encourage the player to use other kinds of jumps, change the gravity scale so the player falls a little bit faster. Next playtest I don't want ANYONE to say the F word. 

Dash Cancelling

The dash cancel was a move that was supposed to allow the player to regain some aerial control after dashing as well as provide a little boost for players to extend their jumps with. People really liked this mechanic, they thought it was a quick and fun way to navigate the environment quicker, as well as extend their jumps. Feedback about the actual act of cancelling came into question though. Players thought for a move called dash cancel they should slow down a lot more, as right now the dash cancel sorta just gives the player an extra jump. Due to this, the name of the move was even called to question. Why call it a dash cancel when your aerial mobility isn't being, well...cancelled? These are very good points, so here's what I'm gonna do. Plan of Action: This mechanic is now called "Dash Jumping" after dash jumping they will retain their momentum but with adjustments they will now gain increased aerial control. Dash cancelling is now going to be a separate move with a separate button input. When the player dash cancels they quickly brake in the air and pop themselves up a little bit (imagine the character doing a cool pose too). After dash cancelling they can continue to fall normally or they can press the B button to stomp and get to the ground quickly while also serving as an attack.

Ledge Grab and Shimmy

The ledge grab was probably the most controversial move. Mainly because it was really buggy. Players would find themselves grabbing a ledge and then instantly slipping off due to them mashing the jump button in an attempt to quickly get up the ledge. Another bug was that the player would strangely rotate in specific instances. These bugs popped up pretty early in testing and I managed to fix them before sending the build out again. After those issues were fixed the ledge grab received no complaints. Ledge shimmy speed most people seemed to like, they thought it wasn't too fast or too slow. Two of the testers even wanted the shimmy to be faster. For them, I'll make the shimmying a little bit faster and see how it feels. I personally love fast paced games so shimmying being a tad bit faster is fine by me. Plan of Action: My plan would of been to fix bugs, but I already did this during early testing. Instead, increase the shimmy speed a little for those very impatient players (and me)

Homing Attack

Most players picked up the Sonic influence instantly, but the vast majority said they loved the mechanic anyway. This to me is fine, but how could I make my homing attack stand out a little more than just being a complete rip off. Nothing wrong with using pre existing mechanics, game developers have been doing it for ages, but I want the player to be able to do something MORE. Give them more options to play with, leaving room for emergent behavior during gameplay. Other than that, two bugs popped up early on the game breaking bug was players would homing attack a target but the target would not disappear, causing players to continuously home towards the same target rather than the next one in the chain. The next one was minor, the homing attack prompt (the X button) would appear over a target even when the player was grounded, players can't homing attack when grounded, so the prompt shouldn't show up. I fixed these bugs early on and testing went smoothly from there, no complaints. Plan of Action: Can I do something MORE with this mechanic? Think of new ways the player can use the homing attack, maybe think of homing attack exclusive moves the player can chain into after hitting a target?

Fixed Cameras

Just get rid of them. The vast majority of players thought fixed cameras were fine when smoothly transitioned into to show a certain event (gate opening, exiting an area etc) but when the camera would change to a fixed position it disoriented players and even completely messed up the controls in some specific cases. Plan of Action: Get rid of all fixed cameras that occur during gameplay, keep the ones for cutscenes, points of interest etc. If a level design ever requires a fixed camera perspective, learn how to fix strange controls issue, or redesign level to not incorporate them.

Bugs

Many other kinds of bugs popped up during testing, a few examples being:

Invisible collision allowing players to continue standing in an area a falling platform was even after the platform had fallen.

TECH HANG: Players can get trapped inside the timed gate challenge if the button to release them is pressed while the other button is still active

Double "Try Again" screen: There is a specific area the player can fall into and die, the death screen shows up twice due to the player hitting the kill trigger twice for some reason

Let's not embarrass myself too much now though, there are a couple of other bugs that I was told about I'll be fixing every single one of them. (or at least try to)

That's about it for main concerns and bits of feedback, once i get this blasted essay finished I can go back to working on this and proceed with my plans of action alongside continuing development of the game.

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