Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
VehicleCloning Logic
#8
(06.11.2008, 06:32:23)mt. Wrote: Yeah, but these clone factories would ruin the kennel hack by ignoring the Owner= (used for kennel hack), and it would look weird and be wrong.

Example: special unit from special factory also ends up coming from a normal clone factory (instead of special clone factory, or no clone factory), and would look strange.
................which is exactly what I said?
My point is, all clones coming from the cloning facility would be how it logically should be. Anything else wouldn't make sense. Why would anyone create a cloning lab sophisticated enough to clone humans, or even vehicles........only to then build a second, less-sophisticated cloning facility for dogs?

Or, going from game logic: In the game, you need Soviet Barracks to build conscripts, Allied Barracks to build G.I.s, and Yuri Barracks to build Initiates.
Do you need Allied Cloning Vats to create cloned G.I.s? NO.
Any cloning vat is enough to clone any infantry, so any higher cloning vat should be enough to clone any higher unit.

Nothing is ruined by the simple and obvious solution. Everything would behave exactly as expected, and there is no logical reason why a dog shouldn't be cloned by the same facility that clones Brutes, Yuris, Viruses and Rocketeers, or why some Special Soviet Super Tank shouldn't be cloned by the same facility that would clone IFVs, MCVs, Chrono Miners and Apocalypses.

I mean, seriously. The sole purpose of cloning facilities is that it clones stuff. If you want a specialized facility out of which only that one unit type comes out, you might as well just build a second unit factory and cry for additional build queues.

And not only is the controversy artificial, but the proposed solution is retarded or incomplete as well - because even if you tell your SpecialUnit to be ProducedAt SpecialFactory - what the fuck does the dog care for his producing factory when he's looking for a cloning facility to walk out of? You would not only need ProducedAt=, but also either ClonedAt=, or Clones= if you are so afraid of your dogs being cloned elsewhere.

And that point, you might as well just scratch that and add custom TechnoTypes. 'cause Unit->IsType=Dog, Kennel->Factory=Dog, DogCloningVats->Clones=Dog is a lot more scalable than pointing at specific buildings on every single unit of every single type. Don't believe me? Look:

Broken way (your way):
Code:
[Huskie] ; Soviet dog
ProducedAt=SovietKennel
Owner=Magic ; still needed, 'cause the dogs are a common type.

[GermanShepherd] ;Allied dog
ProducedAt=AlliedKennel
Owner=Magic ; still needed, 'cause the dogs are a common type.

[Headcrab] ; Yuri dog
ProducedAt=YuriKennel
Owner=Magic ; still needed, 'cause the dogs are a common type.

[SovietKennel]
Factory=SomeType
Owner=Magic ; still needed, 'cause the dogs are a common type.

[AlliedKennel]
Factory=SomeType
Owner=Magic ; still needed, 'cause the dogs are a common type.

[YuriKennel]
Factory=SomeType
Owner=Magic ; still needed, 'cause the dogs are a common type.

[DogCloningVats] ; Utterly worthless, since it doesn't know what to clone from where

You need one specific kennel to build each breed of dog, special owner magic for the kennel logic, since it has no type distinction, and you can't clone the dogs 'cause the whole point of ProducedAt= is that it's not being produced at its type's cloning vats.

Complete way:
Code:
[Huskie] ; Soviet dog
ProducedAt=SovietKennel

[GermanShepherd] ;Allied dog
ProducedAt=AlliedKennel

[Headcrab] ; Yuri dog
ProducedAt=YuriKennel

[SovietKennel]
Factory=Huskie

[AlliedKennel]
Factory=GermanShepherd

[YuriKennel]
Factory=Headcrab

[DogCloningVats]
Clones=Huskie,GermanShepherd,Headcrab

You need one specific kennel to build each breed of dog, no special owner magic, cloning works.
Take note that this is the nice version...ClonedAt= would need another tag on every dog.

Sensible way:
Code:
[Huskie] ; Soviet dog
IsType=Dog

[GermanShepherd] ;Allied dog
IsType=Dog

[Headcrab] ; Yuri dog
IsType=Dog

[AlliedKennel]
Factory=Dog

[SovietKennel]
Factory=Dog

[YuriKennel]
Factory=Dog

[DogCloningVats]
Clones=Dog

Any dog can be produced from any kennel, no special owner magic needed, cloning works fine.

In case someone doesn't grasp the important differences between the complete way and the sensible way:
  1. In the complete way, if you are an Ally and want to build Huskies, you have to build a Soviet Kennel purely for that single breed of dog. In the sensible way, the Huskies will come out of your Allied Kennel - no additional kennel needed (same as for Barracks, War Factory, Shipyard).
  2. In the complete way, if you want to add a new breed of dog, you have to specifically target which building the dog should walk out of, and you have to update the cloning vats to include the new breed. In the sensible way, you just tell the game this unit is a dog, and it automatically selects the appropriate factory and cloning vats.
  3. Code-wise, even if you can't program, you'll have to agree that "I clone dogs, is this a dog?" is a lot more efficient than "I clone Huskies. Is this a Huskie? No? Okay, I also clone German Shepherds. Is this a German Shepherd? No? Okay, I also clone Headcrabs. Is this a Headcrab?" (and so on for every unit you have in the list until you have a find).

And before the programmers argue "but custom types is more work!" - for one, you know as well as I do the community will cry for custom types sooner or later anyway. Doing it now saves you doubled work later. More importantly, though, the ProducedAt= system is flawed, a cheap hack at best, clumsy in execution, and prone to usage problems - wouldn't you want to just do it right the first time around, instead of incorporating a crude hack, only to fix it thrice and then make it obsolete by custom types anyway?

Yes, custom types are probably more work. But they are also simpler in logic, more versatile, and solve the specific problem at hand as well as the request for additional cloning vats. Custom types are the better solution, and sooner or later, people will want them anyway.




So. Anyone wanna argue for ProducedAt= again?



P.S.: As an afterthought, you could circumvent one of the problems with the complete way by allowing lists in Factory=, doing this:
Code:
[SovietKennel]
Factory=Huskie,GermanShepherd,Headcrab

[AlliedKennel]
Factory=Huskie,GermanShepherd,Headcrab

[YuriKennel]
Factory=Huskie,GermanShepherd,Headcrab
But while that does solve the problem of needing multiple factories for the same type, now you have four lists to maintain - one for each factory and the cloning list. Not to mention that it requires additional hacking of the Factory= code, from simple type selection to parsing and understanding lists.

Still better than the broken way, but far inferior to a custom type system.
Forum Rules

(01.06.2011, 05:43:25)kenosis Wrote: Oh damn don't be disgraced again!

(25.06.2011, 20:42:59)Nighthawk Wrote: The proverbial bearded omni-bug may be dead, but the containment campaign is still being waged in the desert.
Reply


Messages In This Thread
VehicleCloning Logic - by Electro - 02.11.2008, 14:42:02
RE: VehicleCloning Logic - by MRMIdAS - 02.11.2008, 19:05:51
RE: VehicleCloning Logic - by Electro - 02.11.2008, 19:33:04
RE: VehicleCloning Logic - by hogo - 06.11.2008, 01:21:38
RE: VehicleCloning Logic - by Renegade - 06.11.2008, 04:54:29
RE: VehicleCloning Logic - by mt. - 06.11.2008, 06:32:23
RE: VehicleCloning Logic - by MRMIdAS - 06.11.2008, 09:43:35
RE: VehicleCloning Logic - by Renegade - 06.11.2008, 10:45:51
RE: VehicleCloning Logic - by MRMIdAS - 06.11.2008, 16:03:53
RE: VehicleCloning Logic - by DCoder - 06.11.2008, 18:52:16
RE: VehicleCloning Logic - by MRMIdAS - 06.11.2008, 21:11:04
RE: VehicleCloning Logic - by Black Shadow 750 - 06.11.2008, 21:22:12
RE: VehicleCloning Logic - by mt. - 07.11.2008, 00:09:22
RE: VehicleCloning Logic - by Renegade - 07.11.2008, 03:07:05
RE: VehicleCloning Logic - by mt. - 07.11.2008, 05:10:31
RE: VehicleCloning Logic - by Renegade - 07.11.2008, 09:37:53
RE: VehicleCloning Logic - by mt. - 07.11.2008, 20:42:20
RE: VehicleCloning Logic - by Bobingabout - 07.11.2008, 11:11:44
RE: VehicleCloning Logic - by MRMIdAS - 07.11.2008, 12:00:31
RE: VehicleCloning Logic - by Bobingabout - 07.11.2008, 13:01:15
RE: VehicleCloning Logic - by MRMIdAS - 08.11.2008, 12:16:23
RE: VehicleCloning Logic - by Bobingabout - 10.11.2008, 10:22:30
RE: VehicleCloning Logic - by MRMIdAS - 10.11.2008, 15:16:55
RE: VehicleCloning Logic - by Bobingabout - 12.11.2008, 11:23:07
RE: VehicleCloning Logic - by Renegade - 13.11.2008, 04:48:30
RE: VehicleCloning Logic - by Bobingabout - 13.11.2008, 11:56:24
RE: VehicleCloning Logic - by Renegade - 14.11.2008, 07:08:20
RE: VehicleCloning Logic - by Bobingabout - 14.11.2008, 11:01:40
RE: VehicleCloning Logic - by Blade - 14.11.2008, 14:27:46



Users browsing this thread: 1 Guest(s)