Help with resolving conflicting requirements

Post your questions, suggestions and experiences regarding game design, integration of external libraries here. For irrEdit, irrXML and irrKlang, see the
ambiera forums
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Help with resolving conflicting requirements

Post by rogerborg »

I have two conflicting requirements that I'd like to satisfy in Brace For Impact, a game in which (in brief) starships engage in tactical combat in order to capture strategic territory.

The two requirements:
  1. On joining the game, or after being destroyed, a player must be able to enter a tactical combat within 60 seconds.
  2. Upon being destroyed, a player must not be able to re-enter the same tactical combat, with a fresh and fully functional starship, in less than 180 seconds.
See the problem? Note that I have been careful to avoid specifying any form of design or solution in these requirements. Nothing about what form a "tactical combat" takes, either spatially or temporally, and nothing about the possible ways to limit a starship entering the "same" tactical combat. Those design options are still wide open.

So, can anyone come up with a design that allows both of those requirements to be satisfied simultaneously? Karma and a design credit (ha!) to the best answer, and thanks just for taking the time to read this far.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

I dunno, how about using the position on the map for respawn?

x [0..10]
y [0..10]

if player y < 3 then player y must be > 5
if player y > 7 then player y must be < 5
if player y >= 3 && <5 then player y must be > 7
if player y <= 7 && >5 then player y must be < 3
if player y == 5 then player y must be < 3 || > 7

same for x.

List all "tactical combat", randomize them, find one fitting the bill iteratively or otherwise, make player appear within t tolerance of the combat or find a friendly spot with same conditions.
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

Thanks, that's a handy first cut. If you don't mind, I'll think out loud about it and see what shakes out.

In general, you're suggesting physically separating the player from the last combat by a minimum amount. That would be fine, and would satisfy both requirements, if there is a combat close enough to the entry point.

However, a random placement / long transit times would reduce the strategic options; players would likely end up fighting in the nearest combat rather than choosing one where they could be most effective. It would necessarily preclude them from taking part in any combats further away than the point of defeat, and would entail long transit times to combats just short of that point, which could be frustrating.

Allowing the player to select an entry point, with the restriction that it can't be closer than 180 seconds transit time to the point of defeat would be the first refinement.

All of the above assumes that the play area is contiguous, which isn't necessarily the case.

Still, by far and away the best suggestion yet. ;) Thanks for your time.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
wyrmmage
Posts: 204
Joined: Sun Mar 16, 2008 3:12 am
Contact:

Post by wyrmmage »

you might want to check out how Continuum does it. (I recommend checking it out anyway, since it's very similiar to what your game is like, and you might be able to learn something from it).
Basically they have set spots that people can regenerate at and then they randomly spawn a play at one of those points when they die. This ensures that there are normally battles somewhere close to the spawn point if there are enough people on the servers.

-wyrmmage
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

I got a follow up idea. It requires a map of the in-game to be shown while dead though, dunno how that fits with your plan.

Basically, on death, the map shows all the respawn points with a circular zone hashed out corresponding to the last fight he took part in. Then, as time goes by, the circle shrinks. This way, he can choose strategically but all your requirements are also reached.
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

wyrmmage wrote:you might want to check out how Continuum does it.
Oh, that's what they're calling SubSpace these days? ;)

Thanks for the reference. It's a little faster paced than the feel that I'm going for, but the principle is basically sound.

Dorth wrote:I got a follow up idea. It requires a map of the in-game to be shown while dead though, dunno how that fits with your plan.
The plan is what falls out of the requirements, and there's no requirement prohibiting that.
Dorth wrote:Basically, on death, the map shows all the respawn points with a circular zone hashed out corresponding to the last fight he took part in. Then, as time goes by, the circle shrinks. This way, he can choose strategically but all your requirements are also reached.
Liking it. To be honest, I had a preconceived notion of using discretely zoned combat areas (i.e. star systems), and simply preventing the respawning player from re-entering the system in which they were destroyed, but I'm coming round to the thought that might be unnecessary.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
wyrmmage
Posts: 204
Joined: Sun Mar 16, 2008 3:12 am
Contact:

Post by wyrmmage »

rogerborg wrote: Oh, that's what they're calling SubSpace these days? ;)
hehe, ya; I started playing shortly after it was "reformed" into Continuum because there were apparently too many hackers?

I must say that I rather like Dorth's idea, as it certainly provides the player with a lot of freedom :)

-wyrmmage
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

The other broad suggestion that I've received elsewhere is to have all ships launch in a 'damaged' state. Note that the prohibition is on a "a fresh and fully functional starship".

I'd dismissed it on the grounds of it being annoying to respawning players, but on the other hand it has a certain justice to it. Why should destroying a ship _here_ result in it simply re-appearing in a fully repaired state _there_?

I might ponder on that one a bit more.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

You could combine both. The longer the player wait to respawn, the more he is healed (you can even give a X2 bonus to it or something. As allowing it for ships that can't repair themselves normally.)

Also, you can do the circle idea with a gradient. The closer to the fight he respawn, the more damaged he is. As the circle shrinks, the closer he can come in good shape. You can even have a restricted zone (100% damage) or zones around other fights but with smaller circles.

It,s not as if the possibilities were lacking ;)
switch_case
Posts: 34
Joined: Sat Mar 08, 2008 12:46 pm
Location: Germany, FFM
Contact:

Post by switch_case »

you could also create "combat zones", wich is an invisible circle or cube or whatever, wich becomes hotter and hotter, if a battle is going on in it. if nobody is in there, the zone cools down. if some shoots or moves around, it heats up. every zone has one spawnpoint (or several? mhh...your choise, but first read on.)
if you part your field in several zones, you could spawn the player always next or far away from a battle, depending on whos winning or wich team has the better chances to win (all over health etc), and depending if you want the game to become faster or slower (spawning them kilometres away from the others or almost side-to-side)...
you could make a struct for each zone, wich constains
-shots fired in a time,
-count of ships in it,
-a value wich desribes the "heat",
-overall health of ships,
-ammunition of all ships in it,
-if its empty (cooling down),
-maybe the zones next to it, so you know, if its possible if an battle can come to this zone in the next time,
-and maybe a "zone" ranking ( i think you wrote that you wanted to do a ranking system...), wich shows how good the players in it are by ranks. would be good for keeping unexpierienced players out of "dangerous" wars with veterans.

this has positive effects, you can spawn players in warless areas(or not :D), you could create a "homezone" or "healingzones" where enemys are damaged by base-turrets or whatever, and people can respawn or heal without being bothered by enemys, if they dont want to respawn on the biggest war-field...

i think the negative side is to get the right size for the parts, and it would be a "bit" more work i think.

i'm very interested what you think, i spent all night thinking this over :D
if life could only be written in C++...
so much features, money++, remove_childs(), choose parents, life = new life, and no more <IDIOT> templates !
if you're looking for an nerdy coding language: http://lolcode.com/
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

That's very interesting, thanks for taking the time to describe it.

First off, BFI won't be a "Massive" game, so lingering "zone rankings" probably won't work. But I like the idea of zones, and "heat".

If I understand it right, an effect of your suggestion would be that many ships could enter a zone while it's cool, but once combat starts, it would (increasingly) become locked to new ships entering?
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
switch_case
Posts: 34
Joined: Sat Mar 08, 2008 12:46 pm
Location: Germany, FFM
Contact:

Post by switch_case »

no i don't mean locked ( just if you want it to be ^^ ), but what i meant was that the spawn points move away from this "sector" or zone or whatever you may call it... so you can heat or cool down a battle, because players need longer time to come to important fighting areas...
if life could only be written in C++...
so much features, money++, remove_childs(), choose parents, life = new life, and no more <IDIOT> templates !
if you're looking for an nerdy coding language: http://lolcode.com/
Dorth
Posts: 931
Joined: Sat May 26, 2007 11:03 pm

Post by Dorth »

that's... my idea, just in square instead of circles...
radiant
Posts: 112
Joined: Fri Feb 22, 2008 8:04 pm
Location: Mexico

Post by radiant »

how about this...the combat zones was already sugested but... if you wrap these zones with a. portal... that upon coliding with it... it checks if you can actually enter that zone...(u didnt die in there or its been longer that 180 secs) if u are allowed... u enter the zone... if u dont... u get warped to the other end of the zone.

this way the zones could be as close as u like... just the players cant go in the same battle thay died in untill some time has passed...

One other thing u can do is...(dun know i havent downloaded the demo since my work network is soooo crapy) when ever a player enters a battle zone... he changes team to the weakest team in that zone...altou... this could be not precisely what the player wants... since he might want to help his pals.... for this u could allow the player to choose teams.... but the time restriction would increase or decrease depending on wich team is winning.... and to avoid ppl choosing the oposite team u could either disable friendly fire or put penalisations for betrayal

That plus the time rule should keep the battles interesting enough

Hope it helps
rogerborg
Admin
Posts: 3590
Joined: Mon Oct 09, 2006 9:36 am
Location: Scotland - gonnae no slag aff mah Engleesh
Contact:

Post by rogerborg »

Dorth wrote:that's... my idea, just in square instead of circles...
Imitation is the sincerest form of flattery. ;)

radiant wrote:how about this...the combat zones was already sugested but... if you wrap these zones with a. portal... that upon coliding with it... it checks if you can actually enter that zone...(u didnt die in there or its been longer that 180 secs) if u are allowed... u enter the zone... if u dont... u get warped to the other end of the zone.
The general effect of that is that tactical combat zones would have no real physical size, so transit between them could be completely abstracted. In other words, just click on an available combat to enter it.
radiant wrote:when ever a player enters a battle zone... he changes team to the weakest team in that zone
Heh, that's the Netrek idiom. No, BFI will be fleet based. I'll inject robot ships as necessary to maintain balance and intensity.

Thanks again for the thought provoking responses.
Please upload candidate patches to the tracker.
Need help now? IRC to #irrlicht on irc.freenode.net
How To Ask Questions The Smart Way
Post Reply