Expanding the Shop

After discussing through the design for the shop layout and the screen proportions individual elements would occupy, I began to implement a proper version of the shop, featuring separate sub menus for both skills, and costumes, as well as an area which will eventually be used for providing information about and interacting with the game’s IAPs system.

One of the elements which features in all areas of the shop is the shop keeper character’s dialogue box, which is currently a basic frame placed at the bottom of the screen. This was originally intended to be a much more expanded upon feature, instead being a pop-up text box that prevents other menu interactions while on screen, featuring a head icon or full body shot of the shop-keeper character and gradually typed-out information and advice. This text box would appear at various moments of player interaction, but the current stationary system is still able to provide the most necessary element of relaying information to the player.

Items available for the player to purchase on these screens are displayed in rows, as well as columns for the costumes, with upgrades featuring an additional meter showing the current level of each individual upgrade. The current items in view can be scrolled through, shifting the items displayed when touching the up and down arrow buttons, although this functionality is not actually observable due to the limited number of purchasable items at the time.

Each item when selected is given expanded information featured in a preview window to the right of the screen displaying the item name, its tier or equipped status, its specific price, and an info button, which changes the text box to provide additional information about the item when tapped. A large expansion to the current state of the IAPs manager was also required in order to be able to store and reference these values.

Currently the only upgrades added are the number of health units and a double jump with a varying cooldown, which were able to be simply integrated into the current character mechanics. While other potential ideas were discussed, these would have required more of an upheaval and has a high risk of introducing additional bugs, which would be difficult to fix with this little amount of time remaining.

Originally it wasn’t going to be possible for costume variations to be produced, which was a relatively unimportant feature in comparison with the rest of the project, in the remaining time. However, in order to make use of the work already produced, I decided to make sure that some content would be available rather than removing the second half of the shop entirely.

I achieved this through a more stylistically basic implementation of costumes by writing shaders to swap individual colours of the character, which I used to quickly produce variations in the character’s shoe colour. These serve as a proof of concept and are a reasonable inclusion that fit with the concept of the shop, while also preventing development time on the shop from being wasted.



Adding All Final Character Sprites

After Easter, I also received the final shaded versions of all character animation sprites received prior to this point, alongside new animations for running and squashing. Adding these into the game required slight additional tweaking to the character mechanics in order to fit these in correctly.


In Game Menus, End of Level Completion Sequence and Starting the Shop

Over Easter I begun to produce some of the menus and associated buttons which need to overlay the current view in a level while playing, implementing an in-game pause menu, and a game over menu. After doing this I also developed the level clear sequence, which tallies the stats of the current play through.

Adding the level clear sequence also required the adding of coins. I revamped the medal types that were available, allowing for multiple medals based on different conditions being achieved. I also discussed creating a reward system for obtaining additional coins based on medals being earned for the first time, which I implemented into the sequence.

I then created the initial basics of the shop menu in order to demonstrate the functionality of the coin system, also creating the basics of the games IAPs manager which will be used to handle all IAP related processes and information.


Adding Audio

After receiving sounds created by the audio designer for the game menus and character movement, I begun to incorporate them into the project file, and then synchronised them to play appropriately and on time with the onscreen events. With the new sounds added, I also had to go back and check that the audio control buttons found in the settings menu also functioned correctly.


Screen-to-Screen Fade Transition

I created a system for applying a fade to black and fade from black transition system when going between screens. While the transition is in effect, buttons are also disabled from being interacted with, instead requiring the transition to be complete before moving onto yet another transition to the next screen. This fading makes movements between menu screens less jarring and smoother. The fading is also useful to mask some viewing angle inconsistencies when moving between screens in the character introduction sequence as described.

There is also a lower priority possibility of adapting the same code later on to allow an alternate transitioning type where instead of a full screen fade to black, items from the first screen will fade out then the new ones on the second screen will move into position, allowing for the same background to be used, and creating the illusion of being part of the same screen.


Implementing Character Outlines and Adjusting Character Movement

After receiving basic sprite outlines for the character introduction sequence as well as some other sprites used later on for the rest of a level, I began implementing them into the game and allowing the displayed character sprite to change according to the state of the character. This also required me to develop the intro sequence within the game itself. Doing this allowed me to preview an approximation of how the animation would look in-game once completed, and also gave an opportunity to provide any feedback if necessary on any potential changes, before extra time spent is on needlessly shading frames that may need to be changed or removed.

The process also provided me with a greater understanding of some of the individual character mechanics, and so from the visual depiction of what was wanted to be achieved, I was better able to tweak and polish the feel of the character movement in order to better fit with the animations and the ideas as formed by the animator, improving the feel of the character from the more simplified movement previously used as a placeholder.


Options Menu and Saving Data

With the basic game flow from the title screen, to the map screen, to individual levels gameplay completed, I am now waiting for additional progress to be made on deciding upon the actual gameplay mechanics and their specifics which will be used within the levels before I am able to program any more gameplay content. As such, I begun to work on any additional areas that would need to be completed at some point regardless.

The first of these was creating a settings menu accessible from the main menu. Currently, I have just included buttons for clearing the save data, and controlling the volume levels, although more may be added later as and when features are added which require a setting changeable by the player.

I only had some place holder audio to test with at this phase, but once sound and music has been produced, they will be incorporated into the game and will be affected by these buttons.

I programmed the game to create separate profiles for saving data related to this, storing it to an external file stored on the user’s device, which can then be read from when loading up the game for a second time ensuring that the player’s progress across sessions is maintained. I decided to create separate profiles for the settings just created, as well as one for the level stats created previously. At this moment in time the game uses .ini files, which while efficient, are also easily readable and can be manipulated by the player in order to cheat their level of progression in the game. In the future this may be changed to a more secure alternative, or have security layers added to encrypt the user data before storage. This will be of particular importance when incorporating a similar system for IAPs, which if otherwise not protected may allow a player to bypass the games monetary system.

With a greater understanding of the elements expected to be recorded about level progression, I also begun incorporating basic level elements such as the max distance travelled and end flag, as well as medals into each level, so that progress when playing the level could also be stored.