A text-based business simulation game where you manage resources, build reputation, and try to reach $1000 in profit while maintaining your business reputation.
- Resource management (money, supplies, reputation)
- Employee management system
- Business upgrades (automation, marketing, storage)
- Research and development system
- Competitor businesses that affect market prices
- Dynamic market conditions with supply and demand
- Loan system with interest
- Random events and opportunities
- Employee events and morale system
- Save/load game functionality
- Colorful text interface with ASCII art
- Progress bars and business map
- Comprehensive help system
-
Make sure you have Python 3.7 or higher installed
-
Create and activate a virtual environment:
For Windows:
python -m venv venv .\venv\Scripts\activate
For macOS/Linux:
python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the game:
For Command Line Interface:
python main.py
For Graphical User Interface (recommended for the best experience):
python main.py --gui
- Use number keys to select actions from menus
- Follow on-screen prompts
- Type 'help' at any time to view game tips
- Press 'M' to view business map
- Click buttons to perform actions
- Use dialog windows for detailed interactions
- All game features accessible through intuitive GUI elements
- Buy and sell different types of supplies
- Manage storage capacity
- Balance inventory levels
- Hire employees to increase productivity
- Manage employee salaries
- Handle employee events and morale
- Research new technologies
- Unlock business improvements
- Gain competitive advantages
- Dynamic pricing based on supply and demand
- Competitor actions affect market conditions
- Special market events and opportunities
- Automation system for increased efficiency
- Marketing campaigns to improve reputation
- Storage expansions for inventory management
- Start with basic supplies as they provide good early-game returns
- Equipment is a significant investment ($200) - plan accordingly
- Your reputation decreases when working, so use rest to recover it
- The market can have "booming" periods - take advantage of these
- Save your game regularly using the save function
- Try to maintain a balance between profits and reputation
- Special events can provide bonuses like extra money or favorable market conditions
This project uses a clear MVC (Model-View-Controller) architecture for both CLI and GUI modes:
- Model:
GameState
(ingame_state.py
) holds all game data, business logic, and state transitions. It is config-driven and contains no UI code. - View:
CLIView
(inview.py
) andTycoonGUI
(ingui_interface.py
) provide the user interface. The CLI uses text and colorama; the GUI uses Tkinter with a modern theme. - Controller:
GameController
(incontroller.py
) manages the game loop, user actions, and communication between Model and View. It is UI-agnostic. - Event System:
EventManager
(ingame_events.py
) handles market, competitor, and random events, as well as research project progress. - Config:
config.py
centralizes all game parameters, making balancing and extension easy.
Game Loop:
- The controller runs the main loop, updating the market, processing user actions, handling events, and advancing the day.
- Both CLI and GUI modes use the same core logic and state, only differing in how input/output is handled.
Extensibility:
- New features (supplies, upgrades, research, events) can be added by updating
config.py
and implementing logic in the relevant Model/Controller methods. - The architecture is designed for easy testing, refactoring, and UI swaps.
main.py
: Entry point. Parses CLI args, launches CLI or GUI, wires up MVC.game_state.py
: The Model. All business logic, state, and save/load.controller.py
: The Controller. Main game loop, user action handling, event processing.view.py
: Abstract View base class and CLIView implementation.gui_interface.py
: TycoonGUI class (Tkinter-based), all dialogs and GUI logic.game_events.py
: EventManager for market, competitor, random, and research events.config.py
: All game constants, prices, upgrade specs, research, and difficulty settings.ui_helpers.py
: Shared UI utilities (used by GUI).business_map.py
: ASCII/GUI business map rendering.requirements.txt
: Python dependencies.TODO.md
: Roadmap and changelog.
- Add a new supply:
- Add to
SUPPLY_PRICES
andSUPPLY_USAGE_EFFECTS
inconfig.py
. - Update any relevant logic in
GameState
(e.g., how it's used in work).
- Add to
- Add a new upgrade:
- Add to
UPGRADE_SPECS
inconfig.py
. - Implement its effect in
GameState.purchase_upgrade
and/or other methods.
- Add to
- Add a new research project:
- Add to
RESEARCH_PROJECTS_SPECS
inconfig.py
. - Implement its effect in
GameState.apply_research_completion
.
- Add to
- Add a new event:
- Update
EventManager
ingame_events.py
and/or event config inconfig.py
. - Add any new event effects to
GameState
.
- Update
- Add a new UI feature:
- For CLI, update
CLIView
inview.py
. - For GUI, update
TycoonGUI
ingui_interface.py
.
- For CLI, update
The game is structured into multiple modules:
main.py
: Core game logic and main loopgame_events.py
: Event management and random occurrencesui_helpers.py
: UI components and visual elements
Feel free to contribute to the game by:
- Adding new features
- Improving game balance
- Enhancing the UI
- Fixing bugs
- Adding more events and content