Cal Hemingway: Developer Portfolio

Cal Hemingway

Note from Cal: Hi! I know this page is really long but i'd encourage you to atleast skim the entire thing, a lot of effort went into this project and I believe it shows! <3

Splat! is a third person gravity based game where you fall through a series of increasingly complex levels, trying to reach the end without going Splat!

Developed for PC, Splat! is the second game I have released to Steam, with part-time development beginning at the start of November and finishing/releasing in Mid-January, this game was developed with a very short turnaround.

The game was developed with Unreal Engine 5.2.1 (later upgraded to 5.3.2) and uses my CommonUI Menu Pack developed for the purpose of saving myself time in future projects. All assets in the game (aside from sound effects and music) were created by myself soley for use in this game.

User Interface (Built with Common UI)

A lot of effort was put into making sure the UI for the game was as good as it could be. To accomplish this I used Unreal's built-in "Common UI" plugin for the first time.

All menus are activatable widgets, using custom animated buttons as well as some additional effects (pulsing text, etc.)

Menus

I can't quite describe how much pride I take in Splat's main menu, it is by far my favourite interface I've designed. Not only does it have a exciting dynamic background featuring both Playable characters in animated scenarios, it opens with a unique, eye catching sequence that lets you know the tone of the game immediately.

The Main Menu changes depending on whether or not you have completed a level, if you have then you will have Level Select unlocked and avaialbe, if you haven't then the button will not appear. Clicking the "Play" button from the main menu will lead you directly into the map following the map you last completed.

the Level Select menu itself features a scrolling interface, with buttons for each level being dynamically added once you complete them, when hovering over a level button in the menu a Stats pop up screen will appear next to it showing you your best time and the amount of times you failed during that run.

Splat! Opening Sequence

Click To Open

Main Menu

Click To Open

Level Select

Click To Open

Pause

Click To Open

Quit when on the Title Screen

Click To Open

Quit when in Game

Click To Open

Level Completed Interface

Click To Open

Level Failed Interface

Quitting the game from within or without the Main Menu will yeild different results, if you are not in the main menu a "Quit to Title" button will appear alongside the "Quit to Desktop" button, if you are in the Main Menu then this button will not appear, a similar function adds or removes the scrolling egg background from menus depending on whether or not you are in the Main Menu.

Heads Up Display

Click To Open

Gameplay HUD & Countdown Timer

Click To Open

1st Tutorial

Click To Open

2nd Tutorial

Click To Open

3rd Tutorial

Click To Open

4th Tutorial

Click To Open

Controls Pop Up

Click To Open

Controls Pop Up (Controller)

Settings

Settings such as quality, resolution and volume are not only stored in the GameUserSettings ini file but also have an additional Save Game class, which overrides the GameUserSettings to ensure that the user's chosen settings do not change unless the user changes them, this also serves as a backup in case the game crashes during settings changes (changes are only saved AFTER the user confirms them.)

Changing Resolution or Screen Mode (Fullscreen, Windowed, Borderless Windowed) are the most common problem points when changing settings, as such a timeout confirmation screen appears after these settings have been altered, where the user only has a set amount of time to confirm the settings before the revert, giving a much needed safety net to these settings.

Click To Open

Options

Click To Open

Choosing Resolution

Click To Open

Confirming Resolution/Window Mode Changes

Click To Open

Windowed Fullscreen Disables Resolution

Click To Open

Quality Settings

Click To Open

Allows for Custom Settings

Click To Open

Clear saves button added in Patch

When iterating between resolutions, all other options buttons are disabled (due to them saving settings changes when clicked.)

A lesser known fact about changing Screenmodes in Unreal is that selecting Windowed Fullscreen automatically sets the screen resolution to your monitors native size, overridng any changes youve made to the resolution. Rather than try and work around this I made the decision to disable the resolution button whilst in Windowed Fullscreen mode, this makes it clear to the user that the resolution can no longer be changed.

Whilst Unreal does have a built in volume slider, this does not behave in the same way the CommonUI buttons work, for instance whilst CommonUI buttons can change colour and size by simple Hover/UnHover events, I had to tie multiple different events such as On Mouse Capture (Begin/End), On Controller Capture (Begin/End), and On Added/Removed from Focus Path to create my own Hover/Unhover events for the slider, I also manually set focus when hovered to ensure that the controller is positioned on the correct item should the player switch to it.

PATCH v1.1 CHANGE: Following Splat!'s Steam Release, a user reported a bug that they ultimately solved themselves by clearing saves, after I patched this bug with the help of their feedback, I realised that the game did not have an option to Clear Saves within the game itself, I rectified this by including a "Clear Saves" button in the options menu.