Burgleville Dev Journey

This is what it takes to make a video game

Note: You can view this as a
plain text file

setup Gogot engine
start a new project

plan rooms, objects, items

plan item weights, values, chances

draw some item and object assets

set up TileMaps and TileSets

render the scene

get user input (keyboard)

add collision detection

implement binary space partitioning
(for procedural generation of houses and cities)

add scene transitions

implement door opening

placing objects in houses

placing items in objects

add main menu

settings screen

splash screen

scene transition effects

foggy rooms

mouse zoom

player animation

backpack GUI

inventory transfer

plan some story and missions

gamepad controls

keyboard/gamepad controls for UI

UI navigation and confirmations

saving and loading

add suspicion meter and stats HUD

improve saving/loading (custom JSON objects)

tricky menu improvements and edge cases

add more characters

add tutorial and guild

location traversal

add action bar (for lockpicking, etc.)

implement special stashes (vehicle, desk, safe)

tasks & task list

signs and text boxes

partial tutorial

animation the signposts

bugfix: loading a save wasn't clearing previous vars

bugfix: moving backpack rows was acting weird

bugfix: space on item_row was emitting "pressed" twice

lockpicking animations

migrated from Godot 4.1.1 to 4.1.2

random NPC generation

NPC roaming with boundaries

NPC animations

bug fix: attach NPCs to the proper scene

update the suspicion label

added notoriety mechanics

added mask mechanics

added safe cracking

bugfix: searching through walls

design cop assets

add cops to cities and NPCs to houses

make fog on top of NPCs in the house

make being in a house a suspicious activity

added objects to tutorial

backpack bug fix

place "X" on burgled city houses

cops chase the player at high suspicion

dynamically color the suspicion and notoriety bars

popup notice on entered houses and busted locks

revamp suspicion/notoriety/mask mechanics

update tutorial signposts

slide in and out of the city on the vehicle

getting busted!

add camera smoothing

fixed: moving while picking

added special NPCs

character dialogue

add museum

update settings menu

implemented buy & sell

fixed some bugs

museum donations and rewards

fixed backpack controller bug

auto-scroll backpack for gamepad

change backpack drop behavior

vehicle yard

vehicle carry warning

update player stats and saving

updated assets and decorations

improve gamepad menu scrolling

expanded the yard and vehicles

implement experience gain and level up

get a popup message on level up

delay level up message while in conversation

implement training menu

fix window auto-closing on movement

enable new game defaults in config file

maze generation
(DFS with backtracking)

add main street to city (split at initial bisection)

extend vehicle collision & interaction range

updated vehicle assets

fix trespassing while exiting special houses

update vehicle collision on the yard

implemented vehicles purchasing

extract dialogue to separate file

fix skill training buttons

gain abilities when requirements are met

apply skill and ability effects

improve initial continue logic

using strength abilities

maze access board

start position camera fix

add maze reward area

task board asset changes on use

maze tasks

add city edges (beach and forest)

refactor border code

location based triggers

leaving city by main road

add random foliage to city

statistics board

implement task board

split tasks by type

fix two "new game" save bugs

randomize character poses in settings

categorize items

display categories in backpack

backpack categories toggle

add task board collection chest

board task generation (category, item)

task board initialization

improve task board structure

update curator asset

improve sub-menu transitions

board completion condition check

suspicious person in guild

refactor board tasks

add more board task types (multi, single)

add more board tasks

clean up some tasks

improved level up notification

particle effects for level up

particle effects for gold up/down

bugfix: new game after deleting a profile

more board task types (distinct, room, object)

testing new board task types

particle effects for player busted

migrated from Godot 4.1.2 to 4.2

add code regions

cleanup particle effects

improve level up delays

update NPC mid assets

bugfix: min city lot size

small tutorial & guild updates

update statistics board

gameplay demo with audience

NPC and Cop visibility cones

toggle visibility settings menu

design, draw, import ability icon assets

update some GUI themes

add player icon to save profile menu

added clout & VIP item label colors

more type safety and GUI theme edits

started work on the Burgleville website

particle effects for bashing and smashing

screen shake on bashing and smashing

screen shake toggle in settings

refactor notoriety logic when busted

add pathfinding for NPC chase mode

can be caught by NPC when trespassing

fix some spelling mistakes

theme donated item text to avoid donating again

particle effects for abilities and vehicle purchase

update main menu background

improve menu performance

more work on Burgleville website

update app icon and window icon

test windows export exe

more work on Burgleville website

created item assets for the menu

display random items on the menu

improved unique ID generation to prevent duplicates

bugfix: NPCs busting the player in the city

add an achievements button

update unmet randoms tracker

bugfix: some saves effected by new game

bugfix: character changed on load game

bugfix: profile loaded flags

bugfix: restore city vars when exiting house

added 13 "associate" mission types

make associates disappear a puff of smoke

test random missions

dive into story and character planning

make all conversation text lazy loaded

bugfix: suspicion task wasn't completable by mask

starting expanding the story and creating paths and branches

change shoes to shoe

add eight new items (with values and categories)

add lazy loaded story mission retriever

BIG performance improvement
(only raycast when in visible range)

add a flag for story items and collectibles

added storyteller and story picking logic

added a fireplace object

started creating faction bases

more assets: wooden plank bridge, ship wheel, throne, tent, car colors, railing

create faction bases

destination menu when leaving faction base

re-route guild transitions to current_faction_base

return to faction location overrides (museum, bed)

complete character intro tasks from any faction base

place NPCs in faction bases

update conversation fetcher

faction base functionality: bed, safe, chest, statistics, signposts, task board, collection chest

added training, fencing, and bribing to other faction bases

draw & add sprites for seven characters

update D-Soc node assets

added faction base location triggers (exits and secrets)

add hidden chest triggers

vehicle swap/purchase on alternate bases

bugfix: two navigation mesh overlap instances

cleanup some code

add fake walls to certain faction bases

created more character assets

import new character assets

add some guards around the lodge (with dialogue)

draw mirror asset and add to faction bases

create real estate office

draw and add real estate agents and dialogue

create three safehouses

enable safehouse beds, desks, chests, stats, and task boards

allow safehouse resident recruitment

enable safehouse resident management

add safehouse resident statistics

draw and import real estate agent assets

make safehouse layout choice menu

enable safehouse layout modifications

added attention indicator for NPCs

added animation and checks for indicator

refactored NPC dialogue code

bugfix: superfluous auto-saving

started creating story maps (library, traphouse, hotel)

planned more story and missions

created the prison for the break-in mission

refactor story code for lazy loading

add mission details focus/mouseover in task log

implement first full story mission

finish trap house and introducing the rival

change starting mission minimum level to 3

update attention of all NPCs in current scene

update museum respawn locations for safehouse variants

add faction base discovery missions

bugfix: various default values on new game

implement all safehouse missions

implement all recruitment tasks

minor physics fixes, minor typo fixes

change skill points to be gained on even levels only

bugfix: "off by 1" error on skill points

more story mission planning

work on building more story locations (scenes)

add location labels to all locations

extract gold logic to helper function

lazy loading more stuff from Constants

add new item and npc assets

added type safety to almost every function

created more scenes (pirate ship, flea market, etc)

lazy load skybox color map

update all start position overrides

override all location labels

bugfix: room label showing in city

create more story locations (office, farm, autoshop, etc)

add more story locations (apartments, three new houses)

add items to supermarket scene

add more item properties to save

draw more assets and variants

>> now over 2500 hand-drawn assets

texture pack optimization

update assets and constants

add NPCs to supermarket

update NPC attention logic

hook up mission ready logic for four story missions

make destination menu scrollable

add auto-center for destination scroll container

bugfix: hedge-maze navigation mesh polygon edge synchronization error

bugfix: tutorial safes

bugfix: tutorial busting

bugfix: updated statistics text

updated gold and experience rewards for associate tasks

adjusted several config values for a more comfortable play experience

updating mission ready logic for five missions

refactor mission tracking logic

added guard chasing in special levels

added location based triggers for warnings

added supermarket guards, chasing, and busting

added supermarket back door, and running away

added supermarket break room and NPC witnesses

Shorten the supermarket guard reaction timer

implement buying items at supermarket

add item tags & special formats to item description lines

can't open backpack in supermarket

move supermarket exit back a little

finish exit trigger checks

add personal delivery for missions items

update NPC attention logic

allow backpack in supermarket parking lot

refactor storyteller unlock logic

update storyteller story selection logic

update supermarket purchased/stolen tags & descriptions

add morality rating to save file

supermarket mission affects morality (positive, negative, or neutral)

cannot sell or donate stolen supermarket items

cannot place stolen supermarket items in collection chest

add item variant logic for mission requirement checks

fully implemented another supermarket mission

skip destination menu if being chased by cops

add quest giver and location to quest info line

add regular operations to quest continue dialogues

bugfix: don't check requirements for inactive missions

hide recruit option on mission start and end dialogues

optimization: change some arrays to sets for O(1) key searches

allow special NPCs to ignore suspicious player

implemented another supermarket mission

implement another supermarket mission

re-balance all experience gain values

museum donations now reward experience

bugfix: elapsed time in load profile

added items to farm scene

update top label in backpack based on event

add story items to museum on mission complete

bugfix: item donation statistic for duplicates

enable juicing and cooking at the farm

updated farm scene with shallow water and suspicious bush

fix label and category colors for special items

finished implementing three farm missions

respect the save flag on level up

bugfix: double saving on story complete and level up

update story item locations in the museum

lazy load museum item positions

change starting mission minimum level to 2

planed out the details for four more missions

draw dog and cat assets and animations

draw saddle and fancy saddle items

implement the Animals class

finish implementing another farm mission

draw and animate cow assets

implement small animal class

add a dog to The Yard in roaming mode

add a cat to The Hideout in follow mode

Add a dog to the farm in follow mode

add two cats to the farm in roaming mode

add some cows to the farm

add farmers and cowboys to the farm

add a cat and dog in the farm house

add an NPC in the farm house

prevent getting stuck (player can push NPCs and pets)

big refactor: extract Items and Objects from Constants

add dialogue for farmers and cowboys

draw and import evidence and replica story items

draw and import red herring fish variant

add mission failure logic for Red Herring

add four dogs to the bridge

make the bridge dogs walk to the trees when a herring is planted

populate the auto-shop with mechanics

add mechanic dialog

add roaming dog to auto-shop

populate auto-shop items

implemented crime scene mission

bugfix: can't push a following animal when cornered

add small destination offset variance for pets following player

import toddler sprite assets

do some code profiling to measure performance

add code to preserve items between scenes with upstairs/downstairs

implement untouchable items

populate items for the fancy house

make the upstairs safe crack-able in the fancy house

add logic for two fancy house missions

major refactor: build a resource importer tool for large preset stashes in story scenes

performance improvement: load stashes directly to global var (skip temp vars)

finish planning three hotel missions

start populating hotel rooms with items and NPCs

add remaining item stashes to hotel

add the fireplace burning and rooftop tossing features

implemented two hotel missions

add receptionist dialogue (based on story stage)

implement hotel heist mission

add morality & failure checks for hotel heist

update resource loader to load locations and names as well as items

move supermarket and farm data to resource loader

draw assets for egg mission and babysitting mission

add data for the condo and the family home

add pets and toddlers to the family house

implement a mission in the family house

implement a missions in the condo

update animations for toddlers

make the toddler assets wider and taller

add special pathfinding destinations for pets and toddlers

implement another mission in the family house

add save file version for future data migrations

draw assets for colosseum ruins

add special non-nav tiles to some story scenes

draw suit (jacket, pants, belt variants)

draw flower (plant variant)

draw cupcake (cake variant)

import new item variants

add new variants to existing scenes

change tutorial and museum to load items from file

create the pier scene with NPCs (and new wood asset)

add skunks to ruins scene and vendor to pier

three month break overseas

migrated from Godot 4.2 to 4.2.2

update dialogue from post task 501

refactor movement locking from dialogue

add audio ID fetching by person & emotion

add audio ID fetching for animals/pets

big refactor: include audible emotions for conversation dialogue

update character dialogue

bugfix: wrong safehouse text for The General and AJAX

add some emotion IDs to conversations (for audio)

update more character dialogue

update even more character dialogue

remap dialogue for all nine real estate missions

update mission requirements for 6002, 6003

finish implementing all safehouse/real estate missions

add music audio bus and sfx audio bus

add volume sliders to settings menu

add volume settings to config file

fix: full screen toggle button is backwards

test playing sounds and music

have a separate audio stream player for the menu

play a sound when changing the sound volume

update receptionist mission and dialogue

add more locations stories for the storyteller

record some dialogue emotions

add caching for AudioStreams

use preload to cache the most common sounds

record some songs and sounds

bugfix: repeated sound when closing backpack

record more music and sounds

add item texture map (soft, hard, metal, squishy, etc.)

play item sounds based on texture

record more sound effects

bugfix: stop lockpick sound on key up

balance and remaster music to make it less distracting

bugfix: sounds stopping when releasing action key

record more music

remaster some songs

record more sounds

write some storyteller dialogue

record more music and sounds

play vehicle sound on enter/exit/purchase/change

add more variety for door sounds

show vehicle prices on signs and purchases

add more storyteller dialogue

change story check to set for faster lookups

more music and sound effects

more storyteller dialogue

change storyteller logic for new stories

record sounds and dialogue

improve pet & toddler collision detection

refactor pet and animal audio player code

play sound when interacting with pets or toddlers

record more music and sounds

remaster all songs, fill in melodies and harmonies

split all songs into a drum & bass only version

dynamic music! crossfade to d&b when entering houses

planned most of the achievements

balance drum&bass volume levels

add UI for achievements screen

add UI for help screens

add UI for credits screen

implement help screen with previous and next

implement credits screen (with scrolling)

implement achievement screen (with scrolling)

draw gamepad with labels for the first help screen

add web link to the bottom of the credits

record more songs

update help screens for controls

create remaining help screens

record another song

update 20 existing songs

update all menu items, more pixelation

update the game icon

update Burgleville website

balance volume levels on 9 songs

split OST into two albums (regular, drum & bass)

Set up new Steam account

start setting up Steamworks account

pay Steam Direct Product Submission fee

integrate Steamworks SDK

export a test release of the game

configure a depot, push a build, install, and test

record two more songs

update OST album covers

optimize the help PNGs (for smaller file sizes)

resize achievements and pack a new texture map

reimport and configure new assets

change steam achievements to 64x64

update the UI for the new icon sizes

add framework for loading achievements from Steam

add backup to still show achievements without Steam

create steam achievement images

create animated popup UI for achievements

add achievements and user stats to Steamworks

add product description to Steam

create graphical assets for the Steam store

add museum token and collectible coin placeholder assets

update items code to account for collectibles

add another achievement and game stat

>> now over 4000 assets!

update some Steamworks admin settings

record two more songs

create 160 museum token assets

add two new statistics

add museum reward chests

implement personal faction safes

move museum tokens to personal safe on exit

update some help screens

create some screenshots for the Steam store

remap which music plays in each location

set music dynamic boundaries for specific scenes

set music dynamic boundaries for hidden locations

add some collectible coins to hidden chests

automatically move coins to personal safe (with popup message)

allow collectibles to be moved to the personal safe manually

no music restart on bed rest

increment stat_cc on move right

bugfix: main menu music plays over faction music on new/load

reset stat_cc on profile load or new game

remove hidden_collect stat

bugfix: item stashes not loading from file

bugfix: respawning collectibles when reloading a scene

tested collectible coins

tested dnb boundaries on story scenes

bugfix: preserve_items flag wasn't resetting

add sound textures to coins and tokens

update Steam store description text

allow guild missions before completing 501

add more hidden coins

create Steam library and broadcast assets

update title screen logo

update website, add information page

update Burgleville site and Ragnadox site

create a game trailer

add trailer to YouTube

add trailer to Ragnadox site

add trailer to Burgleville site

add trailer to Steam store page

migrated to Godot 4.3

migrated GodotSteam

set up Steam cloud sync

fix storyteller intro

unlock most destinations in quickplay

fix export config to point to correct text file dir

update code for fetching Steam achievements and stats

chat with Lawyer about Trademark

draw more item asset variations

import over 50 more item assets

add more achievements

add more stats

update and push Steam stats

update and push Steam achievements

test Steam stats and achievements (live build)

refactor: convert all TileMap to TileMapLayer

set Steam store page to "Coming Soon"

create a Steam store widget

put the widget on both websites

put verbose logging behind a debug flag

can talk to supermarket cashiers from the counter

update sale item options for all fencers

make sure inflation is applied when buying

quickplay: remove safehouse and faction bases

quickplay: give all vehicles, pick one as current

quickplay: randomize stats and abilities

register for Steam Next Fest

create bug & feedback form

add feedback button to main menu

fork a demo branch

limit the demo: The Boss won't start mission 501

limit the demo: block missions and faction bases

limit the demo: allow missions 1000, 1001, and 1002

limit the demo: disable stats and achievements

limit the demo: show subtitle and hide achievements button

limit the demo: limit to first three vehicles

limit the demo: limit to 50 item donations

limit the demo: limit 20 neighborhood visits

add maze memento and update maze master location

show popup when trying to leave while overweight

hide average value for collectibles

add animated gifs to Steam store description

update log information

change mission 500 start requirements again

implement mission 1002

short break for COVID :(

run full playtest of the complete demo

gather demo metrics around playtime and pacing

a bunch of updates and fixes from the playtest

update starting audio levels

update some tutorial signposts

reflow the volume focus order for controllers

bugfix: canceling menu while confirmation is open

bugfix: returning from main menu with start button

update window title and version log formats

navigate help screens with L1/R1

update tutorial signpost text

update Guild signpost

update The Boss dialogue options

update various mission text

update all destination text

hide weight/volume for collectibles

refactor backpack logic to use global state

remove "sell all" functionality, change to "move all"

adjust z_index on all TileMapLayers

update label colors for buy/sell modes

feature: characters have different dialogue colors

bugfix: tutorial cop can spawn out of bounds

bugfix: house NPCs spawning in the walls

bugfix: cops stall when entering city with notoriety

don't bust while reading a signpost

improve suspicion part of Tutorial Hall

remove signpost font outline, it's blurry at fullscreen

update dialogue for starting 1001

add a bowl to farm kitchen sink

bugfix: farm dog goes under the kitchen floor

update farm animal wander/follow boundaries

update more help screens

add gold rewards to story tasks

widen NPC deadzone to prevent vibrating in place

adjust music volumes and tighten loops

don't restart music at the museum after donating

record and import sounds for five characters

record and edit 83 more audio sounds (262 total so far)

connect sounds for seven characters and some animals

update all NPC assets

finish recording sounds for the demo

create two more sound players for parallel sounds

add command line args to toggle verbose logging

adjust some audio volume levels

submit demo for Steam review!

another full demo playtest

clean up some debug logs

update some mission signposts

remove corner dot for one NPC combo

tutorial stove had wrong object ID

Lootbox says different things when greeting player

neighborhood destination should only show at faction bases

big refactor: add object sounds to object importer

display walking speed on main HUD

add some save file validation to prevent getting outside of the demo

adjust audio volumes for several sounds

record 40 more sounds (mostly UI effects)

fix some sound interruptions and replays

export release candidate of demo and push to Steam

final demo playtest on Steam

released the demo!!
(
two days before the press preview)
(two weeks before Steam Next Fest)

got demo feedback

fixed some spelling errors

check more sections for spelling errors

add starting message to the tutorial

enable mission 500 in demo

block other faction destinations in demo

push updated demo to Steamworks depot

This takes us up to the Burgleville Demo v0.9.1.23

Most of the remaining work is to add more story missions and more endings