You were a Fortran programmer, but you were laid off early in the year 2000 because the paranoia over the Y2K bug had dissipated. Now, you're an independent game programmer. Your goal is to make games and, hopefully, make tons of money.
You choose various options each week, and they cause various changes in the status of your projects. During each week you have a small number of hours to work on your game. You also have a pittance of cash left over after expenses from what you make at your "real" job.
It's just like my life except that it's much more glamorous and is mouse-controlled. :)
As the player programs, he gains experience points (XP). When he gets enough XP, he gains a level, which allows him to program faster and better.
Also, the player can accumulate a library of art, code, and music resources to reuse in many game projects.
At the beginning of each week, the player's cash, hours available this week, the amount of time to upload the current demo, and various other data are computed. The player has the option of whether or not to upload the current demo. Then the player can use his remaining time for the week to do various actions.
During the game week, the player performs various tasks. Each task takes a certain number of "turns" (15 minute intervals). If a task takes more time than you have left that week, you continue it next week.
* - The prices depend upon what's chosen from the tables below.
Verifying suggested features "verifies" up to 100 points of suggested features. Minor features are 1 point, major features are 3 points, and global features are 10 points. More powerful features are verified first. Good suggestions become design features. Stupid and duplicate suggestions are discarded.
| Action
| Time (Turns)
| % Success
| $ Cost
| XP
| Effect
|
| Buy Bug Database | 2 | 95 | 200 | 0 | Gain Bug Database
|
| Buy Forum | 2 | 95 | 200 | 0 | Gain Forum
|
| Check For Feedback | 1-4 | 100 | 0 | 0 | Get Feedback
|
| Disable Game Banner Network | 1 | 100 | 0 | 0 | Turns off ad
|
| Enable Game Banner Network | 1 | 100 | 0 | 0 | Turns on ad
|
| Integrate Database & Forum | 10 | 50 | 0 | 15 | Integrates Database & Forum
|
| Program Bug Database | 32 | 75 | 0 | 15 | Gain Bug Database
|
| Program Forum | 25 | 60 | 0 | 15 | Gain Forum
|
| Read Internet Tutorials | 4 | 50 | 0 | 4 | Gain XP if level <= 3
|
| Update Site | 2 | 100 | 0 | 1 | +1 Website.Fresh Content
|
| Update Site (Large) | 30 | 75 | 0 | 10 | +30 Website.Fresh Content
|
Getting feedback is a tricky thing. For everyone who downloads your game, 5% will post feedback. If you have a forum, this is increased to 10%. If you have an integrated database and forum, this is increased to 15%. Of the people who post, 25% will post true bug reports, 25% will post false bug reports, 15% will post minor feature ideas, 15% will post major feature ideas, and 20% will post global feature ideas. Of the ideas, half will be stupid. Unfortunately, the player can't discriminate between stupid and good ideas without checking them.
A bug database eliminates any chance of duplicate bug reports and eliminates half of the false bug reports (because they're often duplicated).
Job
Finding a job (time = 16):
| Job
| Chance of Finding Job
| Hours Per Week
| Wage
| XP Per Week
|
| Janitor | 90 | 30 | 7 | 0
|
| Tech Support | 70 | 40 | 9 | 1
|
| Website Design | 50 | 35 | 12 | 2
|
| Code Monkey | 30 | 48 | 15 | 5
|
| Supervisor | 10 | 45 | 20 | 3
|
| CEO | 0 | 32 | 30 | 0
|
| Evil Genius | -10 | 40 | 40 | 5
|
Quitting a job also takes a time of 4 but has guaranteed success.
By default, you have a job as a janitor, but you can find a better job. You must be at least level 11 before you can get a job as an evil genius.
Project
| Action
| Time (Turns)
|
| Abandon Project | 1
|
| Release Version 1.0 As Freeware | 4
|
| Release Version 1.0 As Shareware | 20
|
| Start New Project | 4
|
| Switch Project | 1
|
| Switch to Released Project | 1
|
You can work on any number of projects at once, but it's silly (and yet all too realistic) to work on more than one at a time. You can also switch to a released project to update it in an attempt to improve the game's rating and sell more copies. When starting a new project, a genre must be selected from the following table:
| Genre
| Art Required (MB)
| Graphics Type
| Minor/Major/Global Features Required
| Music Required (MB)
| Scripting Required (MB)
|
| 1st Person Adventure
|
| 3D Fighting
|
| 3rd Person Adventure
|
| Action
|
| Arcade
|
| Card/Dice Game
|
| Flight Simulator
|
| FPS
|
| Interactive Fiction
|
| MMORPG
|
| Multigenre (Easy)
|
| Multigenre (Medium)
|
| Multigenre (Hard)
|
| Puzzle
|
| RPG
|
| RTS
|
| Sidescrolling Action
|
| Sidescrolling Fighting
|
| Simulation
|
| Sports
|
| Strategy
|
| Text Adventure
|
| Word Game
|
The rest of the table will be filled in while the game is being developed.
Program
| Action
| Time (Turns)
| % Success
| % Usefulness
| % Minor/Major Bug
| % Minor/Major Inefficiency
| XP
|
| Implement Minor Feature | 3 | 85 | 75 | 10/0 | 20/0 | 5
|
| Implement Major Feature | 7 | 65 | 85 | 40/20 | 60/30 | 10
|
| Implement Global Feature | 20 | 50 | 95 | 75/50 | 90/60 | 25
|
| Expand Code Library | 10 | 75 | 75 | 5* | 10* | 20
|
| Fix Library Bug | 8 | 85 | 100 | 0* | 1* | 7
|
| Fix Library Inefficiency | 5 | 95 | 100 | 0/0 | 0/0 | 5
|
| Fix Minor bug | 2 | 90 | 100 | 2/0 | 2/0 | 2
|
| Fix Major bug | 5 | 70 | 100 | 4/2 | 8/4 | 5
|
| Optimize Minor Inefficiency | 1 | 95 | 100 | 1/0 | 2/0 | 1
|
| Optimize Major Inefficiency | 3 | 85 | 100 | 2/1 | 4/2 | 2
|
* - Library actions create Library bugs.
If a feature isn't implemented successfully, the message says "You can't get this to work." The design is kept, but no feature is implemented and no XP is gained. If a feature is useless, the message says "You realize this feature is stupid.". The design is throw away, no feature is implemented, and half XP is gained.
If a bug fix fails, the message is "You know the bug's there, but you can't fix it.". The only way a bug fix can be useless is if it's not a real bug. If it's not a real bug, the message is "It's not a bug, it's a feature." (5% chance for minor bugs only, gain a minor feature) or "You realize that it isn't a bug after all.". Verified bugs are fixed before unverified bugs.
Test
| Action
| Time (Turns)
| % Success
| XP
|
| Sort Bug Reports | 4 | 100 | 1
|
| Test Game | 2 | 75 | 1
|
Sorting bug reports "sorts" up to 100 points of bug reports. Minor bugs are 1 point and major bugs are 3 points. More powerful bugs are sorted first. Real bug reports become verified bugs and fake bug reports are discarded. Duplicate bugs are also discarded.
Testing the game has a chance of finding bugs. If there are no bugs or the test fails, the message is "No bugs were found.", "Great Code! No bugs found.", or "Woohoo! Bug-free!". Bugs can only be found when there are bugs to be found.
Saving and Loading
The game can be saved or loaded at any time.
Statistics
In general, statistics default to their lowest values.
General Statistics
These statistics are used in a number of places.
- Feature Level = Minor Features + Major Features * 5 + Global Features * 25. This represents the total "goodness" of a set of features.
- Inefficiency Level = Minor Inefficiencies + Major Inefficiencies * 4 + Global Inefficiencies * 15. This represents the total inefficiency of a set of inefficiencies.
Genre Statistics
Note that a game with the minimum size required of each resource type would have a very low rating.
- Art Size Required (MB). This is the minimum amount of art required to release a game of this genre.
- Minor/Major/Global Features Required. This is the number of each kind of feature required to release a game of this genre.
- Music Size Required (MB). This is the minimum amount of music required to release a game of this genre.
- Script Size Required (MB). This is the minimum amount of scripting required to release a game of this genre.
Hidden:
- Feature Level Required = Feature Level of the Minor/Major/Global Features Required. This is the total Feature Level of all the features required.
Programmer Statistics
- Art Library (MB). This is the number of MB of artwork that the programmer can reuse in all his projects.
- Average Hours Per Week. Each job takes a certain number of hours of the programmer's time each week. The program only has 60 hours to use each week, so has an average # of hours available to the programmer per week.
- Cash ($) = Cash in bank * 1.01 + Job.Wage * Hours At Work + Programming Income - Cost of Internet Access - Cost of Living. This is how much cash the programmer has. If this ever goes beneath $0, the programmer is thrown out of her apartment and eaten by wolves.
- Code Library (MB). This is the number of MB of code that the programmer can reuse in all his projects.
- Computer Age. The number of weeks since the computer was bought. Having an old computer causes you to have less hours to program during the week.
- Computer Type = Desktop/Laptop.
- Cost of Living ($) = 150 + Weeks of Gameplay / 8. This is the cost of living for one week.
- Experience. This is the number of XP the programmer has. When XP = 30 * next level ^ 2, the programmer gains a level, and the XP is reset to 0.
- Job. Which job the programmer has.
- Level (0-25). This is the programmer's XP level. It's added to any % chance that something good happens and subtracted from any % chance that something bad happens. There's always a chance of at least 1% that the good/bad thing happens unless it can never happen anyways.
- Music Library (MB). This is the number of MB of music that the programmer can reuse in all his projects.
- Script Library (MB). This is the number of MB of scripts that the programmer can reuse in all his projects.
- Weeks of Gameplay. The number of weeks since the game started.
Weekly Programmer Statistics
- Hours at Work. The number of hours the programmer spent at his "real" job this week. This ranges from 90% to 110% of Job.Hours Per Week.
- Hours to Program = 60 - Hours at Work - Time Uploading Last Week's Program - Computer Age / 51 + Random(-8, 5). The number of hours the programmer has to work on indie game programming.
- Programming Income = Total Income from all Released Games.
- Time Uploading Last Week's Program (turns) = Game Size / Internet Speed. The amount of time it takes to upload last week's program.
Project Statistics
- Art Resources (MB) = Programmer.Art Library / 10 + art for this project. This is how much artwork has been bought for the project.
- Code Size (MB) = Programmer.Code Library + Implemented Feature Level. This is how much code was written for the project.
- Designed Minor/Major/Global Features. This is the number of Minor/Major/Global features currently designed for this game but not implemented.
- Game Size (MB) = Art Resources + Code Size + Music Resources + Script Resources. The size of the game.
- Implemented Minor Features = Programmer.Code Library / 10 + Minor features implemented for this project. This is the number of Minor features currently implemented for this project.
- Implemented Major Features = Programmer.Code Library / 100 + Major features implemented for this project. This is the number of Major features currently implemented for this project.
- Implemented Global Features = Global features implemented for this project. This is the number of Global features currently implemented for this project.
- Memory Allocated (MB) = (Implemented Minor Features / 3 + Implemented Major Features + Implemented Global Features * 3) * (1.0 + Inefficiency Level). This is how much memory the project has to allocate while the game is running.
- Music Resources (MB) = Programmer.Music Library / 10 + music for this project. This is how much music has been bought for the project.
- Processor Required (MHZ) = Code Size * (1.0 + Inefficiency Level). This determines how fast of a processor is required to run the game.
- RAM Required (MB) = Art Size / 10 + Code Size + Memory Allocated + Script Size. This is how much memory the game uses while running.
- Rating = Art Size / (Genre.Art Size Required + 1) + Feature Level * Code Stability / (Genre.Feature Level Required + 1) + Music Size / (Genre.Music Size Required + 1) + Script Size / (Genre.Script Size Required + 1).
- Script Resources (MB) = Programmer.Script Library / 10 + scripts for this project. This is how many MB of scripts have been bought for the project.
- Suggested Minor/Major/Global Features. This is the number of Minor/Major/Global features currently suggested for this game.
- Unverified Minor/Major Bug Report. This is the number of Minor/Major bug reports that have been provided by the website. They may be accurate or not.
- Verified Minor/Major Bug Report. This is the number of Minor/Major bug reports that have been provided by the website and then verified to be accurate.
Some hidden project statistics (not viewable by the player):
- Bug Level = Minor Bugs + Major Bugs * 4. This represents the total level of the bugs in the project.
- Inefficiency Level = Minor Inefficiencies + Major Inefficiencies * 3. This represents the total level of the inefficiency in the project.
- Minor/Major Bug. This is the number of Minor/Major bugs in the game.
- Minor/Major Inefficiency. This is the number of Minor/Major inefficiencies in the game.
Weekly Game Statistics
- Downloads = Rating * Website.Traffic / 100 / Weeks Since Release * (Average Processor Speed / Processor Required) * (Average RAM / RAM Required). This is the number of downloads the game gets each month.
Released Game Statistics
A released game has only a name, weeks since release, genre, and rating.
- Accumulated Returns. This is the sum of all the returns of this game since its 1.0 release.
- Accumulated Sales. This is the sum of all the sales of this game since its 1.0 release.
- Price = Genre.Price + Rating / 10. The price being charged for the game.
Weekly Released Game Statistics
- Income = (Sales - Returns) * Genre.Price. This is the amount of income received from sales of the game this week.
- Returns = Unreturned sales for the past 3 weeks * Bug Level / (1000 * Rating). This is the number of copies of the game that are returned this week.
- Sales = Downloads / (150 - Rating). The number of sales for the game. If the game is freeware, there are no sales.
Website Statistics
- Advertisements. This is the number of advertisements currently advertising the site. Each advertisement lasts 12 weeks.
- Bandwidth (GB) - From the ISP. The number of GB of material that can be downloaded from the website in one week.
- Fresh/Old Content (MB). This is the amount of content on the site. The more content on your site, the more people go there. Fresh content was just posted this week, and old content was posted previously.
- Max Traffic = 1024 * Bandwidth / (Fresh Content + Old Content). The maximum amount of traffic allowed to the site per week. It's assumed that people can download whatever they want if they can get to the site.
- Traffic = previous week's traffic / 2 + (Fresh Content * 2 + Old Content) * Advertisements. If Game Banner Network is enabled, the formula changes to: previous week's traffic / 3 + (Fresh Content * 2 + Old Content) * (Advertisements + 1). Having a bug database or forum adds 10.
- Webspace (MB) - From the ISP. It's the maximum content allowed on the site.
World Statistics
- Average Download Size (MB) = 5 * (1 + Weeks of Gameplay / 51). This determines the average size of a program people are willing to download.
- Average Processor Speed (MHZ) = 200 * (1 + Weeks of Gameplay / 51). This determines the average processor speed of computers in the world.
- Average RAM (MB) = 16 * (1 + Weeks of Gameplay / 51). This determines the average amount of RAM in the world's computers.
- Weeks of Gameplay. The number of weeks the player has been playing the game.
Story
(See "What Makes This Game Special?")
Victory Conditions
The game is open-ended, but the main goal is to release as many games as possible. The more complicated and the better rated the games, the more you "win".
User Interface
The user interface will be implemented entirely through standard gui components, mostly tables, labels, and buttons.
There will be several status viewpanes, indicating the status of the programmer, the projects, and specific projects. There will also be a special status viewpane displayed at the start of each week, showing the player's cash, time this week, etc.
There will be 1 or more viewpanes for selecting the various actions that the player can take.
It's unnecessary to go into these viewpanes in detail. They're just tables, labels, and buttons.
Copyright (C) 2005 Steven Fletcher. All rights reserved.
