B-B0 The Delivery Bot

B-B0 THE DELIVERYBOT / BTDB

BTDB is a 2D puzzle platformer game that will leave you truly feeling like a delivery bot. Put yourself in the shoes of B-B0 (not that it has any shoes) and work tireless, labouress, unforgiving hours for a delivery company who'll replace you quicker than I can finish this sentence. Sounds fun to you? In that case, this is the perfect game for you!

BEHIND THE SCENES / BTS

this game, originally called DELIVERYBOT, was conceptualised for my first year's "Game Sciene" module. we had an individual project assignment, to create game using some physics principles we were previously taught. i incorporated physics for a package, such as throwing velocity and rebound, as well as gravity for the player, so they can die from fall damage.

the game had to be made within our university's custom game engine using C++, so implementing these mechanics sounds simple on paper, but were actually quite tough! i kept the scope small and simple enough, yet enjoyable, so that i could easily program the game exactly how i wanted it to be. the game has now been rehauled and ported over to the Unity Engine.

11 Total Packges Delievered πŸ“¦

01 Total Deaths πŸͺ¦

2002 Total Kills πŸ’€

(these numbers obvs arent real yet)

dev logs ;

deliverytruck!

month of : November, 2023

As we come closer to the end of the first phase of the game's development, I have begun wrapping things up, giving players something to work towards, such as a final (for now) boss.

New "Delivery Truck" Boss
I have worked on a new challenging boss for the player to challenge themselves with at the end of all the levels. This boss has 2 attack patterns; 1, recklessly driving from left to right, running over anything in its path, and 2, throwing directed packages at the player (for them to dodge). As the player deals more damage to the truck, it will begin to drive faster, and throw even more packages.

New Puzzle Element: Malware
Added a new element to switch up the gameplay a little. This element takes over the whole level as an infection / virus / computer malware. This malware corrupts the player, preventing them from throwing the package over a specified number of times, challenging them to think before they throw, and use their package wisely.

New Puzzle Element: Punching Box
This element tests the player's package-throwing accuracy. The punching box behaves similarly to the Switch, it can be toggle by hitting it. The only difference is, this Punching Box requires the player to hit it multiple times in a short duration for it to fully toggle.

New Puzzle Element: Grandpa NPC
The first interactable NPC of the game. This element swaps out the level's package with itself, the grandpa NPC. He tasks the player with carrying their delicate body home without letting him hit the ground too hard. Thankfully, the old grandpa is very light, and falls like a feather, giving the player time to throw, run, and catch the grandpa before he takes fatal damage.

Local Co-Op
I started implementing a way to play with family and friends. Local co-op is rough at the moment, but works at it's bare minimum! In the future, I want to build upon this idea and curate specific levels/puzzles for co-op mode.

Controller Support
The sort of gameplay that B-B0 The Delivery Bot offered felt like a perfect suit for a controller, so I have begun working on fully supporting gamepads/controllers.

Store, Cosmetics, Rewards
I built 3 new systems for 1 function, customisation! The store, cosmetics, and rewards allows players to purchase skins for their package, making it their own. The skins are bought using currency that is earnt through package deliveries. The amount of currency rewarded to the player is based on their performance, for example, if the player suffered hundreds of deaths and only delivered a few packages, they will not be rewarded anything.

Collectibles
Scattered throughout the levels, I added items for the player to collect. These items are sometimes hidden behind invisble platforms, or in hard to reach areas, further challenging the player's skill level. I've added this in so that it gives player's an extra purpose to pursue.

Achievements
Another reasons to keep players engaged, achievements. Achievements are rewarded to the player for performing certain tasks or fulfilling challenges, such as defeating the final boss.

you have mail

month of : October, 2023

Yet another productive month for the game's development, things are really started to come together and compliment each other.

New Projectile-Shooting Letter Box Enemy
Added in another new enemy type, this time it shoots projectiles. This enemy is designed after generic letter boxes outside people's houses in America. Since this enemy is robotic, it detects players in a small cone infront of itself, shooting at their target every couple of seconds. The projectiles this enemy shoots are all designed to be letters, as it is a letter box after all. The projectiles can be dodged or reflected back at the enemy.

New Puzzle Element: Switch
The switch has two types; one can be toggle by manually interacting with it when beside it, the other can only be toggled by hitting it with a package! These switches can be set up to execute events/actions, such as opening up a new passage.

Main Menu
Worked on the main menu of the game, adding a nice huge title logo and accomodating buttons.

Game Music
Created a playlist system for the game, a random track (from a given array of music) is selected and played, once the track has finished playing, the system will automatically start playing the next track in the array, essentially creating it's own unique queue of music.

Tutorial Level
Re-designed the tutorial level a bit, I felt it dragged on for far too long, and poorly explained the player's movement mechanics.

Level Exits
Expanded on the seamless navigation between levels by indicating exactly where the exit/doorway is. This was done after receiving feedback that a player was a little confused on where to go after successfully delivering a package. The Level Exit's design is inspired by fire exit designs.

spicing things up

month of : September, 2023

This month was a productive month for B-B0 The Delivery Bot.

Destroyed Robotic Debris
Destroying enemies with a package now explodes them into small physical objects. Each little piece makes a satisfying retro "bomp" sound when colliding with the player or platforms. This has made playing the game and destroying enemies a whole lot more pleasing. The same has been done for the player on-death, they too explode into pieces.

Water Tiles
A new type of 2D tile to accompany all the new destroyed robotic pieces. I've applied Unity's 2D Buyoncy Effector to imitate the physics of real(ish) life water, so when an objects makes contact with a pool of these tiles, they float, bopping up and down in relativity to their weight.

Camera Transitions / Levels
When traversing between levels, the camera has now been made to smoothly pan from left to right while loading in the new level, this gives it the illusion that it is all one seamless stage/space. In reality, the level was asynchronously loaded in the background of the current level.

Tutorial Level
Started work on the introductory tutorial level teaching the player the ropes of the game. This level is played out by following orders of a friendly robotic friend, it explains what you can do regarding your movement mechanics, and how to perform them.

a new challenger approaches!

month of : July, 2023

In July I mostly worked on implementing new enemy types into the game. This isn't as straight forward as it seems, for a Delivery themed game, I had to brainstorm and design articulately.

Dashing Dog Enemy
1 of the 2 new enemy types is a fast, aggressive, robotic canine. This enemy's design is heavily inspired by the Robot dogs from "Boston Dynamics". The dog detects ahead of itself using a medium-ranged Unity RayCast, and quickly dashes at a target when triggered. It's up to the player to quicly react and jump out of danger to avoid getting crushed.

Flying Drone Enemy
2 of the 2 new enemy types is a airborne based enemy. This challenges the player's expectations slightly as all enemies introduced so far have been ground-based enemies. This drone enemy is a package-delivering-drone, so alongside adding this new enemy type, I worked on a level where the package starts in the hands of one of these drones, challenging the player to chase and steal it back.

Aside from these two new enemy types, I also added a new hitmarker particle effect to show the player when they've damaged an enemy, but not destroyed them.

taking the game a step further!

month of : June, 2023

Another busy month of development! In June I vigorously worked on this game, bringing in a load of new ideas, and improvements.

A Save System
I finally implemented a system that keeps track of the player's progess throughout different game sessions. The system uses JSON to create files holding data, such as the player's total deliveries, deaths, and kills. This system also saves the player's progress within the game, such as unlocked levels. Fortunately using a JSON for a save system will allow me to easily expand it and add in new objects to save, such as unlockables from a shop, for example.

Level Progression
I made traversing through the game / levels a whole lot more seamless. the player can now walk into a gap within the right side of the walls of a stage, and smoothly transition from one level to another.

A New Enemy
Created a new uncommon enemy. This enemy only slightly poses an extra challenge to the player than the already existing common enemy. This enemy is faster and tankier, taking two hits from a package to be destroyed instead of one!

A New Player Ability
Implemented a new skill / ability to the player. They can now hold the drop button (right-click) to use their placed package as a platform, gaining height in order to reach further out platforms. This vastly adds to the possibilities of a puzzle within a level!

Other (a few other minor additions made to the game during this month)
β†’ Added new soundFX.
β†’ Added some more particle effects.
β†’ Smoothed out the vertical camera following/focus.
β†’ Added longer (width-wise) levels.

bugs, fixes, and polishing

month of : May, 2023

This month I took a step back from implementing new features, instead I focused on ironing out persistent bugs and polishing certain areas of gameplay.

Here are the areas in which I polished ;
β†’ Package impact particle effects when rebounding off of walls and enemies.
β†’ Animation on opening and closing the pause menu.
β†’ Animation on the player's double-jump front-flip.
β†’ "Expected Delivery Time" system, now shows warnings to the player when running out of time.

Bugs fixed ;
β†’ Adjusted the distance allowed to throw a package when facing a wall (throwing the package too close made it phase through).
β†’ Fixed being able to drop the package inside the bottom of platforms.

Towards the end of the month I added a minor new feature, a level selector! The player is shown all available levels, locked and unlocked, and is given the freedom to select any to play from.

beefing it up

month of : April, 2023

I've been busy this month! during april, I implemented a whole lot of visual improvements to beef up the look of the game! These improvements consist of particle effects, player animations, and colour.

β†’ Added dust/run particle effects at the player's feet when they're running (and grounded).
β†’ Added a pop of smoke / cloud when the player jumps (and isn't grounded).
β†’ Added shooting stars when the player delivers a package.
β†’ Added a front-flip animation when the player double-jumps.
β†’ Added a load more colour palettes to the Colour Systemβ„’.
β†’ Correctly coloured the HUD to be in sync with the player's chosen colour (within the Colour Systemβ„’).

I've also worked on two other big systems this month ;

YouTube API Integration
A new system that interacts with data fetched from YouTube's API. the data is used to get a random user from a live stream URL and assign their profile avatar to the package, or their name to the enemies, having them show up in-game.

Combat Log
A new "combat log" system that displays information to the user, such as the amount of time it took to deliver a package.

colour system!

month of : March, 2023

My motivation is still going strong, I've improved and added loads to the game. most importantly, a unique Colour System!

The Colour Systemβ„’ allows a user to choose which colour a set of sprites uses, such as the player, or the enemies. for example, by default, all sprites use the orignal monochrome-green set of colours, however, if the player ever-so-desired, they could change this set of colours to have a pink hue instead, or to make just the player gold!

During this month i also beefed up the game a bit in other areas too ;
β†’ Added more sound effects (package rebounding, player dying, enemies breaking, etc).
β†’ Added fall damage so the player can now hit the ground too hard.
β†’ Designed a few more levels.
β†’ Added some post-processing, such as "bloom", to make the game pop a little more and look a whole lot more retro / arcade-like.
β†’ Re-designed a few sprites again.

I've also changed the art style of the game by redesigning sprites and colour palettes. i'm trying to get it closer to my desired vision in mind.

improvements ++

month of : January, 2023

I took a slight break from this games development, but have come back motivated! these are the things I've added this month so far ;
β†’ HUD (from player) to display stats.
β†’ Changed the size of the levels.
β†’ Started improving my use of the tile system tool within Unity.
β†’ Polished the player's movement some more. β†’ Improved the package system, such as adding weight options and a trail.

I've also changed the art style of the game by redesigning sprites and colour palettes. i'm trying to get it closer to my desired vision in mind.

basics and fundamentals

month of : May, 2022

Built upon the basic mechanics of the game by adding ;
β†’ Stats UI (total deaths & deliveries).
β†’ A pause-menu.
β†’ A Package delivery sytem.
β†’ Package rebounds and collisions.
β†’ Package fatigue (slowed mobility when holding package).

I also implemented some additional flare to the game. I created an explosion effect when the player dies and added screenshake to it for extra oomph.

hello world

month of : April, 2022

Worked on the very basic fundamentals like player movement; running and jumping, and how the player can interact with the package; throwing, dropping and picking it up.