I'd like help to figure something out

Development areas for Allegiance core (IGC) design.
Vlymoxyd
Posts: 985
Joined: Fri Jul 04, 2003 7:00 am
Location: Québec, Canada
Contact:

Post by Vlymoxyd »

I had an idea a few years ago for one of the faction in my core:

They would only have 1 "combat" ship. Instead of researching new ships, you could research upgrades.

Like a sup would give it a ripcord, tac would allow it to use a cloak and exp would allow it to use a booster.

So what'd like is a way to make a ship that can be upgraded in many different orders. I know it is an issue that affected many persons who tried to make a core and the final word was almost always: It's impossible. In all the years I've toyed with ICE, I've noticed that the allegiance code is full of bugs when you have a core that exploit them and I managed to create many interesting things that would have seemed impossible. I managed to create a combat drone and then noticed that most though it was impossible. We now know it is, so my point is that there might be a solution to this problem.

So far, there would be 6 different upgrades. To make it more simple, let's give them letters.

Upgrade A, Upgrade B, Upgrade C. Also, the "adv" type would be AA, BB, CC(A is the basic upgrade, AA would mean advanced).

If I didn't do any mistake, there would be 24 different possibilities of ships. I don't think it's possible to do anything without having 24 different ships, so it's fine. However, how can you make sure that only the "best" version that you can use becomes available?

I'll now post what I tried, so you don't have to read if it's too long for you, but if you wanna help, I think it's good to know what others tried.


My 1st real idea was to split the ships into 6 levels( The level was equal to the number of upgrades).
I created a dummie ship for every levels and every ship of said level was supposed to be overwrited by the dummie ship of the same level whenever a ship of a higher level was available.
The dummie ship was overwrited by the scout , so it was never available. TEK said that all possible versions of every ships would be available, but it was wrong... None of them actually was.
It took me a while to figure out why it didn't work, but here's the problem: Allegiance seems to overwrite ships if the "higher level" is available even if the "lower level" isn't available. So the dummie ships(which weren't supposed to be available yet) were automatically upgraded by the scouts. Allegiance somehows recreate the chains and instead of checking if the "lower level" ships can be upgraded into their next ship, it looked if it could be replaced by the scouts(which replaced the dummie ships). The result is that all ships were upgraded into scouts and no ships were available.

Math example for those who understand it better than words(like me):
Let's say there's this upgrade scheme A-----)B------)C
If B isn't available but that C is, B will still be upgraded into C. Then, when the game checks if A can be upgraded into B, since B was replaced by C, it'll check if A can be replaced by C. Since C is available, A will be upgraded into C even if B isn't available.

so I'm gonna play with it a bit more, but I'd like to see if anyone else has decent ideas to be able to only have only 1 ship that is available instead of every possible versions.



So, now, what I'm gonna try now is to create an update chain by levels starting by the same levels.

So it would be something like: A-----)B-----)C------)AB-----)AC-------)BC, etc.

If you get A, you would get ship A. If you then buy C, you'd get AC. Since AC is available, AB would be replaced by AB. Since AB is available, C would be replaced by AB. Since B is available, A would be replaced by B. In the end, I think that A will be replaced by AC. I'll give you the results.
"Désolé pour les skieurs, moi je veux voir mes fleurs!"
-German teacher

Image
http://www.steelfury.org/
Abomination
Posts: 712
Joined: Sun Feb 15, 2004 8:00 am
Location: Miami, FL

Post by Abomination »

I was thinking of making something like this (a "ModCore") but I never finished my initial er, hobbycore.

It's not impossible. But the work you have to put into the core gets exponentially larger UNLESS you resort to trickery like "Path B locks Path A advancement."
Image
SaiSoma
Posts: 1222
Joined: Sat Jul 30, 2005 7:00 am
Location: AL
Contact:

Post by SaiSoma »

you still want scouts it sounds like? Then just have ONE combat ship, like you said. A "fighter" or some other generic term. you don't upgrade the ship, ever. unless you want to increase hp or gunmounts? you could have it so certain gunmounts were only available for higher level weapons i suppose. So when you get gat2, your fig gets three guns and gat 3 can be mounted in the fourth slot. That doesn't help the hit points of the ship, but if you only want one ship, who cares?

parts for this idea are easy. just like boost2 when you aren't sup. You can dock it, use it on your int, but no one else gets it unless you get a sup.

it's the ship capabilities that are hard methinks. ripcord specifically. Other than that, the BASE ship can use all of those parts, but they have to be available.

Can you tie rip capabilities to a mountable part?

edit: clarity and another idea in the first section.
Last edited by SaiSoma on Thu Oct 02, 2008 1:49 am, edited 1 time in total.
Vlymoxyd
Posts: 985
Joined: Fri Jul 04, 2003 7:00 am
Location: Québec, Canada
Contact:

Post by Vlymoxyd »

Sai, you provided ideas that might be fun, but I'm looking for solutions to a specific problem. Having a ship that could use extra gun slots when gat 2/3 are bought would be very easy to do, but this isn't the problem I'm trying to solve. What I'm looking for is: How can I add 2 or more different upgrades(unrelated to loadable parts) and allowing the commander to purchase any of them 1st. What you suggest is mostly not to use different ships, but my goal is to find a way to do it. I've found many workarounds to be able to use the same ship, you brought up a good one, but there are many things that cannot work with workaround like the one you suggested.


I'll explain why it is important to figure out a way:
Right now, you can have upgrades that are linear, kinda like normal miners upgrades into Enh miners which upgrades into adv ones.
But without a solution to the problem, we can't currently have a devel that allows ships to have a ripcord(Best example) in a non-linear way. Let's say you want to have an upgrade that lets your Interceptor ripcord.
You could easily have this upgrade work like this: Ints----) Hvy ints ----) hvy ints with Ripcord .

But if you want the Rip upgrade to also work on normal ints, the linear way just don't work anymore(Maybe it does if the order is correct, I'll post after I'm done testing).


Abom: I'm not a fan of locking paths, mostly because you'd have to make it a 0 sec research or it would be possible to buy both. Also, the point was to not be forced to lock /smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />

K time to test.
"Désolé pour les skieurs, moi je veux voir mes fleurs!"
-German teacher

Image
http://www.steelfury.org/
SaiSoma
Posts: 1222
Joined: Sat Jul 30, 2005 7:00 am
Location: AL
Contact:

Post by SaiSoma »

right. i think i got you, but not sure.

but like i mentioned, it's not the mountable parts or usable parts, it's the capabilities that we have problems with? Other than ripping, what capabilities would NOT be tied to mountable parts?

If it's not capabilities (like having a diff ship <read lxy int that can ripcord> that was further on a tech path), what is it?
Vlymoxyd
Posts: 985
Joined: Fri Jul 04, 2003 7:00 am
Location: Québec, Canada
Contact:

Post by Vlymoxyd »

I GOT IT!!!! It worked!!!!

Ok, it didn't work out the 1st time, but I figured out more about how allegiance works and managed to make it work in the end after some tries.

Allegiance seems to be checking for upgrades in the order that the ships appear in the core(You must uncheck the sort box to make sure they don't appear in alphabetical orders). It seems to start by checking if there's an upgrade available for the 1st ship. If there's one, it replace the 1st ship on the list by one it is replaced by. It then does that for the 2nd, for the 3rd, etc. When it is done doing so for all ships, it seems to forget and start over. So the problem with my dummie ship is that they were probably placed above the ships they were replacing in the list. So they were getting upgraded into scouts and then, when the game checked if the base ship could be upgraded into a dummie ship, it axtually checked if it could be upgraded by a scout. I think my idea with the dummie ships might have worked if I made the dummie ships last in the list instead od making them anywhere.

It's kinda funny how I think about a problem for days and I find the solution by writting down why my original idea didn't work /smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />

Ok, so here's how you do it:

Definitions:
I define a ship level by the number of upgrades the ship. no upgrades = lvl 0. 1 upgrade = lvl 1, 2 upgrades: lvl 2,etc.

Different upgrades: I'll label the upgrades by A, B, C, AA, BB and CC. AA is an upgrade that has A as a prerequist(same for BB and CC).


-Create a different ship for every possible combos(It's 25 ships for 3 upgrades that got 2 levels each, so don't plan to do more than that). I'd highly suggest to give them names that explain very well what they are. You can change them when you are done, but it'll make your life easier.

-Separate the ships by levels. Your base ship(If any) is lvl 0. 1 ship with A is lvl 1, same for a ship with only B or only C.
Ships with A and B, B and C or A and C are level 2. To work faster on the next step, I write their level down in their description.

- Have your base ship(If any) upgrade to a lvl 1 one. Have this lvl 1 ship upgrade to another lvl 1(any) and this one to another lvl 1 untill you have a chain going from your base ship to all the lvl 1. When all the lvl 1 are linked, have the last one of the chain link to a lvl 2 ship and repeat the process untill all ships are linked together in an upgrade chain.

-Uncheck the sort box. You'll then be able to choose the order of your ship in the core(The 1st ones on the list will be upgraded 1st) You'll want to place all your new ships in the reverse order that you used to link them.(Your ship with all the upgrades should be the 1st and your base ship with no upgrades should be the last one).


I'll repost how I think it works:

Let's say you have this chain of upgrades:

A-B-C-AA-BB-CC-AB-AC-BC-BBC-BCC-AAB-AAC-ABC-ABB-ACC (I'll cut here).

Let's say you bought the A upgrade with the B and it's upgrade(which unlocks ABB).

-Allegiance will start by checking if ACC is available since you placed it 1st in the list. Since you don't have C, it will not be available.

-It'll then check if ABB is available, since you unlocked everything, it will be available to you. The next task is to check if ABB can be upgraded into ACC. Since ACC is not available, ABB won't be upgraded into ACC.

-It'll then check for ABC and conclude that it is not available(you don't have C). Then, it'll check if it can be upgraded into ABB. Since ABB is available, it'll upgrade ABC into ABB.

-It will then check for AAC. Since you don't have C, it'll conclude that AAC isn't available. But it'll then check if AAC can be upgraded into ABC. Since ABC was just upgraded into ABB, it'll actually check if AAC can be upgraded into ABB(And not into ABC). Since ABB is available, it'll upgrade AAC into AAB.

I could go on till the end, but I'd just repeat.
By making the upgrade line work by levels and by forcing allegiance to upgrade the last ships in the upgrade chain 1st, you make sure that the best available ship gets checked for upgrade 1st(It gets locked since it is sure it cannot be upgraded) as well as forcing every ships before it in the same to be replaced by it.

I guess I'll post my problems more often, I seem to find the solutions by myself faster that way /smile.gif" style="vertical-align:middle" emoid=":)" border="0" alt="smile.gif" />
"Désolé pour les skieurs, moi je veux voir mes fleurs!"
-German teacher

Image
http://www.steelfury.org/
Vlymoxyd
Posts: 985
Joined: Fri Jul 04, 2003 7:00 am
Location: Québec, Canada
Contact:

Post by Vlymoxyd »

Sai: Ok I posted before reading you reply:

Things that cannot be tied to parts:
-Armor class
-Ripcord
-Rip time
-Rip cost
-Rip receiving ability(both normal and small)
-Relay lead indicator
-Lead indicator
-Speed
-Thrust multiplier(sides)
-Max thrust(kinda like acceleration)
-Sig
-Mass
-Ability to capture base
-Ammos
-number of Missiles(You'd have the same linear upgrade problem if the missile had different levels)
-number of CMS
-HP
-Cost
-Scale
-Mass(At least, it'd be hard to find a workaround using parts)
-Fuel
-ECM
-Energy
-Energy recharge
-Scale
-Turn rates
-The model
-Sounds(Ok, probably not an issue).



Having 2 different ship because one has a special ability can work, but when you plan to have many different abilities(Like 6), then, you end up with over 20 different possible combos and you need a different ship for all of them. Making all those ships available at the same time is just not an option.


I'll give you an example of why it I couldn't use my ideas for my core without making it extremely silly(Before I found out how to make it work).
Let's say I want to create 3 special upgrades for interceptors. One lets them rip, the other gives them 2x more ammo and the last one double their fuel.

If you buy heavy ints with the 3 upgrades, you'd get:
Heavy ints that can rip®, have 2x more ammo(A) and 2x more fuel(F)
Ints with R,A,F
Heavy ints with R
Ints with R
Heavy ints with A
Ints with A
Heavy ints with F
Ints with F
...


And I could go on for a very long time. Obviously, the only ship you'd want is the heavy interceptor with the ripcord, the extra ammo and the extra fuel, but my problem is that I didn't know how to remove all the ones that shouldn't have been available. A team with all the upgrades would have been able to fly over 25 ships when they only needed to have 1 available(The best one)
"Désolé pour les skieurs, moi je veux voir mes fleurs!"
-German teacher

Image
http://www.steelfury.org/
Dark_Sponge
Posts: 386
Joined: Sun Dec 23, 2007 4:43 am

Post by Dark_Sponge »

Are you saying that you figured out how to have a single ship have multiple evolution options? I've been wishing I could do that for a long time.

Can you post a core file where you have an example of this at work? I think I'd understand it better that way.
Last edited by Dark_Sponge on Thu Oct 02, 2008 6:17 am, edited 1 time in total.
ImageImageImage
Dorjan
Posts: 5024
Joined: Sun Oct 07, 2007 9:56 am
Location: England

Post by Dorjan »

He explains it step by step clearly DS, read it again /mrgreen.gif" style="vertical-align:middle" emoid=":D" border="0" alt="mrgreen.gif" />
I decided to relive the days gone by in my new blog.
---
Remember, what I say is IMO always. If I say that something sucks, it actually means "I think it sucks" OK?
Cookie Monster wrote:QUOTE (Cookie Monster @ Jan 31 2012, 03:09 PM) True story.

Except the big about dorjan being jelly, that's just spidey's ego.
ImageImage
Vlymoxyd
Posts: 985
Joined: Fri Jul 04, 2003 7:00 am
Location: Québec, Canada
Contact:

Post by Vlymoxyd »

I've made a testcore to figure it out and I think it's pretty clear. Please ignore the dummie ships, which are useless with my latest idea.

Just either tell me how to add a file to this forum or give me your e-mail adress.
"Désolé pour les skieurs, moi je veux voir mes fleurs!"
-German teacher

Image
http://www.steelfury.org/
Post Reply