Author Topic: Devbot Mod  (Read 26177 times)

0 Members and 1 Guest are viewing this topic.

February 03, 2016, 04:50:31 AM
Read 26177 times

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
News - 25 Feb 2016
I've just finished moving the repository to it's new location on GitHub. Get Involved!

https://github.com/software-inc-modding/devbot

I've also updated the README for modders looking to contribute but are not very familiar with Git[hub]. I hope it helps!


Compatibility
The mod runs as intended on alpha 7.7.

I'll be working extensively over the coming weeks to make some adjustments, and more importantly to integrate the mod with alpha 8.1. As part of the 8.1 integration, we'll be able to collapse several of the software types into single software types, in some cases using categories. This is thanks to @Khornel's excellent update to the dependency system in this alpha!

Hype

Let me start by saying I love Software Inc, even in it's relative infancy as it is now (alpha 7 at time of writing). I've completed a couple of playthroughs of the base game now, and tried a couple of the mods out there. I must admit that whilst some mods have been a great source of inspiration and reference material, I didn't find one that fitted my play-style or was balanced enough, in my opinion, to warrant playing to end-game.

Khornel is obviously very busy implementing lots of neat new features, not to mention dealing with my ever growing number of requests.  :-* Whilst the ability to modify gameplay is a little limited in areas, I want to utilise every feature at our disposal (not to mention, can't wait for many upcoming features planned for beta 8 ), to create the most comprehensive, balanced, thought out and tested overhaul I can.

With my pre-marketing hype complete, let's move on to design!

Design

This mod is a complete overhaul of the software types available. I've removed all existing software with the exception of the OS, which itself has been tweaked, extended, and abstracted. The goal is to introduce a much greater level of replayability by introducing several new branches of company specialisation and a tiered software structure.

Specialisations

Whilst I haven't fleshed out all the branches yet, the options will be the following (or a combination thereof):

  • Development Specialist - These companies are responsible for creating Programming Languages, Development Tooling, Database Systems, and so forth. These software types are the tools on which all other software depend (akin Visual/Audio Tools in the base games). At time of writing there are 3 software types and 31 features available in this branch.
  • Business Specialist - These companies focus on fulfilling the needs of businesses with bespoke business software and mainframe systems. At time of writing there are 2 software types and 16 features available in this branch.
  • Network Specialist - These companies focus on providing network / internet services (think ISP). At time of writing there are 2 "software types" and 19 "features" available in this branch.
  • Cloud Provider - This late game branch provides cloud services (think Azure/AWS) that make great additions to Business or Network specialists. This branch is not implemented yet, but should house 10-15 features for the first release.
  • OS Specialists - These companies focus on operating systems. Akin the base game, OS's have 3 categories and have been extended to have more than 20 features.
  • Gaming Specialists - These companies focus on gaming. Although not implemented yet, my intended design for this highly competitive market is to provide 4 software types, dozens of categories, and many features.

If anyone has any suggestions to add to this list, drop us a reply on this thread or head over to GitHub and create an issue.

Tiering

For each branch there are multiple tiers. The lower tiers have fewer dependencies, are easier to produce, but are less popular. As you create or purchase better development tools, server capacity, and network bandwidth, you unlock the ability to produce higher tier, much more popular software.

The particulars of tiering is much too big to fit into a forum post, but hopefully the above description is enough to wet your taste buds, and the following diagram gives you an idea:


Development (Progress)

Whilst further design and refinement will be an ongoing process, I'm a fair whack into the development of the mod. The source is available on github under the GPL licence (hope that's correct/ok, Khornel?).

I try to commit regularly so feel free to watch the repository for updates. For those looking to get involved (looking at you, pokmon987), please fork the repository, have a crack at anything not yet implemented, and drop me a pull request. I expect there to be some to/fro, but any help will of course be duly accredited when this mod makes it to release.

If several people want to help out, I'm happy to put a kanban board up on waffle and write up the outstanding work in github  issues to better organise things.

Beta testing

I'd really like any and all feedback regarding the mod. Currently, I'm especially interested in the 1970-1980 period (see later posts in this thread for tips on how to install).

If you get an error loading the game after installing the mod, it's because you've got the wrong branch of the mod. Make sure you switch to the latest branch on github, which at time of writing is alpha 7.7.
« Last Edit: February 25, 2016, 12:00:42 PM by smudge202 »

February 03, 2016, 05:53:21 AM
Reply #1

drock577

  • *
  • Information
  • Member
  • Posts: 5
    • View Profile
When you talk about a gaming specialist, do you want to flesh-out the type of games to make? Like adding new categories to existing software types? Or new software types or just focus on  companies?

Also for the cloud provider do you want to create new software types to offer for sever hosting?

Consider extending the README.md to explain the purpose of the mod, or atleast link back here.

I would love to help out!

EDIT:
why are you removing Game, Game-Engine, and Web-Game?
Why not extend all parts of the available ecosystem as well?
« Last Edit: February 03, 2016, 05:57:42 AM by drock577 »

February 03, 2016, 06:21:54 AM
Reply #2

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
drock,

All very good questions. I'll do my best to answer.

To answer two of your questions, I removed the existing game software because I intend to add my own versions. I may end up overriding base types, but removed them until I make that decision. The intent is to  split Online gaming out from Games because the introduction of network services allows additional/finer grained requirements with regards to bandwidth. As of alpha 7 I cannot remove features from overriden software types which makes Multiplayer/MMO features an issue. I'll likely end up splitting PC, Console, and Phone game types and set up genres for each accordingly (RPG's on phones for examples, if even applicable, would need a different popularity to the PC variant).

The split of game types will purely be to necessitate popularity differences between platforms and bandwidth requirements where applicable.

With regards to cloud provisioning, I need to differentiate server load (and popularity) between cloud service types (VM's vs Dedicated Servers vs Website Hosting vs Cloud Service Workers, etc.)

Hopefully that answers your questions?

Currently I'm working through the network provider branch to balance everything. First attempt proved it to be HUGELY overpowered so I'll be working on that for several hours yet. I welcome you to make a start on gaming (or anything else you fancy), though appreciate I haven't provided much in the way of a specification.

Fair point regarding sorting the readme. Everything is still very fluid so I'm trying to put it off as long as possible.
« Last Edit: February 03, 2016, 06:23:47 AM by smudge202 »

February 03, 2016, 06:31:40 AM
Reply #3

drock577

  • *
  • Information
  • Member
  • Posts: 5
    • View Profile
Thats a really interesting idea to split popularity between console types, but how does the game identify which type your developing for. Currently, does the game know the difference between a console and phone OS, or is that a Update 8 thing?

Also will you include the audio and visual tools, and approach them the same way with popularity, feature changes, and a company type?

I will send a pull request in tomorrow once I get around to it.  :)

February 03, 2016, 06:40:13 AM
Reply #4

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
I look forward to your PR.  :)

I can think of two ways to let software to detect whether the OS is console/pc/phone, but I've tested neither. I'll check it out  when I get a chance and let you know which way works (if any). Otherwise I'll have to rethink things because os categories can't be overridden until alpha 8.  :-\ *crosses fingers*

February 03, 2016, 08:43:47 AM
Reply #5

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
I had a quick look at this, drock. Here is a possible solution:

Code: [Select]
<SoftwareType Override="True">
<Name>Operating System</Name>
    <Needs></Needs>
<Features>
        <Feature Forced="True">
            <Name>PC Drivers</Name>
            <Category>1</Category>
            <Description>Drivers for running PC hardware.</Description>
            <DevTime>0</DevTime>
<Innovation>0</Innovation>
<Usability>0</Usability>
<Stability>0</Stability>
            <Unlock>1970</Unlock>
<CodeArt>1970</CodeArt>
            <Dependencies></Dependencies>
            <SoftwareCategory>Computer</SoftwareCategory>
        </Feature>
        <Feature Forced="True">
            <Name>Console Drivers</Name>
            <Category>1</Category>
            <Description>Drivers for running Console hardware.</Description>
            <DevTime>0</DevTime>
<Innovation>0</Innovation>
<Usability>0</Usability>
<Stability>0</Stability>
            <Unlock>1970</Unlock>
<CodeArt>1970</CodeArt>
            <Dependencies></Dependencies>
            <SoftwareCategory>Console</SoftwareCategory>
        </Feature>
        <Feature Forced="True">
            <Name>Phone Drivers</Name>
            <Category>1</Category>
            <Description>Drivers for running Phone hardware.</Description>
            <DevTime>0</DevTime>
<Innovation>0</Innovation>
<Usability>0</Usability>
<Stability>0</Stability>
            <Unlock>1970</Unlock>
<CodeArt>1970</CodeArt>
            <Dependencies></Dependencies>
            <SoftwareCategory>Phone</SoftwareCategory>
        </Feature>
    </Features>
</SoftwareType>

I'll be adding this to the OS override in the repo shortly.

The problem with it however, is it utterly destroys market simulation; the game crashes when you try to start. You can work around this by disabling simulation with a scenario:

Code: [Select]
<Scenario>
<Name>Recommended</Name>
<Money>
<Amount>1666</Amount>
<Amount>5000</Amount>
        <Amount>10000</Amount>
        <Amount>20000</Amount>
        <Amount>50000</Amount>
        <Amount>500000</Amount>
</Money>
<Goals></Goals>
<Years>
<Year>1970</Year>
</Years>
<Events>
</Events>
<Simulation>False</Simulation>
</Scenario>
note the <Simulation>False</Simulation> attribute.

I can't get a crash report for this issue, the game simply stops responding.

I see on the wiki regarding CompanyTypes:

Quote from: wiki
If you pick a name of one of the built-in company types, you can override it.

If I can work out the name required to override the operating system company type (perhaps I should just try "Operating System"?) then I may be able to tweak something to get around this issue. However, I suspect the actual issue will lie in the Company files themselves; we know the game seeds companies at the start of the game, and despite there being no wiki documentation, the format for companies (according to the test mod) is as follows:

Code: [Select]
<Company>
<Name>Test Company</Name>
<Money>10000000</Money>
<Reputation>3</Reputation>
<Founded>2-1975</Founded>
<Products>
<Product>
<Name>Test OS</Name>
<Release>1-1980</Release>
<Type>Operating System</Type>
<Features>
<Feature>GUI</Feature>
<Feature>QA</Feature>
</Features>
<Quality>0.5</Quality>
<OpenSource>TRUE</OpenSource>
<InHouse>FALSE</InHouse>
<Reception>1</Reception>
<Popularity>1</Popularity>
<SequelTo></SequelTo>
<OS>
</OS>
<Needs>
</Needs>
</Product>
<Product>
<Name>Test product</Name>
<Release>5-1985</Release>
<Type>Test Software</Type>
<Features>
<Feature></Feature>
</Features>
<Quality>1</Quality>
<OpenSource>FALSE</OpenSource>
<InHouse>FALSE</InHouse>
<Reception>1</Reception>
<Popularity>1</Popularity>
<SequelTo></SequelTo>
<OS>
<Name>Test OS</Name>
</OS>
<Needs>
</Needs>
</Product>
</Products>
</Company>

Note that products are seeded with features in these files. The operating system company will be trying to seed software according to the base features for operating systems, but by introducing a new Forced feature, the game freaks out as the seed tries to add a product without the feature.

Hopefully that makes sense, and hopefully Khornel sees this message!

Any advice anyone has on any of the above is hugely appreciated.
« Last Edit: February 03, 2016, 08:50:00 AM by smudge202 »

February 03, 2016, 07:59:49 PM
Reply #6

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
The above information has been moved to a bug report.

For now, I'll continue with the mod without platform dependencies. I'll try to keep track of known issues with links back to bug reports. (I've added a known-issues.md file to the repo).

February 03, 2016, 09:10:27 PM
Reply #7

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
I've spent some time balancing and testing the Hosting providers today, wondered if someone wanted to give it a crack and let me know what you think?

1970-1972 is a bit slow as there is only 2 features available in the specialist category for this period. More than that, it's HIGHLY competitive and popularity, in my opinion, is pretty well adjusted. If you use the Hosting scenario supplied and start in either 1970 or 1972, breaking out onto the market is real tough. If you hold out for outstanding quality products at the start, your competitors will beat you to the market with mediocre products and because they are the only service provider, will basically swallow up all your consumers (I love the bucket based market simulations).

If you release a Good/Great product you should beat them to the market and make a few thousand, which will be enough to hold out.

Note, the market simulator crashes very regularly. 90% of the time, at midnight, the game will pause and you'll see an error notification in the bottom right. Hopefully Khornel can check this out soon and let me know if there's anything I can do about it.

If you survive until 1973 and get to market quickly with a T1 business line rental, you can make over 50k which you'll need to use to expand your server capacity.

Note, I've done very little balancing in any other category yet.

I'm open to suggestions on additional generic features that can be introduced into the hosting branch.

Feedback on other branches/specialisms, whilst appreciated, probably isn't necessary. It's important to note, I don't want any over powered branches; I think at least for the first few years, hosting is pretty well adjusted. I haven't played past 1975 yet, but the ratios for all features are maintained throughout.

I'll test consumer line rental (available from 1993) now.
« Last Edit: February 03, 2016, 09:12:43 PM by smudge202 »

February 06, 2016, 02:00:00 AM
Reply #8

pokmon987

  • *
  • Information
  • Member
  • Posts: 105
  • Misk Creator and "Lead" for The Hybrid Project
    • View Profile
Do you guys actually wanna use Trello just to help layout the ideas?

February 06, 2016, 04:14:37 AM
Reply #9

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
What do people think to the following tech tree?

The colours indicate "tier" (complexity writing software due to dependencies; more complicated = more popular).
White > Grey > Blue > Yellow > Green > Red > Purple


« Last Edit: February 06, 2016, 05:36:56 AM by smudge202 »

February 06, 2016, 01:44:58 PM
Reply #10

Darckknight

  • *
  • Information
  • Newbie
  • Posts: 2
    • View Profile
Hello,
I have not really figured out how to install the mod.
I can not have that mod could to start in 1970.
Could you help me thank you.

February 08, 2016, 12:53:51 AM
Reply #11

pokmon987

  • *
  • Information
  • Member
  • Posts: 105
  • Misk Creator and "Lead" for The Hybrid Project
    • View Profile
Tech tree looks good. So do you guys wanna use Trello or not? 'Cus I'm gonna use it anyway...

February 08, 2016, 12:58:11 AM
Reply #12

pokmon987

  • *
  • Information
  • Member
  • Posts: 105
  • Misk Creator and "Lead" for The Hybrid Project
    • View Profile
Darcknight, the mod is still in the works and is probably somewhat buggy, but I will help the best way I can. You have to download the mod from the GitHub website, then you have to extract it from the zip folder, take out from that folder the folder entitled "devbot", goto Windows C:\Program Files\Steam\steamapps\softwareinc\mods and put the folder in there. I'm not sure about other OS's, maybe Smudge or drock could help.

February 08, 2016, 10:05:21 AM
Reply #13

smudge202

  • *
  • Information
  • Member
  • Posts: 88
    • View Profile
Thanks for responding to Darckknight, pokmon.

The mod as per the last commit had all the basic features and software types required to play from 1970-1980. It would be really cool if you could have a crack at those first 10 years of play (use the recommended scenario) and let me know what we're missing.

EDIT: Sorry for the confusion, make sure you get the alpha-7-7 branch of the mod if you're trying it out!
https://github.com/smudge202/software-inc/tree/alpha7-7

Feels like we should add more games, but I want to ensure that for each game feature added, we add a feature to the Enterprise T1 software so that the two are balanced and both plausible avenues of playthrough (do you want to developer games, or do you want to develop business/enterprise software). So far, the two are as popular as one another and have equal number and complexity of dependencies.

Some things I've noticed:
  • It's not feasible to rely solely on a T2 branch (Specialist Networking/2D Editors) because their are not enough customers available - I don't know if this is good or bad?
  • If you hold out to make outstanding software when starting in 1970, it's unlikely you'll make any sales for T1-T2 software because competitors will have stormed the market - don't know if this is good or bad.
  • There probably isn't enough feature/software unlocks between 1970-1973, or the dev times of the 1970 software needs increasing.
  • It's a steep learning curve, but it is possible to make profit and expand in 1970-1971 from my limited testing so far.
  • Product retention might be a little too high, but if you release software at the right time, you can get some market share.
« Last Edit: February 08, 2016, 09:29:55 PM by smudge202 »

February 08, 2016, 07:43:57 PM
Reply #14

Mpdude

  • *
  • Information
  • Member
  • Posts: 17
    • View Profile
 So I've just booted up the mod, copied the folder over to mods then when I launch the game this happens: http://imgur.com/u5Mt6Zn Not sure if I'm doing something wrong or what. I go to select a mod and there is nothing there. http://imgur.com/2xGXs84
Thanks,