Author Topic: Prerelease 3.189 (Balance Changes And Bugfixes)  (Read 39886 times)

Offline Lancefighter

  • Core Member
  • *****
  • Posts: 2,440
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #135 on: September 11, 2010, 01:34:10 pm »
the forcefield structures siege starships get a bonus against..
Ideas? Suggestions? Concerns? Bugs to be squashed? Report them on the Mantis Bugtracker!

Author of the Dyson Project and the Spire Gambit

Offline Vinraith

  • Hero Member Mark II
  • *****
  • Posts: 806
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #136 on: September 11, 2010, 01:55:28 pm »
THE HELL WITH THAT

FF bearers got enough boost as they EVER will need with the ability to stop an entire starship line from being useful just by BEING THERE.

(yes, i mad)

That's a bug, not a feature.

Offline Ozymandiaz

  • Hero Member Mark II
  • *****
  • Posts: 813
  • King of kings
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #137 on: September 11, 2010, 03:49:26 pm »
FF bearers could probably use some love... they are the only FF that dosnt have some kind of regeneration  :(

I agree.

Since the blobbing/grouping changes they have not been performing as good as they used to, I think they cover a bit too few units in the FF radius :). Giving them regen would be a nice touch tho.
We are the architects of our own existence

Offline Lancefighter

  • Core Member
  • *****
  • Posts: 2,440
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #138 on: September 11, 2010, 03:53:37 pm »
THE HELL WITH THAT

FF bearers got enough boost as they EVER will need with the ability to stop an entire starship line from being useful just by BEING THERE.

(yes, i mad)

That's a bug, not a feature.

that doesnt stop me from being mad  :D
and i know thatll be fixed as soon as unity is done, but it still annoys me. This is the reason games allow modding :x
Ideas? Suggestions? Concerns? Bugs to be squashed? Report them on the Mantis Bugtracker!

Author of the Dyson Project and the Spire Gambit

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #139 on: September 11, 2010, 05:39:30 pm »
This is the reason games allow modding :x
Adding and maintaining proper modding support to a sufficient degree that you could actually remove the ff-gen ability from ff-bearers, or alter the relationship between ff-bearers and sieges such that the underlying bug were not an issue... that would be a pretty big obstacle to us keeping up the rate of our own development of the game ;)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Lancefighter

  • Core Member
  • *****
  • Posts: 2,440
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #140 on: September 11, 2010, 07:07:19 pm »
I'm assuming all the ships are maintained in a comma/semicolon/etc delineated spreadsheet somewhere, with a similar spreadsheet for bonuses vs various things..
problem is, its hidden somewhere so us players cant edit it to our hearts content :(
Ideas? Suggestions? Concerns? Bugs to be squashed? Report them on the Mantis Bugtracker!

Author of the Dyson Project and the Spire Gambit

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #141 on: September 11, 2010, 07:12:29 pm »
I'm assuming all the ships are maintained in a comma/semicolon/etc delineated spreadsheet somewhere, with a similar spreadsheet for bonuses vs various things..
problem is, its hidden somewhere so us players cant edit it to our hearts content :(
Nothing of the kind, it's all hardcoded.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #142 on: September 11, 2010, 07:14:12 pm »
I had thought the same way (surely it's just some data file) before I came on board, actually, and wondered for a bit why it wasn't.  Didn't take me long to realize that it gives us tons more flexibility to do it this way, and saves us a lot of time :)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Lancefighter

  • Core Member
  • *****
  • Posts: 2,440
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #143 on: September 11, 2010, 07:38:10 pm »
o.0 your gonna explain to me how that works... traditionally, 'hardcoded' merely means it cannot be changed by modding - well, in AI war, everything save images appears to be locked as so.


However, you guys MUST have some tool to do it easily, else we wouldnt see so many balance changes as such thrown around.....
Ideas? Suggestions? Concerns? Bugs to be squashed? Report them on the Mantis Bugtracker!

Author of the Dyson Project and the Spire Gambit

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #144 on: September 11, 2010, 08:25:17 pm »
No, it's all in a code file, and we edit it by hand.  Here's the initial part of the function that handles it:

Code: [Select]
    private void InitializeType()
    {
        int tempTechLevel;

        switch ( this.Type )
        {
            #region Fighters
            case ForegroundObjectType.Fighter:
            case ForegroundObjectType.BulletproofFighter:
                this.ShipType = ShipType.Fighter;
                this.ShipLevel = 1;
                this.MoveSpeed = 28;
                this.LoneUnitRadius = 20;
                this.MetalCost = 100;
                this.CrystalCost = 100;
                this.AttackPower = 300;
                this.AttackRecharge = 80;
                this.AttackRange = 200;
                this.MaxHealth = 11600;
                this.ShieldRating = 100;
                this.EnergyUse = 50;
                this.EngineHealth = 200;
                this.MinHitPercent = 30;
                this.PenetrateHighShields = true;
                this.LoadedDescriptionType = ForegroundObjectType.Fighter;
                this.SetAttackBonus( ShipType.ZenithViralShredder, 40 );
                this.SetAttackBonus( ShipType.Bomber, 16 );
                this.SetAttackBonus( ShipType.Marauder, 12 );
                this.SetAttackBonus( ShipType.Cutlass, 12 );
                this.SetAttackBonus( ShipType.Raider, 12 );
                this.SetAttackBonus( ShipType.Parasite, 12 );
                this.SetAttackBonus( ShipType.GrenadeLauncher, 12 );
                this.SetAttackBonus( ShipType.ImpulseReactionEmitter, 12 );
                this.SetAttackBonus( ShipType.ZenithParalyzer, 12 );
                this.SetAttackBonus( ShipType.Starship_All, 5 );
                this.SetAttackBonus( ShipType.Plane, 2 );
                this.SetAttackBonus( ShipType.Lazer_Gatling, 2 );
                this.SetAttackBonus( ShipType.Autocannon, 2 );
                this.ShotType = ForegroundObjectType.ShotBasic;
                if ( this.Type == ForegroundObjectType.BulletproofFighter )
                {
                    this.ShipType = ShipType.Bulletproof;

                    this.Bulletproof = true;
                    this.ImmuneToBeingInstaKilled = true;
                    this.LoadedDescriptionType = ForegroundObjectType.BulletproofFighter;

                    this.MetalCost *= 2;
                    this.CrystalCost = ( (FInt)this.CrystalCost * FInt.FromParts( 0, 500 ) ).ToInt();
                    this.AttackRecharge = ( (FInt)this.AttackRecharge * FInt.FromParts( 1, 50 ) ).ToInt();
                    this.AttackRange = ( (FInt)this.AttackRange * FInt.FromParts( 1, 50 ) ).ToInt();
                    this.MaxHealth = ( (FInt)this.MaxHealth * FInt.FromParts( 1, 100 ) ).ToInt();
                    this.ShieldRating = ( (FInt)this.ShieldRating * FInt.FromParts( 0, 800 ) ).ToInt();
                    this.EngineHealth = ( (FInt)this.EngineHealth * FInt.FromParts( 1, 500 ) ).ToInt();
                    this.MinHitPercent = ( (FInt)this.MinHitPercent * FInt.FromParts( 1, 200 ) ).ToInt();
                    this.ShipCapMultiplier = FInt.FromParts( 0, 900 );
                }
                break;

There's then a separate case statement for each ForegroundObjectType (including FighterII, Bomber, BomberII, etc... quite a few of them in total).

There are also a large variety of rules applied after this function call, like multiplying the MaxHealth of most definitions by 5, and making all Starships immune to reclamation, etc.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline RCIX

  • Core Member Mark II
  • *****
  • Posts: 2,808
  • Avatar credit goes to Spookypatrol on League forum
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #145 on: September 11, 2010, 09:04:40 pm »
:o

That's just about the most painful way i can think of to make a ship definition! :P
Avid League player and apparently back from the dead!

If we weren't going for your money, you wouldn't have gotten as much value for it!

Oh, wait... *causation loop detonates*

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #146 on: September 11, 2010, 09:27:46 pm »
Not at all ;)  This is actually way faster to work with than any kind of external-resource based approach.  And that's saying a lot because Chris and I both have extensive background in creating and maintaining enterprise database systems, so we actually tend much more towards data-driven solutions, and naturally have plenty of experience with excel and various flat-file formats, etc.  But this is much easier and faster to work with for the kind of rapid-development we do on AI War.

Oh, on the earlier point of only the images not being hardcoded; actually all the sounds, music, and localization strings (any text that can't always be english) are exposed.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #147 on: September 11, 2010, 09:31:49 pm »
I should add that I tend to do a lot of my unit definitions in batches; for instance the Neinzul Cluster I-V, Neinzul Bomber Cluster I-V, Neinzul Privacy Cluster, and Neinzul Viral Cluster I-V are all in one batch, and have sub-branches for the stats that actually differ (and a lot of those are handled all at once via "base + techLevel * perLevelIncrement" and so on).  This tends to be somewhat less verbose than you may be imagining.  Of course, it can also be more verbose because there's sometimes some relatively complex hierarchical data (particularly for modules), and that's one of the areas where the in-code approach shines: it doesn't take any additional effort to serialize and deserialize that data.  I know XML rather well, but I'm quite happy to avoid using it.
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!

Offline Lancefighter

  • Core Member
  • *****
  • Posts: 2,440
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #148 on: September 11, 2010, 11:18:31 pm »
ah ok.. that makes sense i suppose. I guess this is my background with Egosoft stepping in - all of their game files are nothing but spreadsheets... I kinda assumed everyone did it that way  :-X (well, i mean, it makes sense why it would be done that way.. to me at least)

So basically ships are defined inside the code itself.. i suppose at that point it will take slightly more effort to make it moddable than I thought (either releasing the entire code area around it, or totally divorcing the two.. neither of which I'm assuming are desirable anyway, because, well, with an indie multiplayer game as such, you dont want to fragment the playerbase etc etc)
Ideas? Suggestions? Concerns? Bugs to be squashed? Report them on the Mantis Bugtracker!

Author of the Dyson Project and the Spire Gambit

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Prerelease 3.189 (Balance Changes And Bugfixes)
« Reply #149 on: September 11, 2010, 11:38:07 pm »
Yes, the basic issue is that we don't want it to be that moddable, not that we can't do it.  We're still working on the game, and if we start exposing all kinds of stuff (it would have to be via external resource files rather than just letting you change the code, because otherwise you'd have to recompile the whole thing, etc) we then have to continue supporting that interface through all our rapid and often major changes.  It's either that or everyone's mods break every few prereleases.  Judging by your reaction to previous frustrations, that doesn't sound like a wise path ;)
Have ideas or bug reports for one of our games? Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!