TIME JANITOR
Epic Mega Jam Entry 2020
SUMMARY
​
Time Janitor is a game made over the course of seven days for a game jam where entries must fit an announced theme.
​
My primary role during the project was being a technical designer and worked on a majority of the games fundamental functions such as player functionality and a time travel mechanic. I also worked on game flow, UI art/functionality and bug fixing.
The first person exploratory puzzle game has the player play as a Time Janitor who must phase between past and future to repair time rifts that threaten reality no matter the cost.
​
Theme : "It's been a long time, but we're not done yet"
Download link : https://littlesparta.itch.io/time-janitor
DESIGN
The design was inspired by the time travel aspects of the PS1 game "Sheep, Dog 'n' Wolf", the main feature of our game being the player's ability to teleport between past and future to solve puzzles to reach the end goal. During the player's journey they would experience the cause and effect of their actions, from physical environmental changes to subtle story telling elements.
​
Mechanic/Puzzle designs:
Time travel watch; the primary device the player uses to travel between past and future. It would also prevent the player from travelling to a point where collision exists and has a short cooldown between travel to prevent misuse/game breaking issues.
Seed to Tree mechanic; where players can plant a seed anywhere in the past and when returning to the future, it will have grown into a tree, allowing them to climb the branches to gain access to high ledges.
Bomb plants; Small plants where the player can pick up a bomb fruit to destroy items blocking their path.
Seed piles and regenerative bomb plants; These are actors designed to give players a chance at the puzzles to ensure they are completable even when a key item is lost or misused.
​
Story Telling element:
A large set piece was created where the player must solve a puzzle which involved destroying their surroundings causing devastating results to convey the lengths a time janitor must go to repair time rifts. This was in hopes to create a shock factor to the player upon realizing.
MY RESPONSIBILITIES
Production:
Task management within the team via the use of Trello.
Training and support in version control (Perforce).
Development assessment and technical feasibility.
Deadline management.
Hosting daily stand ups.
​
Development
Creating functional prefabs according to the game's design document for the team to place into the world with ease:​
Tutorial system where points can be placed with custom text and duration.
Interactive items and functionality with level state-dependent visuals.
Checkpoint system.
Implementing player character and UX:
Player movement and functionality.​
Inventory system with inspectable interaction.
Physics pick up system.
Designing and implementing the system in keeping track of which time period the player was in, the state of the level and its contents via sub-level streaming and event dispatchers.
Scripted events and puzzle related actors.
Changing back end systems accordingly to design changes and bug fixing.
​
UI
Main menu/End game UX.
Inventory hot key system.
Player user interface (Tutorial text, inventory UI art, and death screen)
Random death messages stored in array.
World space user interface for time device to represent usability status.
INTERACTION IMPLEMENTATION
I created a blueprint interface to allow ease of communication between the player and any interactable in the game, the player fire a line trace where if the object hit has the interface implemented then the message would be sent to hit object to perform their function.
On player pressing E, fire line trace and send message to object.
The line trace function from player camera to directly in front with open variable to set reach range. If actor hit implements interface then send message to hit actor.
Any actor implementing the interact interface will perform their designed function when receiving interact message from player line trace.
On player pressing E, fire line trace and send message to object.
LEVEL WORKFLOW AND TIME TRAVEL MECHANIC
For level design workflow we used sub level streaming consisting of three levels (Persistent, Future and Past) with crucial gameplay related actors placed in Persistent.
​
I used a custom game mode and enum BP to keep track of what sub level should be loaded. Through the use of event dispatchers, if the player used their stop watch then it would notify the game mode to switch states which in turn would let all listening actors to change their availability/visibility.
Use item function triggering method dependent on enum track current equipped item, in this example would be time device. When time device is triggered, it sends message to game mode to change level state.
Game mode listens for player to send message to tell it to change state, in which turn will send message to gameplay actors that are listening for game mode changing state.
Here is an example of the Seed BP actor where it will change state depending on level state and if it was planted in past/future. If planted in past then it should appear as a tree in the future, if planted in the future then it should not appear in the past.
Use item function triggering method dependent on enum track current equipped item, in this example would be time device. When time device is triggered, it sends message to game mode to change level state.
POST-MORTEM
Due to the nature of game jams where obtaining functionality as quickly as possible is of upmost importance, there were features I would have implemented differently or were cut out.
​
We originally planned to create an effect inspired by Titanfall 2 where the player was able to time travel smoothly via a portal seamlessly but lacked the skillset to complete. Instead we opted for instant appearance.
The puzzle designs were too basic and did not provide enough satisfaction to the player upon solving.
Items required to solve the puzzles were not placed in obvious areas to the player, arguably this could have added to the exploration of the game however we found that it was more frustration to the player. To combat this, I would have placed the items in more obvious areas, implement cinematic camera sequences to the tutorial system or a item highlight system.
Ran out of time to polish the game further such as UI visuals and UX. A lot of time was taken in bug fixing and resolving build cook errors.
​
Overall the team and myself were extremely proud with the submission, it was functional, no game breaking bugs were found and was playable from start to finish. Working extremely close with the artist, we were able to optimize the assets to create the instant time travel effect without too many visual artefacts or encounter poor performance.
​
CREDITS
Kenneth Ma: Producer/Technical Designer/UI Artist/Additional Designer
Matthew Ho: Game/Environment Artist
Nick Blackburn: Designer
Richard Spiers: Code