Gray Model Works

Press “Play” to try Project Alameda on a new tab

Author: nicklockhart312637d8d1

  • Balance checking

    Small update today: I disabled the “build” button in the Notice to Proceed screen and the “repay” button on the company debt panel if there isn’t enough cash to complete those actions.

  • Updates

    I’ve been updating the simulator but I’ve been delinquent on posting here. Feature-wise I added a company line of credit to borrow against, which can be done on the finance tab. In the future I’m planning to add bond issuance, which I think is how more substantial debt financing is done, but I need to do more research. I added a mechanic to make concepts persist for a certain number of turns, rather than getting a new set of concepts each turn. You still get new concepts each turn (two for now) but they’ll stay for a few months and then expire. I also added a discard button to remove concepts from the pipeline.

    I’ve made a bunch of formatting and interface changes too. Most recently I rotated the pipeline so that projects proceed downwards rather than left to right, in other words, each stage is a row rather than a column. I think this makes better use of the space. I’ve also been reformatting the income statements and balance sheets.

  • Just a Home Page

    Rather than having separate pages, I reworked the app to contain only one page. The navigation is still mostly the same, but the context menu/navigation pane changes the context shown on the home page rather than redirecting to another page. I think this will make it easier to change between different context views while keeping the same action pane open.

    I also locked the elapse turn button when there are pending tasks, which for now are just reviewing plans. This should make it easier to speed through turns when nothing needs to be done, without fear of missing an action item.

  • Interface Updates

    I made a few updates today to better format the MudBlazor interface components, making more use of the Stack component and the Class style options. I also found the Dispose component lifecycle method on Microsoft’s documentation, which seems similar to the OnDestroy method in Unity. I reworked the event subscriptions using this Dispose method, so the Razor pages subscribe to the model updates when they’re initialized, and then unsubscribe when they’re disposed of. Anyway these changes should make it easier to add more interactivity to the model, which is what I’m planning to work on next. Here are the two Microsoft Learn pages on state management and component disposal that I found very helpful today.

  • Planning Details

    This week I’ve been working on adding details to projects in the planning phase, and how to show those details on the pipeline page. I still need to fix a few formatting issues and incorporate an estimated rate of return so that the user has more information to decide whether to proceed with a project.

  • Basic Project Lifecycle Model

    Sketch of the project lifecycle as modeled

    This week I’ve been working on modeling the lifecycle of a generating asset:

    • Model generates new concepts each turn
    • User can choose concepts to add the planning pipeline, which creates a new plan based on the concept
    • Plans progress each turn until they are complete or fail, based on a set failure chance during the planning phase (5%) 
    • If the plan fails, it disappears
    • If the plan is successfully completed, the user can advance it to the build stage
    • Builds progress each turn until they are complete, with no chance of failure
    • When the build is complete, it becomes an operating asset
    • Assets operate until a set retirement date

    I’m currently working on modeling company and project finances, more details to come on that.