
 
                     
                     
                     
                     
                     
                     
                     
                     
                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!
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.
            
| 
 | 
 | 
Global Deliveries π¦
Global Deaths πͺ¦
Global Kills π
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.
        
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.
        
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.
        
 
             
    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.
        
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.
        
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.
        
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.
        
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.
        
 
         
    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.
        
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.
 
         
    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.