P10 Production And Practical Skills

Prototype

Scout Movement

The first thing I did was set the view port to that of the GBA and next I created an empty layout and added in a plain black background.

Next I established basic movement controls via added 8 directional movement to my player sprite which I named scout since that is the first class that I will make playable for my prototype. I then added the code so that I could control him using WASD since while I could have used the default controls of the arrow keys for now I might as well add the code sooner rather than later. I also went back later and added in the scroll to behavior so that the camera would follow the player. Since I have created code like this before I found it easy and had no issues implementing my player movement, as I had expected it to be and I remembered to use groups and subgroups to organize my code which is something I would forget about doing previous projects in which I used construct.

Scout Weapon

Next I started to create the scouts weapon, I started simple by just creating a new sprite with a size of 0.5×0.5 and then giving it the bullet behavior, I then added the basic code of on space pressed create bullet that would allow for the player to be able shoot. With the basic mechanic implemented I then moved onto adding more detail to it which I did by first adding in the other pellets, I made it so that upon the player pressing space it would create 10 bullets however they all shot from the same position which was a problem which I fixed via adding 9 addition image points to the player meaning it had 10 total. In the original game their is random bullet spread however in competitive their is fixed bullet spread which many popular community servers have enabled so I chose to use this fixed bullet spread of a 3×3 grid with 2 pellets in the middle which I did by having positioning the image points in a 3×3 grid and then having 2 image points in the center, I then went back to the shooting code and set the image point the bullets would be created at to my new images points. After some testing I realized the player could spam space to fire a lot quicker than they should be able to so I created a cool down system which was something I had done before and so knew how to do, I created a boolean on the player called shoot which I then added a condition to the shooting code so that the player would only be able to shoot if the boolean was set to true and then added 3 lines of code to the end of the shooting code which set the boolean to disable and then waited 0.625 seconds(that’s the scatter guns attack interval in the original game) and then enabled the boolean .While creating the shooting I had no issues doing so however while writing this up I have realized that I did in fact not need 10 image points and could have just used 9 and had 2 bullets shoot from the middle image point.

With the multiple pellet based shooting system created I then set my sights on adding in a reload and ammo system for the scatter gun since my player could shoot forever plus I would be able to use the same system for future weapons, I started by adding in the required variables which were clip and reserve which I set to 6 and 32 once again due to that being the values in my source material. With the values set I then moved onto the code I started by adding a condition to the shooting code so that it could only be done if the clip was more then 1 and added it so that each time the player shot 1 was removed from the clip amount, Next I started to create the reload so the player could refill their clip and I wanted a system similar to the original game were 1 bullet is reloaded at a time which I did on my second attempt as originally my code was if the player held right click while they had less than 6 bullets in the clip it would add 1 bullet every 0.6 seconds(once again value taken from the original game) however I quickly found that this system meant the player could go above 6 clip size if they reloaded while they had a partially filled clip. After a short I realized I need some code that would reload 1 bullet every 0.6 seconds and then stop upon hitting a clip size of 6, I created a new set of code that worked in a way that every 0.6 seconds it would add 1 to clip and take 1 away from reserve, however the player needs a clip size less than 6 and a reserve more than 0. During my testing I found that you could shoot while reloading which was a bit of an issue so I then added some code that set the shoot boolean to false while reloading and then set it to true when the reload button is released which worked.

Scout Collectibles

With reloading it was now possible for the player to run out of reserve ammo so I figured now was a good time to add in the collectibles, I started with the ammo which I did by adding a new sprite and making it so when the player touched the sprite if they had less than full reserve it would set the reserve ammo to its full amount then turn invisible and disable collisions for 10 seconds (original game value) before enabling them again which created a re spawning ammo kit system. I then copied this however I changed it from the reserve variable to the health variable and lastly I created a money collectible and variable that I will expand upon further after I implement enemies but for now I just made a sprite that when the player touches it adds 50 to the players money variable and then is destroyed making it a 1 time collectible. Adding in the collectibles was easy and I had no problems doing so.

Scout Damage Fall Off

Next I created damage fall off for the scattergun which I did by code that meant if the bullet had travelled longer than a certain distance then the damage was reduced, I once again got the values from the original game. While this code is pretty simple I did encounter an issue as originally their was conflicting code as it was just if the bullet had travelled longer than 30 pixels deal 6 damage and if it had travelled longer than 60 pixels deal 3 however since 60 was also above 30 it remained at 6 damage, to fix this I put a condition on the more than 30 which was that the bullet had to have not travelled longer than 60 pixels.

Scout Upgrades

Next I made my upgrade system which I did by making 2 new sprites and a button, the first sprite was set to invisible but would cover the whole screen with a background and the second sprite would set a new boolean that I gave to the player to true which when true made the layer with the upgrade background and button visible but when false would make the layer invisible. I then made it so if the player pressed the button on that layer while the upgrade boolean was true it would increase their clip size, reload speed, reserve size and total health and then set them to their new values, originally the player could just press the button while it was invisible which is why I then added the boolean. Due to this being a prototype the upgrade system will be broken down into several upgrades that do individual things rather than a single large upgrade however this was just for getting the mechanic working and I will fine tune it after I get the graphics for the UI implemented.

Scout Health

The last thing I added was the health system which was just a an instance variable for health and a boolean called dead which when the players health is below 0 is then set to true which I will later use for the respawn system and disabling the player while they are dead. The health will allow me to make the player take damage after I add the enemies to my game.

Scout Spawning

With the player now able to die I set about creating the spawn/respawn system which I did by creating a new sprite that would be invisible which would act as the starting point for when the player started the game or died, first I set it up as the start point by having it move the player to it and the players follow box which would then be pinned to the player which I was going to use for the enemies and lastly the needed behaviours of the player which are 8 directional movement and scroll to were enabled.

For respawning I made it so when the boolean dead is true the players movement is disabled next the boolean is set to false then 2 seconds later the player and the follow box are moved back to the starting point. After testing this mechanic I then noticed that the players health, ammo and clip remained the same so I then made it so after they respawn all those values are then set to their full values.

I later noticed that the values were set to the default amount meaning that it would not account for upgrades so I went back and changed the values to the variables that track what the players health, reserve and clip size currently are so that it scales with the upgrades.

Testing Features

I next set up a few simple bits of UI and a training dummy to test my current and future mechanics on, I started simple sprite with a health variable for the player to shoot and made it so the players bullets would take away from the health so I could test my newly added damage fall off. I then added some text to the UI layer to track other variables such as player health, dummy health, bullets, ect using the code I knew from all my other construct projects of updating text every tick to the variable. This was really easy to do since I had done it before and is a quick way of testing my games mechanics.

Scout Upgrades

Creating my upgrade menu was easy as all I had to do was set the menu’s layer to visible while the player was overlapping the upgrade station and disable it when they were not, I then coded it so that when each upgrade sprite was clicked it applied that upgrade to the player but could only be clicked if they had the required money so that it could then be taken away after the upgrade was purchased. I made each upgrade increase a variable that would change the players max value of another variable which would give them an increase in that stat such as health or ammo. I encountered an issue which was the player could buy the upgrades while the layer was still invisible so I added a boolean that needed to be true in order for the upgrades to be bought and made it so like the layers visibility it was set to true while the player was at the upgrade station but false when they were not.

Main Menu And Class Menu

Now that I was going to have multiple playable characters I set about creating my now required main menu and class select menu, since its just a prototype I just creating a simple background and a button for the main menu which when pressed takes you to the class select screen which has a button for each playable character and when that is pressed it goes to the gameplay layout and enables that character while disabling the other characters.

Soldier’s Rocket Launcher

Soldier was mainly the exact same as scout for the most part just different values such as a speed of 80 instead of 133 and different clip and reserve amounts, the only different was his weapon the rocket launcher which would create an explosion upon impact. I created this system by cloning the scout bullet then changing the damage to that of the rocket launchers in the source materials, I then made it so upon impact it created an explosion by spawning a new sprite I made called explosion and when enemy’s touch the explosion it does damage which creates a splash damage system to mimic that of the original game.

Heavy’s Minigun

Heavy was mainly the exact same as scout and soldier for the most part just different values such as a speed of 77 instead of 133 and different clip and reserve amounts, the only different was his weapon the minigun which required me to get rid of reserve since the minigun just has a single large clip with no reload in the original game and I wanted to stay true to that since its the whole unique element of that class and if I changed that it would be confusing for my target audience since it would be very different to what they know. I also had to add a new variable which was wind up speed as in original game the minigun has a wind up stage in which it prepares to shoot which takes a few seconds and slows the player down, I then made it so that if the player holds right click it then slows them down and waits the wind up time before setting the shoot boolean to true which then allows the shooting code to be activated which was the exact same code it just only spawned a single bullet every 0.1 second like in my source material.

I also had to make a new bullet for the heavy which I did by cloning the scouts pellet and then changing the damage value to that of the minigun, next I copied the damage fall off code and setting it to the new values.

Environment

With all my characters created I now made a simple background and some walls using some coloured sprites and then used my level design plan to create my level, I found myself having to increase the size of my layout a few times during this process since my original space was just a bit bigger than my viewport size which left me with very little room.

Robot Bomb Carrier Scout

For my first enemy I created a new sprite which I coloured red to show it was the enemy, I gave it the move to and pathfinding behaviour plus a health and damage instance variable. Using a mix of these behaviours I tried to make it so the enemies would go to the bomb if they did not have it no matter what and then go to the bomb site if they had the bomb however if the enemies spotted the player while they had the bomb then all but the bomb carrier enemy would instead go to attack the player, I used a few boolean such as bomb and carrier to help me achieve this however no matter how hard I tried I couldn’t get it to work perfectly as either they would just ignore the player or they would ignore the bomb. After making many slight alterations to my code for quite some time I decided that it would just be easier to split my enemies into 2 variants which would be the carrier enemies which would only go for the bomb and then the objective and the combat enemies which would only try to distract the player from stopping the carriers. I decided to first make the carrier enemies which I did by altering my already existing code to make them always go towards either the bomb or bomb depending on if there was an enemy carrying the bomb, I left the code that made it so if they could not see the player and they did not have the bomb they would find a path to the bomb and if they could not see the player but had the bomb they would go to the bombsite and that if they did not have the bomb but could see the player they would go for the bomb.

Robot Combat Scout

The combat scouts were quite easy to make as the bomb scouts had given me a good understanding of how to use the line of sight, move to and pathfinding behaviours in conjunction with each other. I made it so if the enemies cannot see the player they find a path to the player and start moving towards them however if they see the player the pathfinding is disabled and instead the move to is used to move them towards the players follow box which stops them from getting too close to the player as if they are overlapping the follow box then they stop moving which prevents them from just running into the player. I then made it so they could shoot which I did by cloning the player scout bullets and then renaming them, I made it so if the enemies could see the scout they and the shoot boolean was enabled then 10 bullets were creating in the same pattern as the player scout after they fired the shoot boolean is set to false for 1 second before being enabled again to allow them to shoot. I also then gave them a health variable and made it so when the health hits 0 they die and create a money collectable at the location of its death.

Robot Combat Heavy

The robot heavy enemy was easy to make as I already had the baseline of the combat scout code to use, I copied that code over and changed everything to enemy heavy and the only major change I had to make was how he shot at the player which was very easy to do. I cloned the player heavy bullet and renamed it to enemy heavy bullet and then made it so the enemy heavy then spawned one these bullets every 0.3 seconds when they see the player which I did by making it so that when they have line of sight to the player and their shoot boolean is set to to true they spawn a bullet however it then sets the boolean to false and waits the 0.3 seconds before then enabling it again.

Tanks

I created a new sprite which was a big blue rectangle with a black line to indicate the front to me, I then added a health variable and gave it the pathfinding behaviour. Before allowing the tank to move to the objective I added in some code to my player weapons to allow them to damage the tanks since I wanted to get it done first because I knew I that its something I would forget to do so until I started testing. I then made it so that when the tank is created it would find a path to the bombsite and then when a path is found it would move along that path and while it did reach the bomb site it would overlap walls terribly and would always be on rotated on its side which was not exactly how I wanted it it work so I tried changing values of its pathfinding behaviour to make it avoid walls more however that still did not fix the issue, after taking some time to think I decided to do it a different way, I remembered how in my previous projects I had used invisible sprites for enemies to follow since at the time I did not want to try and utilize pathfinding so I decided to intergrade that method into my current one which I did by creating a path of several invisible sprites that the tank would find a path to and upon touching that the invisible sprite it would then rotate and find a path to the next invisible sprite until it got to the objective and this worked with no issues.

I then copied what I did for my original tank for my other tank that would take a different route to the objective to mix things up since due to how my enemies worked it meant that the right side part of the map could go moderately unused so I wanted some of the tanks to move through that area instead, I did the same system but just added some new invisible sprites for it to follow that were on that part of the map.

Waves

The wave system was very simple to make as it just required me to make 2 new global variables which were tanks killed and enemies killed, I then added the code that meant at the start of the layout after a few seconds the initial wave of enemies are created. I then went back and added make it so when a player kills an enemy it increased the kills variable by 1 so that the second wave I could then code in the second wave. Once all those enemies are beaten a few seconds later the next wave spawns as the kills variable would have hit 8 which spawns the next wave, I then copied this system to create each wave of my game and during the later stages it also starts to spawn tanks to increase the difficult and then after the player has killed all 4 tanks the game waits a few seconds before putting the player onto the victory screen.

Resets

After some testing I quickly found that my global variables didn’t reset after the player failed so I added in a simple line of code that set them all back to 0 when the player loads the gameplay layout to my already existing code that set bomb planted to false on start of layout to stop an infinite layout restart from occurring after the player lost.

Production Schedule

After having completed my prototype I can safely say that I managed to stay on schedule despite the couple of issues that I encountered with certain mechanics such as the AI which is a bit surprising since it did take me longer than I expected/wanted to complete and write up but since I started early it allowed me to stay on schedule. As can be seen on the schedule the robot soldier is coloured purple because I decided to scrap that mechanic since it would have taken a lot of time to do and since its top down I realized that the soldier wouldn’t shoot the ground for splash damage unless I created a new system for it which I didn’t since I had already spent a lot of time on my other enemies so I decided to scrap the mechanic so that I could focus on other more important area’s.

Graphics

Floor

Creating my floor was easy to do however I tried a few different ways before I settled on the design seen below, I tried different shades of yellow for the sand and different patterns for the darken/lighten tool before after a few attempts I got something I really liked. Since I was using a tiled background for my floor it was important that the design could repeat itself and still look good which it did.

Walls

For my walls I used a darkened version of my floor, Originally I wanted to recreate the town present in the original map however I found that I had less time than I had expected since my I was hoping to finish my code early so I would get a head start on my graphics but since that did not happen I had to cut corners on certain graphics such as the environment. I decided that instead of the town I would create coal town before the the town to fit in with the whole demake theme so I would instead have it be raised terrain that blocked the players path hence why I darkened my floor for it.

Upgrade Station

My upgrade station was a difficult thing to make since it was hard to convey the function of it via its design since the original design was clearly not made to be viewed from above despite this I stuck close to my production art as closely as possible, I tried different colours and patterns for the roof and floor before I settled straight on lines instead of the diagonal stripes from the production art. Even in my final design seen below it is still a bit unclear as to what the object is meaning that I will most likely add something to my game to give the player that information in some form.

Bomb Site

I kept my bomb site similar to my production art however I cut out some of the unneeded details like the fence or mann co logo that are present on the original design that would take up too much space given the limited size I had to work with, Originally it was solid colours however while that looked alright I used the darken tool to add more detail. I also added in some rust on the hatch similar to that in the original design, I also created a simple floor around the design just to get a feel of what it would look like in game before I imported it.

Bomb

My bomb was a simple design that was easy for me to create. I followed my production art/original design so that it would stand out from the environment and catch the players attention since it very important that they know the location of the bomb.

Collectables

Creating my health kit was easy to do since it was a very simple design, when creating it I stuck close to my production art/ original design so that the object would be easy to identify from the surroundings and understand.

Once again my ammo kit was easy to do since it was a very simple design, when creating it I stuck close to my production art/ original design so that the object would be easy to identify from the surroundings and understand.

Similarly to my ammo box and health kit originally my money collectable was solid colours however it was unclear what the object was so I decided to use the lighten and darken tool that I utilized for my floor and bomb hole to try and make it look better which it did since it would be more accurate to the original design and was more clear on what it was, by having the different shades it made each money bundle look different from each other and identifiable rather than the previous big green blob with some coloured lines on it. The downside to using the lighten and darken tool to such an extent was that the graphic looks a little out of place when compared to my other collectable’s that are smooth and a solid colour however I still think this change was overall a good thing.

HUD

Creating my UI was very simple, I tried to stay similar to the original game with coloured boxes with a white outline seen for the money count and ammo count elements of the games UI. For my health UI I created it in construct instead since I was having some issues getting piskel to work for some unknown reason, I once again stuck to my source material and created a simple light grey cross which the health value would be displayed on however while I wanted to animate the health bar draining with the value I decided against it since it was only a small detail and I had bigger things I needed to get finished. I kept the colours the same since they stuck out from the environment which made the UI easy to read for the player.

Player

When creating my players I originally tried making them at the same scale they would be in game however I encountered difficulties creating a recognizable design on a such a small scale so I decided instead to create them at double the size they would be and then shrink them down in construct, I found this to be a lot easy for me to do and managed to create designs that I was happy with. I created each mercenary in their standard pose seen in game since its an iconic pose for each of them that should be recognizable to the fans of the original game, I created them in solid colour and then once I had the shape in place for each of them went back and used the darken tool to add detail to them however I decided to only do this to their weapons and the parts of their outfits that were not red because I wanted the red of their outfit to stand out from the rest so that it would contrast the blue present on the enemies designs.

Enemies

Similarly to my players I made the tank at double the size it would be in game and then scale it down in construct to make the process easier for me, I stuck very close to the original design and even managed to get the rust in pretty much the same areas of the tank since this was one of the few assets that I managed to obtain a top down view of which greatly helped me when designing it since all my other references for my designs had been a front view.

Menu’s

When creating the icons for my upgrade menu I stuck to the colour scheme seen in the original game, I wanted to recreate the icons present in the original game however after a few failed attempts I decided they were too complicated for me to be able to recreate to a good level so I instead made my own icons to represent each upgrade. I started with the health icon due to how simple it was since it was just an orange cross with a dark grey outline, I then went on to the ammo upgrade which I did by making a line of 3 bullets in a row using a dark grey outline and lighter greys for the inside detail, lastly I created my reload icon which I was stumped on for a brief period before I decided to just simply add an orange circle with an arrow at the end around the icon I made for the ammo upgrade. I am very happy with how these icon came out as I believe each icon does a good job at visually communicating what it does to the player and while some players may not understand the reload icon on its own it would be a different case in game since they have the descriptive text of each upgrade below the icons, when creating the in game menu I kept up the colour scheme consistent with a dark grey background with dark text for the descriptions and money count.

My main menu was unfortunately another area that I had to cut some corners with due to my time issues, I tried to stay close to the design I made in my production art which was based on the source material by having the play button to the side of the screen with a background to the right of it accompanied by some text of the games name at the top. For the background I simply got the iconic image of all the robots lined up and shrank it down to my games screen size which is that of the GBA (240×160).

For my class select menu while similar to the main menu I did not have the time to create a brand new graphic for the menu I decided instead to use my prelisting assets to create my own original menu that was roughly similar to the original games class menu, I added the player sprites of each mercenary above their select buttons and added text at the top that says class select so the player knows what this is as well as some brief text below the buttons that described each classes speed, range and health so that the part of my audience who didn’t know much about the original game would have a good understand of what each class was like. I felt like the menu was a bit empty so I decided to create a simple black version of the team fortress logo since it would contrast the background but not stand out too much and put in the top left corner to add a bit more of a personal touch to my menu.

Font

I noticed that all my games text was in the construct default and decided to change that so I downloaded the font used in Team Fortress 2 and change all my text to that so that my game looked more like the original and I was surprised by how much of a change a single font made to the overall feel of my demake.

Animations

Collectable

When animating my collectables I wanted them to spin to help further draw the players attention towards them plus they also do this in the original game so it would make sense too, I did this using construct by adding in new animation frames and each frame was rotated another 90 degrees and then setting the animation speed to 4 frames a second and looping it. I tried doing this for my health and ammo collectables however it didn’t look as good and so I decided to not animate them since it would mean less time for other areas of my game such as presentation or audio plus I was happy with only the money doing so since that is something that the player should not miss.

Tank

I created a new animation for my tank which was the damaged variant for when it health was less than half, it ended up being a single frame and originally I wanted to do more frames and have the back pipe moving about to show how its come loose or have the front dangle forward a bit but once again I decided against it since I wanted to have more time on other area’s. I still wanted it to be more than just a static change in appearance, luckily I remembered about particles which I had used in previous projects and decided to add a smoke particle coming out of the main damaged area so I created a simple smoke particle and made it pin to the tank when the animation changed to the damaged version. I also realised I would need a death animation for the tank too since without an animation it would just disappear however instead I decided I would just have several explosions that I already had made for the soldiers rockets spawn upon the tank dying which was a lot quicker than creating a new animation.

Scout

Using piskel I crated a simple walk animation for the player scout, due to how I am not the best at animation and how I didn’t have as much time as I had wanted to spend on my animations the final product is not the best however it is better than no animation as it gets the job done and doesn’t look terrible. I simply created another animation frame which moved the left leg back and the right leg forward and set the animations frame rate to 6 so it does that 3 times a second which makes the animation look alright. I then copied the animation to the enemy scouts as well however for them I lowered the frame rate to 4 to give a more robotic look to their movement.

Player Feedback

I received some player feedback and due to the state my game was in at the time of this feedback I got a lot of expected results since there was a few know issues at the time that I planned on fixing after implementing my graphics since I knew if I started fixing them in the middle of my graphics production time that there would be a good chance I would get too distracted with the code side of my game which I didn’t want to happen. I did also receive some useful feedback as it was mentioned a few times that players didn’t know how the exit the upgrade menu which shocked me as it was such a simple thing and another mentioned how they didn’t understand the objective, upon the audio being added the whole wave system would be a lot clearer to the player however I decided that to further show the objective and story of my demake that on the menu I would give the player the option to go to a brief explanation of the story and some general pointers on what to do including an explanation of the upgrade system to hopefully stop people from getting confused on how to exit it plus to further making it easier I also made it so that by pressing E the upgrade menu closes. The other pieces of feedback I received could be put in 1 of 2 categories which were either missing elements that were not added yet such as a lack of graphics and audio or unrealistic additions such as more variety in enemies, playable classes and weapons which which are all things that I would have loved to have added however due a mix of my time limit and own skills are things that are just out of the picture for me to add.

Production Schedule

I managed to stay on schedule for my graphics however as can be seen above in my write up of my graphics I did have to cut some corners on my graphical production in order to maintain my schedule due to not having that early start I had hoped I would have, despite the cut corners on my graphics I still believe they have come out at a good level of quality however if I did have more time like I had originally hoped then I would have not cut as many corners on my graphics such as creating my own menu background and created more animations.

Sound

When adding in my sound I wanted to originally compress it to better match the GBA style of my game however I quickly released that it would take way too long since I had gathered around 100 sound effects for my game so I instead just stuck with the sound effects used in the original game which still work with the theme of my game so I don’t view it as a major issue. While gathering my audio I also managed to get all my sounds in a wav file format which is the best format for use in construct which helped my audio to sound good.

Music

The first piece of audio I added was the music which I imported into the music folder and then added the code to play it and stop at the required times which can be seen above, I simply made it so that when the player changed layouts new music would play and the previous layouts music would stop via the usage of audio tags. The music I used in my game was all taken from the original game and used in areas that would fit such as the mann vs machine theme for the main menu, playing with danger for the class menu and the upgrade station theme for the upgrade station and the guide menu since it also fit pretty well there.

Sound Effects

My game had a lot of sound effects so I decided to add sub folders so I could better organize them. I decided to go down my code and add the required audio at each area that required it. For most of my player sounds I could copy and paste them between classes as the only different sounds would be shooting, reloading, dying and respawning which certainly helped speed up the process. For some sounds such as dying and respawning I had several different sounds so I made it randomly select one of the sounds to play since it helps add variation to my game since hearing the same death sound and respawn sound would get repetitive. Similarly the sound effects for my enemies also utilised random sounds for their death since you kill a lot of them it would get very annoying to hear the same sound over and over again, for the shooting sounds I just copied them from the playable version of them. My tanks had only a few sounds for different roles such as a horn that played upon the tank hitting set checkpoints in its path to the bomb hole, a quite engine sound for when it was moving and an explosion for when it is destroyed since there were only 3 tanks in my game I didn’t use multiple sounds since the player wouldn’t hear them often enough for me to justify spending more time gathering sounds for them. All my gathered sound effects worked fine expect for one which was the heavy shooting sound which would play every 0.1 seconds however the sound lasted 1 second which meant it would overlap itself which sounded terrible and so to fix this I simply edited the sound down to 0.1 seconds and then reimported it into the project which fixed the overlap issue, when adding in the shooting sound to my enemy heavies I decided to make it quieter than the players since there would be multiple heavies shooting the player at once which would get pretty loud at times.

Dialogue

While I did have some dialogue present in some of my sound effects it didn’t sever to give the player information and instead was just a small line each mercenary would say upon respawning but with the start and end of each wave I included dialogue from the original game that would inform the player that the wave was over and then to go to an upgrade station, lastly a few seconds before a new wave it would inform the player that a new wave was about to begin. This took a while to do since each wave had 3 lines of dialogue each and I had 5 waves to do however it was easy to do and I encountered no issues while doing so. While a bulk of my dialogue was from the wave alerts I still had some that were not such a victory line from the announcer and the mercenaries upon winning and I also had a few warning from the announcer for certain events such as when the bomb was nearing the hatch or being deployed, the deploy lines were easy to add since I just added the audio to the deploying code however the nearing the hatch lines required me to add in some new code that meant when the enemies hit an invisible sprite that at the entrance to the bomb site it would play the audio to alert the player which was easy to do and caused no issues for me.

Volume

I decided to include a simple audio adjustment system so the player could lower the games volume by either 25% or 50%, I was going to have the player able to increase the volume however setting the master volume to anything above 0 didn’t seem to have any affect and since I didn’t want to spend ages on this feature as it was intended as a small quality of life addition I decided to give up and leave the system how it was.

Production Schedule

With my game now finished I once more updated my production schedule, as can be seen I managed to stay on schedule for the production of my games audio and while I did have to make a moderate compromise in order to achieve this which was that I didn’t make my audio fit with the limitations of my chosen platform as I just used sounds straight from the original game but despite this I still believe my audio is of good quality. If I had more time then I would have stuck to my original plan of editing the audio to better fit my chosen platform. With this project I was quite ambitious which resulted in my production schedule being a lot bigger than most of my previous projects but despite this larger work load I still managed to keep to my schedule during this project with only a single mechanic cut plus some small compromises with my graphics and audio.

Design a site like this with WordPress.com
Get started