This page contains an exhaustive archive of the development process of Green With Energy, my first commercial video game.
My hope is that the gamedev community can learn from this work. When getting started years ago, I found that while there was a lot of polished tutorials, art pieces, final work, etc... there was very little outlining the actual development process in such a raw and open manner.
Please note that the source code is not yet available due to commercial licensing restrictions for the assets, however I am trying to find a solution. In the meantime, I'm open to sharing the GitHub repo on a 1:1 basis if you're part of the gamedev community, so please give me a shout at hello@cameronbrown.co.uk if you're interested.
December 2020 - First Design Doc
This was created exactly one year before this document was written (2021-12-30) so there's a certain finality that it gets published on year later. The game was called "Electron Grid" at this time and the doc here was just my first outline of the idea itself.
The videos in this YouTube playlist are some of the early concepts, however you can see that the general art style and layout of the game was very quickly put together.
Getting here was actually the easy part, as the following months would be laser focused on playtesting the mechanics, tweaking the user interface and getting the game to actually be fun.
May 2021
Puzzle Elements Design Exploration
A slidedeck I created to fully hash out the concepts.
Design Document
An expansion on the initial design doc, this follows the test of the MVP on reddit and other forums. Lots of interesting data about how the game performed in terms of analytics here.
Initial Advertising on Reddit + Steam Data
From the above doc:
Official Press Kit & Website Launch
GreenEnergyGame.com was launched along with an official press kit page, which can be found on Google Drive:
The Unity localization package was used to create a strings table driven from Google Sheets. In future, I hope to expand upon the game with translation updates and expand to more markets.
>>>>> PLEASE check and correct alert issues and delete this message and the inline alerts.
27/12/2021
Lots of work done recently to re-architect the product
In final stages now -- bugfixes only, basically
01/08/2021
Going to start implementing levels into the new level format. Expect half to be done soon. Collect data on how the puzzle creator feels.
29/07/2021
>>>>> gd2md-html alert: inline image link here (to images/image1.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
Implementation of policies needs to be done next, i.e. powerwall, solar rooftop and EV charging - big things:
3d models: solar panels on house, power wall on house, ev chargers on house and car park
28/7/2021
n/a
27/08/2021
n/a
27/07/2021
A core theme in that list is there’s a bunch of rough edges, things that were created but not finished. There may also be a lot of overlap.
Presuming we predict the differences, we can send the translations off soon.
3 categories
Bugs (land tax, data report quality, scorecard, performance)
Powerwall - consumer adds battery if enabled, plus 3d models
Solar rooftop - consumer adds generator if enabled, plus 3d models
EV charging - consumer adds more consumption, plus 3d model
Private land - if enabled, allows connection in specific blocked tiles
Central service locator for policies on GameModeManager
Tiles -- can make temporary for now
Dock
Farmland (& farmhouse?)
26/07/2021 (GWE Final List)
Translation file sent off and done
Fix performance issues
Fix level spawn issues
Fix report quality issues
Fix teaching moments
X-formers
Battery overload
Fix or remove star ratings
Implement private land
Policy
Implementation in PowerConnectionMode
Dock tile
Farmland tile
Finish electric vehicles policy
Finish sketch for final 12 levels
Implement 30+ sketched levels in-game
Fix surface level spawning on ‘legacy’ levels
Fix land-tax changing
Steam Next Fest
Implement proper Steam Workshop publishing
Puzzle Creator
Surfaces (Grass, Sand, etc…)
Variant UI
Contact press & influencers
Run-through all levels on budget, weather, challenges, etc… on spreadsheet
Policy
Power Wall
Solar Rooftop
Challenges
Redundancy
Final launch day! 🎉
25/07/2021
Workshop MVP completed for in-house authoring!
Private Land
Fix other bugs such as reporting?
24/07/2021
Workshop
Design variant and surface user interface
Get file format capturing the build commands and persisting to disk (or at least, logging)
Private Land
Design shim policy which wraps this up
23/07/2021
Goal is to finish Workshop in the next weekend, 3 ish, tickets
New spawning based on addressables
Level loading, ConfigureMode and BuildMode
Precache
Blocker: protobuf codegen
_activeConfig.variants -> addressable variants
[Done] New empty tile based on base tile
[Done] Kb shortcuts messed up
Variant UI (dropdown) and surface UI (dropdown)
Top right panel not yet working
[Done] Need to fix variants in creative mode (some are buggy)
Paintbrush
Icons, trams, double size buildings
Private land is a set of policies that unlock blocked land
PolicyCache
Toast when attempting to go into private land
Without the policy
With a policy but exceeded
Tutorial Alert
Vehicles? Last bit of polish before I would consider this “done”.
22/07/2021
Finished the toolbox everywhere feature
Private land, a synergy™ between
Opted into October Steam Next Fest
Demo is finalised but needs testing
*
>>>>> gd2md-html alert: inline image link here (to images/image2.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
Problems
Base tile should look nicer, maybe with a sprite for empty-ness
Alternatively a border and Tile_empty
Shops, factories, etc… do not place down properly yet
Tile serialisation is still broken
CityRoad is incomplete and CountryRoad is broken
21/07/2021
Continued work on Workshop modes - next job is to start replacing existing levels with these json files
20/07/2021
Designed 3 more levels, looking to do more
Blockers - Final idea is private land, e.g. farmland, where tiles must be purchased
19/07/2021
Sketched more levels
Added ability to save and reload map data
18/07/2021
WorkshopMode
Requirements
Create new level
Settings dialog for metadata, including weather, budget, challenges, title, description and more
Save button which uploads to Steam
Upload to Steam Workshop and open page in overlay
Ability to load in subscribed Workshop levels
Ability to test Workshop levels
Build/demolish roads, houses, etc…
Build/demolish foundations including grass
Ability to load in arbitrary levels from disk
Toolbox Everywhere
Move toolbox into prefab from DesignMode
Add toolbox hooks into InspectorMode (tech debt, ugh…)
Add hooks for toolbox buttons on relevant screens
ReportMode
SharedPref to detect new player
If you first run, “You can click FF to go faster!”
Bugs
LandTax
Level loading performance
Supply and demand graph
17/07/2021
Sketched 7 new levels that can get implemented soon
23 remaining, WIP
30/06/2021
Late night coding TM
18/06/2021
*
17/06/2021
Need to determine new mechanics around policies (land buying?)
16/06/2021
Playtest launched to 120 wishlists, 4k views, 370 playtesters
*
>>>>> gd2md-html alert: inline image link here (to images/image3.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
*
>>>>> gd2md-html alert: inline image link here (to images/image4.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
*
>>>>> gd2md-html alert: inline image link here (to images/image5.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
*
>>>>> gd2md-html alert: inline image link here (to images/image6.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
*
>>>>> gd2md-html alert: inline image link here (to images/image7.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
*
>>>>> gd2md-html alert: inline image link here (to images/image8.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
*
>>>>> gd2md-html alert: inline image link here (to images/image9.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
>>>>> gd2md-html alert: inline image link here (to images/image10.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
3 month priorities
Finish puzzle creator for local use case at least
Get something worth demo’ing (or public playtest’ing) with influencers
For levels, there is two “tracks”
Add content (tiles)
Design and build levels
Create placeholders so these can be parallelised (plus, this is less dependent on specific models)
6 month priorities
Finish puzzle creator & seed the Steam Workshop
Finish the levels for the game
Launch in Early Access towards the end of the year or Spring 2022
Implemented first energy 3 policies and Steam Cloud for saving level progress
Email from [redacted]
In terms of scale, it should definitely be possible to fit skyscrapers and large factories in with smaller houses: \
>>>>> gd2md-html alert: inline image link here (to images/image11.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
26/04/2021
Very happy with how the information is presented now. One design choice remains, which is presenting failure reasons in ReportMode.
Added failure snippets
New draft image from artist: \
>>>>> gd2md-html alert: inline image link here (to images/image12.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
25/04/2021
Added translation file and implemented it across the program (Probably ~200 keys, 500 words, across 6 languages)
Policy screen done, just need to add the implementation in PowerConsumer, etc… biggest part is having graphical FX like an EV station outside houses \
>>>>> gd2md-html alert: inline image link here (to images/image13.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
Overloads (for capacity and redundancy): Design how overloads they surface
Transformers: Basically done, just need to assign voltages to different houses and figure out how to surface the information
22/04/2021
Consider adding presets for consumers and generators; a new blocker is all the different tiles need to be configured - consider adding new tools in the editor for this
Two main interface design problems: overload alerts (WIP) & policy (done)
Need a generic PowerLine overload function - WIP (Fizzle FX, warning icon, maybe a message in the clipboard or report?)
21/04/2021
Demolition fee? - owned by LandTax - upon Build, take over (add snippet) - done
Battery bar borked among other stuff - blocker for v0.3.6 - done
Done iterative simulation graph - looks great in sim and report mode
Voltage & capacity
Relatively easy - add values to PowerLine, check for various rules; hard part is failing upon overload (same as random redundancy failures) - done
20/04/2021
Been working on the test urban environment, this is a direct follow on from work on TileFramework and getting the lights on materials sorted:
>>>>> gd2md-html alert: inline image link here (to images/image14.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
Deploy trial beta logo (ask Designer if he wants in credits + what title + link?)
Power line redundancy is still an issue - how to introduce it without breaking the existing tutorials? How can it be taught?
Added empty policy menu, could do the same for connection and edge edit modes: \
>>>>> gd2md-html alert: inline image link here (to images/image15.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
Scheduled playtest with [redacted] (5pm CST = 11pm BST), Win32/OSX?
15/04/2021
Back & forth with the Fiverr designer. My thoughts are basically, how can we add colour/pop, and how can we make sure this looks modern. Blur? Colour gradient?
Old
New
>>>>> gd2md-html alert: inline image link here (to images/image16.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
>>>>> gd2md-html alert: inline image link here (to images/image17.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
14/04/2021
Realised how long it would take to iterate on levels and decided to prioritise making some additional tooling
GWE Maps (just some notes on what we want to have initially)
>>>>> gd2md-html alert: inline image link here (to images/image18.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
>>>>> gd2md-html alert: inline image link here (to images/image19.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
30/03/2021
Playtest #4 - [redacted]
17/03/2021
Hit 300 wishlists on Steam and almost 100 members in my Discord community
Kicking off a series of design experiments to understand which game mechanics to focus on next
Writing a document and spreadsheet to outline the scope of the game (I'd say I'm 1/3 into this project, but I want to formally define that scope so I don't go overboard)
Built out the level gallery (with Steam Leaderboards) and port first level
Scope out tutorial/educational part of the game
>>>>> gd2md-html alert: inline image link here (to images/image20.png). Store image on your image server and adjust path/filename/extension if necessary. (Back to top)(Next alert) >>>>>
\
\
06/02/2021
Playtest 5
Not clear how to connect wires
Concept more obvious once that problem is solved (I’m calling this “the bootstrapping problem”)
Added hint in corner on level 1
07/02/2021
Dev notes
We could introduce batteries before solar panels (or even houses)?
What about progressively adding new “chunks” to the level as it progresses?
Need some interesting constraints on wires
Obvious: voltage, batteries, different types of power generation
Less obvious: voltages cannot cross
Some ideas
Houses can only be leaf nodes, so not a junction?
What about batteries or transformers? Should they be junction-able or not?x
Grid modifiers or adjacency bonuses
Talk to [redacted]
TODO: Schedule something for next week
09/02/2021
Playtest 4
Couldn’t mass spam delete connections
Undo/redo?
Not obvious what simulation is doing or necessary for
Not obvious there is an optimal solution
Game has a calming SimCity like effect (woo hoo!)
Seen quickly as a puzzle game
Level03 (consumer connections max out at 2 not obvious, skipped right to single loop solution)
Level04 doesn’t teach anything useful
Level05 breaks the Level03 notion successfully, though I suspect it might not be obvious why for other players
11/02/2021
Playtester 1
par not obvious
rules not obvious at all, state more explicitly
reset button would be nice
Playtester 2
colours are obvious
test your design button not obvious, but obvious on command
goals not immediately obvious (maybe make simulation goals on screen)
diagonals might be confusing• sound and gfx are fun and on point
Own words:
good graphics
relaxing
addictive
relatively easy to understand
Playtester 3
• Got first puzzle quick but didn't get simulation button -- pressed exit button