|
|
|
|
|
Gameplay:
|
|
|
Money:
|
|
|
- Add basic subsidy @milestone(1: Basic Money) @done(2021-01-27)
|
|
|
- Basic Balance sheet
|
|
|
- Basic balance sheet @milestone(1: Basic Money)
|
|
|
- Basic display @done(2021-01-27)
|
|
|
- Movement @done(2021-01-27)
|
|
|
- Close button @done(2021-01-28)
|
|
|
- Better appearance
|
|
|
- Money graph @maybe
|
|
|
Procgen:
|
|
|
short phase, maybe?
|
|
|
- Add some procedurally generated dialog @maybe @milestone(2: Procgen)
|
|
|
- Add some procedurally generated newspaper @maybe @milestone(2: Procgen) @done(2021-03-15)
|
|
|
- Basic NEWS tab @milestone(2: Procgen)
|
|
|
- Different tabs for different sources @done(2021-02-21)
|
|
|
Straight-ahead news, tabloid, and something environmental?
|
|
|
- Write a small number of testing @done(2021-03-15)
|
|
|
- Write five stories for each source
|
|
|
- Arborist
|
|
|
- Wire @done(2021-03-22)
|
|
|
- True
|
|
|
- Figure out update interval @done(2021-03-22)
|
|
|
- Better NEWS tab
|
|
|
- Images for some stories
|
|
|
- More stories—a dozen for each source?
|
|
|
Logging:
|
|
|
- Add contract struct @milestone(3: Contracts) @nvm
|
|
|
- Add tree simulation @milestone(3: Contracts) @done(2021-04-27)
|
|
|
- Add contract generation @milestone(3: Contracts) @done(2021-04-12)
|
|
|
- Outline reserved areas @milestone(3: Contracts) @done(2021-04-09)
|
|
|
- Add company images @milestone(3: Contracts) @maybe @done(2021-05-21)
|
|
|
- Contracts should end
|
|
|
Trees:
|
|
|
- Add basic maintenance cost @milestone(1: Basic Money) @done(2021-01-27)
|
|
|
- Add basic age simulation
|
|
|
- Add water @milestone(6: Trees and Tiles)
|
|
|
- Biodiversity @maybe @milestone(6: Trees and Tiles)
|
|
|
- Tree Types @done(2022-01-27)
|
|
|
- Grass?
|
|
|
- Biodiversity score?
|
|
|
- Research agreements @maybe
|
|
|
- Forest rangers allocatable as law enforcement? @maybe
|
|
|
Have to think about thematic implications
|
|
|
- Have an "enforce trespassing" policy
|
|
|
Seems like a good way to get started?
|
|
|
Reduces cost of vandalism repair?
|
|
|
- Sell Firewood?
|
|
|
- Preserve @milestone(6: Trees and Tiles)
|
|
|
- Add preserve tool @done(2021-02-17)
|
|
|
- Add bulldozer @done(2022-03-16)
|
|
|
- Adjust odds in preserve @done(2021-02-20)
|
|
|
- Dialog
|
|
|
- Assistant warns when a lot of the map has been made into preserve?
|
|
|
- Congratulations when reaching a majority
|
|
|
Maybe 75 percent
|
|
|
Staff:
|
|
|
- Ranger staffing? @maybe @milestone(1: Basic Money)
|
|
|
- Staffing window
|
|
|
- Ranger allocation
|
|
|
- Set employee salaries, leave, etc. @maybe
|
|
|
- Figure out roles: ranger, educator, researcher?
|
|
|
Don't want to be too derivative
|
|
|
- Employee training mechanic @maybe
|
|
|
Leisure:
|
|
|
- Add way to mark off area for leisure @milestone(7: Leisure)
|
|
|
Maybe add leisure items instead?
|
|
|
Or both?
|
|
|
- Add paths @milestone(7: Leisure)
|
|
|
- Basic satisfaction @milestone(7: Leisure)
|
|
|
- Set
|
|
|
End games/outcomes:
|
|
|
- Financial mismanagement @milestone(5: Events) @done(2021-10-23)
|
|
|
- Figure out threshold @done(2021-11-07)
|
|
|
- Self-sufficient
|
|
|
i.e., no need for subsidy
|
|
|
May not be ending
|
|
|
- Forest mismanagement @milestone(5: Events) @done(2021-12-12)
|
|
|
- Figure out threshold
|
|
|
- High biodiversity? @maybe
|
|
|
- High satisfaction
|
|
|
- Figure out how to differentiate this from forest health
|
|
|
- Hat Trick: Satisfaction, Forest Health, **and** Self-Sustaining
|
|
|
- Figure out extent that this should even be possible?
|
|
|
Thematically, maybe dubious?
|
|
|
On the other hand, could be something that requires luck
|
|
|
It's possible in SimSafari
|
|
|
- Land repatriation to indigenous @maybe
|
|
|
Like the acknowledgement, don't want it to be too white savior-y (although obv. player isn't necessarily white)
|
|
|
- Research center @maybe
|
|
|
Community:
|
|
|
Differing reputation with different groups. Could mix more and less political.
|
|
|
Don't want to go too Democracy 3/4: being able to affect the group size via policy is probably out. (Groups being intersectional might work, but is kind of tricky.)
|
|
|
Maybe a procedurally generated set of groups with some hard-coded elements? E.g
|
|
|
|
|
|
Misc:
|
|
|
- Assistant commentary @milestone(5: Events)
|
|
|
Need to ensure it's not annoying
|
|
|
- Basic random events
|
|
|
- Tree planting campaign @done(2021-09-28) @milestone(5: Events)
|
|
|
- Friends of the park fundraiser @done(2021-11-07) @milestone(5: Events)
|
|
|
- Federal grant @done(2021-11-27) @milestone(5: Events)
|
|
|
- Celebrity visit @original_milestone(5: Events) @nvm
|
|
|
Probably neets to affect reputation or attendance, which aren't implemented yet.
|
|
|
- Disasters @maybe
|
|
|
- Fire
|
|
|
would probably have to animate
|
|
|
- Disease
|
|
|
- Photos for dialog?
|
|
|
- Graphs window @done(2021-01-05)
|
|
|
Could use ImPlot for this
|
|
|
|
|
|
Structure:
|
|
|
- Add modes
|
|
|
- Refactor stuff out of FNAGame
|
|
|
At this point, virtually everything in FNAGame is setting up key Engines or doing drawing
|
|
|
- Saving @prototyped @milestone(4: Beginning)
|
|
|
- Options are duplicated in too many places:
|
|
|
- Replace Options with OptionComponent?
|
|
|
- Put Options in OptionMessage?
|
|
|
- Remove Options from Encompass?
|
|
|
Options don't seem like a great fit for th ECS model.
|
|
|
- OptionsWindow should use two Options instances instead of recreating each field.
|
|
|
Adding an option requires adding variabls
|
|
|
- Encompass @maybe @done(2021-04-03)
|
|
|
Currently thinking about a hybrid model where the Simulation class receives a lot of the events from Encompass. so things like Events, Contracts, and Research agreements are handled by Encompass. Perhaps Input, too?
|
|
|
- Ensure library loads
|
|
|
- Windows
|
|
|
- Linux @done(2021-04-19)
|
|
|
- macOS @done(2021-04-27)
|
|
|
Technically done
|
|
|
- Decide how to handle ImGUI ref parameters
|
|
|
Basically have to decide whether to embrace its style or go toward a more functional approach
|
|
|
- Add Ink @maybe
|
|
|
- Add NuGet package @done(2021-08-14)
|
|
|
- Load .Ink files @done(2021-08-14)
|
|
|
- Rewrite Dialog to show Ink @done(2021-08-14)
|
|
|
- SetTextVariable also sets variables within Ink
|
|
|
Technically doesn't have to be done this way, but having what would essentially be separate namespaces for Tracery variables and Ink ones seems confusing.
|
|
|
- Integrate with Tracery @done(2021-08-14)
|
|
|
Could run everything through Tracery or could create an Ink function that calls Tracery
|
|
|
- Change conversation to use Encompass @milestone(5: events) @done(2021-08-04)
|
|
|
- Refactor out common ImGUI patterns
|
|
|
- Tooltips @done(2021-08-21)
|
|
|
- Status indicators (not yet implemented) @done(2021-08-21)
|
|
|
By status indicators, I mean putting an icon on, say, the Contracts button to indicate a contract is about to expire.
|
|
|
- Rearchitect to avoid giving everything access to Simulation
|
|
|
- Add a start screen @milestone(4: Beginning) @done(2021-06-08)
|
|
|
- Add a create park dialog @milestone(4: Beginning)
|
|
|
- Procgen park names (that player can override)
|
|
|
- Button to generate new name?
|
|
|
- Allow player to choose title @maybe @done(2021-07-29)
|
|
|
Some possibilities: Mr., Ms., Mx., Director, Dr., Professor, Miss, Col., Herr Dr. Dr. nothing, custom
|
|
|
Might be fun to have tiny acknowledgement of choice — probably dialog only, no mechanical change. (E.g., a researcher might allude to you having a PhD. or an enby character might say something comiserating.)
|
|
|
- Allow player to choose difficulty @done(2021-07-30)
|
|
|
I'm thinking: Easy would be constant subsidy, Medium would be declining subsidy, and Hard would be none.
|
|
|
Could name them Benevolent, Austerity, and Hostility? Or Conservationist, Austerity, Libertarian? (Maybe too pointed!) I kind of like describing these as the government's "orientation" or "attitude" toward park.
|
|
|
- Allow player to choose profile image @maybe
|
|
|
Same style as rest of the game (dithered b&w, at least right now)
|
|
|
- Basic In-game menu @milestone(4: Beginning) @done(2021-06-13)
|
|
|
At minimum, New Game, Quit, and Quit to Menu
|
|
|
- Graphics options
|
|
|
- Add to in-game menu @done(2021-06-13)
|
|
|
- Additional in-game menu
|
|
|
- Save
|
|
|
- Save & Quit
|
|
|
|
|
|
Music and Audio:
|
|
|
Sound Effects:
|
|
|
- Generic click sound (push button)
|
|
|
- Cheer/boo crowd sound effect
|
|
|
This is a sorta easter egg and a reference to SimCity
|
|
|
- Explosion effect (for bulldozer)
|
|
|
|
|
|
Performance:
|
|
|
Issues:
|
|
|
- Seeing up to 32 ms in update on framework-release? @done(2022-05-16)
|
|
|
- Drawing very large areas is very slow. @done(2022-05-16)
|
|
|
Sorta fixed
|
|
|
- Slows to a halt (~7fps) when drawing many preserve squares.
|
|
|
Structural improvements:
|
|
|
- Button to clear/thin debug buffers?
|
|
|
Take every nth to reduce counters to past 100 measurements
|
|
|
- Disable some timing code in release mode?
|
|
|
Needs some way to enable it.
|
|
|
- Avoid redrawing tiles every time?
|
|
|
Draw tiles once
|
|
|
Instrumentation:
|
|
|
- Time individual sections of update loop @done(2022-05-16)
|
|
|
- Time simulation @done(2022-05-16)
|
|
|
- Time each engine?
|
|
|
Other features:
|
|
|
Accessibility:
|
|
|
- Verify contrast
|
|
|
- Option to Increase display size
|
|
|
- Add message for font changes @done(2021-06-26)
|
|
|
- Relocate fonts to central place @done(2021-06-26)
|
|
|
- Remove fonts from DebugWindow?
|
|
|
- Adjust window dimensions when font changes
|
|
|
- Option to Turn off bad outcomes or disasters @maybe
|
|
|
- Dyslexic-friendly font @maybe @done(2021-06-26)
|
|
|
Cursory research indicates open sans-serif fonts are best,
|
|
|
although fonts only help so much. (Monospaced fonts are also cited as good options so Iosevka might already be good enough. Still, I added Roboto.)
|
|
|
|
|
|
- Screen reader support @maybe
|
|
|
Would probably be a big undertaking (sort of opposite to the web, where things tend to be accessible unless you start reimplenting things or going more advanced)
|
|
|
- Investigate .NET support for screen readers
|
|
|
- Ask on social media
|
|
|
- Moontools Discord
|
|
|
- FNA Discord
|
|
|
- Mastodon
|
|
|
- Figure out a good screen reader to use for testing
|
|
|
- macOS
|
|
|
- Windows
|
|
|
- Linux
|
|
|
- Look for prior art
|
|
|
- Add a "describe" button/key that speaks the current scene @maybe
|
|
|
- No fees when contracts break
|
|
|
- Contracts go dormant instead of ending.
|
|
|
Other QoL things:
|
|
|
- Adjust display size @done(2021-06-23)
|
|
|
- Toggle trees translucency
|
|
|
Right now we hide trees outright, which probably should be limited to debugging
|
|
|
- Right click to center @done(2021-06-06)
|
|
|
Internationalization:
|
|
|
- Probably won't pay to translate or anything, but should consider setting up the structure @maybe @milestone(4: Beginning)
|
|
|
If nothing else, might be useful for future projects.
|
|
|
Balance:
|
|
|
- Hard mode is impossible with current map size.
|
|
|
Upkeep is too much money.
|
|
|
Might be addressed by adding staff instead of fixed upkeep.
|
|
|
Bugs:
|
|
|
Graphics:
|
|
|
- Trees jump around when pressing show/hide grid @done(2022-01-23)
|
|
|
- Grids sometimes overlap trees, including area overlays
|
|
|
- Trees sometimes overlap each other @done(2022-01-23)
|
|
|
- Area overlays overlap trees @done(2022-01-24)
|
|
|
- Sometimes framerate jumps to 180-200 fps. (Better than reverse, but kinda weird)
|
|
|
- Graphics don't adjust for the resolution
|
|
|
- Scroll area @done(2021-06-23)
|
|
|
- Ingame Menu @done(2021-06-22)
|
|
|
- Main Menu
|
|
|
Simulation:
|
|
|
- Can keep playing after losing if you don't acknowledge the loss in the dialog
|
|
|
- Create preemption/priority system
|
|
|
Have to decide whether to have two levels: normal/preempting or a series of priorities
|
|
|
- Expired areas can't be reused. @done(2021-08-07)
|
|
|
Dialog:
|
|
|
- Dialogs don't appear after
|
|
|
Crashes/Stability:
|
|
|
- News window crashes.
|
|
|
- Drawing error when clicking sometimes on main screen. @done(2022-04-27)
|
|
|
Tries to draw area?
|
|
|
- Crash when extending preserve past bottom. @done(2022-04-27)
|
|
|
- Segfault on quit (when it tries to dispose of the sound) or on playing sound on Linux
|
|
|
May be due to a quirk of my Linux setup
|
|
|
- Weird ImGui crash:
|
|
|
dotnet: /home/alys/repos/outside/ImGui.NET-nativebuild/cimgui/imgui/imgui.cpp:6293: bool ImGui::Begin(const char*, bool*, ImGuiWindowFlags): Assertion `name != __null && name[0] != '\0'' failed.
|
|
|
- Crashes after exiting a game.
|
|
|
Seems to be a draw issue (Batch hasn't begun.)
|
|
|
In Area renderer?
|
|
|
-
|
|
|
Misc:
|
|
|
- Starting a game after exiting a previous one doesn't really work, afaict
|
|
|
Also crases, but I suspect the crash isn't related.
|
|
|
- Events may not be deleted
|
|
|
- Exits are messy (does Encompass add threading?) @done(2021-11-28)
|
|
|
Appears to be fixed by using Game.Exit
|
|
|
[xcb] Unknown sequence number while appending request
|
|
|
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
|
|
|
[xcb] Aborting, sorry about that.
|
|
|
dotnet: ../../src/xcb_io.c:145: append_pending_request: Assertion `!xcb_xlib_unknown_seq_number' failed.
|
|
|
Aborted (core dumped)
|
|
|
|