"Factory wave" map idea

Made a map or mod? Announce it in this forum!

Moderator: Moderators

Post Reply
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

"Factory wave" map idea

Post by Bjarne BZR »

I'm bored. So my sick brain started to cook up a new map idea. I have not started it. I just want to check if it is a good idea.

- A standard square factory floor. Gangways, cranes and high spots in general, making it about 3 stories high. But the basic action is on the lowest floor.
- Rather big game area.
- Simple design that makes the map easy to learn.
- Objective & Respawning ( read more further down ).

An inspirational picture:
Image

The objective: "Battle wave"
Each team starts with a number of respawn areas ( 3-4 each? ). You can take control of these respawn areas ( by triggers or other as of yet unspecified mechanism ), making your team respawn there instead of the enemy. The winner is the team that takes control of all respawn areas ( or all but one? ) or the one that controls the most areas at round end. The status screen is updated to indicate what areas are taken by what team... and maby some "Scouting style" colored lights in the respawn areas to indicate the owning team.

I HATE respawning. However: I have come to realize that this is because of the fact that most respawning maps use respawning badly.

I want the map to work equally good for all weapon types. Maby giving the ledges and cranes to the snipers without giving them the opportunity to "over snipe" the ground level, where closer combat will occurr.

So, is this a good idea? Or has it been done to death already?
Admin .MAP Forums
Image
Head above heels.
SlasherZ
Colonel
Posts: 433
Joined: Fri Jul 11, 2003 12:55 pm
Contact:

Post by SlasherZ »

i like it a lot! i would like to help w/the map :)
User avatar
m0g
Lieutenant Colonel
Posts: 407
Joined: Fri May 23, 2003 10:11 am
Location: Sweden
Contact:

Post by m0g »

Dont you have a life n00bhacker! lol
First Vemork Ferry and now this!? no, seriously nice idea, keep on brainstorming BJ! ;)
SlasherZ
Colonel
Posts: 433
Joined: Fri Jul 11, 2003 12:55 pm
Contact:

Post by SlasherZ »

no. life wastes mapping time :)
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

I'm moving back to my hometown in a week to attend an education in game programming for 2 years, so I cant really map for... say... 2 weeks... so I thought this post would help me develop my idea and test its quality until I'm up and running again.
Admin .MAP Forums
Image
Head above heels.
Slyk
Lieutenant Colonel
Posts: 361
Joined: Sun Jul 14, 2002 12:42 am
Location: Elizabethtown, PA

Post by Slyk »

Bjarne: I've already done this sort of thing...exactly, actually, with 'Gun Assault' /forum/viewtopic.php?t=4012&highlight=gun+assault

I released that months ago. I've got three more in the works. Beta tested a new "Tractor Works" that is totally revised and averages 70 FPS on average machines... and a rework of "Streets of Stalingrad-1" that uses the same methods. Anyway, check out that thread and pm me or post any questions, etc. I did them as 'TOW' maps originally, but have it worked out to do them as 'DM' maps now.
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

I had the feeling that this was not a totally original idea Slyk. But you did ToW maps, didn't you? For Spearhead?

This is to be an AA map... running as objective.
Admin .MAP Forums
Image
Head above heels.
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

Here is the script as it currently looks... some of you nerds dont understand it until its written in code :wink:

Code: Select all

// FACTORY WAVE OBJECTIVE
// BY BJARNE GR?NNEVIK

main:
	level waittill prespawn
	
	exec global/DMprecache.scr
	
	$world farplane 7500
	$world farplane_color (0.675 0.663 0.651)

	level.script = maps/obj/obj_factory_wave.scr
	exec global/ambient.scr obj_team5

	setcvar "g_obj_alliedtext1" "[  ]Front spawn taken"
	setcvar "g_obj_alliedtext2" "[  ]Middle spawn taken"
	setcvar "g_obj_alliedtext3" "[  ]Rear spawn taken"
	setcvar "g_obj_axistext1" "[  ]Front spawn taken"
	setcvar "g_obj_axistext2" "[  ]Middle spawn taken"
	setcvar "g_obj_axistext3" "[  ]Rear spawn taken"
	setcvar "g_scoreboardpic" "obj_factory_wave"

	waitthread spawn_setup

	level waittill spawn

	level.dmrespawning = 1 // 1 or 0
	level.dmroundlimit = 10 // round time limit in minutes
	level.clockside = kills // set to axis, allies, kills, or draw

	level waittill roundstart

	thread axis_win_test
	thread allies_win_test
end

spawn_setup:

	level.allied_spawn_count = 3

	$spawn_allied_front_axis disablespawn
	$spawn_allied_middle_axis disablespawn
	$spawn_allied_back_axis disablespawn
	$spawn_allied_front_allied enablespawn
	$spawn_allied_middle_allied enablespawn
	$spawn_allied_back_allied enablespawn

	$spawn_allied_front_trigger.taken_by_enemy = 0
	$spawn_allied_middle_trigger.taken_by_enemy = 0
	$spawn_allied_back_trigger.taken_by_enemy = 0

	thread allied_back_spawn_check
	thread allied_middle_spawn_check
	thread allied_front_spawn_check
	
	level.axis_spawn_count = 3
	
	$spawn_axis_front_allied disablespawn
	$spawn_axis_middle_allied disablespawn
	$spawn_axis_back_allied disablespawn
	$spawn_axis_front_axis enablespawn
	$spawn_axis_middle_axis enablespawn
	$spawn_axis_back_axis enablespawn
	
	$spawn_axis_front_trigger.taken_by_enemy = 0
	$spawn_axis_middle_trigger.taken_by_enemy = 0
	$spawn_axis_back_trigger.taken_by_enemy = 0
	
	thread axis_back_spawn_check
	thread axis_middle_spawn_check
	thread axis_front_spawn_check
end

axis_win_test:
	while(level.axis_spawn_count < 5) {
		waitframe // protection
	}
	iprintlnbold_noloc "The axis has gained complete control of the factory!"
	teamwin axis
end

allies_win_test:
	while(level.allies_spawn_count < 5) {
		waitframe // protection
	}
	iprintlnbold_noloc "The allies has gained complete control of the factory!"
	teamwin allies
end

allied_back_spawn_check:
	while(1) {
		$spawn_allied_back_trigger waittill trigger
		if(parm.other.dmteam != allies) {
			if($spawn_allied_back_trigger.taken_by_enemy) {
				parm.other iprint "You already control this entrance." 0
				continue
			} else {
				goto allied_back_spawn_change
			}
		} else {
			if($spawn_allied_back_trigger.taken_by_enemy) {
				goto allied_back_spawn_change
			} else {
				parm.other iprint "You already control this entrance." 0
				continue
			}
		}
		waitframe // protection
	}
end

allied_back_spawn_change:
	$spawn_allied_back_trigger playsound convert_spawn

	if($spawn_allied_back_trigger.taken_by_enemy) {
		$spawn_allied_back_trigger.taken_by_enemy = 0
		// Mark this entrance visually somehow?
		$spawn_allied_back_axis disablespawn
		$spawn_allied_back_allied enablespawn
		$spawn_allied_back_switch anim disable // disable is just a guess
		iprintlnbold_noloc "The allies controls their rear entrance again!"
		setcvar "g_obj_axistext3" "[  ]Rear spawn taken"
	} else {
		$spawn_allied_back_trigger.taken_by_enemy = 1
		// Mark this entrance visually somehow?
		$spawn_allied_back_axis enablespawn
		$spawn_allied_back_allied disablespawn
		$spawn_allied_back_switch anim enable // enable is just a guess
		iprintlnbold_noloc "The axis controls the rear allied entrance!"
		setcvar "g_obj_axistext3" "[X]Rear spawn taken"
	}
end

allied_middle_spawn_check:
	// This spawn is not yet linked into the script!
end

allied_front_spawn_check:
	// This spawn is not yet linked into the script!
end
	
axis_back_spawn_check:
	// This spawn is not yet linked into the script!
end

axis_middle_spawn_check:
	// This spawn is not yet linked into the script!
end

axis_front_spawn_check:
	// This spawn is not yet linked into the script!
end
There is no map yet ( havent even started Radiant ), but the script shows how I'm envisioning the objective to work...
Admin .MAP Forums
Image
Head above heels.
Slyk
Lieutenant Colonel
Posts: 361
Joined: Sun Jul 14, 2002 12:42 am
Location: Elizabethtown, PA

Post by Slyk »

Yeah, I originally started making several TOW maps. I took a couple and tried to adapt them to DM play and it just happened to evolve as a new 'unique' map style with dynamic spawning. I have three, four or five spawns per team, depending on map. They see-saw as in a TOW and I tied in a *bonus* to the final switch in line for both teams. That way, since it is a DM map, the round doesn't end when one team captures all five switches, but they do get a bonus, usually a portable MG or accessible mortars, etc. Then the round can continue. I set them up as TOW maps so that all the voice cues would work with the switches. Too lazy at the time and too challenged by audio scripting to input the verbal outtakes at that time...now working that out to make them straight DM.

Anyway, looks like your map will be 'OBJ'. I also used floating 'flags' over each objective in 'Streets of Stalingrad-1' and a similar thing in 'TW2'. I tried using alternating lights, but they were a pain in the *** and really dragged down FPS. There are lots of ways to do the notification thing, but I chose to go 'TOW' so that you heard when an objective was taken, and then you can look at the screen and read which one. BUT>>>>>> In my maps, you need to capture EACH switch IN ORDER. You can't go running around grabbing any one as in most TOW maps. For mine, you are required to "maintain lines of communication to your base...". This forces a real 'flow' to each battle and gives the DM side a whole new feel as you fight to advance your spawning region and pound the other team.
Bjarne BZR
Site Admin
Posts: 3298
Joined: Wed Feb 05, 2003 2:04 pm
Location: Sweden
Contact:

Post by Bjarne BZR »

Thanx Slyk, this is just the type of answers I wanted for this thread. And I get evil new ideas all the time when reading your answers :D

"Maintaing lines of communication to your base" is a good idea if I can isert it in a logical and "easy to understand for the players" way.

And sound is used WAY too little to inform players of the current status...
Admin .MAP Forums
Image
Head above heels.
Slyk
Lieutenant Colonel
Posts: 361
Joined: Sun Jul 14, 2002 12:42 am
Location: Elizabethtown, PA

Post by Slyk »

B: download 'Gun Assault' and check out the script. I have each 'trigger' on each switch set up so that it can only be used when the other appropriate triggers are in an up/down position. It's sort of a wave effect. At most, you have only two switches that are operable at any one time... the others lock you out until the preceeding one in the chain is flipped. >> Of course, if you've only got three switches planned, all of yours would be open all of the time... or only the middle one would be and the 'rear' ones would lock out until one team controlled the middle switch, opening/activating the 'rear' switch of the enemy.

Once you get some stuff cobbled together on the map, I'd be happy to consult on the layout/flow/trigger/switch thing. It takes a good bit of work and tons of testing to get it right. PLUS, you need to be very careful in planning where and how the spawns will interact. You don't want a team spawn to be right on top of a newly captured switch or too close OR too far as it hampers play and balance. Ideally, to me, a progressive spawn map like mine and your concept should force teamwork. It's tough to do. I got lucky with 'GA', although I see a need for a version 3.0 already with new ideas and such. My other two maps have been a challenge also with getting the spawners/switches/flags worked out. Keep me updated, or drop me some PMs if you wish.
Post Reply