Robot Destruction Alternative

Robot Destruction Alternative 0.2.2

  • Hey you! Yes, you! Add images to your downloads, it's free! Use the orange "Manage Download Image" button in the top right.

Robot Destruction Alternative 0.2.2

A reimagining of the Robot Destruction gamemode.

- Inbox: [ 1 ] New message(s) -

To: █████.
Forwarded from: ████ ███. ↵



Welcome back Soldier, we are once again shooting for the moon!
Destroy the enemy robots, or focus on defending your army of little hackers.


Attachment(s):
screen_message_with_sticker.png
gameplay.png

Reach the score quota before the enemy team!
Increase your team's score by destroying enemy robots
or capture the control points and let your hacker robots do all the work ~


Gamemode features
hacking.png


- Better robot hitboxes! With damage numbers and hit sounds, and the widowmaker works!

- Free from the tracks! Move the robots anywhere.

- Sappable robots! A machine shouldn't be safe when a spy is around: sapping the robots will cancel their current directive (go-to and hacking) and disable their flee directive.

- Noise be gone! No more killfeed notification, no more explosive core pickup, and the "Your robots are under attack" message will only play once.

photo4.png

- Spawnpoint assignment! Know beforehand where players will spawn and define some callbacks to animate the events.

- Proximity spawning! Spawn players at the closest spawn.


•••

VScript Includes

- Utilities:
Include quite a few useful global functions to write shorter code and handle common problems.
(e.g. ::first(), ::collect(), ::groupBy() and much more!)

- Timers n' Timelines:
photo1_remake.png

Defer any function call to a later moment with a PAUSABLE timer, or group them into a reusable timeline to create animations.
(e.g. ::createTimer(5, @() printl("Been a while")).pauseTimer())

- Events:
Simplified game events hooking and OnTakeDamage handling, you can even create your own events.
(e.g. ::getEvent("player_spawn").addEffect(@(info) printl("A player spawned!")))


•••

Rambling

photo2.png
Born from the "Double Trouble" contest theme, this gamemode aims to provide two different objectives to the players: one -active- and one -passive-, that is, "actively get the cores by destroying the robots" and "passively get the cores by capturing the control points".

A map using this gamemode was planned for the "Stack the deck" contest but I didn't manage to finish it. After working on the new spawn system I ended up just rewriting most of the code and now here we are.
The map is still in development, I've gotten pretty far into it and I'd like to publish it someday.

Right now I'm sharing a demo and the VScripts. This demo is meant to show a compact version of the gamemode, with the cool juice (particles n' sound).

Did you know that in Robot Destruction the robots were supposed to "stop and use computers"? They would have hacked the computers and generated points for the team! They weren't meant to be just nuisances!
(tf_logic_robot_destruction -> score_interval & tf_robot_destruction_robot > StopAndUseComputer)
So really I'm just trying to bring justice to the original gamemode that never got to shine.

Also, due to the fact that the hitboxes are sentries, I couldn't let the opportunity of making the robots sappable just slip away.

As for the flag in the original gamemode, no.
I did not like the concept of "stealing points" so I just scrapped it in favor of the capture points that would generate points passively.
We got Player Destruction thanks to it tho, so it's not all bad.

Fun fact: the gamemode's inspiration was the "Mineplex" minigame "Dominate" (Yes, I'm talking about Minecraft...) which was basically a multi-koth, but so was a similar gamemode (kit-pvp with control points) on a little know server "Anvil-MC", a fully vanilla server that was much more than an inspiration for the gamemode and if I don't praise it now I feel like I'll never get to pay homage to them ever again.
Also I miss 1.7.2 soup-pvp and PvP-Dojo and MCPVP... Oh and the one-command-block inventions, what memories...
What game was I playing? Ah right, TF2.

Apparently beam particles are super easy to add in a map, damn I missed out on them.

The B bot_workers have no animations! It's all jiggle physics and they look so silly!
Frustum bots have animations on the other hand but have a bugged spawn...
Oh wow, I just found a github issue mentioning the frustum bot wrong spawn animation props (https://github.com/ValveSoftware/Source-1-Games/issues/6334) and it was written just a week ago.
Props to them and good luck with the community fix!

There also was an update recently that fixed a bug in RD (https://www.teamfortress.com/post.php?id=227323), nice and unexpected, I wonder what happend for the fix to get added.

Oh and let's not forget about the Botler 2000 and the robots in pl_Embargo, never thought that I'd see the robots act as butlers of a casino.

When I saw the decals in the Tropic Crisis asset pack I skipped a beat. The robots! Someone else was working on RD other than me! (I should really see what the community is up to more often...) I couldn't let someone beat me to the punch as the RD reviver!
Selfish thoughts aside, really cool asset pack and the robot sprays were a good motivation to keep working on the project.

I injured myself! Ahah! Nothing too serious but I get to stay home and finally get this project out... It's a shame that this is what it took to get here.
Maybe I shouldn't be trying to make something perfect on an imperfect machine, but I do have fun trying!

Why do I write so much? These ramblings give me a good opportunity to refine my english and writing skills, also I like the "preservation" that comes with mentioning every itty-bitsy detail, kinda like a diary.
So if you are reading this... Sorry that I got you mixed up in my ramblings!.

Making the art for the overview and update page has got to be one of the highlights of the projects: I'm in no way a good artist and I use paint.net without plugins to simply edit screenshots and include .vtf extracted from the game, but I have RIPY on my side and he gives me good tips (He also made the thumbnail, robot stickers, pretty much the whole style of the overview page, and the separators that you can see at the end of the overview page as of when I'm writing this).
RIPY is also the player that appears in many of the screenshots of my downloads and I use him to playtest and assert the quality of what I make.

Wanna know some funny roadblocks?

  • You can pass through sentries but still hit them by setting SetSolidFlags(2), but syringes don't work! (so v0.1.0 had this problem), luckily with the help of RIPY we found out that NetProps.SetPropInt(robot.hitbox, "m_CollisionGroup", 3) does the same but syringes work!
  • Hidden sentries (from the "Hide" input) have a funny quirk, if a spy gets close with the sapper and then switches to a weapon, then the sentry wakes up and will start shooting! Weird, but easily fixed by setting NetProps.SetPropBool(self,`m_bCarried`,true).
  • And of course the best roadblock of all: me wasting time figuring out what particles and sounds to use for certain events.

I haven't mentioned the VScript workflow that I came up! It's great: just one script in which you define a "setup" sub-script and a "on round reset" sub-script; for stuff that depends on the map then you use entities and call hooks defined in their script scopes; and if the hooks are the same across all entities then we use the _get metamethod in the global table (which for some reason is the delegate of every script scope, and it has to be their direct delegate or some errors pop up) to delegate the hooks to the same table.

After the introduction of VScript I was kind of sad: every prefab in "Box Of Features" would soon be outdated; and so as a send-off to "hammer logic" (as I call it) I released the Augmentations prefab, the culmination of everything I had learned while messing with hammer.
But at the same time I was happy: TF2 was getting an update that would put it on par with L4D2? So exciting.
And it didn't let down: it's amazing what you can do by messing with the server itself (NetProps), so the "tinkering" part that I loved of the "hammer logic" was still there!

The Squirrel language is amazing, so simple and elegant, I should use classes more but delegating tables feels so much better for some reason.

Known bugs

- The sapper looping sound gets stuck sometimes, "snd_restart" fixes this. [Fixed: v0.2.1]

- The eureka effect teleports to the wrong place, I'll have to create a trigger around the spawn with VScript instead of using the "player_spawn" event... [Fixed: v0.2.1]

- When the robots get hurt for the first time an harmless VScript error appears saying that an integer was hurt.

- The cores should use a trigger brush to be picked up instead of the "OnCacheInteraction" output that works only when the pickup is on the ground (on rare occasions it also fails to detect a touching player). [Fixed: v0.2.2]


•••

An actual map that uses this gamemode

https://tf2maps.net/downloads/rdalt_fragment.18157/




gib4.png
Decrypted: 100%

separator_red_mirror.png
separator_red.png

separator_blue_mirror.png
separator_blue.png


This page was built by "Box Of Paper" and "RIPY"!
License
Free to use and modify. Credit is appreciated but not required.
Author
Box Of Paper
Downloads
125
Views
773
First release
Last update
Category
VScript

More downloads from Box Of Paper

Latest updates

  1. v0.2.2

    Changes - Improved the cores pickup system (now using a bbox instead of "OnCacheInteraction")
  2. v0.2.1

    v0.2.1 changes - Eureka effect now correctly teleports you to a spawn; - The Sapper's looping sound doesn't get stuck anymore; - Removed a lag spike caused by the powerup-runes' models not beign precached.
  3. v0.2.0

    What's new? Pretty much everything! The code was mostly re-written from scratch and now there's an actual gamemode~ Check out the new overview for everything new! (https://tf2maps.net/downloads/robot-destruction-alternative.17200/)