GithubHelp home page GithubHelp logo

economy-game's People

Contributors

jacobalundgren avatar queleok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

queleok

economy-game's Issues

Prices respond to player actions

To allow for strategies to be able to evolve, prices at which resources can be sold need to change in accordance with the actions of the player.

Introduce production times

The game and its strategies will most likely be somewhat less degenerate if production takes time rather than being instant.

Establish basic robustness

The code base is littered with typical prototyping unwrap calls. Obviously a proper error handling system needs to be established. I'm not sure, however, at what point this is appropriate as given my very limited experience with Rust it will most likely slow down progress on the core functionalities that will guide further development.

Consumer sector buys resources

Currently the accumulation of resources has no ultimate goal. A first iteration of providing such a goal would be to be able to sell resources to an abstract "consumer sector". This would yield money which could for the moment serve as a form of player score. As a first step, the consumer sector buys at fixed rates, but through multiple iterations the price function could be made both more realistic and more conducive to actually allowing for the formulation of strategy.

Workers UX improvement

When someone runs the game for the first time, all three of the available workers are mining iron. It's not immediately clear what to do to reallocate them for mining other resources, and also this gives some initial skew in favour of iron. Probably it would be more fair to begin with all workers idle

Create tab system

The initial terminal user interface would benefit from having various tabs presenting different views on the game state and options available to the player.

Add help tab

With #7 adding a tab system for visualization, the top priority is to add a help tab that gives any information that is not immediately obvious from the interface (for now, hotkeys in particular).

Make raw input processing be tab-sensitive

Currently the processing of user input is done in a dedicated input unit, but as the set of tab types widens the interpretation of input sequences will need to be defined by the active tab to allow multiple tab types to use the same key bind for different purposes.

Display player resources where they are used

Many of the tabs use the resources of the player, and they are currently a rather central concept. They should be shown in their own field irrespective of which tab is active.

Make client passive, server active wrt. stepping

Currently the client is running the game loop and instructing the game state to step. This should be inverted and the game state should instead be taking steps independently, and instructing the client to refresh.

Allow user control of program execution

In order to enable the addition of player actions in the game, the execution flow must first be changed to be under the direct control of the user. Make the main event loop perpetual and listen for keyboard input. Add command keybinds for quitting and pausing/resuming.

Allow interactive reallocation of workers

The "game" is not much of a game without allowing the user any control. As a first step the player should be able to change the allocation of workers through an interface, perhaps beneath the table showing the resource count.

Establish clear boundary between player interface and game logic

Currently, the logic for player-facing input-output is rather mixed up with the internal logic driving the game. This boundary needs to be clarified in order to

  1. Improve readability and maintainability
  2. Allow different types of interfaces to be defined
  3. Allow the game logic to be run in its own process

Write readme

Most of the project is not yet planned or formulated, but the basic goals and design principles should be described in the readme to get things started.

Sell prices recover over time

In #18 prices were made to respond to player actions. In the absence of player actions, however, the prices should probably recover toward a market-neutral price. Initially, this can presumably be the fixed number of the initializing price. As resources are made more interconnected, it is possible that this can be evolved into some more interesting simulation of anonymous market actors, but that is for further down the road.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.