Page 1 of 1

SteamRoller Race (Obstacle Course)

Posted: Thu Aug 05, 2010 1:02 am
by optic delusion
Many Thanks Blast007 and Murielle, who were kind enough to write this plugin for me.

This was a back-burner project for a long time, I knew there was a better way to do obstacle courses, but could not figure out what it was.
The problem with obstacle course maps is they are long, drawn out processes, and players become spread out over the entire map (like NoRang's Olympic's). If a player joined late, or got killed, they had to go waaaaay back to the beginning. It's not much fun racing against someone who is five minutes ahead of you. Then there's the whole HoldTheFLag HTF plugin mess. The SavePosition plugin is an advancement, but not a full solution. Let's just say that gameplay on obstacle course maps was less than ideal.
I wanted to keep all players on a small section of obstacles, and when that section is completed, all players move to another section of map. This would make each section of obstacles more of a race against players, and less of a struggle against static objects. I thought of better ways to use HTF, I thought of using teamflags, then the answer came to me - Steamroller Races.

Here is the basic concept.
1. All players spawn at the same point,
2. They race over obstacles to reach a steamroller flag, and somebody "wins".
3. _srRadiusMult is set to a ridiculously high value, so everybody who did not reach the flag is crushed.
4. The plugin now kills the winner too.
5. All players now spawn at a new point, and the process starts over.
6. Simple, huh?
I have a plugin test server operating at a-delusion.no-ip.biz :5154. Check it out, there is just enough map for you to see how the plugin works.

In order to do this, the plugin needs two special objects per obstacle section. A custom spawnzone, and a standard zoneflag zone for the SR. Each section of obstacles can be ANYTHING, as long as it has these two things. This setup has the added benefit of making it extremely easy to add new obstacle sections to an existing map.

Code: Select all

spawnzone
	id 1    #Identifier
	position -75 -75 0
	size 0 0
	spawnazimuth 359  #tank spawns facing in this direction
	set _tankSpeed 26  #set variables are auto-reset at the end of obstacle section
        NOKILL #shots are phantom-zoned, and cannot kill.
end
zone
	position -75 75 0
	size 0 0 
	zoneflag SR 1
end

Right away you'll notice some interesting things in the spawnzone. It is a custom object, and it's special functions are only accessible while the plugin is loaded
1. ID number - this tells the plugin what order to present map sections. Lower numbers are played first.
2. SpawnAzimuth - Forces tanks to spawn facing in a certain direction.
3. NOKILL - All shot-types are changed to Phantom-Zoned-Shots. They cannot kill non-zoned tanks.
4. -set - YES, Each section of obstacles can have IT'S OWN SET OF VARIABLES! These are sent into a stack, and automatically reset when the SR flag is captured, so a variable set in one section, does not spread to the next.

So there you have it. All players stay on the same section. Each section has it's own settings (including kill or nokill). Extremely easy to add new sections. New sections can be whatever the mapper desires, with almost zero restrictions.
Perfect for a collaboration project.

Collaboration

Posted: Thu Aug 05, 2010 1:35 am
by optic delusion
I have high hopes for this project. I think it turns obstacle courses from a long drawn-out struggle, into a fast-paced race. It works well, and is fun. It's super-easy to add new map sections, and no restrictions on what those sections can be. I'm hoping that more than a couple mappers would like to contribute.

If you would like to contribute a section or three.....
You will need those two zones. You can't test the custom zone attributes without the plugin, and I haven't released it yet, but you can test individual sections with a regular spawnzone.
I am using a worldsize of 1600, which is pretty large, and right now I have room on the floor, but more than likely your section will be up in the air. This means your section will need a solid floor. Players should not be able to get out of the section, so wall it in.
You can use almost any variables you'd like. Some variables, like tankWidth, should be avoided.
KILL or NOKILL, that is a question you will answer.
Spawnzone ID Number.... I will decide this when i fit your section into the larger map.
If it is at all possible, your entire map should be one large group, this makes it a lot easier for me to fit it in with the rest.

So each section starts at a spawnzone and ends at a SR flag zone, the rest is up to you. You can make a big war-and-peace novel, or whip something together in a few minutes.

--------- Thanks again To Blast and Murielle for writing the plugin! -------------

Re: SteamRoller Race (Obstacle Course)

Posted: Thu Aug 05, 2010 2:00 am
by Spazzy McGee
I've already made two courses, and i'm working on some others. I can see this being really great project. The cool thing about this setup is the versatility it offers. Different settings per section, it's like a million different games in one map. And they're fun, and quick to make too.

Really great start, I hope to see a whole load of innovative sections being made.

floors

Posted: Sat Aug 07, 2010 1:50 pm
by optic delusion
You can't just use a single plane as your floor, as collision detection is slow with large planes. It is faster to divide your floor up into smaller boxes. As many obstacle courses will need a floor, spaz made a little script that creates triangulated floor planes, rounded to 10 BZ units.
Here are a few sample floors, if you'd like to use them. Or Just ask, and i'll make a floor of any size you'd like.

Invisible Material

Posted: Sat Aug 07, 2010 4:11 pm
by optic delusion
Another possible problem is material duplication. It seems a lot of maps will have an invisible material.
These are two that I use, I *think* they are the fastest possible invisible materials. One shows on radar, the other is stealth.
Please use these material names in your objects, if you use an invisible material.

Code: Select all


material
name invisible_noradar
diffuse 0 0 0 0
noculling
noradar
noshadow
nosorting
nolighting
groupalpha
end

material
name invisible
diffuse 0 0 0 0
noculling
#noradar
noshadow
nosorting
nolighting
groupalpha
end




source released

Posted: Sat Aug 14, 2010 2:39 am
by optic delusion
I'm still planning on one or two changes, but the plugin source is now released.
http://my.bzflag.org/bb/viewtopic.php?f ... 03#p149803

Re: SteamRoller Race (Obstacle Course)

Posted: Sun Aug 15, 2010 11:35 am
by Yrogirg
This is my contribution. It has no floor, it requires 100x800 floor. All map is in one group (YroGroup), except 1 material, 1 physics and 2 zones. Hope it will work as designed.

Re: SteamRoller Race (Obstacle Course)

Posted: Tue Aug 17, 2010 3:07 am
by optic delusion
That's pretty good, Yrogirg. Pretty challenging, but not impossible...Interesting concept... just about the right size.... I like it a lot and so do other players. Do another section please!
Since i have the room, i put your map on the floor. The only problem was the spawnzone coordinates. You can test your map with a regular spawnzone, just leave that zone in, and i will add the special zone properties.

Re: SteamRoller Race (Obstacle Course)

Posted: Wed Aug 18, 2010 6:47 pm
by The Black Kitten
It is a good card but difficult for beginners.

Re: SteamRoller Race (Obstacle Course)

Posted: Wed Aug 25, 2010 11:23 pm
by McYukon
My contributions to the SR Race project. I may do more if I have any good ideas.

Mini Maze.
MiniMaze-McYukon.bzw
MiniMaze.bzw
(46.54 KiB) Downloaded 130 times
Great Climbing Wall. There are 2 confirmed ways up to the top, there may be more.
GreatClimbingWall-McYukon.bzw
GreatClimbingWall.bzw
(7.54 KiB) Downloaded 143 times

Re: SteamRoller Race (Obstacle Course)

Posted: Thu Aug 26, 2010 2:20 am
by optic delusion
Things are really picking up... sigonasr sent me some mazes too... I'm trying to add some text functions to the plugin, and it not kills anybody who pauses, because if they are paused while a section is won, they get left behind....

Just had this idea.... Your on a box, and you drive off, you fall a little, and there's a hole in the wall you have to fall into.

Or maybe this one... the 80's arcade game "Q-bert" h.. i think that it's playfeild could make a nice course... http://www.youtube.com/watch?v=V8OBnpnIQ8w tanks could start at the top or bottom...

Re: SteamRoller Race (Obstacle Course)

Posted: Sun Aug 29, 2010 1:40 pm
by Yrogirg
rather small and simple obstacle. The key is to get to SR through OO field. If you won't drop OO you'll die.

BTW I wonder weather someone made SkyRoads clone for bzflag.

Re: SteamRoller Race (Obstacle Course)

Posted: Sun Dec 05, 2010 2:20 am
by catking00
when will it be back up?

Re: SteamRoller Race (Obstacle Course)

Posted: Thu Dec 09, 2010 4:02 pm
by Tankboy84
That's a very creative solution to the problem, dude. I've played maybe two courses since I started playing this game. That was many, many years ago, but I always hated them. I don't like races in general, and the reasons you outlined made it worse on BZFlag. But your idea of everyone spawning at new places could make it more fun.

Re: SteamRoller Race (Obstacle Course)

Posted: Fri Dec 10, 2010 12:34 am
by optic delusion
Yeah, I gotta put this server back up. Soon.
I'm gonna add the velociraptor.