For this week I worked a lot on GUI stuff, setting up a pretty big pain for myself when the new version of Unity, and thus GUI system, hits.
Being a management game, there’s a huge correlation between the GUI and the actual game, so implementing GUI stuff also meant implementing a lot of the game mechanics. Here I’ll detail some of the core mechanics. I will start by noting that all software types, simulated company types and name generation files are contained in CSV files, so they can all be modded.
I finally finished implementing everything needed to complete a development cycle. Each phase has a little box to the right of the screen, where you can see its progress, as the team assigned to it, is working.
You start at the design document, the trick here is to keep the progress bar in the center, if you do too little, the design document will be worthless, and if you do too much, it will be overly complicated. Both resulting in a reduced amount of achievable final quality.
When the progress bar is the greenest you promote it to alpha. You then assign a team of programmers and artists to the alpha, depending on what type of software it is. When the alpha is done, depending on how uneducated your employees are, a delay phase will start, you can skip it, but that will add a lot of bugs. Finally, the beta phase is entered where the employees fix as many bugs as possible until you actually release it.
When you release the product, a support item is added to the work items. The support item will continually generate support tickets until all bugs are fixed. Ignoring or cancelling the support item will decrease company reputation.
You can market the product through the entire development cycle. If you market it during development, it will create an awareness boost for when the product is released. When the product is released, you can talk to the press to continually add a little amount of awareness or create an advert to unleash a big awareness boost all at once.
The design document window is where it all happens. Here you get to create the product, which entails some important decisions. First you pick a software type (the name can be chosen manually or generated by clicking the “Name:” label). Each software type has tiers, which control how long it takes to create and how much money it will make. Here I’ve chosen to make a Game with the tier Indie Game, which is the lowest for this software type.
Next you choose the operating system, if applicable. You can add as many operating systems as you like, each also having a tier (Phone, Console and Computer). Each operating system is in use by an amount of the population, so you lose the ability to sell the product by choosing very old, very bad operating systems. Choosing all operating systems for the computer tier will allow you to sell to 100% of the market.
Then you have to balance innovation, stability and usability:
- Innovation controls how long the product will sell for, since more innovative software is interesting for longer.
- Stability controls how many bugs the product will have and how many skill points your staff will get from working on it, since stability requires a lot of thought.
- Usability controls how popular your company gets from releasing the product, since usability increases the user experience.
Finally, each product has its own needs, a game requires a Compiler, a Visual Tool, an Audio Tool and a Game Engine. You have to pick a product for each of these, which will control your products quality and how much you have to pay in license fees. Picking your own products will allow you to avoid license fees. Picking a lower tier product for a need will diminish the quality, so don’t pick a MIDI Editor for a AAA Game.
Software Inc. simulates the market for 10 years before a game starts, so you’ll have a lot of products to pick from. Hopefully, before early access, there will be an event based market on top of the simulation, so that you can edit exactly what companies spring up, which products they release and when. In this way you can have scenarios/missions like: “Buy out EA within 30 years”.
When you want to hire a new employee you pick a role you want to look for and how long you want to look. Your company reputation and the amount of time you wait will determine how many applicants you get. When the searching period is up or you decide to stop looking, a window will pop up with applicants and their level of education in the chosen role. Here you can use money to remove the 10 worst, like with an employment agency, and you can pay to interview each employee individually, which will reveal all their stats.
- Lead(Can research tiers and motivate team)
- Designer(Makes design document)
- Programmer(Writes alpha code, supports releases and fixes bugs)
- Artist(Makes art for alpha)
- Marketer(Handles software marketing)
Any employee that is not a Lead can be set to take any job other than Lead.
Releasing a product is a lot of risk, since you have to support and market it yourself. In the beginning of the game, it might make more sense to take on small jobs that have a guaranteed pay when you’re done. Introducing Contracts!
A Contract will have requirements with regards to total development time and quality. When you sign a contract you will get a small amount of money upfront. When you’re done, depending on whether you met the requirements, you will either receive a lot of money or pay a fine. Each bug the final product has will also issue a small fine.
As a gamer, I’m not particularly interested in superficial customization in games; I like making houses in The Sims, but I don’t care for picking wallpaper and carpets. But since I’ve already added the actual building aspect, that level of customization seemed mandatory.
Marketing is pretty straight forward. If you pay a lot in a short amount of time, you will gain the same awareness as paying a little for a long amount of time. Advertisements creates more awareness, but only at one single point in time.