Author Topic: Robot Arena - Creative Mode Expansion Pack  (Read 13273 times)

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Robot Arena - Creative Mode Expansion Pack
« 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:


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:
« Last Edit: January 21, 2014, 04:01:19 PM by shedRift »

Offline Mr. AS

  • TheGloriousCarbideArstotzkanIronsideChaosProtocol
  • *
  • Posts: 7558
  • Rep: 19
    • robotarenagtm
  • Awards BOTM Winner
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #1 on: January 21, 2014, 07:12:49 AM »
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?
How you make Alarm Clock Pizza is:
Step 1: You buy an alarm clock from the store, and then you have to break it and put it in the sauce.
Step 2: Fold the sauce in 5 slices and put it in the dough.
Step 3: Paint the eggs with a pitcher of a clock showing what time you want to wake up and eat pizza for breakfast.
Step 4: Put the eggs in the dough.
Step 5: Make it flat into a round shape and draw the time you want on it.
Step 6: Put some old steel to prevent other peple from stealing it.
Step 7: Make it flat and cut into 60 slices 1 for each minute in 1 our.
Step 8: Put in the oven set the timer to 30048813.2884 seconds and put the temperature on 'Volcano' setting.
Step 9: If you think it is take to long, then get yor alarm clock and set it to now so that it will ring and you can take it out.
Step 10: Take it out uv the uvin wen it is redy and go to bed. In the morning eat pizza and also eat yor hands bi mistake.

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #2 on: January 21, 2014, 03:04:22 PM »
Here is a race track map and just a regular fight map I have made.


« Last Edit: January 21, 2014, 04:00:52 PM by shedRift »

Offline Philippa

  • The Queen of GTM
  • Giga Heavyweight
  • Posts: 6186
  • Rep: 0
  • ✊ Viva la Standard! ✊
  • Awards BOTM Winner
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #3 on: January 21, 2014, 03:09:12 PM »
So how does the race work?

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #4 on: January 21, 2014, 03:16:53 PM »
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.


Another Fight map and a Race Track.


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.

How I may score it.
« Last Edit: January 21, 2014, 04:19:24 PM by shedRift »

Offline Badnik96

  • tired of your shit
  • *
  • Posts: 17537
  • Rep: 3
    • Badnik96GTM
  • Awards BOTM Winner
    • View Profile
    • BattleBots Wiki
    • Awards
  • See profile for gamer tags: Yes
  • Skype: Badnik96
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #5 on: January 21, 2014, 03:54:01 PM »
Wow, nice stuff. You seem to have the hang of modeling in RA2. Looking forward to what's coming next.

Offline Thyrus

  • *
  • Posts: 6218
  • Rep: 19
  • Back to purple '17
    • http://www.youtube.com/Th
  • Awards BOTM Winner
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #6 on: January 21, 2014, 03:59:04 PM »
could you pleas not post in blue? it hurts my eyes using the dark version of gtm


Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #7 on: January 21, 2014, 04:02:42 PM »
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.


Some other ideas: PortalGun/teleportation in a map, map with gravity reversed past a certain z value, capture the flag...

Offline Jonzu95

  • Giga Heavyweight
  • Posts: 12636
  • Rep: -27
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #8 on: January 21, 2014, 04:13:45 PM »
Looks promising. I will look forward to see new arenas! :3

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #9 on: January 21, 2014, 05:01:42 PM »
My favorite robot:

Offline MassimoV

  • I Move Weight
  • *
  • Posts: 8929
  • Rep: 24
  • I make rap for people of Serbia
    • MassimoVTV
  • Awards BOTM Winner
    • View Profile
    • Mourning Glory
    • Awards
  • See profile for gamer tags: Yes
  • Skype: myhandsarefood
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #10 on: January 21, 2014, 05:52:01 PM »
This stuff looks sweet. Keep up the good work man. I'd really like to test out some of those arenas.

Offline Trovaner

  • *
  • Posts: 1222
  • Rep: 32
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #11 on: January 21, 2014, 09:11:51 PM »
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). 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.

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #12 on: January 21, 2014, 09:31:25 PM »
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.
« Last Edit: January 21, 2014, 10:03:03 PM by shedRift »

Offline Trovaner

  • *
  • Posts: 1222
  • Rep: 32
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #13 on: January 21, 2014, 10:21:36 PM »
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)

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.

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #14 on: January 21, 2014, 10:41:41 PM »
Thank you!  The list will be extremely helpful.  Any idea how all the functions were found?  Is that actually all the functions?  Just curious.

Offline Trovaner

  • *
  • Posts: 1222
  • Rep: 32
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #15 on: January 21, 2014, 11:27:57 PM »
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.

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #16 on: January 22, 2014, 02:04:55 AM »
It actually looks like you have missed some of them.  Some random ones.

I do not see some of those on the list.

Offline Trovaner

  • *
  • Posts: 1222
  • Rep: 32
    • View Profile
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #17 on: January 22, 2014, 08:05:38 AM »
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.

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #18 on: January 22, 2014, 03:11:11 PM »
OK.  Could I please see the up to date version?  Or is your main computer not available?
« Last Edit: January 22, 2014, 03:54:08 PM by shedRift »

Offline shedRift

  • Antweight
  • Posts: 122
  • Rep: 7
    • View Profile
    • Robot Arena - Creative Mode Expansion Pack
    • Awards
Re: Robot Arena - Creative Mode Expansion Pack
« Reply #19 on: January 25, 2014, 03:45:47 PM »
Here is a robot picking up and shooting a cone out its side.