gametechmods
Robot Arena => Modifications => Topic started by: shedRift on January 21, 2014, 03:23:14 AM
-
I am making an expansion pack for Robot Arena that would incorporate new maps, games and components.
Current logo:
(http://s24.postimg.org/f7qimmfb9/splash.png)
The maps and components will be based around the following game categories:
1: Jump
2: Race
3: Survival
4: Other -> Fight, Bridge/Climb/Obstacle Coop, Save-The-Robot, FLL/FTC/FRC, Sniping...
I will probably go through different arrangements/organizings of those categories, nothing is finalized. I will host competitions in some of the more interesting game modes.
Components are all going to be made strictly for convenience. For instance, I am not having any bulky E-Tek style motors.
What are your thoughts? :idea:
-
How do you plan on including these new game modes? Do you have any experience with python?
Are you able to create or edit .gmf's? Are you able to compile/decompile .gmf's?
-
Here is a race track map and just a regular fight map I have made.
(http://s22.postimg.org/yymf3cj29/screenshot_8.png)
(http://s29.postimg.org/phirs82af/screenshot_9.png)
-
So how does the race work?
-
I have come up with a few different methods, though I have yet to act out and decide on one. I have only run some tests with them. A simple way, for a map like a drag race, I could just have the game add points ~ every 200 milliseconds to the robots, and then immobilize them at the end of the track. Once immobilized they would not be earning points, therefore their time/score would be locked and can be compared to the other robot once it has finished. In the end the two players will compare their scores to see who has the lowest score. It should be pretty easy.
Here is FRC 2014 field and a Jump map. Each distance between platforms increases for each one.
(http://s22.postimg.org/8b0h4btz5/screenshot_10.png)
(http://s28.postimg.org/qvyr6cz9p/screenshot_11.png)
Another Fight map and a Race Track.
(http://s27.postimg.org/lccgk1tvn/screenshot_12.png)
(http://s29.postimg.org/pywxb8d5j/screenshot_13.png)
Here is one in particular that I want to make a competition for. Ignore the textures, they were just some test ones. Robot programming will be based on a sequence of commands. For example: Forward 500ms, Right pi/2, Forward 1000ms... I will make a programmer for people to use to simplify it a bit.
(http://s24.postimg.org/hsrhwefb9/screenshot_14.png)
How I may score it.
(http://s27.postimg.org/nkvoyi7b7/fieldmarkers.png)
-
Wow, nice stuff. You seem to have the hang of modeling in RA2. Looking forward to what's coming next.
-
could you pleas not post in blue? it hurts my eyes using the dark version of gtm
-
I have read some helpful tutorials in addition to going through lots of brutal trial and error.
Another interesting map I am making is one for sumo that takes place on an iceberg. However, wheels don't act as I would expect on low friction surfaces, so maybe make movement only legal to be induced by pistons.
(http://s8.postimg.org/a3rpweqwl/iceberg.png)
Some other ideas: PortalGun/teleportation in a map, map with gravity reversed past a certain z value, capture the flag...
-
Looks promising. I will look forward to see new arenas! :3
-
My favorite robot:
(http://s28.postimg.org/snlai0xhp/screenshot_17.png)
-
This stuff looks sweet. Keep up the good work man. I'd really like to test out some of those arenas.
-
Cool stuff. I really like the jump and race arenas.
The maps and components will be based around the following game categories:
1: Jump
2: Race
3: Survival
4: Other -> Fight, Bridge/Climb/Obstacle Coop, Save-The-Robot, FLL/FTC/FRC, Sniping...
As far as game modes go, I obviously think you should follow an ingame setup similar to mine (posted in the Arena Ideas thread (https://gametechmods.com/forums/index.php?topic=468.msg533651#msg533651)). As it stands, KOTH is the only game mode that doesn't award points for attacking other bots so it is ideal for task-oriented game types (like racing, jousting, and soccer).
I have come up with a few different methods, though I have yet to act out and decide on one. I have only run some tests with them. A simple way, for a map like a drag race, I could just have the game add points ~ every 200 milliseconds to the robots, and then immobilize them at the end of the track. Once immobilized they would not be earning points, therefore their time/score would be locked and can be compared to the other robot once it has finished. In the end the two players will compare their scores to see who has the lowest score. It should be pretty easy.
This works but there is no way of checking the bot scores unless you keep track of it on your own. You'll also run into problems with the immobilization counter if you plan on disabling the bots rather than destroying or eliminating them (obviously, you could disable the timers, drop the bot, or use a force/push but these solutions aren't ideal). I can't recall if Clickbeetle ever said what route he was going to go with his race arenas but here are few things that I've done:
1. Eliminate or destroy the bot when it reaches the finish line and use a hack to declare it the winner after the other bots finish (easier than it sounds).
2. Eliminate or destroy the bot and award it negative points equal to the total time it took to finish (I can't remember if you can have a negative total but if not, just subtract from a large number).
3. Eliminate or destroy the other bots.
Have you thought about how you are going to handle the AI? Once again, I've managed to do it in three ways:
1. Custom AI.py - if done right, the AI would be compatible with all the game modes (simply by checking to see what arena or game type was started).
2. Modifying waypoints from the Arena.py - you can feed the AI new target locations by feeding it modified waypoints (preferably using fuzzy locations, target planes, or a navigation mesh).
3. Injecting code from the Arena.py - you can replace methods within the AI.py at startup to cause all AI.py's to be compatible with the arena (combines nearly all of the benefits of solution 2 with some of the benefits of solution 1).
Edit: 4. Registering target zones - Similar to how in a King of the Hill match the AI goes to the top of the hill, you can register/unregister a zone for each location that you want ALL the AI to navigate to. This doesn't work well with multiple AI and I can't remember offhand if it is possible to unregister a zone (I just remember Mad or Click saying something about this).
Some other ideas: PortalGun/teleportation in a map, map with gravity reversed past a certain z value, capture the flag...
Teleportation is really messy in RA2 (and not recommended). The problem is that there is no builtin command for it so you would need to simulate using the limitted number of commands that RA2 does provide. Here are a few different solutions with drawbacks:
1. You could toss the bot to the other location using the force, push, or gravity commands but the problem is stopping them and allowing for a graceful landing (even with a very fast tick interval, I haven't had any luck exerting an equal and opposite force because none of the commands are linear).
2. You could move the platform that the bot is on using a hinge or prismatic but you wouldn't be able to go very fast. This is especially true with prismatics because a glitch in how they were coded causes bots to be launched when they stop moving. Out of all the solutions, this has the best chances of keeping a bot upright.
3. Similar to solution 2, you could enclose the bot inside of an invisible shell and move the object into position using a hinge or prismatic. The shell would compensate for some loss of control but it greatly complicates things and still wouldn't prevent the bot from being inverted.
-
KOTH, King of the hill. I completely forgot about that/I have never even played it. I will look into the Python code of those maps.
Sorry, I meant to say eliminate, not immobilize. --- plus.eliminatePlayer()
Eliminating other robots sounds like a fine idea, especially in a 1 vs 1 race.
I have experimented with AI a little. I was able to get robots to do some of the things I wanted: driving full speed in a straight line, turning, doing nothing... I keep doing something wrong though since I consistently crash the game on some events, such as in the start of an immobilization counter. It is fairly possible I just have not gotten comfortable with python. I may be messing up the tabs/4spaces.
AI compatible with all game modes does not seem plausible, in that the robots would be highly specialized for each mode.
So there isn't a setLocation command, similar to the getLocation one? Does anyone have a list of all the commands for the game?
Thanks for your input.
-
I have a complete list of commands on my main computer... I'm pretty sure Click released a very old copy of my list somewhere on GTM but I can't seem to find his post (edit: found it (https://gametechmods.com/forums/index.php?topic=6962.msg363873#msg363873))
If you run into any issues, please don't hesitate to post some code or questions. Besides myself, there are still a few modders at GTM that can answer your more difficult questions.
-
Thank you! The list will be extremely helpful. Any idea how all the functions were found? Is that actually all the functions? Just curious.
-
I found most of the commands by partially decompiling the EXE. The ones that I somehow missed were found when I told RA2 to list them all for me using the builtin dir function. I've actually gone back and quadruple-checked all my work and methodology so I can say with the utmost certainly that I found them all. Prior to my work, the RA2 community was only aware of something like 80% of the commands.
-
It actually looks like you have missed some of them. Some random ones.
(http://s11.postimg.org/hi6aoysdf/missed.jpg)
I do not see some of those on the list.
-
Those are functions and variables of plus.Arena (the ones that aren't listed are just function calls). Most of them are listed at the bottom with self as the object instance (instead of plus). In my current version, I listed them all and sorted them out better. Like I said, that is a very old copy.
-
OK. Could I please see the up to date version? Or is your main computer not available?
-
Here is a robot picking up and shooting a cone out its side.
(http://s13.postimg.org/awzryswxj/cone.png)
-
Cool. Can you do this with robots? like a robot picking up another and shooting it out?
-
Yes, I have made a few basic cube robots with no extra components just for the purpose of being thrown around.
Another robot design:
(http://s12.postimg.org/vfymc5pwt/screenshot_22.png]http://s12.postimg.org/vfymc5pwt/screenshot_22.png)
I have found the editor in the game to be really limited, slow, and difficult to use. I want to make something better.
(http://s14.postimg.org/92ddhc8dd/oobld.jpg)
I figured out how to have more than four robots.
(http://s28.postimg.org/pij8wyoyl/screenshot_24.png)
I chose twelve.
-
An out of botlab editor would be great!
EDIT: More than 4 robots??? Awesome!!
-
More than 4 bots... You sir are omnipotent :claping
-
I figured out how to have more than four robots.
(http://s28.postimg.org/pij8wyoyl/screenshot_24.png)
I chose twelve.
WHAT
Are they all controlled independently though?
-
I must say I am curious about the 12 robots. Are they controlled independently or not some kind of bfe crawler which has 4 chassis in 1 robot file ?
How does it work ?
Can you really control 12 different AI's in a match ?
This is a bold claim you are doing... make no mistake it will change RA2 forever if it is true, though. But for now I'm not quite convinced.
-
I must say I am curious about the 12 robots. Are they controlled independently or not some kind of bfe crawler which has 4 chassis in 1 robot file ?
How does it work ?
Can you really control 12 different AI's in a match ?
This is a bold claim you are doing... make no mistake it will change RA2 forever if it is true, though. But for now I'm not quite convinced.
My thoughts exactly. You are showing it but we need more showing and evidence if what you are doing is true.
As in a video for example.
-
I must say I am curious about the 12 robots. Are they controlled independently or not some kind of bfe crawler which has 4 chassis in 1 robot file ?
How does it work ?
Can you really control 12 different AI's in a match ?
This is a bold claim you are doing... make no mistake it will change RA2 forever if it is true, though. But for now I'm not quite convinced.
My thoughts exactly. You are showing it but we need more showing and evidence if what you are doing is true.
Shut up. This is why nothing ever progresses. People like you have to be skeptics about everything and anytime a breakthrough is made, it's deemed a fake automatically, which in turn pisses off the person doing it.
-
I must say I am curious about the 12 robots. Are they controlled independently or not some kind of bfe crawler which has 4 chassis in 1 robot file ?
How does it work ?
Can you really control 12 different AI's in a match ?
This is a bold claim you are doing... make no mistake it will change RA2 forever if it is true, though. But for now I'm not quite convinced.
My thoughts exactly. You are showing it but we need more showing and evidence if what you are doing is true.
Shut up. This is why nothing ever progresses. People like you have to be skeptics about everything and anytime a breakthrough is made, it's deemed a fake automatically, which in turn pisses off the person doing it.
Quoted for truth.
-
Can we has video?
-
This stuff all looks really impressive :)
I have a few questions:
-When eventually this stuff gets released, will it be possible to have the 'more than 4 robots' part separately, for anyone who wants more than 4 robots but not any other custom stuff (e.g. to add onto an existing copy of RA2 without adding anything else)?
-Are you planning to add new AI as well as new components/arenas/editors/gamemodes/everything?
Good job so far, and I look forward to future developments :)
-
The robots are controlled independently. The problem is that I only have ten fingers.
The non-custom components would not work very well. I plan on new everything.
-
I only have ten hands.
Ya mean Fingers? :P
-
Yes! I would not be having any problem with that many hands. Thank you for finding that.
Expect a video on Friday or Saturday. I have a busy week ahead.
-
This is highly impressive. Shame Click isn't around to help with this, but Trov's just as good with this sort of thing.
-
I have found the editor in the game to be really limited, slow, and difficult to use. I want to make something better.
This would be cool.
I figured out how to have more than four robots.
(http://s28.postimg.org/pij8wyoyl/screenshot_24.png)
I chose twelve.
I would be very interested in seeing how you did this. By my understanding, exhib_robots.gib only receives 4 bot cells from the EXE and I'm not aware of any commands for adding more bots to the arena.
The closest that I've come to it is having housebots inside of the arena GMF. Doing it this way, the only way for a human to control one would have been to copy the movement of a real bot or use the camera buttons (both being very ugly workarounds).
If I had to take a guess, you figured out how to use the mysterious DamageCallback commands. If this is the case, would you mind sharing the syntax?
-
The start of a nice jump map.
(http://s11.postimg.org/3mdqbdy8z/screenshot_30.png]http://s11.postimg.org/3mdqbdy8z/screenshot_30.png)
-
See I like this because it's not just a set of ordinary bots, arenas and so forth but instead it's a original idea that can be it's own game.
-
Another map.
(http://s22.postimg.org/5eg0q2j7l/screenshot_31.png)
(http://s22.postimg.org/62ov90hxd/screenshot_32.png)
(http://s9.postimg.org/pdrjg6cj3/screenshot_33.png)
(http://s30.postimg.org/4wrvzum3l/screenshot_34.png)
Another game type: Dogfight/Starfield
This game also needs explosives. I think I know how that can be done.
-
Idea relating to map making: Make arenas in botlab and then have robots 1 and 2 spawn on top of robot 3. Robot 3 being the arena. This should help people that cannot or do not want to figure out how to make arenas.
-
Expect a video on Friday or Saturday.
:)
-
Sorry about that, I need to get Robot Arena running under Wine. I have no clue how to record otherwise.
-
If I can find the installer I could send you free fraps if you want.
-
I must say I'm very impressed by the progress made on this project. Will some of the aspects like the increased bot limit be made available outside of the mod?
-
A simple team battle arena:
(http://s30.postimg.org/w79h99vb5/screenshot_36.png)
(http://s30.postimg.org/bluphddq9/screenshot_37.png)
The four blocks on each side can be moved. There is no disable/dead zone in it. The idea is that once robots finish fighting the robot spawned next to them, the remaining ones may fight in the middle.
-
Great work. I was thinking about a destruction derby with many bots but I lost my programmer. Rats!
Jim
-
What are others' thoughts on survival mode? Just have other robots with hover engines and unbalanced weapons and see how long the player can last? Also I would have different levels of difficulty, but in all levels, it is a high score game and the player has no way of winning.
-
That would be cool.
-
That would be pretty amazing. ;)
-
Anyone know where this guy is?
-
Here.
-
Thank goodness.
-
this is really good stuff
-
Another idea: Climbing robots. Vertical and horizontal spanning monkey bars.
-
Damn, this thread seems cool. BTW, for the climbing robots, it would be fun to see monkey-like robots.
-
This would be more basic:
(http://s29.postimg.org/i6muqae3b/screenshot_40.png)
-
I figured out how to have more than four robots.
(http://s28.postimg.org/pij8wyoyl/screenshot_24.png)
I chose twelve.
I would be very interested in seeing how you did this. By my understanding, exhib_robots.gib only receives 4 bot cells from the EXE and I'm not aware of any commands for adding more bots to the arena.
The closest that I've come to it is having housebots inside of the arena GMF. Doing it this way, the only way for a human to control one would have been to copy the movement of a real bot or use the camera buttons (both being very ugly workarounds).
If I had to take a guess, you figured out how to use the mysterious DamageCallback commands. If this is the case, would you mind sharing the syntax?
^I second this.
-
I answered the question here:
https://gametechmods.com/forums/index.php?topic=15620.0 (https://gametechmods.com/forums/index.php?topic=15620.0)
-
This would be more basic:
(http://s29.postimg.org/i6muqae3b/screenshot_40.png)
The actual Bridge of Doom, because now it actually is doom if you fall in :V
-
A robot:
http://tinypic.com/r/2u7lgdt/8 (http://tinypic.com/r/2u7lgdt/8)
-
Dude, please use youtube.
-
Why do you prefer YouTube?
Here are some additional images:
(http://s2.postimg.org/uilwijcmx/screenshot_44.png)
(http://s2.postimg.org/63dohhdq1/screenshot_46.png)
Climbers and Tarzan robots may be more interesting than fighting monorail robots.
-
+1 for creativity :D Bot conkers anyone.
-
How should I do this?
(http://s4.postimg.org/ti7tsb9e5/screenshot_47.png)
-
This doesn't even seem like RA2 any more. O_O
-
Here is a video of a robot driving around:
https://www.youtube.com/watch?v=k1iurcd56wg (https://www.youtube.com/watch?v=k1iurcd56wg)
From now on I will be posting all updates on a blog page. It will be more convenient for myself.
http://redshiftcreativemode.blogspot.com/ (http://redshiftcreativemode.blogspot.com/)