FMP Production And Practical Skills

Prototype

Starting The Project

The first thing I had to do was create a new construct project, Upon creating a new project on the construct 3 website I was met with the project creation menu in which I entered my project name of “Neo-NightShade” and for the rest I left the options as default however I may end up changing the viewport size at a later date.

Layers

The first thing I did was create all the required layers for this project which can be seen above, After having added the layer I set the parallax of the UI layer to 0 so that it would follow the player throughout the game and for the rest of the layers I left the parallax alone since I didn’t need to change it.

Basic Environment

The first thing I created was a very basic environment for me to test my mechanics in, I created a new dark coloured sprite called platform which I added the solid behaviour to so that my my player or enemies wouldn’t fall through the ground when I add them. I just created a large rectangular platform as well as a smaller rectangular platform with a small gap between them to help me to measure the player jump height .

Basic Player

With a simple environment present I could now create the basic components of my player, I started by making a purple sprite that I named player the reason I chose purple was so that it would stand out and be easy to identify due to my lack of graphics. When choosing the size for this sprite after experimenting with a few different values I settled on 40×40 pixels and would now scale the rest of my prototype around this size. With the sprite itself created I then went about adding the required behaviours which were solid and platform, the solid behaviour is self explanatory however I chose to use the platform behaviour for movement since while I could have used other options such as 8 directional movement platform just made the most sense since it had everything I would require for the players movement built in. By default the platform movement is controlled by the arrow keys but I decided to add some code so that I could use the more traditional controls of A,D and Space for the movement since that’s what I am more used to/comfortable with, with a movement method I was happy with in place I then set upon editing simple elements of the behaviour such as the jump height which I lowered to 400 from 650 since having such a high jump would render the jet boost mechanic less useful and I want the jet boost to be an essential feature I did also consider changing the speed however I found the default speed of 330 was good.

UI

I set up my games UI by adding the two instance variables for both parts of the UI which are the shields and jet fuel, I then went and created two sprites which were both rectangles of 85×18 pixels in size and positioned them on the UI layer in the top left of the screen. All that was left was the code which was I knew off by heart from doing so many times during previous projects, I then tested my UI to make sure it worked in game which it did.

Jet Boost

With the UI for the jet boost created I though it fitting to add my first advanced movement mechanic which I though would be quite easy to do now while it wasn’t hard by any means it was a bit more complicated to get the system working than I had originally though. I started off by creating 2 new booleans for my player which I named jetting and jumping, for the jumping boolean I made it so when space was pressed it was set to true and when space isn’t pressed its set to false. Now that the jumping boolean would activate if the player was jumping I coded it so that if space is held while the jumping boolean is true then the jetting boolean is also set to true, the players jet fuel decreases and the player starts going up which I achieved by using the platform behaviour to set the players Y vector to a negative value so they would go upwards. The code worked as a smaller boost since I had yet to add in the every x seconds condition which I set to every 0.1 seconds since that created a fluent looking boost now that the boost worked as intended I found the fuel value would go into negative so I added another condition of if jet fuel is above 0 so it would stop when the player runs out of fuel. I did find a few problems however as I noticed if that the player go straight to boosting when they jumped which I didn’t want so I had to add another condition which was the player is not on the floor and I also found that the player could move around while boosting which would make my glide mechanic useless so I decided to make the boost a straight upwards one by adding code that disabled the players movement when the jetting boolean was true and then re-enabled the movement when the boolean was false. With the mechanic now working as intoned there were only two things left for me to do with this feature, firstly I added some code that set all the booleans related to the jet boost to false when the player is on the ground and secondly I added code to regenerate the players fuel it works via giving 4 fuel every 0.1 seconds the player is on the ground and the fuel is below 100 which worked as intended with no issues since I have coded regenerating values before.

Glider

With my boost mechanic in place I then moved onto my next movement mechanic of the gliding which I had expected to be the hard part however I was quite wrong since I found it to be very easy to code as I found a way of doing so that only required a single event. Firstly I created a new boolean for the player named gliding that would be set to true when the gliding code was used which I then went back and added into my jet code via adding a condition of not gliding so the player could boost while gliding. With that potential issue fixed I then moved onto created the mechanic itself which I set to hold right click as I felt that would be a good way to activate the glide for now and if I came up with a better control method for it later I could always change it, I also added the condition of is not on the floor so the glide could only activate while the player was in the air. Next I added the action to set the glide boolean to true and used the platform behaviour to set the players Y vector to 0 which slowed the decent in a way that created a glide that lasted around the time frame that I had hoped to achieve. I then tested the mechanic in game and found I couldn’t move when gliding, I remembered this would be due to the jet code that disabled the players movement so in order to fix this I added an action to the glide code that re-activated the players movement which solved the problem and allowed for my glide to function.

Swapping Ranged Attacks

With my players movement done I moved onto combat however before I actually created the attacks I would need a system to swap between the attacks since I wanted the ranged attacks to be the same button. Creating the weapon swap system was very easy to do as I only needed a single boolean and a single line of code, the boolean I added was to swap between the 2 attacks so I named it attack swap and I then added a line of code that meant when the shift key is pressed the boolean is toggled. While that doesn’t do anything on its own but due to the conditions I will give to my attack code this toggle will work as a simple system to alternate between damage and stun attacks.

Ranged Attack

For the combat I created the damage shot first which I did by creating a new sprite which I made purple in colour and 15×15 in size, I then gave it the bullet behavior and left all the values as their default which was a speed of 400 with 0 gravity or acceleration. I then moved onto created the code itself which I first created a simple shoot system via making it so when the player left clicks a damage shot spawns and heads towards the right side of the screen with the basics in place I then added in a cool down to stop the player from being able to spam the attack by adding in a boolean called range attack cool down which is false by default so I then added a condition to the code of is not range attack cool down and added 3 lines of code that set the boolean to true waits half a second and then sets the boolean back to false. Now that the cool down was in place I then added some more conditions to the code which were player is on floor and player is can range attack which were both added so that I could better controls when the player is able to attack to prevent them from being able to do so when they are not meant to. I then tested this mechanic as I believed it to be finished however I found that when the player turret around the bullets would still fire towards the right instead of the left so I added a condition to the code of player is not mirrored and then added an action of set bullet angel of motion to 0 degrees and then I copied the code and set it so the mirrored condition is set to is mirrored and then changing the angel of motion action to 180 degrees which worked meaning that the players attacks would shoot in the direction they were facing.

Ranged Stun

For my stun shot I went through the exact same process as my damage shot however I instead made it so the attack swap condition was set to is true and the stun projectile is spawned instead of the damage projectile.

Melee

I decided to try to create a basic melee system which I did by first creating a new sprite which I made yellow and 30×30 in size that I called melee, next I added some simple code that meant if the player right clicked then the melee sprite is created on the player which required I added a second image point to the player so it would spawn towards the front end of the player. Next I created a new boolean named melee attack cool down which was set to false by default and then similarly to my ranged attack code made it so it is set to false and then 0.2 seconds later it is set to false again, I also added in a condition of melee attack cool down is false which worked as a cool down system however I found 2 issues which were you could do so while boosting/gliding so I added a condition of player is on floor to prevent the that and that you could do ranged attacks while doing a melee attack so I added in some code which disabled the players ability to do so by enabling and disabling the range attack cooldown variable.

Player Shield

With the combat mechanics in place I then decided to add the code to my player health using the variable I created for the UI in advance, The first health related thing I added was the shield packs which would replenish the players shield when collected which was easy to make as I just created a new sprite which I called shield pack and then coded it so that when the player collides with it 25 shield is added to the players shield count. I then thought that instead of just replenishing the shield it would add to the max total so I added a new variable to the player called shield total and then had the shield packs add to the shield total. With the pack added I then added a line of the code that meant if the players shield value went above the shield total then the shield is set to the total to prevent the player from gaining more shield than they should, I also added the code so when the player runs out of shield the the game restarts. Lastly I coded the shield recharge which is how the player regains shield after taking damage by adding 2 shield every 0.1 seconds if the player has less than their total shield however I then realized than with this code the player would regain shield while in combat so I then added another boolean to the player which I named hit and then added as a condition to the shield regain code so that it would only activate when the boolean is set to false.

Henchmen

The first enemy I created was my standard henchmen, I started by creating a 38×38 sized sprite since 38×38 is slightly smaller than my player character and gave it the required behaviours of platform, flash, line of sight and destroy outside of layout plus I also added the variable of 50 health and the booleans of movement toggle,stunned and can shoot. I also created the henchmen projectile via just cloning the players projectile to save me a bit of time making a new one, since I now had the projectile in place I moved onto coding the shooting which I did by making it so if the enemy could see the player then they create a henchmen projectile which is then shot towards the players direction via a set angel action with the core shooting code created I then added the condition of every 2 seconds so the enemy wouldn’t spawn way too many projectiles plus I also added another condition of is not stunned. Another part of my enemy I had to create was the health and dying which I did by adding in code for the damage/stun projectile hitting the enemy would damage the enemy and destroy the projectile, for the damage shot I made it deal 25 damage while the stun only did 5 however it did also set the stun boolean to true for 2 seconds which would stop the enemy from attacking so now that my enemy could take damage I added a line of code that meant if the enemies health went below 0 they are destroyed. I coded the damage in for the enemy projectiles by making it so when the projectile hits the player 10 damage is dealt the player is made to flash for 1.2 seconds and the hit boolean in set to true for 5 seconds to stop the health from just regenerating, I also added a condition of is not flashing so it gives the player a brief movement after being hit to avoid the next projectile. Next I wanted to created the melee system so I made it so when the melee sprite hits the enemy 40 damage is dealt and also added 2 sub events which meant that if the player was to the left of the enemy when they are hit then the enemy is knocked back towards the right and is made to flash for 1 second, I also did the same so if the player was to the right of the enemy then they are knocked left and flash for 1 second the flash was because I added a condition to the code so that it would only work if the enemy was not flashing this was to stop the player from just spamming melee since it deals the most damage. The last system I needed for my henchmen was the movement which I did by creating a new sprite which I named hench move swap and is 80×80 in size, I then added code so when the enemies hit them the movement toggle boolean is toggled which would then activate the code I added that meant if the boolean was true they move left but if its false then they move right however I also added a condition of doesn’t have line of sight to the player so when they spot the player they stand still to shoot at them.

Brute

Next I created my brute which I did by cloning my henchmen related stuff to save me time on creating the sprite and adding the variables/booleans since it was mostly the same as my henchmen except that I changed a few values such as increasing the health from 50 to 120, doubling the damage done to the player by making it 20 and I also added a new line of the code that meant if the player hit the brute while they were stunned then the player deals 40 damage rather than 25. When setting the values for the brute I wanted to create an enemy more that was notably stronger than the standard henchmen so that they would be a more challenging enemy type for players to face, I made use of my production research into enemy balance to help me figure out how powerful the brutes should be when compared to the other enemies and players.

Sniper

Once again since my sniper would share mostly the same elements as my other enemies I started via cloning my henchmen related stuff however I removed the toggle movement behaviour since my snipers would be stationary, I also changed the health from 50 to 75 since should be stronger than the normal henchmen but not as strong in health as brutes since they make up for it in damage because for the damage code I made the sniper deal 60 damage to the player and I also made it so that the projectile bounces off walls for 4 seconds too so the player has to watch for that which I did via enabling the bounce off solids option in the behaviour on the projectile. When setting the values for the sniper I wanted to create an enemy more that acted in a different way to my other enemies as the sniper is more of a long range glass cannon enemy that can deal quite high damage but are easy to take out/avoid as long as the player doesn’t ignore them, I made use of my production research into enemy balance to help me figure out how powerful they should be when compared to the other enemies and players.

Shield Walls And Shield Generators

While I wanted to give the player a good amount of freedom with the movement I found that I wanted a system in place to stop the player from being able to just skip the actual level and go straight to the boss fight so I came up with the idea of splitting my level into 3 areas cut off via a shield each of which still are quite open to give the player some freedom in exploration however the player must destroy the generator in that area to lower the shield first. The creation of this feature was very easy to create as I only need two new sprites for the shield and the generator which I then cloned twice so I would have 3 of each, I then placed the shields at roughly equal distances in the level and put the generators in off the main path areas. With the sprites in place I then gave the shields the solid behavior so the player couldn’t walk through them, I then added the code to destroy the shields which was once again easy to do as it was just making it so when the players stun attack hits the generator the shield associated with that generator is destroyed. Currently the generator is also destroyed but that is just to show that the shield is down to player while I have no graphics implemented as for the finished game I intend to have the generators swapped to a new damaged visual to communicate the success to the player.

Boss

Before creating my boss I created his projectile which is a 920×20 pixels sprite which due to its size will cover the entire boss room and will serve as the bosses primary attack For creating my boss I similarly to my previous enemies cloned my standard henchmen and just changed some values such as putting the health to 300 plus making the line of sight behaviour ignore solids, I also copied the attack code but made some changes such as putting the timer to every 3 seconds when not stunned and making the boss spawn a boss laser that stays on screen for 3 seconds however the boss also spawned a brute projectile every 1 second to attack the player. I also copied some code for the boss to attack when stunned which I coded to occur when the bosses health goes below 100 to act as a final phase, this code makes the boss spawn 3 boss lasers over a 10 second period that all stay on screen to act as a sort of final attack. I also added the code for the laser to damage the player by making it so when the player is overlapping the laser 1 health is taken away and the players boolean is set to true for 1 second before being set to disabled so the player can regeneration their health, I also added the code for the player to attack the boss so that when the player damage projectile hits the boss then the boss loses 25 health.

Grey Boxed Environment

With my mechanics in place I started to create my gameplay environment however after only adding in the first area in my level design I immediately realised that with the way I have created my movement that my level design plan wouldn’t play that well so I decided to try creating something more suited for how I had created my movement, I started small with just the starting area and quickly found this new environment to be a lot better than my previous one so I kept going while making sure to take careful consideration into how far the player can glide or boost as well as my pacing plan as while this new level would change the pace I still wanted to keep a good balance between my 2 gameplay types so that I didn’t have too many enemies or too many platforming sections. Due to me leaning more into the exploration part of my design focus it did mean that the pace was harder for me to control however I believe I still kept a moderate balance despite this freedom I gave to the player via the level design, In order to help me control the pace I did add some environmental shields that split the level into 4 areas to help me have some control over the pace so players couldn’t just rush to the boss fight. When creating the first area I wanted a more enclosed environment for the player to learn the basic mechanics of the game compared to my 2nd and 3rd area which I made more open due to the inclusion of the sniper enemy since they are more deadly in such an environment, lastly for the boss arena I wanted a small arena that focused on the players movement hence the small room with 2 pits and a few platforms being what I settled on. Overall I am very happy with how this turned out as my new environment plays really well and I believe that it makes a good use of all my mechanics present in my game.

Menu

Creating my main menu was very easy to do as all I had do was create a new layout which I named menu, on this new empty layout I added in some text which I then made say start and added a line of code so that when it is clicked the player is taken to the game.

Updated Production Schedule

Above is my updated production schedule, I have managed to complete all elements of my prototype while sticking to my schedule despite how some parts of the creation process were not as easy as I had initially though when making my schedule such as the jet boost. Due to following my schedule closely I have not had to scrap any mechanics due to being overly ambitious and now have a good amount of time to spend on the other areas of my game, with my prototype finished I will now be moving onto graphics which I hope will not put me behind on my schedule as its the only part of the project I am concerned about since its what I consider to be my weakest area.

Prototype Feedback

I received some feedback about my prototype which given me valuable information of my audiences views on my product, firstly I found that people enjoyed both the movement and combat mechanics present which was good to hear since I put a lot of effort into creating these systems. Negatives wise it was mainly about how its unclear about what to do which I expected due to the lack of audio in which is how I am going to explain mechanics to the player but these feedback enforced the importance of this to me since without my game is quite unclear on the players objectives and how to fully utilize the mechanics. Bugs wise there was only 1 found which was good as I had worked hard to stamp out any issues I had found so my game would be quite a polished experience, the issue found was that the player was able to shoot through the shield barriers as I forgot to add the code to destroy the players projectile upon colliding with the barriers so I immediately went and fixed this issue since it was a very easy to fix problem. Overall this has been very useful to me and I cannot wait to receive more feedback when I have my graphics implemented.

Left Handed Control Scheme

In response to my feedback I added a left handed control scheme which rebound the movement and weapon switch to the arrow keys, I made use of a global boolean which is toggled via clicking the toggle controls text on the main menu and depending on if the boolean is true or false it will disable the opposite control method as I added conditions to my already existing control scheme. I also copied my existing control scheme but made the condition of is right handed to false and swapped the key is down to the arrow keys from WASD/space. This was easy to create as it was mostly copied code however such a simple addition will help to make my game a lot more accessible.

Controls Scheme

With the multiple control scheme I cloned my menu and added some new text that state each control scheme, I also had to add the code to get to this menu and go back to the main menu which was very easy for me to do but this small addition will really help to raise the overall quality of my product since it will help players to better understand the game.

Graphics

Player

Above is my final design for my player, while there were 2 other designs I prepared from my production art I choice this one since I realised I would find it way too difficulty to animate the other designs due to their levels of detail and cape so I instead chose this design which I do still like a lot but it just wouldn’t have been my first choice if I had the time plus skill to attempt another of my designs. I did make some changes to the design to simplify it such as removing the purple emblem in the middle of the chest and I also removed the belt since I didn’t like how it looked, I once again started with the outline which took a me quite a while to get right since I found it really hard to convey the stance I was going for. Once I had the outline I made use of the fill tool to make the design solid black, I then tried to add the details from my production art but decided against it as I preferred the simpler design and it would be less things to worry about when animating my player. The last thing I added was the eyes and mouth which took a couple of attempts to get right as I found it challenging to find a good position for them that didn’t look bad, eventually I found a good position for them which I really liked and with that the design was done however I did go back and improve certain parts of the outline that were a bit too rough. Overall I am very happy with how this design turned out as despite the changes I made from my production art variant I believe I still managed to capture the core design really well and even prefer this new design to the one in the production art.

Player Animations

During the process of creating the animations for my player I ended up further making some more changes to the design which were removing the mouth as I found I preferred it like that and then removing the spikes on the arms since I was having difficulties adding them onto the running animation, during the process of creating my animations I did struggle a fair bit since animation is definitely my weakest area since I find it quite hard to make fluid looking movement for humanoid designs however I tried my best to create something that looked good and it seems to have payed off since I am very happy with how my animations turned out. The first animation I made was the run animation which was certainly the most complex animation to create due to having the most frames out of all my animations which is also why it took the longest for me to produce, I wanted an exaggerated run for my player which I achieved via having vastly different key areas of movement for each of the frames of the animation since by only animating the key movements the players brain fills in the gaps and it creates a smooth run animation. My other animations were a lot simpler such as the glide which was only a single frame which still took a few attempts to get right but was significantly easier than the run animation since I only wanted a still frame of the player with the wings out and I didn’t really know what to do with the legs so I just had them sort of dangle which I ended up liked, another very simple single frame animation was the punch animation as I just took the players idle stance and make it so he put 1 of his arms out in a punch motion. The boost animation was relatively simple with only 2 frames needed for it as I just had the player character look upwards and spread the wingsuit and I added some flames to the bottom of their feet for the jets which I added some detail to via using different colours for the flames, for the other frame of the animation I just had the flame sizes swap between each foot to make it look like each flame was growing and shrinking in size as the player is boosting which was nice little effect that I really liked. My jump animation I made 4 frames however it says on 1 animation frame for 2 frames to emphasise that piece of movement I made it so the player characters legs were in a position so it looked like they had just pushed up heavily with their legs for the jump and moved the arms downward, then for the other frame I had it so they moved their arms back out and raised their legs into a sort of jump pose for 2 frames before going back to the original jump frame since I found that it also worked as a falling frame due to how I had posed it which saved me the trouble of creating another frame. Lastly I animated my players death in which I just wanted a basic animation of the player falling onto their back which I did in 4 frames by making the first frame be the player starting to tip backwards, the 2nd frame be the player falling in an exaggerated manor in the air rotated 90 degrees anti-clockwise, the 3rd frame be the player on the ground with their legs up for exaggeration and lastly for the 4th frame the player laying motionless on the ground. Once I had the animations complete I exported them from piskel as a sprite sheet and then imported them into construct as a sprite sheet into each of the different animations I had already put on the player sprite. Overall I am very happy with how my animation turned out as all of them look quite good plus the exaggeration of the players run and death turned out really well as I believe it adds a nice bit of charm to those 2 animations in particular, I am glad to see the progress I have made in my animation skills as while it did take me a lot more time than usual to create these and it has set me behind a little bit the effort and time have clearly paid off since these are the best animations I have ever created however while unneeded I am disappointed that I don’t have enough time to create an animation for my player throwing their projectiles as if I had more time it would be one of the first things I do.

Player Projectile

When creating my player projectile I first when with the shuriken design seen in my production art which I found really easily to make since its such a basic shape however while trying to animate the spinning I found that since this design is symmetrical that if I were to animate it spinning then it would be a bit more complicated than just making use of the rotation tool as that only turns things in 90 degree intervals which means you cannot see any movement which is why I ended up not going with this design, while I am not using this I am still happy with how it turned out as it translated really well from my production art.

Due to my first design not working due to my oversite about animating it I ended up going with another of my designs from my production art, similarly this was a very simple shape so I found it easy to create and adapt from the production art. Unlike my last design this is not symmetrical so I just used to rotation tool to make 4 animation frames of the projectile spinning. With the design complete I exported it from piskel and imported it into construct as a sprite sheet with 2 rows plus 2 columns as this would import all 4 frames of the animation. Once again I am very happy with how this design turned out and while the spinning is very simple it does add a lot to the visual of the player throwing the projectile.

After importing the animation into construct I did so a second time for my other variant of the player projectile which acts as an electrical stun so I just changed the purple on the design into a sort of dark blue to reflect this and it similarly sticks out from the rest of the environment at a good level.

Henchmen

Above is a failed design for my basic henchmen, when translating the design from my production art to the final design I just didn’t like how this one turned out as it just didn’t feel futuristic to me since during the process of creating this design I found myself to be making the design look too militaristic without realising. I also didn’t like how the gun turned out as once it just didn’t look right to me which further contributed to why I scrapped this design, despite not using it and while it doesn’t fit with that my goals were for my henchmen I do feel it is still a pretty good design just not in the sense of what I was going for plus it was still some good practice.

Above is the final design for my standard henchmen, I started with a basic outline which took my quite a few attempt to finally get something I was happy with since I found starting the sprite to be the hardest part since once I have the outline down I find the details to be easier to create. Once I had created the outline I then started adding in the details starting with the gun which I decided to make a solid grey and then add the red lines onto as while in my production art the gun is more detailed with black parts breaking up the grey I found it difficulty to achieve that due to the small size of the gun so I instead settled for just solid grey, I then moved onto the helmet plus the shoulders which I made use of the fill tool for since I needed them to be solid black and then went back to add the grey visor in afterwards which I managed to get right on my first attempt since it was a simple detail to add. My production art of my henchmen was quite a simple design so there wasn’t all that much detail to add so for the rest of the design I just used the fill tool to make the required area the required colour such as the arms being dark grey or the legs being solid black, for the chest I made it solid dark grey and then went over it in black to create the stripe down the middle of the torso. Overall I am really happy with how this design turned out since it translated near perfectly from my production art to my final design since the only thing that I had to change was losing some of the detail on the gun which is something that the player won’t really be looking at anyway so its not even that big of a deal that I had to get rid off it and I hope to do as well for the rest of my enemy designs.

Brute

Due to time constraints I decided to re-use the outline I had made for my standard henchmen for my brute since it would have taken me way too long to make a new outline so I instead added the details of the brute onto the outline of the henchmen which I think worked really well, despite the change in body shape due to re-using the outline I still made sure to stick as close to my production art as possible during this creation process however some changes did have to be made. For starters the gun was changed in its colour balance as while I got the lines very accurate to the production art I found it difficulty to add in the further colour details due to its small size, another change made was to the top half of the amour as I had to get rid of the arm amour under the shoulder armour since I struggled to make it not blend into either the gun or shoulder and lastly the chest was changed since I removed some detail from it such as the light grey collar type detail under the neck as well as raising the the light grey patches up to the shoulders. Despite the changes that I made I still think that I translated the design quite well and am very happy with the finished product, while some of the detail was lost I still feel it is suffencently detailed and fits with the amount of detail present on my henchmen.

Sniper

Above is a failed design for my sniper enemy, once gain I found that when translating the design from the production art to the final design I just sort of lost the whole feel of the design I was going for despite this there isn’t anything I hate about the design it just doesn’t look right to me. While I didn’t use this design it was till enjoyable to create and severed as some practice for sprite creation.

Once again due to time constraints I decided to re-use the outline I had made for my standard henchmen and put the details of my sniper seen on my production onto the design since I knew it would take me way too long to make a new outline which once again I believe worked really well, I used the production art as a good baseline however some changes were made to the design due to new ideas I had during the creation process aswell as due to the change in size due to me using the same outline as my henchmen. Firstly I extended the gun a bit at the top as well as made the lines more detailed towards the front since I found that I didn’t like just having a small single line so I thickened it as well as added some sort of spikes on each side which I believe look really good, other than the gun the rest of the design stays mostly the same besides some minor changes such as making the shoulder armour a bit bigger which also made the light grey area a bit smaller too and the whole detailed chest amour was shrunk too since it was designed for a much larger area. Despite the changes made I still think that I managed to translate my design really well and am very happy with how this turned out since it fits in with the rest of my enemies really well.

Boss

Above is the sprite for my boss, I started with the outline which I wanted to be a sort of floating pose which took a few attempts to get right since I struggled with getting the legs to look right. With the outline complete I then moved onto adding in detail which I did starting from the head which was easy to do as it was just solid black for the top of the design, it did take a few attempts for me to get the eyes right since I either got the positioning or size wrong but eventually I found something that I liked so I stuck with that. For the rest of the design I coloured it dark grey and then went over it with black lines like that of my production art, I tried different amount of space between the lines before I settled on 4 pixels between them. The last thing I did was add the jet boost flames to the legs and right hand I wanted it to be consistant with his beam attack so I used the same shade of red for the flames, I did try to add some detail by adding some other shades of red into the flames but I found that I didn’t like how it looked so I stuck with a solid colour with the simple shape of the flames. With the main design down I wanted to create a new design for when he is defeated which I did by adding some red lines similar to that seen on the enemies weapons to the bosses armour however after several attempts at different patterns I couldn’t find anything I liked so I instead just removed the flames since the boss is going to fall into a hole for its death. Overall I am very pleased with how this turned out since the design translated very well from my production art and I believe that I achieved my goal of creating a menacing looking enemy for the boss.

Collectable

Above is my collectable design that I made using piskel, I wanted to create a rather simple sci-fi looking battery/power core type design to it. Unlike some of my other graphics I didn’t have a piece of production art to go off so I instead used my visual references I gathered during my research to help me create this asset, I made use of a dark colour scheme for the outer shell of the core to fit with the dark colours present on my enemies and for the inner part of the core I used purple with a darker shade of purple for the outer part since I found looked pretty good and for the middle of the core I decided to add a white square to break up the purple. I did also create a simple animation for this graphic in which the purple would connect with each other in the middle before in-connecting again however in the end I didn’t like this and decided to scrap the idea, Overall I am very happy with how my collectable design looks since I feel it fits with the rest of my games style and looks like what I was aiming to create.

Generator

Above is my generator, for this design I went with a very generic sci-fi computer look with a dark colour scheme made up of different shades of grey and for the screen I went with red to stand out from the grey as well as the environment. It took me a while to get the shape of the generator to what I wanted it to be like however once I got the shape down I found adding the detail to be quite easy to do, since the design was made up of a lot of different shades of grey I found that I needed to put a lot of thought into the colour balance of the design so that the colours didn’t blend together as that would ruin the detail of the design. For the red screen I also made use of a few different shades of red since having it be a solid red didn’t look that good so I made use of having some darker reds in there as well. With the primary generator design created I then moved onto the disabled generator design which was very easy to create as I had a solid idea for what I wanted to do for this design, I started via making the generator screen a light blue and from there I then added a series of lines of the same light blue go around the generator while connecting to either the screen, other lines or the outer edge of the generator which gave the desired effect and would look different enough from the functioning design that players would be able to know that they disabled the generator. Since this graphic has 2 states I had to add another animation which I named disabled and put the disabled generator graphic into I then added the code so that when the generator is attacked by the player the animation is changed to the disabled animation which swaps the graphic.

Enemy Projectiles

Above is my henchmen’s projectile for this design I had reference images available to make use of which vastly helped me in coming up with this design, I went with a traditional simple laser beam look for this design which is why its just a red line as red being the primary colour makes it stand out from the environment and is a traditional colour for lasers plus red in games typically have negative connotations to them. Overall while this design is very basic I like how it looks since its not something the player is going to be able to get a good look at so I don’t need a lot of detail.

Above is my brutes’s projectile for this design I had reference images available to make use of which vastly helped me in coming up with this design, I went with a rather traditional/stereotypical laser blast look compared to the laser beam look I went with for my henchmen hence the shape of the laser as it would also mean that it would be easy to identify the difference for players and the choice in red was once again since it was a traditional colour for lasers plus it helps to show that its bad since the colour red typically has negative connotations to it. I made the outer part of the laser a lighter red than that of the middle to add a bit of detail to it, I made the middle of the laser white to stand out even more to players and sometimes lasers in some media have a white part in the middle so I tried that on my own design and ended up really liking it plus it helps to make it stand out compared to my standard henchmen’s lasers.

Above is the projectile I made for my sniper enemy, while I wanted to stick to the traditional laser look for the general design I wanted it to be considerably distinguishable so I tried to make something that was a bit bigger than that of my previous projectiles since this projectile deals significant damage so it should catch the players attention since its something of such importance. I started the design similarly to my henchmen’s laser with just a simple line and I then made the head of the laser a lot bigger than the rest of it since that is the part that would hit the player, I also added a bit more width to some of the laser to give it a less smooth shape so that it would have a more destabilized look to it to help show how its more powerful than my previous enemies lasers. Since I was happy with the shape of the laser I then started to add a bit of detail to it via making use of the darken tool so that it was made up of different shades of red to further add to the destabilized look of it and to also make it stand out even more from the environment as well as the other lasers that may be on screen. I am very happy with how my final design turned out as I believed I achieved everything that I wanted to do with this design.

Above is the laser beam for my boss’ attack, since this was going to be a solid beam I decided to start via copying the henchmen laser and tripling its size since this was going to be a lot larger. I wanted to keep this design simple but needed a way to make if different from the standard henchmen laser other than just its size so I added a white line down the middle of the laser which I though looked good and the white would also help make the laser more visually distinct as well.

Background

When creating my the sky for my background I decided to make use of my production art as I believe I captured exactly what I wanted when creating the production art, using it as a starting ground I then made some small changes here and there in order to make it a little less rough in some places as well as fixing a few mistakes that I had made in such as how sometimes there were small bits of the wrong purple that were not noticeable from a-far however due to how close this would be to the player they would become notable more visible so I had to fix these mistakes. Due to using my production art this was a quick and easy thing to complete, due to the size at which I made this background I had to make some changes to the parallax value of the background layer as I changed it to 0%x90% as this meant that x value wise it would stay consistent but y-value wise it would move a good amount when the player was going between the top, bottom or middle areas of my game which created a nice effect as I found value lower than 90 didn’t look at good.

With the sky element of my background complete I then moved onto creating the buildings, when creating these I made sure to stick to a simple design with little detail to compliment my background as well as due to how it would also lengthen the process of creating these sprites. I looked at how I did my buildings in my previous platformer which were also very simple in their design and despite how different they fundamentally looked I did find it helpful to do so, I started by creating a basic building shape outline then I added a bit of detail to the outline by adding in some slants as I found that helped with the futuristic look of the designs and lastly I would add the detail to the building itself in the form of some blue glass windows. I had a set colour scheme for my buildings which I had also used in my production art, I used this colour scheme to make some recolours of the designs I created to further add some more diversity to the background as while I only had 2 colours for the windows I had 4 options for the actual colour of the building which gave me a lot of options when creating the recoloured designs. I found creating these sprites to be really fun as I had a good idea of what I wanted to create due to my production art as well as the many references I had which meant that I found it easy to create designs that fit with my vision for the finished background.

With the assets themselves created and imported into construct I then went about creating the background, I did so by putting the buildings on 3 different layers which affected the distance they would be from the player via the use of the layers parallax value which went up from 10%x100%, 50%x100% and 80%x100%. When placing the buildings on each layer I made sure to try and not put the same building too close to each other to prevent the background from getting repetitive, while I didn’t have a plan for their placement I found the general rule of thumb previously stated helped to me to create something that I was more than happy with as I am very pleased with how my completed background looks as the parallax adds a lot of life to the background and looks even better than I first thought.

Menu

Due to some technical issues I was unable to access piskel so I opted to use construct 3’s inbuilt sprite editor to create the visor of my main menu, creating the visor outline was very easy since I had a good idea of what I wanted to do for this design so I got the core design down very quickly and ended up spending most of my time evening out the edges as well as making sure the visor was centered. With the shape created I then made another sprite which was just a solid purple box which I gave an opacity of 50% and then put on the layer below the visor to add the purple tint to the visor.

UI

For my games UI I ended up sticking with the solid coloured bars for the health/jet boost however I did add a black border to them, I also added a non-functional player projectile to the UI to show which the player currently had equipped as well as the text for the pause screen and the dialogue in advance for those mechanics. I also made a version of the boss and player which were just heads which I will use to indicate who is talking for the dialogue which were easy to make since I just had to remove the body from my already existing sprites for both the player and boss.

Graphics Feedback

I once more received some feedback about my game about my game which has further confirmed that what I have being doing has been successful as once more people have been really positive about the gameplay which was good to hear as I had made a few changes to the balance of my enemies and made some small changes to my level design, negatives wise it was once more mainly the lack of clarity due to my lack of audio however one player did mention that they found the no movement while boosting to be a bit restricting and that they didn’t like that which is a fair suggestion so I will be implementing slight movement while boosting. Bugs wise there was nothing found which was good as I had worked hard to stamp out any issues I had found so my game would be quite a polished experience, overall this has been very useful to me and I cannot wait to receive more feedback when I have my audio implemented so that I can peoples thoughts on the finished product.

Improving The Jetboost

Making the suggested change was easy as all I did was swap out the disable movement inputs action to changing the players max speed, I tried a few different values before settling on 15 as I found anything lower to be just not worth adding but anything that was notably higher would decrease the usefulness of the glide ability so I stuck with 15 as it is a good middle ground that doesn’t feel useless but doesn’t affect the usefulness of the glide.

Fixing Melee

I had some issues with the melee animation causing the player to float significantly which was a a big problem as it was very noiticable, it took a while but eventually with a bit of help I found the issue was the origin point for the punch animation frame was way too high hence why the player started floating.

Animation Code

In order to get the animations working in game I mainly just adding an action of set animation to the required animation for that mechanic however for the idle and run animation I did have to create some new code, the code I made was that if the player is on the ground while not moving it would activate the idle animation however I did also have to add a few conditions to the code to stop it from activating when the player was punching or dead. I did something quite similar for the run code as I made it so that if the player was on the ground and moving that the run animation is activated and once more I had to add a few conditions to make sure it wouldn’t activate when the player was doing another animation while moving.

Creating A Pause

After finishing the animation code I found myself in a coding mood so I made use of this motivation to create a simple pause system making use of a boolean that is toggled when the player hits R and when the boolean is false the game is paused plus some text on the UI appears that says paused but when the boolean is true the game is unpaused and the text dissappears.

Fonts

To finish off my graphics I decided to get a custom font to fit with my games theme, I found several cyberpunk fonts that I could use and it came between 2 that I really liked however I found that ingame my prefered font made some words hard to read so I instead opted for the other font since it was more easily legable.

Chaning Enemy Movement

Since I have decided to cut the enemy walk animtion due to time constraints I had to make it so the player would never see the enemies move which was a simple thing to do as I only had to add a condition to the enemy move code for isn’t on screen, while not ideal this means I can keep my this code in the game while not having the animations.

Updated Production Schedule

Above is my updated production schedule, unfortunately I am a bit behind as I should have made a good start into sound by now however due to my graphics taking longer than expected I have not managed to start implementing sound. I was able to get all the important elements of graphics complete which is good as I was worried I wouldn’t have the time to do so since I started to struggle a bit when it came to the player and enemies however I was able to get it all done in the end, I did have to cut a few corners such as not having an animation for the player throwing their projectile or the enemies walking but the lack of the projectile animation is not a big deal and I changed the code to make it so enemies don’t move when on screen so the player never see’s them move so I no longer need an animation. Despite having to start late I am confident that I will be able to complete all my required sounds in time, hopefully I will be able to do so since the more time I have left for my presentation the better.

Graphics Feedback

I once again received some feedback with the graphics and animations now finished, from this feedback I have once again received positive news about my games graphics as people really like the simplistic designs for my player and enemies as well as my animations which was a surprise as usually my animations are not really that good, suggestions wise somebody said that it was hard to know where to go which is the point since one of my design pillars was exploration and another suggestion was that the UI is a bit hard to understand at first which is something that had skipped my mind so I was try to add something to explain the UI to the player in order to fix this issue however they did also say it was hard to notice due to being at the top left corner but that is typically the location of UI in a platformer plus I made sure to use bright colours on a dark background to draw the players attention so I don’t really know what change I can make to make it more noticeable . Bugs wise once again there was nothing found which was nice to see since had worked hard to fix any issues I had found so my game would be quite a polished experience, overall this has been very useful to me since I now know that my graphics are up to scratch and can make the needed improvements.

UI Clarity

After some feedback about now how it can be hard to tell what my games UI means I included a labeled diagram in my controls menu so that players can see what each part of the UI means. While only a small changes this will help my game be easier to understand which is an important element since people are not going to enjoy the game if they don’t understand it.

Audio

Collecting Sounds

For most of my audio I made use of a free online sound library called freesound.org which is also what I made use of for my audio during previous projects since I find it to be a good source for finding the sound effects I require, I managed to find every sound effect I needed after quite some time of searching through many different sound effects until I found something that I really liked however in some cases I had to settle for something near to what I wanted since I was unable to find something that was exactly like what I had in mind. Something I kept in mind while finding my audio was the file type since wav file are preferable since they tend have better audio quality and luckily most of the sounds I liked did use the wav format however a few didn’t such as my menu music or melee hit sound which was to be expected, some of my audio not being a wav file didn’t really affect anything all that much since they were still of very good quality it just would have been better had they been a wav file instead. Gathering my sounds did about as long as I expected it too since I had given myself some breaks during this process since listening to different sound effects for a prolonged period of time can get a bet monotonous but I still managed to gather all my audio in a good amount of time. Overall the collection process went really well and I encountered no real issues finding the sound effects I need, I am very pleased with the sounds I found and believe that they will all fit perfectly into my game.

Implementing Sound

Importing The Audio

Once I had all the audio I needed collected I imported them into construct, construct has 2 folders for audio by default which are sounds and music so I imported each piece of audio I got into their respective folder. For my games sound effects I was considering adding some sub-folders to better organize them however due to my naming conventions I didn’t really think it would be too necessary since I wasn’t having any trouble finding the sound effect I needed.

Music

The first piece of audio I set up was the music for both the main menu and gameplay, the menu music I had found was a rather calming cyberpunk track that was a 2 minute loop and I immediately really liked it so I decided to use that for the menu music since it would fit so well and for the gameplay music I found a few different cyberpunk action tracks that I liked but I eventually picked a favourite. The code to make the menu music play required new code since I wanted it to keep playing between the main menu and the controls menu so I had to make some new code as well as a new global boolean which I named menus that is true by default then I made the new code of if the boolean is true while the menu music is not player then on the start of the layout the menu music loops at 75% volume, for the gameplay music I simply went to my start button code and made it so that the menu music is stopped and the menus boolean is set to false then the gameplay music starts playing on a loop at 75% volume. I am very happy with the music that I found for both my menu and gameplay since I find that both of them fit their respective roles amazingly which really helps to give my game some more personality as well as professionalism since having the menu music in place helps to make it seem more like a complete experience.

Player Projectile

For both of my player projectiles I went for a type of “thwoosh” sound for it since that would be the sound it would make as it cut through the air when thrown so the audio I used was a “thwoosh” sound made via swinging bamboo which I believe works incredibly well for a powerful throwing sound effect and will help to emphasise the strength of the player character, I went to the code for my players projectiles and adding the code to play the audio as the first action so there would be no delay between seeing the action and the audio playing. I am very happy with how this turned out since this sound effect is perfect for what I imagined for the throwing sound effect since it really captures the speed of the projectile and is a very distinct sound that wont be mistaken for any other sound effect in my game since its so unique.

Player Projectile Swap

The sound effect that I wanted for the weapon swap sound was that of a generic sci-fi sounding beep which gave me a lot of options to pick from but eventually I found one that I really liked, I don’t quite know why I preferred it to my other options but it just felt right to me. I simply went to my weapon swap code and added the action to play the sound effect, compared to my other sounds I had this play at a low volume since the sound was loud by default and I wanted it to be more of a background sound to confirm to the player that they swapped weapon rather than a really important sound that they need to hear. While only a small addition to my games sound library this will still help players with audio enabled to know that they swapped weapons without having to check the UI and I am happy with how it turned out.

Jet Boost

The sound effect that I gathered for my jets was that of a nitro boost which I liked the sound of and while it wasn’t exactly like what I had in mind it was the best I managed to find so I went with it, due to how my boost code worked I needed to make new code for the audio to player since if I added the audio to my pre-existing code then the audio would play as long as space was down. For the new code I made it so that would it only trigger once when true so the audio would play once, the code was if the boost button is down when the players jetting boolean is true then the sound effect is played however due to the audio’s loud nature I had to make it play at half volume or else it is noticeably louder than the rest of my game and then 1.5 seconds later it is stopped via the use of audio tags which is because the sound effect is 2 seconds long however the last 0.5 seconds of the audio is the nitro boost turning off which I didn’t want and while I could have used audacity to just cut off the end of the audio it was a lot quicker to just add 2 more actions to the code. The player can boost for a lot longer than 1.5 seconds however the audio only last that long since I thought that it could get quite annoying hearing the same sound effect so much due to how often the player has to use the jet boost hence why this sound effect is just the jet turning on rather than a constant sound, Overall I am really happy with how this turned out since it sounds really cool which I found helps make the jet boost seem even more fun to use and it helps to show the power of the players jet boost.

Gliding

For the wingsuit deploy sound I was having trouble finding a suitable sound effect until I had the idea of an item pickup sound could work since I remembered some of the pickup sounds that I had found during my horror game project did sound similar to what I was after, after looking through item pickup sounds I eventually found something that was perfect as while it wasn’t intended to be used this way it sounded exactly like a wingsuit being pulled out so I decided to use it. For this sound I needed some new code since if I just put it in my glider code the sound would play forever while the player was gliding which would be deafening so I copied the glide code and added a trigger once condition, I then removed all the actions that made the player glide and swapped it for the audio action to play the deploy sound. I am incredibly pleased with how this sound turned out since I was starting to believe I wouldn’t be able to find a suitable sound effect and that I was going to have to not have a sound for when the player starts gliding.

Low Health

I wanted a sound to signify when the player was low on health and I went with a beeping sound effect since it would catch the players attention which upon reflection I now realised that the idea of it being a beep probably stemmed from the halo series, the beep I found was paced well since the beeps were not too fast or low since too fast would get annoying and too low just wouldn’t really be that good so the beep I picked had a good pace to it. In order to add the sound to my game I had to create some new code which would trigger once if the player had less than 30 health and would play the beep sound effect on loop until the players health went above 30 or they died at which point it would stop. Overall I think this turned out quite fine as while it only a small addition it does help to further inform the player of when their health is dangerously low which saves them from having to stop and look at their health bar during a possibly tense moment.

Player Hit And Death

For my player hit sound I wanted a sci-fi shield impact sound which was very easy to find and I had a lot of options to pick from but eventually I picked out a favourite as I found that I liked how it sounded like an initial impact that is then dissipated throughout the shield however it was way too loud since the player already flashes upon impact to signify damage I didn’t want a loud sound to also play however to fix that issue I simply made it so the action to play the sound only did so at 20% volume, for the player death sound I used the same sound effect but had it play at 50% volume to show that this time the shield had failed and the player is dead. Overall I am very happy with both of these sound effects since the both serve their purpose very well since the impact sound fits with the rest of my game and the low volume means it serves as more of a secondary indicator of the player taken damage with the primary being the flashing, the death sound being louder as well as the animation should indicate to the player that they are dead which was my goal since I wanted the sound effect to once more only act as a secondary indicator.

Melee

For the sound of my player punches I wanted to get 2 sound effects both of which I had a good idea of what I wanted them to sound like, firstly I just wanted a simple swing sound of somebody throwing a punch with no connection sound just the punch breaking through the air and then for the second sound I wanted an impact sound of a punch connecting. Since I had such a good idea of what I wanted I found it easy to locate both the sound effects I needed and both were exactly like what I had in mind which was perfect, I then had to add to my melee code to play the sounds which I did by adding the swing sound effect to the actual melee attack and for the impact sound I put that on the melee damage code so that it would only play when the player successfully hits an enemy. Overall I am very pleased with how these sound effects turned out since it perfectly like what I imagined and these sound effects really help to demonstrate the strength of the players punches which is exactly what I wanted to achieve with this audio.

Collectable

For the collectable sound effect I didn’t have any particular sound in mind other than it would have to sound sci-fi like, after looking through many different sounds I found a sound effect that was meant to be that of a sci-fi door opening however I though that it might work as a good collectable sound and so I decided to try it. I imported the sound intro construct and added onto the collectable code the action to play the sound, I then tested it in game and found that the sound did fit as a collectable sound effect so since I was unable to find anything better after a bit more searching I decided to just stick with that sound effect since I did like it. While there probably was a better option out there I am happy with the sound I decided to use since it fits with the rest of my game and due to its volume which is a bit louder than most of my other sounds it helps to show the importance of my games collectables.

Generator Electrified

For my electrified generator sound effect I had a more vague idea of what I wanted compared to most of my other sound effects as all I had in mind really was a good sounding electric static or a zap type sound, The sound I ended up picking was that of an electrical zap sound that I find sounded like machinery being overloaded which was what I needed for my generator disable sound, with the sound acquired I then added the play audio action to my generator disable code and had it play at half volume since it was quite a loud sound effect. I am very happy with the sound that I found since it is so perfect for what I needed and it alongside the animation should allow players to easily tell that they have disabled the generator.

Enemies Electrified

For the henchmen electrified audio I did consider re-using the sound from the generator at first however I decided against it since I just thought that it wouldn’t really work as well as it did for its original purpose, I wanted a sound that was electrical static since I had already made use of a zap type electric sound for the generator. After looking through a few static sounds I found one which I really liked however it was 9 seconds which was way too long since my stun only lasts a few seconds however I really liked this sound so I decided I would do what I did for a few of my other sound effects by using an audio tag to stop the sound effect after the required time. I went to all my enemy stun code and added the action to play the audio which I had to have play at half volume since it was quite loud and then stop playing when the stun is over, overall I am very happy with this sound effect since it works really well is pretty much how I imagined it to sound plus it is easily distinguishable from that of generator electric sound which was pretty important to me.

Enemy Lasers

For each of my enemies laser sounds I wanted them to sound progressively more powerful as you go through the enemy variations which meant when looking for the sounds I was quite selective with the ones I picked as while I wanted them to the sound to mirror the damage of the laser I also wanted them sound consistent with each other so that the difference between the sounds isn’t too jarring, each of the sounds I gathered for my enemies lasers were all just traditional sci-fi laser sounds that I though they all sounded good and I could hear the difference in strength between them since when collected them I didn’t go in trying to find a sound for a specific enemies laser I just found 3 laser sounds that I liked then listened to them so that I could allocate them to my enemies in order of how powerful they sounded. Once again in order to implement them into my game I simply found my enemy code and added the action to play the required audio onto their shooting code, I am very happy with my enemy laser audio worked out since I achieved what I set out to do with it and I think that it worked wonderfully.

Enemy Hit And Death

For the death sound of my enemies I gathered a few different death grunts to use for my varies enemies, I looked through many sound effects until I found a few that I liked since they were not overexaggerated when compared to most of the other sounds I liked. Since I had gathered 3 different death sounds rather than allocate 1 per enemy I instead decided to use all 3 on each enemy but have it be random which sound played by making use of the choose expression, by doing this it meant that one death sound shouldn’t get repetitive to listen to since each time an enemy dies a random death noise plays. For the enemy hit sound sound I looked through a lot of different impact sounds and while I was unable to find something like what I was after I did settle for something that was relatively similar to what I wanted however it was a bit loud so when I added the action to play the sound I had it play at about 20% volume since I wanted the impact to just be a small sound to confirm that the player has hit an enemy. I am quite happy with the sounds I obtained for my enemy death since they all sound good and help to confirm to the player when they have killed an enemy, the hit sound while not what I wanted it to sound like still serves its purpose pretty well so I am still pleased with how things turned out for gathering these sounds.

Boss Laser

For my boss laser sounds I re-used the brute laser sound for when he shoots the brute lasers at the player since that just made sense, for his own concentrated beam laser I went with something that sounded really powerful like my sniper sound but sounds a bit more focused due to it being a solid beam compared to the unstable blast of the snipers. After looking through many different laser sound effects I eventually find something that was exactly what I was looking for since it met my previously stated goals for the sound, I then once again added the action to play the audio into my boss code which I made play at about 90% of its original volume since it was a little too much on the loud side as I did want it to be loud to further show its power I didn’t want it to be too loud. I am happy with how well my chosen sound fits since it was perfect for what I wanted and really helps to make my boss fight even more intense.

Boss Death

For my boss death I needed a single sound effects which were his jets failing and then his scream as he falls, I simply found a good shutting off sound effect that I liked and so decided to use it. I am very happy with how this sound came out as it is of good quality and is pretty much how I imagined it to sound. While the jets failing sound wasn’t needed per say I felt that it just wouldn’t be the same if the jets silently turned off before the boss falls to his death along side the subtitles. Overall while a small sound effect I am happy with this addition and believe that it adds a lot to the death of my games boss.

Pause

One of the smaller audio additions I made to my game was a simple sound for when the player pauses the game so that players with audio enabled don’t have to check the UI for the pause text plus some games do have a sound for when the player pauses so I though it best that I do the same, I didn’t have anything specific I wanted for this sound so I just ended up looking at pause sound effects until I found something that I liked. The sound that I chose was intended as a pause sound and I though it did that job pretty well so I decided to use it plus it even sounded a little bit sci-fi like so it would fit in with my game, I just added the action to play the sound to my pause code and the sounds volume was already perfect so I left it playing at its default volume. I am happy with the sound I got for my games pause as it just helps to make my game that bit more professional and further helps to cement to the player that they have paused the game.

Menu Select

While another small addition I did collect a sound for when the player hits any of the text on the menus of my game since its a common convention of pretty much all games, I didn’t really have anything in particular in mind when looking for this sound and I ended up picking something that was meant to be a select sound effect because I just liked how it sounded. I then added the play audio action to each bit of my menu related code for selecting anything and since the sounds volume level was already good I left it at its default, while a simple sound effect that is by no means required in my game I am happy with its addition since it just adds a bit more professionalism to my game and makes it feel more like a finished product.

Introduction And Subtitles

Implementing The Subtitles And Introduction System

The last thing I added was the introductions with subtitles, I had already got all the assets required for this feature such as the sprites for the player and boss talking as well as the trigger boxes in place plus the subtitles text on the UI all of which had lay unused since I hadn’t added the code in. The code I used made it so that when the player hit the invisible trigger boxes then the games timescale is set to 0(this pauses the game) and then the player or enemy head sprite appears alongside the dialogue text next then the players scroll to behaviour plus their movement is disabled, then more invisible trigger boxes scroll to behaviour are enabled which then moved the camera to the locations which I want the player to see such as the enemies ahead of them at the start plus the generator and shield preventing them from progressing past the starting area and lastly the players movement and scroll to behaviour are enabled while the trigger boxes are disabled so they cant be used again which leaves the subtitles plus the player or boss icons which are then made invisible again. Some more dialogue/subtitles I did was for my boss for when the player attacks them to inform the player that attacks don’t affect the boss which required some new code for when the players attacks hit the boss that the subtitles would become visible and change to the dialogue with the boss icon present for 2 seconds before disappearing again, there’s also some dialogue/subtitles for when he does his final attack to inform the player that they are nearing the end of the fight as well as subtitles for his death scream which I just added onto the existing code for his final attack. This system was easy to create and will help to introduce the player to my game as well as give them important information, I could have not included subtitles due to the dialogue that plays but some players may be playing without sound so I included subtitles so that they would still be able to understand my game. I also quickly found that these introductions/tutorials got a bit annoying after a few times I made a way to disable them from the main menu if the player choices to do so, all I needed was a new text sprite and a global boolean that I named skip I then coded it so so if the text was clicked the boolean is toggled and when its false the text says that tutorials are disabled and the trigger boxes that start the tutorials are disabled but if the boolean is true then the text says tutorials are enabled and the trigger boxes are then enabled. Overall I am very happy with how this turned out since its a great way to teach players about my game and I really like how the subtitles turned out as I think it helps to add a nice bit of charm to my game by having my protagonist and antagonist have some dialogue.

Updated Production Schedule

Above is my updated production schedule, while I did have to make some changes to my schedule due to starting my audio production later than I had originally intended I still managed to complete my sound before the production deadline which was good since I was a little worried that I would have to go a bit over the deadline in order to finish my games sound. Unfortunately in order to meet that deadline with the limited time I had meant that I did have to scrap the more ambitious parts of my games audio which was the voiced over dialogue for the player and boss as well as the dynamic music system which would change the background music depending on if the player was in combat, platforming or in the boss fight so that the music would better reflect the mood of those 3 different parts of my game. Due to being able to complete my sound by the production deadline I believe that I have left myself with enough time to complete my presentation work as well as my final evaluation of the project to a good level of detail.

13th May 2022-Prototype Reflection

Upon looking back at my prototype phase of my production I am happy with how things went, I managed to stay almost perfectly on schedule as while some areas of my game took longer than expected such as the boost other areas such as the glide were a lot simpler than I first though which is what allowed me be nearly exactly on schedule for most of this phase of production. The brief periods upon when I was ahead of schedule allowed me to create a improved level design than that of my initial plan as my movement mechanics played better than expected meaning a change was required in order to better make use of the mechanics, I also was able to further develop existing areas of my game such as adding in the melee system, the damage bonus on stunned enemies, my improved health system and lastly the generators that split my game into 4 distinct areas. The prototype phase is my favorite part of production so ended up putting a lot of my effort into my games mechanics and level design to make sure I created the best possible experience and doing so I almost always kept my design pillars in mind when making any changes as while I didn’t want to restrict myself with them I wanted to make sure that the changes I made would support the gameplay experience I was trying to create rather than just add an unneeded feature for the sake of having it. My primary focus of pacing was very important to two specific areas of my game with the first being the level design as the size and structure of the level directly impact my games pace which is why I took care when creating my new level, the second area is the balance of my players and enemies strength as how long it took for my player to die or how long the player could boost for as well as how long it took for enemies to die all affect my game pace so I did a lot of self testing in order to make sure theses things didn’t ruin the flow of my game that I had in mind and after a while I found a good balance for everything that created a good flow for my game. As well as self testing I also had other test my game which was quite useful as I got a lot of positive feedback about my games mechanics as players seemed to really enjoy both the movement and combat aspects which acted as confirmation to my design choices, this feedback also highlighted a few bugs that I had not found such as the player being able to shoot through the environmental shields which I was then able to fix. During feedback I asked players about the pace of my game given that that is the primary design focus of my experience and players seemed to generally like the pace as while a few players mentioned some areas were a bit slow paced for them I expected as much as pace is something that is impossible to get right for everyone as everyone has different though on what a good pace is, A few improvements were given however there was nothing I could really act upon as the improvements I received stemmed from some players not liking certain aspects while others did so I couldn’t change those things without then possible ruining it for those who did enjoy that part of the experience.

13th May 2022-Graphics Reflection

Currently I have gotten most of my graphics completed as I have managed to complete all but my enemy walk animations and player related graphics, since I have not yet completed my all of my graphics I am behind my schedule however I intend to work over the weekend which should allow me to get back on schedule for the start of my sound production. While graphics are what I consider to be my weakest area I have given my best during the creation process and am happy with my current results as I believe I have managed to translate my concept art into the final designs quite well and have been consistent with the style of my graphics too which is something that I can struggle with, I have yet to tackle the majority of my animations which is the part of graphics I am worst at so I do worry that I may not be able to make as high quality animations as I intend to however I will try my best in this area despite my concerns but due to time I may have to rush my animations which is something that I don’t like doing but if I have to do so then I will. Gameplay wise I have made a few tweaks with the implementation of my graphics such as enlarging the player projectile as well as adding in a bit of code to allow my current animations to show in game such as my stunned enemy animation, I did find it hard to not continue on the technical side of my game with more mechanics and a more developed level as I enjoy that area of production the most however I made sure not to add anything unneeded as it could cause me to fall even more behind my schedule and I have learnt from my last FMP in which I fell into the trap of continuing on the technical side which caused me to almost fall behind schedule as well as overcomplicate my game with extra mechanics rather than enforce the existing mechanics. Similarly to my prototype phase I received some feedback from others which once again was very positive with players once again mentioning how they liked the gameplay which was nice to hear again however I focused on the feedback about my implemented graphics which when mentioned was held in a positive light which was a relief as I wasn’t completely confident in my games graphical quality, to my surprise only one bug was attention which was that there was a few graphical issues on the lower end of my level as some of the buildings were floating a bit but beyond that nothing was mentioned so it seems my self testing is helping me to create a bug free experience. During my feedback I once again asked about my games pace as I would have asked for more detail about players though of my graphics however I had made some slight changes to some of my enemies and wanted to see if this had affected players views of the pace which it seems they did not as I once more received a lot of positive thoughts about my games pacing, I also again received a few suggestions such as the boosting out of gliding while mid-air had a slight delay but that was a problem with construct itself so there was nothing I could do about that however there was another thing I could act upon as one player mentions the no movement restriction I placed on the jetboost felt a bit too restrictive which I felt was a reasonable suggestion and so I decided to my game so the player could move slightly while boosting however I had to make sure it was still quite restricted as if the player had too much freedom of movement while boosting then the glide mechanic would become a lot less useful for players.

20th May 2022-Graphics Reflection

Currently I have finished my games graphics and have made a solid start on my implementing my sound which should allow me to have my game finished by the start of next week, while I am not that good at creating good looking graphics typically I am quite happy with how they have turned out as I really like how my game looks and I believe this is my best graphical work I have done in any project. I believe that I have managed to create some good quality consistent graphics that have developed from my production art really well as well as how good my animations look due to all the time and effort I put into them which is really nice to see pay off since graphics is usually were the quality of my games drops since I am not the best at managing to create or animate sprites. I have very minimal changes to the actually gameplay of my game beyond a few quality of life changes such as adding in a cyberpunk font for my games text, adding in a simple pause feature and fixing a few issues such as my punch animation floating since I didn’t want to get carried away with adding new features to my game with only a week left till the deadline since they would either be so underdeveloped so they would be useful or I would end up spending more time than I should on new mechanics and end up with not enough time left for my games presentation. I once more received some feedback which was again very positive with players saying good things about both the gameplay and graphics which further confirmed the good quality of my graphics/animations, no bugs were mentions which I expected but was still good to see since I always try to prevent any bugs from appearing in my games. I asked about the level design this time around since I already knew the pace was good and found that people liked the level design of my game as while someone mentioned it being hard to know where to go that is more of a good thing since I wanted my level to be quite open to encourage exploration since that is one of my design pillars, I did receive another suggestion which was about how unclear the UI is at first which is an understandable issue so since it would be an easy to fix issue I tackled this problem by adding in a diagram explaining the UI to my game so that my game would be a better experience for new players.

24rd May 2022-Audio Reflection

With the all my audio implemented I can now say that I have finished my game which leaves me with enough time left over to complete the presentation and final evaluation parts of the project. I believe that the audio I have implemented is of good quality and that I have met my goals with each piece of audio that I have added to my game as in a lot of my earlier projects I didn’t give sound the proper level of though that it deserved which meant that my finished audio sounded alright but didn’t feel finished to me. While I am a bit disappointed that I had to cut some of my audio since having some more variety in my games music would have been really cool and having my characters speak would have helped to give them more of a personality as well as give my game a bit more charm, if I had more time then I would have definitely implemented these elements of my audio since it would help to make my game seem more professional by using multiple music tracks and having dialogue . Currently I have yet to receive feedback on my audio so I do not know how others feel about this addition to my game however I am confident that it will be positive.

Design a site like this with WordPress.com
Get started