constructors build obsolete bases

Post bug reports and ask for support here.

Moderators: Icemania, elliotg

Post Reply
taltamir
Posts: 1290
Joined: Fri Apr 02, 2010 2:51 am

constructors build obsolete bases

Post by taltamir »

at the begining of the game i obsoleted all the research bases. I have not made a new one since. however, my constructor just built an obsolete research base.
I do not have a superman complex; for I am God, not Superman.
Fishman
Posts: 795
Joined: Thu Apr 01, 2010 6:56 pm

RE: constructors build obsolete bases

Post by Fishman »

Yes, this seems to be an ongoing issue: I reported this ages ago, but naturally, it has been tossed into the circular file: Constructors can even build designs that don't exist, and they will do this stupid worthless research base thing even when research is maxed out, and therefore, the base is completely worthless and serves only to mess up the existing research distribution.
User avatar
Erik Rutins
Posts: 39783
Joined: Tue Mar 28, 2000 4:00 pm
Location: Vermont, USA
Contact:

RE: constructors build obsolete bases

Post by Erik Rutins »

Was this with 1.0.4 Beta 2?
Erik Rutins
CEO, Matrix Games LLC


Image

For official support, please use our Help Desk: http://www.matrixgames.com/helpdesk/

Freedom is not Free.
taltamir
Posts: 1290
Joined: Fri Apr 02, 2010 2:51 am

RE: constructors build obsolete bases

Post by taltamir »

yes. 1.4b2... and I have started a brand new game. also, I wish there was a "general research" station that had an equal amount of research lab.
I do not have a superman complex; for I am God, not Superman.
Fishman
Posts: 795
Joined: Thu Apr 01, 2010 6:56 pm

RE: constructors build obsolete bases

Post by Fishman »

Regardless, constructors and shipyards should not be allowed to order nonexistent or obsolete designs unless allowed to design new ones. If the player has explicitly chosen to eliminate a design completely, it means that none should be built.
Sliverine
Posts: 155
Joined: Thu Apr 15, 2010 9:10 am

RE: constructors build obsolete bases

Post by Sliverine »

I can confirm that this bug exists in 1.03 too. The automation AI will occasionally attempt to build new structures as it sees fit and if it cannot find the native structure it is looking for (deleted), it adds the native design (albeit upgraded) and builds that. If the native design has been obsoleted, it simply builds the obsolete one.

This has something to do with how the AI identifies and links designs to its build plans. Say you have 3 different mining bases for 3 different purposes, the AI simply is unable to determine which one to use, therefore, it simply uses the default.

Suggested fix: Add an ability to 'earmark' a certain design as the default AI design for automation. Make it compulsory so that the player has to earmark one (and only one!) design for every single role at any given time. The AI will then use that earmarked design for building a structure to fulfill whatever role it wants. Earmarking the design will simply tell the AI that that design is the default building to build for the purpose of the role and it makes it such that the AI will not attempt to build obsolete designs or add in its own default designs so long as it can find a earmarked default.

A global variable list of pointers to default designs can be created via which the AI will access the designs that it builds. Earmarking a design can be simply the action of setting the pointer to point at that particular design. If pointer -> NULL i.e. player deletes earmarked design [hence setting the pointer to NULL as part of that action to prevent dangling pointers] and fails to earmark a new one, have a popup warning when the player closes the design screen and make it such that if the AI fails to find a default earmarked design, the AI will simply cancel any current build orders with regards to that design and move on to the next one. An exception catch can be additionally implemented such that upon cancelling the build order due to lack of default design, the AI will warn the player in the events tab.

i.e. try {check if default design pointer is NULL. If true, throw exception;}

catch (exception) {cancel current build order; warn player;}
If my lawn were emo, it would mow itself
Post Reply

Return to “Tech Support”