Wednesday, 28 February 2018

Third Person Shooter Development Update 4: Continued Animation

I was sick today, so I decided to continue animating from home. Got a couple of animations done and I'm trying to get some melee attack animations looking right, but I'm having issues making it look good enough.

The animations shown below will be faster in game, I just need to adjust their play rate in Unreal Engine. It's easier for me to do that rather than accommodate animation speed with frames in Maya. So I can keep the frames that make the animation smooth but I can still make the animation faster like I want it.

Double Jump Falling Loop

Strike Style Moving

Strike Style Dashing

Haste Style Aerial Dive

Haste Style Spin Attack

Tuesday, 27 February 2018

Third Person Shooter Development Update 3: Animation

A quick update on animation, I'm working on it but I've had a couple of problems this time, rig problems, model problems and general annoyances with Unreal Engine that are halting progress. But it's been sorted now and I'm now animating the character and putting the animations in engine.

Here are a couple of animations I've done so far.

Idle Animation
The first running animation I did, not happy with it at all though, I decided to try and do it again.
Running Animation (Still not happy with it, it's better than the last one at least, if I find some spare time I'll redo it)
Single Jump Animation
Single Jump Loop Falling Animation
Double Jump Animation
I'm going to carry on animating at home, I can't animate in the studio due to the software on the computers not being updated. While I'm in the studio I'm going to start properly designing the first level of the game. On paper and in unreal engine. That play-test will come soon I swear ;)

Sunday, 18 February 2018

Third Person Shooter Development Update 2: Mechanics, Pause Menu and Preparing for Animation

An update on my current progress, my main focus right now has been to get everything working mechanically in game alongside modelling and rigging a playable character. The quicker I get this done the quicker a playtest can go out. I'm hoping to get the first playtest out by either Wednesday or Friday. But anyway what's been done?

Haste Style & Strike Style Movement & Mechanics

Firstly I started to work on how I think the game should play and how I want the player character to move around the game's environment.

Haste Style

Haste Style & Strike Style have movement speed differences, Haste Style you move a lot quicker and if you hold down the right trigger on a controller you can sprint and move even quicker.

While in Haste Style you can jump and double jump. If you press the B button in mid air you will slam towards the ground, which will be used to break objects and as an attack.
This straight lunge forward will be a mid air punch that will knock enemies away. It will also be used to smash through breakable walls. If you use this move on the ground it will instead be a short ranged punch which you can combo into a 2nd and 3rd punch.
Holding down the left trigger in midair will activate the characters hover boots.
Strike Style

Holding down the right trigger during Strike Style will cause the player to shoot with their weapon, right now this is shown in game as a line trace.
Some target practice to check hit events. When a bullet hits an enemy they will take damage until eventually being defeated

AI


Not dabbled in AI before so as a start I've got some simple AI behavior patterns working that can be used for some enemies.

Chase AI is a pawn that attempts to follow the player wherever they go.
Patrolling AI goes from one target point to another. I can freely customise where the target points are and how many of them there are. In the example above there are only two target points, however I can add more to allow the pawn to patrol a larger area.
I forgot to record footage of it (you can see it in the background of the chase AI GIF) but I also made a random location AI where they randomly move to a spot every 2 seconds within a large area.

Pause Menu

I also added a pause menu to the game that will show certain game stats as well as provide the player with other options such as viewing the level map, checking their equipment, checking item info and quitting the game.

Pause Menu Mockup in Photoshop
Pause Menu in-game


HUD

Lastly I did some HUD work involving getting a working health and armor bar along with the strike style crosshair and the currency counter.






Modelling the Player Character & His Weapon

Along with the unreal engine work I have finished modelling what the player character will look like. He's ready to be rigged and animated.






Here is the gunblade weapon that he will use. 
 And that's everything, now I've got to rig and animate the character, put his animations in game and get the game ready for a quick playtest.

Tuesday, 13 February 2018

Unreal Engine 4 Winter Game Jam 2018 - Cooly's Funky Ride


Just a quick update about what I'm doing right now, my uni work is coming along nicely, I'll have some updates to show soon. However, I recently took part in my first solo game jam that went on from 8th February - 11th February.

I've been wanting to start doing regular game jams for a long time, so I finally caved in and decided to do one. The jam I took part in was the unreal engine winter game jam 2018, where I worked solo to create a game to the given theme "On thin ice". In the end I made a game called "Cooly's Funky Ride"

Cooly's Funky Ride is a short auto runner focused on precise jumps and player decision making. The goal is to reach the portal at the end of the course whilst picking up collectibles along the way to increase your score.

For this project I animated a character again, character animation seems to be something I want to get good at, so the game jam was the perfect opportunity to test how quickly I could model, rig and animate a character.

I'm quite proud of the outcome, the game can be played to completion, there are a bunch of animations to give the character a bit of personality and people that have managed to play the game say that it is addictively challenging and fun.

I'll definitely be doing more game jams in the near future, but right now I'm going to pass out and try and sort out my sleeping pattern. Throughout the 3 days I only got about 10 hours sleep so I'm gonna hibernate now.

Here's a link to the game download, so you can play it if you want:
https://www.dropbox.com/sh/fb68uubrro2blyc/AABM7_icbXM6B7AVzEbP813ia?dl=0

And here is a link to a play-through of the game:
https://www.youtube.com/watch?v=Ff0xNnvpNUM

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.