Indie Game Programmer Game (IGPG)

Design History

Game Type

Genre RPG/Strategy
Input Devices Mouse + optional Keyboard use
Platform Windows PCs with Java 1.5 or higher
Program Type Windowed application
Rendering Java Swing Components
Screen Resolution 800x600
Setting Pittsburgh, 2000

What Makes This Game Special

It's about making games!

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. :)

Gameplay

Character Development

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.

Game Week

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.

Player Actions

Buy
Action Time (Turns) % Success Cost XP Effect
Advertise 2 100 75 0 +1 Advertisements for 12 weeks
Attend Conference 80 90 100080 Gain XP if level <= 20
Buy Art 2 80 50 0 +10 Art Resources
Buy Art Library 4 80 250 0 +20 Art Library
Buy Code Library 4 80 250 0 +20 Code Library
Buy Desktop Computer8 100 500 0 Replaces old computer
Buy Laptop Computer 8 100 750 0 Replaces old computer, +5 Hours to Program per week
Buy Music 2 80 50 0 +10 Music Resources
Buy Music Library 4 80 250 0 +20 Music Library
Buy Programming Book32 80 75 32 Gain XP if level <= 10
Change ISP 4 100 * 0 Changes the ISP
Change Webserver 4 100 * 0 Changes the Webserver

* - The prices depend upon what's chosen from the tables below.

ISP Cost Per Week Speed (MB per turn)
28.8 Kbps Modem 5 28
36.6 Kbps Modem 7 36
56.6 Kbps Modem 10 50
Optimized Dialup 15 100
DSL 22
Cable 35
Web Server Cost Per Week Bandwidth (GB) Storage Space (MB)
Free 0 1 50
Megacheap 1 2 200
Cheap 2 4 500
Normal 5 10 1000
Expensive 10 25 3000
Exorbitant 25 Unlimited Unlimited
Design
Action Time (Turns) % Success XP Effect
Think Up New Features 1 99 0 +1 Designed Feature
Verify Suggested Features4 100 1 Eliminates Stupid/Duplicate Features

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.

Internet

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):

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 & Forum10 50 0 15 Integrates Database & Forum
Program Bug Database32 75 0 15 Gain Bug Database
Program Forum 25 60 0 15 Gain Forum
Read Internet Tutorials450 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
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/05
Implement Major Feature 7 65 85 40/20 60/3010
Implement Global Feature 20 50 95 75/50 90/6025
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.

Genre Statistics

Note that a game with the minimum size required of each resource type would have a very low rating.

Hidden:

Programmer Statistics
Weekly Programmer Statistics
Project Statistics

Some hidden project statistics (not viewable by the player):

Weekly Game Statistics
Released Game Statistics

A released game has only a name, weeks since release, genre, and rating.

Weekly Released Game Statistics
Website Statistics
World Statistics

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.