-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathREADME
More file actions
254 lines (206 loc) · 7.8 KB
/
Copy pathREADME
File metadata and controls
254 lines (206 loc) · 7.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
ABOUT
=====
This project is designed partially as a really hard turned-based
time-management strategy and partially as some sort of commentary on the state
of the computer industry. I'm not sure wehre the line is drawn, to be honest.
It's probably different in different functions. I have no idea if it will be
fun or not, I just had to get some of this out of my head.
TUTORIAL
========
General Information
-------------------
You start with $100,000, no employees, no product, and no customers.
The world starts completely hidden from you. So that the world isn't incredibly
boring at first, the game goes ahead and simulates 10 days for you. Due to this,
you don't start with your full $100,000, as you have paid a semi-random amount
of money to keep the lights on in that time.
Finding People
--------------
The first thing you should do is to see who you have available to hire. You do
this by executing the 'people' command. You should see something like the below:
day 10> people
1: Alice Gohde
Ambition: medium
Greed: low
Initiative: medium
Creativity: high
2: Richard Anniston
Ambition: low
Greed: medium
Initiative: medium
Creativity: medium
3: Jeremy Anderson
Ambition: high
Greed: medium
Initiative: low
Creativity: medium
4: Charles Anderson
Ambition: high
Greed: low
Initiative: high
Creativity: medium
5: Paul Anderson
Ambition: high
Greed: medium
Initiative: low
Creativity: high
6: Robert Wolever
Ambition: medium
Greed: medium
Initiative: high
Creativity: medium
You have 99990 money left
In the ten days that were randomly generated six people dropped their resumes
on your desk. The skills that they have are vague, and potentially (very) wrong
-- they are self-reported.
Interviewing People
-------------------
It is planned that you will be able to interview people. This will make the
skills more accurate, and will also make them based off of actual skill rather
than self-reported skill (the interviewer can see through BS!). This feature is
not in there yet, though. You have to hire someone based off of their
self-reported evaluation!
Hiring People
-------------
To hire people we need to offer them some amount of money. We do this with the
hire command.
day 10> hire 2 30000
You have 99979 money left
I hired person 2 (see numbers in the list from Finding People) for $30,000 per
year. Steal!
It's possible that if you offer them too little money, they will refuse. In the
future, the employee will like your company less if you low-ball them.
day 11> hire 5 1000
Paul Anderson rejected your offer
You have 99968 money left
Time
----
Wait, did you notice that? We went to day 11! That's right, hiring a person
takes up a day. It even takes up a day if the person refuses your offer!
What does that matter?
In the future, there will be AI opponents that might be hiring up all the good
developers while you try to negotiate with just one. They might even just offer
them $100,000 per year and be done with it just so you don't get that employee.
There are a limited number of developers in the world (though they do slowly
spawn).
Every day you also have to pay a few bucks in random costs. Every two weeks you
pay salaries. Wasting time can be the difference between empire and living under
a bridge!
Creating Projects
-----------------
Okay, so now you have an employee that you're paying. How in the world do you
make them make you money? With the project command. To start you can just run
it with no options:
day 12> project
Pick a target platform:
1: desktop [Company skill: 96]
2: browser [Company skill: 26]
3: console [Company skill: 84]
4: mobile [Company skill: 10]
5: server [Company skill: 40]
Then execute `project <n>`
You have 99968 money left
There are five target platforms that we can go for. We can also see what skill
level we are at each one.
NOTE: Right now this number is completely accurate. In the future it's likely
to start off as just "high, medium, low" and likely to start off as
reported skill and not actual skill just like when hiring an employee.
Don't get too used to this number being so freely shown.
It seems that my one hired employee is excellent at making desktop applications,
so let's do that. Re-run the command but with the number for the platform
afterward:
day 12> project 1
Pick a target programming language:
1: PHP [Company skill: 83]
2: C [Company skill: 5]
3: C++ [Company skill: 3]
4: Python [Company skill: 83]
5: JavaScript [Company skill: 87]
6: Ruby [Company skill: 83]
Then execute `project 1 <n>`
You have 99968 money left
Now we get to pick our language to write in. Our employee is fairly good in
four different languages, but happens to be poor in both C and C++, which I
would normally choose for desktop. Let's go with Python. It's not the highest
rated skill, but it makes far more sense than JavaScript (hi there, Adobe Air!
Yes, I know you exist. No, I don't wish to take back my statement.).
In the future, it's likely that there will be internal mappings between
language and platform that will act as modifiers. This would make a JavaScript
desktop application be possible, but take longer than the raw numbers suggest.
Currently such a thing does not exist.
day 12> project 1 4
Created a new project
You have 99968 money left
Now we have a project!
STAY TUNED
----------
That's about all that I have. The project cannot actually generate you any
money.
TODO
====
* All skills are not the same. Skills that are in higher demand or lower supply
add more to the required amount of money. I should be able to tweak these
numbers. Since I'm using the real names of programming languages, I should
use approximations of their real values.
* You can hire "low" ambition employees FAR too easily. Figure out a much
better formula for this.
* Generate customers who have "skills" that are instead desires. You cannot
know for sure what these are, but can possibly stumble upon them.
* Create a customer list per project.
* Go from customer list to profit.
* Billing methods added to list of selectable things.
* Methods to make customers chase after cheap options -- simulate the
possibility of a race to the bottom.
* Make projects actually complete slowly.
* Job fairs should take up time but drastically increase the rate at which a
company discovers applicants.
* Make opponent AI that can also hire people, etc.
* Come up with a handful of really really stupid AIs.
Core Features
=============
These are the features required to make it a proper game.
* Difference between actual and perceived values of attributes.
* Interview in order to figure them out somewhat.
* Hire.
* Create project teams.
* Assign projects to teams.
* Projects have certain attributes, including quality.
* Market reacts to those qualities.
* Company reputation, easier to create sequels, etc.
Commands
========
* people
Show people that are known
* status
Show a summary of status
* team
Create/show teams
* project
Create/assign project
* interview
Conduct an interview
Platforms
=========
* CLI -- do this first to test things out
* Web -- a direct translation from the turn-based CLI into turn based web
* Built around API hooks, entire interface is AJAX
* Build other turn-based things around this API
* Web -- extend into real-time with a single large world, competitive
* Built around API hooks again, entire interface is AJAX
* Build other real-time versions off of these APIs
* Mobile -- Built mostly off of web APIs. No ads, but $0.99
* MineCraft -- the real odd choice. Translate to MC, make your dudes even build
their physical offices.
* Multiplayer compatibility is a MUST.
Trait
-----
name (internal)
visibleName
TraitValue
----------
Trait *
int
TraitValueImpressions
---------------------
TraitValue *
map<Person *, int> *impressions