Author Topic: Cheese.png  (Read 6724 times)

Offline RockyBst

  • Full Member Mark III
  • ***
  • Posts: 219
Cheese.png
« on: September 23, 2013, 06:45:24 pm »
A tale in three screenshots.





Yes, chase that champion ... ignore the martyrs floating just off the port bow.

Couple of questions on this actually. Firstly, is it intentional that the martyrs only damage AI carriers if the auto-target carriers logic is turned on? Makes some sense I suppose, if you want to avoid blowing someones computer with 20,000 suddenly spawned ships. Which leads me to my second question. Did I actually kill all these special forces? There only ever seemed to be 2,000 or so ships on the planet no matter how many carriers I exploded, were the rest culled / magically teleported somewhere else without taking any damage?

EDIT: May have answered this myself:

"Doing special carrier deployment logic for carrier 1198548 (AICarrierII); Game Time: 13:34:16
On planet Hargioaos
pouring these internal contents into chipper shredder:
84 SpacePlaneII @ 2.23 each, so total for line = 187.52
77 MLRSII @ 5.05 each, so total for line = 388.99
43 TackleDroneLauncherII @ 72 each, so total for line = 3096
108 MissileShipII @ 4 each, so total for line = 432
22 SpaceTankII @ 4 each, so total for line = 88
452 FighterII @ 4 each, so total for line = 1808
76 BomberII @ 4 each, so total for line = 304
44 ZenithElectricBomberII @ 20.21 each, so total for line = 889.26
50 ZenithBeamFrigateII @ 8 each, so total for line = 400
27 TeleportBattleStationII @ 16 each, so total for line = 432
2 MicroParasite @ 9.79 each, so total for line = 19.59
1 SpeedBooster @ 5.88 each, so total for line = 5.88
14 ZenithMirrorII @ 4 each, so total for line = 56
Grand total: 1000 ships, 8107.24 strength
Due to current AI-ally count on planet being 1782 max ships for this spawn = 150
Since carrier contains 1000 units, need to combine them
Simple mark-upgrading combination resulted in 395 units with 63.12 leftover strength, so need to trim more; multiplying mark-upgraded counts by 0.25 and converting the strength into mkV combat guardians
carrier spawn settled, actually spawning:
8 CoreAstroPlane @ 5.58 each, so total for line = 44.65
7 CoreMLRS @ 12.63 each, so total for line = 88.41
4 CoreTackleDroneLauncher @ 180 each, so total for line = 720
10 CoreBattleCruiser @ 10 each, so total for line = 100
2 CoreSpaceTank @ 10 each, so total for line = 20
45 CoreFighter @ 10 each, so total for line = 450
7 CoreBomber @ 10 each, so total for line = 70
4 CoreZenithElectricBomber @ 50.53 each, so total for line = 202.1
4 CoreZenithBeamFrigate @ 20 each, so total for line = 80
2 CoreTeleportBattleStation @ 40 each, so total for line = 80
1 CoreZenithMirror @ 10 each, so total for line = 10
10 AIGuardianSpiderV @ 480 each, so total for line = 4800
4 AIGuardianFlakV @ 480 each, so total for line = 1920
Grand total: 108 ships, 8585.16 strength "

Repeat about 30 times. Uh, did I just spawn myself a threatball full of max level guardians?

Offline Aklyon

  • Core Member
  • *****
  • Posts: 2,089
Re: Cheese.png
« Reply #1 on: September 23, 2013, 10:14:25 pm »
If you force enough into the AI compressor, you get horrible great results. Core Guardians are just the start ;D

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Cheese.png
« Reply #2 on: September 23, 2013, 11:03:50 pm »
The Magical Chipper-Shredder Of Awfulness is capable of strange and wonderful results.  Sometimes more strange than wonderful.
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 Fluffiest

  • Full Member
  • ***
  • Posts: 140
Re: Cheese.png
« Reply #3 on: September 24, 2013, 08:04:21 am »
Can that thing spit out Dire Guardians if you feed it enough?

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: Cheese.png
« Reply #4 on: September 24, 2013, 09:36:55 am »
The Magical Chipper-Shredder Of Awfulness is capable of strange and wonderful results.  Sometimes more strange than wonderful.

You mean like swords that explode when they hit things?

Offline Tridus

  • Master Member
  • *****
  • Posts: 1,305
  • I'm going to do what I do best: lecture her!
Re: Cheese.png
« Reply #5 on: September 24, 2013, 12:18:26 pm »
The Magical Chipper-Shredder Of Awfulness is capable of strange and wonderful results.  Sometimes more strange than wonderful.

You mean like swords that explode when they hit things?

You mean like a shotgun that shoots swords that explode when they hit things?

:D

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: Cheese.png
« Reply #6 on: September 24, 2013, 12:40:23 pm »
You mean like a shotgun that shoots swords that explode when they hit things?

:D

Borderlands' weapons operate on a similar principle to the system I've been writing.

Offline contingencyplan

  • Full Member
  • ***
  • Posts: 147
Re: Cheese.png
« Reply #7 on: September 25, 2013, 02:33:29 am »
You mean like a shotgun that shoots swords that explode when they hit things?

:D

Borderlands' weapons operate on a similar principle to the system I've been writing.

How so, if you can answer? I'm always curious about these sorts of systems (one of the reasons I like AI War :P).

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: Cheese.png
« Reply #8 on: September 25, 2013, 10:13:10 am »
How so, if you can answer? I'm always curious about these sorts of systems (one of the reasons I like AI War :P).

Standard OOP kind of looks like this:


Minecraft kind of went this route for blocks and items (in Mojang's defense, it's actually a really good system for the way they need to handle the amount of items and blocks, by simply referencing them by ID and calling functions on the superclass which the specific block inherits and overrides):



The solution is the Entity Component Pattern.  Which is what I implemented on top of Minecraft's system, using NBT data tags:




All of my items use a single item class that looks for the presence of flags on the NBT tag, then uses a hashmap to store components, then when a flag is true, passes the original function call off to that component, so it can act like a unique item, without having to be one.

Code: [Select]
public void onUpdate(ItemStack stack, World world, Entity player, int par4, boolean par5) {
    NBTTagCompound data = stack.getTagCompound();
int effectID = 0;
if(data != null) {
if(!world.isRemote) {
effectID = data.getInteger("onUpdate");
if(effectID != 0) {
ArtifactComponent c = Artifact.getComponent(effectID);
c.onUpdate(stack, world, player, par4, par5);
}
}
}
}

Borderlands guns are built in a similar fashion.  Each one is made up for a bunch of pieces (based on what a friend of mine who delved into it said), barrel, stock, grip, etc. and each one modifies the stats in various ways.  The loot system just smashes a bunch of random pieces together, which is what makes them so interesting (named guns are special and tend to be less randomized, varying by +/- 2 points of damage or +/- 0.2x zoom, rather than being random parts).

I have half a mind to walk back into my university and go "I would like to teach the correct approach to Object Oriented Programming."

Images lifted from this thread.

Offline keith.lamothe

  • Arcen Games Staff
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 19,505
Re: Cheese.png
« Reply #9 on: September 25, 2013, 11:27:02 am »
We just mash it all together ;)
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 Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: Cheese.png
« Reply #10 on: September 25, 2013, 11:39:55 am »
We just mash it all together ;)

It works, I agree, it works.

I just want to get into using the Component Entity Pattern more, as its so flexible.  School taught me almost nothing about OOP other than the standard "extends" relationship.

I'm also a fan of the Decorator Pattern, though I've never been able to figure out how to actually implement it.  I like what the pattern allows for, but haven't been able to conceptualize how to start a program that uses it.

Offline contingencyplan

  • Full Member
  • ***
  • Posts: 147
Re: Cheese.png
« Reply #11 on: October 16, 2013, 01:49:32 am »
Now I'll have to dust off my Gang of Four book and refresh my memory on those
patterns --- it's been a while. (My favorite has always been Factory. :) )

I also posted a thread here because your comment made me think of the broader picture.

Offline Draco18s

  • Resident Velociraptor
  • Core Member Mark V
  • *****
  • Posts: 4,251
Re: Cheese.png
« Reply #12 on: October 17, 2013, 09:55:00 am »
Now I'll have to dust off my Gang of Four book and refresh my memory on those
patterns --- it's been a while. (My favorite has always been Factory. :) )

Entity Component Pattern has factories that produce the actual game objects (new entity().addComponent(new SomeComponent().addComponent(...))
Though I'm not sure at what point Pattern A becomes Pattern B.  I'm calling it as I see it, even if it is what somebody else calls something different.

Quote
I also posted a thread here because your comment made me think of the broader picture.

Reading now.