+ Reply to Thread
Page 1 of 65
1 2 3 11 51 ... LastLast
Results 1 to 10 of 649

Thread: Cronus: The Ultimate Drone

  1. #1
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,041

    Default Cronus: The Ultimate Drone


    The year was 2015, and purely by accident, we created something...indescribable. Objects moved as if by phantoms, pushed, pulled, spun. We'd never seen anything like it, and rather mundanely we decided to call this new innovation our "applyForce" technology.
    -Albert Herald

    Perhaps believing ourselves masters of this strange force, we took it as far as we could, recognising nearby objects, analysing them, and moving them into place. Composing and operating entire contraptions without a single weld, rope, or hydraulic. At the time, it was glorious.
    -Michael Yroth

    We were perhaps...misguided. Combining applyForce technology and the detailed operating systems that my works have become famous for, we made something terrible. Something virtually unstoppable.
    -Albert Herald

    We were fools. The old gods had been our poetic inspiration for years, and what we made was the worst of them all, given physical form. We stupidly called it Cronus.
    -Michael Yroth


    Backstory
    As far as RP goes, because I've made one for pretty much all my drones (present and future), Cronus was fully developed before any of the Olympus drones, and before Valhalla Inc. and Olympus Technologies were separate companies, back in the days of Herald Ent. when the founders of the two companies worked side by side making new technologies.
    When Cronus was finally made, the two had a falling out over what to actually do with it. Herald saw it as the wave of the future, though has never dared make anything with such unrestrained control of it's environment (Vector thrusters and the like). Yroth instead saw applyForce as a semi-demonic technology, and Valhalla drones stayed firmly away from it.

    But then, in 2053, Yroth had been dead for 12 years and Herald hadn't been seen in public for 13. The two estranged companies decided to restore their public comradery with a joint project, and broke Cronus out of mothball for some "updating".

    Features
    As far as Gmod is concerned, Cronus is a drone capable of self-evolution, self-repairs, and with not a single weld in its design. It is designed to only get stronger, to never die, and to never stop until it achieves it's objective (Which, presently running in my mind, is essentially the destruction of everything else). It is, put rather plainly and inaccurately, Gmod's version of the Terminator, as seen from the perspective of the surviving humans.
    • Chassis: what the drone is composed of
      The entire body of Cronus is essentially a Wired Wirer (Courtesy of Jeremydeath), a Wired User and a series of networked expression 2 chips. But when activated, it looks through unconstrained and unfrozen props in the surrounding area, analyses them by boxCenter and boxSize, compares them to it's factory standard scales, and then assigns them a body position (Left arm, right arm, left leg, right leg, pelvis, skull, and trunk) and uses applyForce to move them into position, the E2 chip typically placed right infront of the skull whilst the Wirers generaly move to the "shoulder" side of the arms. Upgrade props generally take position at the hands end, with prop spawners usually going to the outer sides.
    • Self-Evolution: how the drone gets stronger
      Using the Wirer and entity discovery, Cronus can find new wire objects and attach them to itself, allowing it to continue upgrading as it goes. So if it finds a wire prop spawner, it can pick it up, wire to it, and then position it on one of the arms and use it as a kind of missile launcher. The same goes for turrets, stool turrets, igniters, lasers, etc. As long as it still has one Wirer still wirelinked to it's chip, it keeps looking for upgrade parts. If it finds a data transferer and there are Olympus drones about, well you can probably tell where that's going.

      Important to note is that the Wirer is wirelinked to the chip. Once it's destroyed, likely by lucky shots with a remover gun, the upgrading portion of the code shuts off.
    • Offense: how the drone kills and destroys things
      When a body prop is destroyed, it keeps going, because it has no reliance on them. But if it finds that it's facing overwhelming odds (# of targets, rather than their armament), it will try to play dead, by making it's E2 chip invisible and ceasing the applyForce containment on it's remaining props. Basically causing it to seem as though the chip has been destroyed and the drone just falls apart harmlessly. It will then wait until the targets either leave completely or reach a more manageable level and re-assemble to attack again.

      It, as previously mentioned, looks for prop spawners as missile launchers, but using a bit of trial and error and an array of previously-discovered models, it can find explosive props and prioritise their prop spawning equivalents over alternatives. Explosive barrels and RPG missiles are of course higher priority over a 1x1 tile block, because the block can only hit one target at a time. When it finds a prop spawner, it wires to it and immediately spawns a prop from it. It then moves that prop to a position where it can try to crush it, and if it detects that the prop ceases to exist, it considers it to be explosive. Naturally, this has the issue that wooden props and other destructibles are selected as explosives, so there'll need to be a way around that, perhaps by searching for the keyword "wood" in their model name. To save on lag, prop spawned objects that have hit their targets are then immediately undone.

      If it has no upgrade weaponry, it has one of two options as far as attack goes. It can hurl one of it's own body parts at the target at high velocity, a kind of "force punch" if you will, or it will look for unconstrained props in the environment and hurl them, a kind of "telekinesis".
    • Defense: how the drone avoids destruction
      Defense is simple, it doesn't need any of it's body parts so it doesn't care about them. But if it finds that they're dropping like stones, it'll turn it's E2 chips invisible (entity():setAlpha(0)) and "hide" them elsewhere, whilst the body continues on, using entity discovery and built-in ranger functions from the skull instead. Alternatively, it may try to feign concern by moving the trunk body part or whatever's left infront of the chip. When it finds no targets are left in the area, or re-awakens from playing dead, it searchs again for props to fill in the blanks of it's missing body parts.
    • Destruction: killing the drone
      Destruction of a drone that has no prop reliance beyond it's own OS chips is a very tricky endeavour. There are no welds, so the LUA cinderblock is pointless, and the remover gun will only remove one body part if you miss the small chips (Even if you do hit one of the chips, you need to be lucky enough to hit something vitally important). Anything less than absolute and undeniable destruction of the chips means it will always come back. So my best advice would be to try and overwhelm it into it's "play dead" mode and then use automated targetting to get rid of the chips.

      Additionally, there is the Master to worry about. Whenever a drone is destroyed, the associated Master will activate a new drone. The Master sits thousands of units beneath the ground, in the void, so you would need to find it and destroy it before you destroyed the drone, and doing so would cause the Master to activate every one of it's drones that are kept on ice "just in case", which means you could be dealing with up to 9 drones after destroying the Master, and if you don't the drone just keeps coming back.

      This is a drone that is, by design, almost fundamentally indestructible.

    This is not a contraption showcase thread, this is not a challenge thread, this is a thread for community co-ordination in the development of this contraption.
    Last edited by Lyinginbedmon; 11-11-2009 at 08:32 AM. Reason: Updated descriptions

  2. #2
    Wirererer adadr is on a distinguished road adadr's Avatar
    Join Date
    Jan 2009
    Location
    South Dakota, USA
    Posts
    204

    Default Re: Cronus: The Ultimate Drone

    awesome man!
    I am a metalhead gamer livin in a small town in a place where corn is more abundant than people

  3. #3
    Lurker AutomatedOwner is an unknown quantity at this point AutomatedOwner's Avatar
    Join Date
    Apr 2009
    Location
    United States VA
    Posts
    84

    Default Re: Cronus: The Ultimate Drone

    Download when its done please.
    Last edited by AutomatedOwner; 06-27-2009 at 07:50 PM.

  4. #4
    Wire Amateur sunbreath is on a distinguished road sunbreath's Avatar
    Join Date
    Apr 2009
    Location
    MA, USA
    Posts
    56

    Default Re: Cronus: The Ultimate Drone

    Dude if you read the block of text..... ITS NOT MADE YET!!!
    As to what I just read (the whole thing) this would be epic!

    Bringing the world together one Wire at a time

  5. #5
    Patcherer... er
    Jeremydeath will become famous soon enough Jeremydeath's Avatar
    Join Date
    Jun 2008
    Location
    Texas, USA
    Posts
    356

    Default Re: Cronus: The Ultimate Drone

    Yay! My wirers are being put to good use. This is pretty much what I had in mind when I made them. (oh yeah, if you haven't seen, there is a new version of them out with better accuracy, wirelink creation capability, and wire node creation (pretty wiring) )

    EDIT: Also, looking through it, it seems that it might be better to have its chassis be in more of a worm, or other VERY simplistic form. And, here is a video that is just cool and might give you some ideas:
    Last edited by Jeremydeath; 06-04-2009 at 05:34 PM.
    Jeremydeath's Wire Addons - Try Them... NOW!

  6. #6
    Wire Amateur sunbreath is on a distinguished road sunbreath's Avatar
    Join Date
    Apr 2009
    Location
    MA, USA
    Posts
    56

    Default Re: Cronus: The Ultimate Drone

    That worm was awesome!

    Bringing the world together one Wire at a time

  7. #7
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,041

    Default Re: Cronus: The Ultimate Drone

    Finalised Codes
    • BODY PROP ASSIGNMENT
      • Function: Locates body props to be used by the Positioning chip
      • Requires: Props array and Point vector
      • Produces: BodyProps array and Scale number
      • Code:
        E2 Code:
        1. @name CRONUS BPROP ASSIGNMENT V2
        2. @inputs Props:array Point:vector
        3. @outputs BodyProps:array Scale
        4. @persist P RP Vary [V1 V2]:vector Sizes:array
        5.  
        6. if(first()){
        7. #Base sizes
        8. Sizes:pushVector(vec(17,14,15))
        9. Sizes:pushVector(vec(36,36,1))
        10. Sizes:pushVector(vec(19,19,6))
        11. Sizes:pushVector(vec(24,12,12))
        12. Sizes:pushVector(vec(24,12,12))
        13. Sizes:pushVector(vec(24,12,12))
        14. Sizes:pushVector(vec(24,12,12))
        15.  
        16. Vary=0.12 #Standard variance for prop sizes (%)
        17.  
        18. runOnTick(1)
        19. Scale=1
        20. }
        21. rangerFilter(BodyProps)
        22.  
        23. #BodyProp Status
        24. if(!RP){
        25. M=1
        26. while(M<=Sizes:count() & !RP){
        27. Prop=BodyProps&#91;M,entity]
        28.  
        29. #Drop and search for new body prop if:
        30. #Prop has been destroyed
        31. #Prop has been frozen
        32. #Prop has been constrained
        33. if(!Prop|Prop:isFrozen()|Prop:hasConstraints()){
        34. RP=M
        35. Size=Sizes&#91;RP,vector]*Scale
        36. V1=Size-(Size*Vary)
        37. V2=Size*(Vary+1)
        38. }
        39. M++
        40. }
        41. }
        42.  
        43. #Body prop replacement
        44. if(RP){
        45. M=0
        46. while(P<=Props:count() & M<=10 & RP){
        47. Ent=Props&#91;P,entity]
        48.  
        49. #Body Prop Check
        50. BPC=1
        51. if(BodyProps:count()){
        52. Z=0
        53. while(Z<=Sizes:count()){
        54. if(Ent==BodyProps&#91;Z,entity]){
        55. BPC=0
        56. }
        57. Z++
        58. }
        59. }
        60. #True if not a body prop
        61.  
        62. #Constraint check
        63. if(BPC){
        64. Count=Ent:hasConstraints()
        65.  
        66. if(!Count){
        67. #True if unconstrained
        68. Froze=Ent:isFrozen()
        69.  
        70. if(!Froze){
        71. #True if unfrozen
        72. ECen=Ent:toWorld(Ent:boxCenter())
        73. R=rangerOffset(Point,ECen)
        74.  
        75. if(R:entity()==Ent){
        76. #True of visible
        77. if(BodyProps:count()){
        78. EBox=Ent:boxSize()
        79. SC=max(EBox,V2)==V2
        80. SC+=min(EBox,V1)==V1
        81. }
        82. else{
        83. SC=1
        84. }
        85. #True if good size
        86. }
        87. }
        88. }
        89. }
        90.  
        91. if(BPC & SC){
        92. BodyProps&#91;RP,entity]=Ent
        93. Ent:setMaterial("models/debug/debugwhite")
        94. Ent:setAlpha(255*(RP/7))
        95. RP=0
        96. }
        97.  
        98. P++
        99. M++
        100. }
        101. if(P>=Props:count()){P=0}
        102. }
        103.  
        104. #Rescaling
        105. if(BodyProps:count()){
        106. M=0
        107. Scaling=array()
        108. while(M<=Sizes:count()){
        109. Comp=Sizes&#91;M,vector]
        110. Vec=BodyProps&#91;M,entity]:boxSize()
        111.  
        112. V=Vec/Comp
        113. Var=(V:x()+V:y()+V:z())/3
        114. Scaling&#91;M,number]=Var
        115. M++
        116. }
        117. if(Scaling:count()==Sizes:count()){
        118. Scale=Scaling:average()
        119. }
        120. }
    • ENTITY(N) DISCOVERY
      • Function: Locates entities based on their entity IDs and sorts them into recognisable groups.
      • Requires: Entity ID number
      • Produces: Chips, Props, Players, NPCs, and Targets arrays
      • Code:
        E2 Code:
        1. @name Entity(N) Discovery
        2. @inputs ID
        3. @persist NewN MaxN MinN HDif LDif IDs:array
        4. @outputs &#91;Chips Players Props NPCs Targets]:array
        5.  
        6. if(first()){
        7. runOnTick(1)
        8.  
        9. MaxN=MinN=NewN=entity():id()
        10. }
        11. #IDs array ensures viable IDs aren't missed due to
        12. #loops already in sequence
        13. if(ID!=IDs&#91;IDs:count(),number]){
        14. if(ID>MaxN|ID<MinN){
        15. IDs:pushNumber(ID)
        16. }
        17. }
        18.  
        19. #NewN alteration
        20. if((HDif+LDif)==0){
        21. #Wait until the previous ID has been run before changing
        22. #In most cases this will only take a fraction of a second
        23. if(IDs:count()>1){IDs:remove(1)}
        24. NewN=IDs&#91;1,number]
        25. }
        26.  
        27. #Separations from the known finds
        28. HDif=NewN-MaxN #IDs above the Maximum found
        29. HDif=clamp(HDif,0,abs(HDif))
        30. LDif=MinN-NewN #IDs below the Minimum found
        31. LDif=clamp(LDif,0,abs(LDif))
        32. Clamp=clamp(max(HDif,LDif),0,10) #Immediate search magnitude
        33.  
        34. N=0
        35. while(N<=Clamp & (HDif+LDif)>0){
        36. if(HDif){
        37. MaxN++
        38. Ent=entity(MaxN)
        39. }
        40. elseif(LDif){
        41. MinN--
        42. Ent=entity(MinN)
        43. }
        44.  
        45. Typ=Ent:type() #Entity type
        46. #Expression 2 chips
        47. if(Typ:find("expression2")){
        48. Chips:pushEntity(Ent)
        49. }
        50. #NPCs
        51. elseif(Typ:find("npc_")){
        52. NPCs:pushEntity(Ent)
        53. Targets:pushEntity(Ent)
        54. }
        55. #Players
        56. elseif(Typ:lower()=="player"){
        57. Players:pushEntity(Ent)
        58. Targets:pushEntity(Ent)
        59. }
        60. #Props
        61. elseif(Typ:find("prop_physics")){
        62. Props:pushEntity(Ent)
        63. }
        64.  
        65. N++
        66. }
    • EYE OF CRONUS
      • Function: Creates an aesthetic hologram eye of the Cronus 2.0 symbol that looks where the Eye chip is currently checking.
      • Requires: Look & Point vectors
      • Produces: N/A
      • Code:
        E2 Code:
        1. @name CRONUS EYE v2
        2. @inputs &#91;Look Point]:vector
        3. @persist &#91;H7 H1]:entity
        4.  
        5. if(first()){
        6. Angles=array(),Colours=array(),Materials=array(),Models=array(),Parents=array(),Positions=array(),Scales=array()
        7. #Creation array populating
        8. Angles&#91;1,angle]=ang(270,0,0),Angles[2,angle]=ang(),Angles[3,angle]=ang(40,90,90),Angles[4,angle]=ang(-40,90,90),Angles[5,angle]=ang(45,40,0),Angles[6,angle]=ang(-45,-40,0),Angles[7,angle]=ang(0,90,0)
        9. Colours&#91;1,vector]=vec(0,1,1)*191.25,Colours[2,vector]=vec(0,1,1)*255,Colours[3,vector]=vec(1,1,1)*255,Colours[4,vector]=vec(1,1,1)*255,Colours[5,vector]=vec(1,1,1)*255,Colours[6,vector]=vec(1,1,1)*255,Colours[7,vector]=vec(0,1,1)*255
        10. Models&#91;1,string]="hqicosphere2",Models[2,string]="hqicosphere2",Models[3,string]="hqcylinder",Models[4,string]="hqcylinder",Models[5,string]="hqcylinder",Models[6,string]="hqcylinder",Models[7,string]="hqicosphere2"
        11. Parents&#91;1,number]=7,Parents[2,number]=1,Parents[3,number]=7,Parents[4,number]=7,Parents[5,number]=7,Parents[6,number]=7,Parents[7,number]=7
        12. Positions&#91;1,vector]=vec(),Positions[2,vector]=vec(0,0,1),Positions[3,vector]=vec(0,-3,-7),Positions[4,vector]=vec(0,-3,6),Positions[5,vector]=vec(-7,-4,6),Positions[6,vector]=vec(7,-4,6),Positions[7,vector]=vec(0,-4,0)
        13. Scales&#91;1,vector]=vec(2,2,2)/3,Scales[2,vector]=vec(3,3,6)/9,Scales[3,vector]=vec(1,4,1)/3,Scales[4,vector]=vec(1,4,1)/3,Scales[5,vector]=vec(4,1,1)/3,Scales[6,vector]=vec(4,1,1)/3,Scales[7,vector]=vec(1,5,4)/3
        14. #Creation arrays ditched after first execution
        15. print(Angles:count()+"")
        16. #Hologram production
        17. S=0
        18. P=0
        19. #Spawning
        20. while(S<=Positions:count()){
        21. Pos=Positions&#91;S,vector]
        22. Sca=Scales&#91;S,vector]
        23. Ang=Angles&#91;S,angle]
        24. Col=Colours&#91;S,vector]
        25. holoCreate(S,Pos,Sca,Ang,Col)
        26.  
        27. holoModel(S,Models&#91;S,string])
        28. if(S==7){holoMaterial(7,"models/props_combine/tpballglow")}
        29.  
        30. S++
        31. }
        32. #Parenting
        33. while(S==Positions:count()+1&P<=Positions:count()){
        34. holoParent(P,Parents&#91;P,number])
        35. P++
        36. }
        37.  
        38. H1=holoEntity(1)
        39. H7=holoEntity(7)
        40.  
        41. runOnTick(1)
        42. }
        43.  
        44. #Hover position determination
        45. if(Point){Po=Point}else{Po=entity():pos()}
        46. holoPos(7,Po)
        47.  
        48. #Look position determination
        49. if(Look){T=Look}else{T=H1:pos()+entity():forward()}
        50. if(!Look & $Look){reset()}
        51. #Prevents angle locking if the Eye chip is destroyed
        52.  
        53. #Main body turning (25 times slower)
        54. A7=(T-H7:pos()):toAngle()-H7:angles()
        55. C=(H7:angles()+A7/25):setRoll(0)
        56. holoAng(7,C)
        57.  
        58. #Eye turning
        59. A=(T-H1:pos()):toAngle()
        60. holoAng(1,A)
    Last edited by Lyinginbedmon; 12-22-2009 at 12:20 AM.

  8. #8
    Wire Sofaking Bobsymalone will become famous soon enough Bobsymalone's Avatar
    Join Date
    Jul 2008
    Posts
    779

    Default Re: Cronus: The Ultimate Drone

    Quote Originally Posted by Lyinginbedmon View Post
    I'm completely terrible with applyForce
    Applyforce works the same as a vector thruster, so if you can use those, you can use applyforce :P.

  9. #9
    Drone Madman
    Lyinginbedmon will become famous soon enough Lyinginbedmon will become famous soon enough Lyinginbedmon's Avatar
    Join Date
    Mar 2009
    Location
    England
    Posts
    2,041

    Default Re: Cronus: The Ultimate Drone

    You'd think so and yet here we are.

    Anyways, tested the above skull-finding code.

  10. #10
    Wire Sofaking Solece is on a distinguished road Solece's Avatar
    Join Date
    Jul 2008
    Posts
    452

    Default Re: Cronus: The Ultimate Drone

    Finally glad to see your not just talking about bots and actually making bots ^^
    Last edited by Solece; 12-31-2009 at 07:29 AM.
    You have to love chatbots:
    Ruηeηeǿ: who is more pretty, solece or me?
    Loki: Your mom.

+ Reply to Thread
Page 1 of 65
1 2 3 11 51 ... LastLast

LinkBacks (?)

  1. 2 Weeks Ago, 03:44 PM
  2. 02-02-2010, 02:00 PM

Similar Threads

  1. Ultimate Rave Machine
    By Error 404 in forum Contraptions & Saves
    Replies: 11
    Last Post: 04-20-2009, 05:46 PM
  2. The ultimate commanders chair
    By Shadow7 in forum Ideas & Suggestions
    Replies: 7
    Last Post: 02-11-2009, 09:03 AM
  3. Ultimate Gmod Pack
    By -Gamah in forum Off-Topic
    Replies: 21
    Last Post: 08-28-2008, 04:37 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts