Skip to content

A command-line game for building your own computer science empire!!

Notifications You must be signed in to change notification settings

negativeview/Software-Business-Sim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A command-line game for building your own computer science empire!!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages