{"id":72,"date":"2021-11-26T14:16:51","date_gmt":"2021-11-26T14:16:51","guid":{"rendered":"http:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/?p=72"},"modified":"2023-04-06T14:00:59","modified_gmt":"2023-04-06T13:00:59","slug":"prototype-game-developer-journal","status":"publish","type":"post","link":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/2021\/11\/26\/prototype-game-developer-journal\/","title":{"rendered":"Prototype Game &#8211; Developer Journal"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Week 5 &#8211; Initial Ideas<\/h2>\n\n\n\n<p>This is my independent study week.<br>This week was mostly coming up with ideas for a game.<br>My main idea is to create a time of day system and the game will revolve around that.<br>One idea I have about that is a puzzle game where platforms and objects change depending on the time of day, and you&#8217;re given the ability to change the time in order to solve these puzzles.<\/p>\n\n\n\n<p>Another idea I have for a game is an exploration game a little bit like a classic RPG, you start in a little village and can choose different paths to explore. What you find in these paths depend on the time that you choose to explore (sleep until day or night).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Week 6 &#8211; Versions 1.0-1.5<\/h2>\n\n\n\n<p>This week was a slow one for me, I&#8217;d launch visual studio to start working I&#8217;d freeze having no idea what to do or where to start. This slowed me down a lot until I realised I hadn&#8217;t even fully thought out my game(realistically) yet, I had a look through what I&#8217;ve done so far and put together a plan of what I ideally could make, including some stretch goals.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"443\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-8-1024x443.png\" alt=\"\" class=\"wp-image-73\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-8-1024x443.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-8-300x130.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-8-768x332.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-8-1536x665.png 1536w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-8-1568x679.png 1568w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-8.png 1858w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I firstly wanted to make my own tiles, so I found and followed this <a href=\"https:\/\/www.youtube.com\/watch?v=gUTl8m1Uoxg\">video<\/a> to create some lovely grass tiles. I added a grey variation of the rocks and tops for said rocks.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"412\" height=\"368\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/Mystic-TileSet-Sample3.png\" alt=\"\" class=\"wp-image-74\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/Mystic-TileSet-Sample3.png 412w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/Mystic-TileSet-Sample3-300x268.png 300w\" sizes=\"auto, (max-width: 412px) 100vw, 412px\" \/><figcaption>Very first few custom tiles.<\/figcaption><\/figure>\n\n\n\n<p>Before getting much further, a friend of mine told me humble bundle had were doing a bundle on some resource packs which fit perfectly as they were all around 16&#215;16 and aesthetically fitted my tiles very well. I really enjoyed making my own tiles but given how much time I have I&#8217;ll make the most of the 3 resource packs I&#8217;ve just received.<br>This packs offers gifs, strips and spritesheets for each asset, which includes coins, players, enemies, critters, some tiles and backdrops, destructables, doors &#8211; pretty much all the standard assets I could possibly think of needing.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"128\" height=\"16\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/herochar_sword_attack_anim_strip_4.png\" alt=\"\" class=\"wp-image-75\"\/><figcaption>Example sprite (slightly small)<\/figcaption><\/figure>\n\n\n\n<p> (v.1.0) Moving onto the actual game, I ideally need to get the main mechanic of my game which is the time of day system.<br>I plan to approach this by creating 4 background in Tiled using a tileset with 4 gradients to represent how the sky looks at each time of day.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"719\" height=\"875\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-9.png\" alt=\"\" class=\"wp-image-76\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-9.png 719w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-9-247x300.png 247w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><figcaption>Tiled setup for backgrounds<\/figcaption><\/figure>\n\n\n\n<p> (v.1.1) By tracking a &#8216;time&#8217; variable and incrementing it each frame, I&#8217;ve got a means to track the passage of time and by adding parameters to determine what the time of day is, I&#8217;ve managed to simulate a day and night cycle.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"511\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-12.png\" alt=\"\" class=\"wp-image-79\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-12.png 630w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-12-300x243.png 300w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><figcaption>Time of day is determined by checking if &#8216;time&#8217; is between two values.<br>The respective layers alpha&#8217;s are adjusted based on the time.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"855\" height=\"527\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-11.png\" alt=\"\" class=\"wp-image-78\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-11.png 855w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-11-300x185.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-11-768x473.png 768w\" sizes=\"auto, (max-width: 855px) 100vw, 855px\" \/><figcaption>Three times of day and their respective skies.<\/figcaption><\/figure>\n\n\n\n<p> (v.1.2) Next was fading the backgrounds to create a smooth transition between eachother. My first idea was to increment the layer opacity each time their parameter returned true and the last time it ran, it would reset the variable for the next parameter. This worked for some transitions but it would break and I have no idea how to fix it, it was overall confusing and messy.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"230\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-13-1024x230.png\" alt=\"\" class=\"wp-image-80\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-13-1024x230.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-13-300x67.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-13-768x173.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-13.png 1153w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Initial fade test with the first parameter (dawn).<br>a &#8216;opacity&#8217; value would increase with each frame, so the layer fading out would decrease opacity and the layer fading in would increase opacity.<\/figcaption><\/figure>\n\n\n\n<p> (v.1.3) My tutor recommended I follow a project tutorial I had missed out, so I watched it and found the &#8216;tween&#8217; function which can handle changing the alpha for me. This<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-14.png\" alt=\"\" class=\"wp-image-81\" width=\"611\" height=\"539\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-14.png 778w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-14-300x265.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-14-768x678.png 768w\" sizes=\"auto, (max-width: 611px) 100vw, 611px\" \/><figcaption>Tween functions added, the fading and appearing backgrounds set by the time parameters.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"696\" height=\"480\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-15.png\" alt=\"\" class=\"wp-image-82\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-15.png 696w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-15-300x207.png 300w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><figcaption>Background transitioning between Dawn and Day<\/figcaption><\/figure>\n\n\n\n<p>(v.1.5)Next I want to prepare assets from the resourcepack for adding to my game. Most assets include multiple animation strips that are separate from each other so I&#8217;ve combined the ones I believe I&#8217;ll need into one whole strip and brought them into my project.<br>I&#8217;ve given the player animations for idling, walking, jumping and falling.<\/p>\n\n\n\n<p>Firstly I&#8217;ve chosen to add an enemy and I quite like the look of the mushrooms as an initial enemy. I&#8217;ve added their movement based on the code from the graveyard tutorial. Their spawnpoints are determined in Tiled where I&#8217;ll configure exactly where they move and how many there are.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"505\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-19.png\" alt=\"\" class=\"wp-image-86\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-19.png 700w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-19-300x216.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><figcaption>Spawnpoints added in Tiled.<\/figcaption><\/figure>\n\n\n\n<p>I may have also gotten ahead of myself and added health and items to restore health (apple, meat, potion). While I&#8217;m at it I added a money counter as well since I saw myself adding money in the future. Items are added through points set up in Tiled as well.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"922\" height=\"837\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-17.png\" alt=\"\" class=\"wp-image-84\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-17.png 922w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-17-300x272.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-17-768x697.png 768w\" sizes=\"auto, (max-width: 922px) 100vw, 922px\" \/><figcaption> Screenshot of new features labelled.<\/figcaption><\/figure>\n\n\n\n<p>I don&#8217;t think the player regaining health is communicated well so I&#8217;ll add a function to create a text that appear next to the player, display a message and fade using tweens.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"260\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-21-1024x260.png\" alt=\"\" class=\"wp-image-88\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-21-1024x260.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-21-300x76.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-21-768x195.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-21.png 1048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Feedback function<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Week 7 &#8211; Versions 1.5.2-1.9<\/h2>\n\n\n\n<p>(v1.5.2) Discovered an issue with the prompt text where if you can&#8217;t pick something up would add itself repeatedly.<br>I made a simple mistake of using add.text rather than setText which I really could have easily avoided by keeping my code consistent (I used setText for when health pickups work <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"168\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-22-1024x168.png\" alt=\"\" class=\"wp-image-89\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-22-1024x168.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-22-300x49.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-22-768x126.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-22.png 1450w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Add.Text and the resulting issue. SetText fixing the issue.<\/figcaption><\/figure>\n\n\n\n<p>With health added I should now add combat.<br>I&#8217;ve got the sword swing as a separate animation from the player and include as a separate object which moves with the player but with a slight offset to make it as fluid and clean as possible.<br>I moved the jump action to the up key so space can be attack, when the &#8216;sword&#8217; is hidden by default so when it&#8217;s not in use it doesn&#8217;t collide. When the spacebar is pressed the sword is unhidden and player the attack animations, when the animation is complete it calls a function to hide it. While visible the x and y is constantly updated and an offset is applied based on which way the player is facing.<br>The result is a very effective swing attack that I miraculously didn&#8217;t have any issues with.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"233\" height=\"121\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-23.png\" alt=\"\" class=\"wp-image-90\"\/><figcaption>Attack animation.<\/figcaption><\/figure>\n\n\n\n<p>Added a collision event between enemies and sword, so when they collide the enemy body is disabled, I tried to disable the enemy after their death animation but I couldn&#8217;t find a way to achieve this as the completedanimation method requires a function but disablebody didn&#8217;t seem to work when I do this.<\/p>\n\n\n\n<p>Moving onto the player, I&#8217;ve added collisions between the player and enemy, now the player loses health upon contact, has their Y velocity  decrease as a form of knockback which helps the player avoid further damage and an animation is played to illustrate they have taken damage.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"230\" height=\"159\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-24.png\" alt=\"\" class=\"wp-image-91\"\/><figcaption>Player and mushroom collision (green arrow to show knockback path)<\/figcaption><\/figure>\n\n\n\n<p>(v1.5.3)For the player&#8217;s death, I&#8217;d like them to respawn at checkpoints placed throughout a level and I&#8217;ve got a very nice asset to use that will convey an active and inactive state very well.<br>I&#8217;ll add these checkpoints in the same way the mushrooms are, when the player collides with them a function will be called that will update the player&#8217;s respawn coordinates and change the checkpoint&#8217;s animation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"176\" height=\"113\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-25.png\" alt=\"\" class=\"wp-image-92\"\/><figcaption>Checkpoint<\/figcaption><\/figure>\n\n\n\n<p>A side issue I noticed is the player&#8217;s struck or death states aren&#8217;t showing, while troubleshooting I disabled the other walk, idle and fall animations and the issue didn&#8217;t persist so It looks like those animations are overriding this one &#8211; to fix this, I&#8217;m given the player a &#8216;struckState&#8217; which while true all the player&#8217;s movement parameters would return false and this worked quite well.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"299\" height=\"113\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-26.png\" alt=\"\" class=\"wp-image-93\"\/><figcaption>Player in &#8216;Struck animation&#8217;.<\/figcaption><\/figure>\n\n\n\n<p>(v1.6)As for collectables, the player should be able to pick up coins, so I&#8217;ll add coins that spawn in the same way as the health pickups do except when these are picked up, they bounce.<br>They are also made when an enemy is defeated.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"597\" height=\"221\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-28.png\" alt=\"\" class=\"wp-image-95\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-28.png 597w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-28-300x111.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><figcaption>Money picked up (left). Money dropping from enemy (right)..<\/figcaption><\/figure>\n\n\n\n<p>The player would respawn before their animation could player as well, so I adjusted the respawn function to only work when the animation is complete which thankfully work with no issues.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"304\" height=\"117\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-29.png\" alt=\"\" class=\"wp-image-96\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-29.png 304w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-29-300x115.png 300w\" sizes=\"auto, (max-width: 304px) 100vw, 304px\" \/><figcaption>Player death (circled in green).<\/figcaption><\/figure>\n\n\n\n<p>(v1.7) I need to add something a little more in the way of objectives. I don&#8217;t have enough time before playtesting to add something major like a village and economy\/trading due to how many drastic changes that entails. I think I&#8217;ll have to settle for a door for now &#8211; this door will only open once all the enemies in the level are killed.<br>If the player tries to pass the door without meeting the requirements then they&#8217;re prompted how many enemies remain. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"405\" height=\"113\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-30.png\" alt=\"\" class=\"wp-image-99\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-30.png 405w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-30-300x84.png 300w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/figure>\n\n\n\n<p>(v1.8)<br>Something I really feel my game is lacking is any interactions based on the time of day, which was the core idea for my game.<br>I could quickly change the mushroom enemy creation so that the animation depends on the time of the day when they are created so at nighttime they&#8217;ll be goblins but in daytime they&#8217;ll be mushrooms.<br>With this, initial time of day is also random so players will see something different everytime they start.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"471\" height=\"204\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-31.png\" alt=\"\" class=\"wp-image-100\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-31.png 471w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-31-300x130.png 300w\" sizes=\"auto, (max-width: 471px) 100vw, 471px\" \/><figcaption>Mushroom spawn during day (Left), Goblin spawn at night (Right).<\/figcaption><\/figure>\n\n\n\n<p>A detail I was very keen on adding as well were environment effects that change based on the day, the main one I can think of is little details that emulate &#8216;glows&#8217; on environment assets like grass and trees. This would stand out a lot more if everything else is darkened at night and it only appears at night too.<br>I&#8217;ll achieve this by adding two new layers in tiled, one layer will be a shadow cast over everything other than the glow layer, and the glow layer which will have the glow details.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"427\" height=\"244\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-32.png\" alt=\"\" class=\"wp-image-101\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-32.png 427w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-32-300x171.png 300w\" sizes=\"auto, (max-width: 427px) 100vw, 427px\" \/><figcaption>Layers.<\/figcaption><\/figure>\n\n\n\n<p>Lastly, I just need some more tiles. In tiled I made iterations of my initial tileset but for different environments, such as snowy rocks, caves, and dunes<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"144\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/Mystic-TileSet-3.0.png\" alt=\"\" class=\"wp-image-102\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/Mystic-TileSet-3.0.png 320w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/Mystic-TileSet-3.0-300x135.png 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/figure>\n\n\n\n<p>I need some decorative tiles to go with this so I&#8217;ve created assets fitting for those environments. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"240\" height=\"272\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/Props-TileSet-3.0.png\" alt=\"\" class=\"wp-image-103\"\/><figcaption>New tiles for forest, snow and dune levels with glow details to cast over.<\/figcaption><\/figure>\n\n\n\n<p>With my tileset and plan ready, I can put together some tilemaps.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-33-1024x307.png\" alt=\"\" class=\"wp-image-104\" width=\"610\" height=\"182\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-33-1024x307.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-33-300x90.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-33-768x230.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-33.png 1214w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><figcaption>First level complete with all mechanics.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"479\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-34-1024x479.png\" alt=\"\" class=\"wp-image-105\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-34-1024x479.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-34-300x140.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-34-768x359.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-34.png 1202w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Second level, as transition between forest to snow.<\/figcaption><\/figure>\n\n\n\n<p>I just had enough time to cram the second level into my game before playtesting.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Playtest Feedback<\/h2>\n\n\n\n<p>My game reached version 1.9.1 before being playtested.<br>The questionnaire I prepared asked the following questions:<br>-Is there anything you liked about the game?<br>-Is there anything you disliked about the game?<br>-On a scale of 1-5 (lowest to hightest) how would you rate the:<br>          -Graphics?<br>          -Mechanics?<br>          -Game Overall?<br>-Did you experience any issues? + describe it<br>-Are the objectives clear? +describe it<br>-Other than bugfixes, are there any other improvements you&#8217;d like to see?<br>-Additional comments:<br><\/p>\n\n\n\n<p><em>These were the results:<\/em><br>&#8211;<strong>Overall<\/strong>, the playtesters listed that they <strong>liked<\/strong> pretty much everything with each pointing out particular parts. They liked the art style, day and night cycle, checkpoints, difficulty, the boulder, door and combat.<br>-Their listed <strong>dislikes<\/strong> pretty much include bugs and the lack of levels which are due to be sorted anyway.<br>For the <strong>ratings<\/strong> I&#8217;m going by average\/5 of each score, so for <strong>graphics<\/strong> I have 4.2\/5, <strong>Mechanics<\/strong> 4\/5, <strong>overall<\/strong> 3.9\/5 &#8211; this is mostly due to the bugs so the final version would surpass this slightly.<br>-There were few <strong>bugs<\/strong> listed, mostly the first door is tricky to open, the glow effects didn&#8217;t disappear, standing on the boulder triggers the idle animation repeatedly and lastly the health doesn&#8217;t display the correct value sometimes.<br>-The player&#8217;s <strong>perceived goals<\/strong> also matched the intended goal as well being mainly kill the enemies but also collect coins and move to the next level.<br>-Player would <strong>like to see<\/strong> the moveable objects used more, clearer instructions given, an intro screen and more levels, and lastly a sword cooldown to balance out combat.<br>&#8211;<strong>Otherwise<\/strong>, they thought this was was a very good game.<\/p>\n\n\n\n<p>The player feedback was spot on, they really like the core gameplay happening in my game, other than levels and bugfixes there are few improvements I think are necessary to make.<br>My goals after playtest is:<br>-Make more levels<br>-Fix the door<br>-Level introduction prompt<br>-Fix glow appear\/fade<br>-Ensure health display is being updated correctly.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"462\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-35-1024x462.png\" alt=\"\" class=\"wp-image-107\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-35-1024x462.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-35-300x135.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-35-768x346.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-35.png 1215w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Level 3 (Snow)<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"472\" src=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-36-1024x472.png\" alt=\"\" class=\"wp-image-108\" srcset=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-36-1024x472.png 1024w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-36-300x138.png 300w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-36-768x354.png 768w, https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-content\/uploads\/2021\/11\/image-36.png 1225w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption>Level 4 (Snow to Dune)<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Week 5 &#8211; Initial Ideas This is my independent study week.This week was mostly coming up with ideas for a game.My main idea is to create a time of day system and the game will revolve around that.One idea I have about that is a puzzle game where platforms and objects change depending on the&hellip; <a class=\"more-link\" href=\"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/2021\/11\/26\/prototype-game-developer-journal\/\">Continue reading <span class=\"screen-reader-text\">Prototype Game &#8211; Developer Journal<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[4],"class_list":["post-72","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-bsc1a","entry"],"_links":{"self":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=72"}],"version-history":[{"count":6,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/72\/revisions"}],"predecessor-version":[{"id":120,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/posts\/72\/revisions\/120"}],"wp:attachment":[{"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=72"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=72"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lloydmills.nuacomputerscience.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}