GoldenEye: Source Forums

Editing and Customization => Community Content => Topic started by: Yeyinde on June 30, 2010, 07:32:24 pm

Title: Yeyinde's WIP Gamemodes
Post by: Yeyinde on June 30, 2010, 07:32:24 pm
First off, I'd like to thank all of the developers for making on this great mod, and I'd also like to thank JcFerggy for showing me the mod a few months back.
Now with that done, I really like this game and it's support for the creation of custom game modes.  So, I'm taking some time to learn Python (which isn't hard considering I'm already fairly proficient in Ruby) so I can make a few of my own game modes for others to have fun in.  This topic is for listing my WIPs of game modes and for taking suggestions of possible improvements to them.  Fire away with your criticism cannons, because that's the best way to improve on things.

Assassination

Gameplay
This game mode involves searching for your hit/target and trying to kill him with minimal damage to everyone else.  Upon spawning, you receive a random person who you must kill to earn a point.  Killing anyone else will cause you to loose a point with one exception: If the person who you kill has you as their hit/target, you gain two points.  Use silenced weapons or slappers/knifes to earn a point bonus.  Attempting to break the flow of gameplay will result in 15 seconds of not being able to deal damage, so play correctly!

Download
Assassination (http://dl.dropbox.com/u/337225/Goldeneye%20Source/Assassination.zip)  (Last updated August 3, 2010)


Klobbering Time

Gameplay
This one started as a joke I heard when playing on a server a few days back.  Somebody suggested a game mode that would only earn you points for killing with the Klobb.  As such, here is a game mode that spawns you with a Klobb and 400 spare rounds to try and earn points with.

What I can see myself doing with this game mode in the future is turning it into you only gain points with one of the weapons in the weapon set.  This special weapon would be selected randomly after interval of about 30-60 seconds, to  keep the players on their toes.  I could even add a cvar which makes the game also select a weapon which reduces your score when you kill with it.  Now to make this change possible, I'll need to figure out a way to read the available weapons in the weaponset, plus slappers/knife.

Download
Klobbering Time (http://dl.dropbox.com/u/337225/Goldeneye%20Source/KlobberingTime.zip)


Any questions, comments, suggestions, or criticisms? Anything is appreciated.
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on June 30, 2010, 08:02:55 pm
first off, AWESOME!

Secondly,

the radar is meant to be all or nothing. You cannot display special radar tokens to individual players. This is an internal limitation and cannot be circumvented with Python and is by design really. The only thing I can think of is to assign each player a different color blip on the radar and tell each player the blip color that they have to assassinate. Not ideal, but it would work.
Title: Re: Yeyinde's WIP Gamemodes
Post by: EMH Mark I on June 30, 2010, 09:39:25 pm
Kool stuff, I dig your initiative.  I love these custom game modes because they add new flavor to GES, and help pique players' interest in GES again that have been playing for a long while. 

We can definitely test these out on one of the OWS servers Yeyinde.  We even got Entropy-Soldier's Turbo Mode and Hold The Briefcase game modes on rotation there which have been a joy to play so far.  :)
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 01, 2010, 12:55:11 am
first off, AWESOME!

Secondly,

the radar is meant to be all or nothing. You cannot display special radar tokens to individual players. This is an internal limitation and cannot be circumvented with Python and is by design really. The only thing I can think of is to assign each player a different color blip on the radar and tell each player the blip color that they have to assassinate. Not ideal, but it would work.
I'm not sure if I should curse the limitations, or cheer them on for getting the thinkers to think on creative ways to work around them.  The main thing I can see wrong about individual colours would be defining 32 of them, with the chance of them blending into the radar, or the colourblind confusing the wrong one.  Although individual tokens per player could add to some interesting additions to gameplay, like colouring the person who had dominated you red so who know who to avoid (Or sneak up with behind them with the Goldengun).


Kool stuff, I dig your initiative.  I love these custom game modes because they add new flavor to GES, and help pique players' interest in GES again that have been playing for a long while. 

We can definitely test these out on one of the OWS servers Yeyinde.  We even got Entropy-Soldier's Turbo Mode and Hold The Briefcase game modes on rotation there which have been a joy to play so far.  :)
Thank you, and thank you for considering putting the game modes on your servers.  The biggest problem with making your own game mode by yourself is the lack of proper testing that you can do.  Hopefully 4.1's bots can help a bit with that once it's out.

Thank you both for giving these a look.  I appreciate it. :)
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on July 01, 2010, 01:57:58 am
Hopefully 4.1's bots can help a bit with that once it's out.

Who said 4.1 is getting bots? LOL, certainly not me!


As for the radar, adding the ability for a per-player radar color/icon is definitely possible, however you now take on the burden, as a scenario writer, to ensuring that the radar is in sync with the gameplay. That, my friend, is not worth the hassle in my opinion for this limited use. There is a whole lot of checks and balances going on behind the scenes that make the python code so easy to write. We went to extreme lengths to ensure that the python code directly relates to actions within the game and not the implementation of the actions. Implementation is C++'s job.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 01, 2010, 03:50:03 am
Who said 4.1 is getting bots? LOL, certainly not me!


As for the radar, adding the ability for a per-player radar color/icon is definitely possible, however you now take on the burden, as a scenario writer, to ensuring that the radar is in sync with the gameplay. That, my friend, is not worth the hassle in my opinion for this limited use. There is a whole lot of checks and balances going on behind the scenes that make the python code so easy to write. We went to extreme lengths to ensure that the python code directly relates to actions within the game and not the implementation of the actions. Implementation is C++'s job.

My bad, I got the wrong idea in my head when saw the WIP screens in one of the blogs.

As for the per-player radar icons, I can live without them for quite a while.  I understand how difficult it can be to get two completely different languages working nicely with each other, with the different memory management schemes and namespace differences, and whatnot.  No sense working one's ass off for something that will have little use, right?

And now for something different, yet still related: Is there a Python function available to get a list of all the current round's weapons?
Title: Re: Yeyinde's WIP Gamemodes
Post by: kraid on July 01, 2010, 09:50:53 am
The first game mode kinda reminds me on The Ship.
If there were more characters, you could simply display a message to each client individually. Something like: assassinate ourumov
Maybe even more difficult, if you wanna get an extra point you'll have to use a certain weapon for it.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Jeron [SharpSh00tah] on July 01, 2010, 02:54:30 pm
Yea, maybe (if it is possible) to have only one player as, say, ourumov. And you need to assassinate him. Also, the ourumov skin would rotate throughout the players; think the CS 1.6 game mode where the player needs to escape with the CT's, and the escapee alternates each round.
Title: Re: Yeyinde's WIP Gamemodes
Post by: PPK on July 01, 2010, 06:45:34 pm
Those modes look really nice. I like both ideas. Check your Steam invites, if you may :). I have a few things to say in behalf of WN.

They could make themed assassination missions for different maps. Say, for Cradle, it would be Trevelyan (or Bond, depending on the team), etc.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 02, 2010, 06:11:50 pm
The first game mode kinda reminds me on The Ship.
If there were more characters, you could simply display a message to each client individually. Something like: assassinate ourumov
Maybe even more difficult, if you wanna get an extra point you'll have to use a certain weapon for it.
When more characters are added, I'll think about adding that to the game mode.  I'll also think about adding a point multiplier for using a silenced weapon or melee weapon to go with the assassination theme.

Yea, maybe (if it is possible) to have only one player as, say, ourumov. And you need to assassinate him. Also, the ourumov skin would rotate throughout the players; think the CS 1.6 game mode where the player needs to escape with the CT's, and the escapee alternates each round.
It is possible to force a skin on somebody and only allow him to use it (look at the LALD game mode for that), but that isn't what I'm going for in this mode.  Assassination is a free-for-all type scenario, so everyone has a different target to kill.  Forcing everyone to go after a single person just wouldn't be as fun, I think.

Those modes look really nice. I like both ideas. Check your Steam invites, if you may :). I have a few things to say in behalf of WN.

They could make themed assassination missions for different maps. Say, for Cradle, it would be Trevelyan (or Bond, depending on the team), etc.
Thank you for the invite.  As for themed/team assassination, this mode is meant for a free-for-all play so that probably won't work all to well.  But I appreciate the though and idea. :)

Anyhow, last night the game modes had their first proper test on an OWS server.  Both games ran fairly well, with just few bugs to work out in Assassination.  Klobbering Time was quite a success, judging from from the players' responses to it.

Things that needed to be worked out of Assassination are: Spectators being selected as targets, HUD messages being in the corner, and the radar not wanting to work at all(Though this might have been a server-side thing).  I've got these issues fixed for the new testing release, and I've added something else: If at any time your target dies, be it a suicide or from another player, a new target will be chosen for you.  This should add some more flow to the game, and make it a bit more fun.

The new Assassination version can be downloaded HERE (http://dl.dropbox.com/u/337225/Goldeneye%20Source/Assassination.zip), or on the first post.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 08, 2010, 06:39:50 pm
Alright, it's time for an update on the Assassination game mode!  I've been doing some playing around, and I think I've found a nice work around the radar issue.  I'll let this image summarize it up:
(http://i548.photobucket.com/albums/ii346/yeyindetheyautja/assassination_1.jpg) (http://i548.photobucket.com/albums/ii346/yeyindetheyautja/assassination_1.jpg)
(Click on the image for the full resolution)

As you can see, the target string now shows what character they are and their distance from you in metres.  Other changes include the introduction of the ass_silencedbonus and ass_meleebonus cvars, which multiply the points you can gain (or lose!) with silenced or slapper/knife kills.  They are defaulted to 2 and 3, respectfully.

There are still a few bugs to work out, like properly selecting a new target if the one you have suddenly disconnects.  A little hard to get that working when all you have for testing is your brother's computer while he's out working, however.  I'd appreciate any help on getting these last few things fixed up.
Title: Re: Yeyinde's WIP Gamemodes
Post by: PPK on July 08, 2010, 09:35:24 pm
I like how that is turning out. I'd lend you a hand but I'm swamped with Uni work at the moment. If I'm available to help, I'll let you know. I also like the prefixes you chose.
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on July 08, 2010, 10:01:41 pm
be careful with network bandwidth. Sending messages to 32 players every think cycle will bring the server to its knees...

If you haven't already, I suggest adding a timeout to do distance updates every 200 ms or slower.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 09, 2010, 02:59:24 am
I like how that is turning out. I'd lend you a hand but I'm swamped with Uni work at the moment. If I'm available to help, I'm let you know. I also like the prefixes you chose.
Thank you!  Any help is appreciated, even if it's not right at the moment. :)  And the `ass' prefix just seemed logical at the time, so it stuck.

be careful with network bandwidth. Sending messages to 32 players every think cycle will bring the server to its knees...

If you haven't already, I suggest adding a timeout to do distance updates every 200 ms or slower.
Hmm, yes.  That is quite a true fact to bring up.  The available zip'ed code just updates the hud text if the distance between the two changes, however I'll be adding that timeout check to call the updating function to the next release to help ease up on the bandwidth a bit more.
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on July 09, 2010, 03:46:58 am
well the optimal solution would be to combine timeouts with rolling updates and change checks. Basically you batch update the players. Players 1-5 go in the first 50 ms, players 6-10 in the next 100ms, players 11-15 in the next 150ms, etc. etc.

That would spread the network load out evenly if you were sending multiple messages and update progress bars and doing radar changes. Since you are just doing a message update a simple timeout "burst" update will work fine. The backend to the GEUtil.HudMessage function is rather optimized already.
Title: Re: Yeyinde's WIP Gamemodes
Post by: CCsaint10 on July 10, 2010, 08:07:23 am
Thank you so much for doing this. The testers and developers really appreciate your work. You bring the spark and inspiration back to GE:S. Now to get surface out when these new gamemodes are in. I know, I know, it is almost done.. :D
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on July 11, 2010, 06:19:12 pm
Yeyinde I had a chance to play your gamemode this morning and I must say it is pretty top notch! Here are some comments and suggestions that I compiled from the people playing (including myself):

1. Reset player's scores on round start. If you don't do that then the match score gets compounded.

2. Give feedback to a killed player on who killed them (assassin or non-assassin)

3. Show the distance in whole numbers or at most 1 significant digit (ties into the update rate from previous).

4. Show whether the target is above or below you next to the distance. If on same level, show only the distance. We assume a floor height of 128 units.

5. Players who are not following the gameplay (ie. attacking any player they want to) will spoil the entire game. Simply put, if you retaliate on someone spoiling the gameplay YOU ARE PUNISHED. There has to be some mechanism that detects players who are constantly attacking non-targets and either punt them to spectator, remove their ability to inflict damage, or send them a nasty gram as a big red message on their screen. People who retaliate to being attacked (by anyone) should not be punished either. This will require the gameplay to store a dynamic list of "recent attacks" to cross reference a death to a recent attack.

6. Kills to non-targets with the knife cause extreme point loss. Point loss should not incur the bonuses that legit kills have.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 12, 2010, 01:55:28 am
Thank you so much for doing this. The testers and developers really appreciate your work. You bring the spark and inspiration back to GE:S. Now to get surface out when these new gamemodes are in. I know, I know, it is almost done.. :D
Thank you, and no problem!  I really love how the devs left game mode scripting open instead of hard-coding them into the mod itself.  Without that, things like this just would not be possible. :)

Yeyinde I had a chance to play your gamemode this morning and I must say it is pretty top notch! Here are some comments and suggestions that I compiled from the people playing (including myself):

1. Reset player's scores on round start. If you don't do that then the match score gets compounded.

2. Give feedback to a killed player on who killed them (assassin or non-assassin)

3. Show the distance in whole numbers or at most 1 significant digit (ties into the update rate from previous).

4. Show whether the target is above or below you next to the distance. If on same level, show only the distance. We assume a floor height of 128 units.

5. Players who are not following the gameplay (ie. attacking any player they want to) will spoil the entire game. Simply put, if you retaliate on someone spoiling the gameplay YOU ARE PUNISHED. There has to be some mechanism that detects players who are constantly attacking non-targets and either punt them to spectator, remove their ability to inflict damage, or send them a nasty gram as a big red message on their screen. People who retaliate to being attacked (by anyone) should not be punished either. This will require the gameplay to store a dynamic list of "recent attacks" to cross reference a death to a recent attack.

6. Kills to non-targets with the knife cause extreme point loss. Point loss should not incur the bonuses that legit kills have.
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on July 12, 2010, 03:35:35 am
Awesome. You should just compare the z values of the positions, you don't have to go crazy with vectorizing it:

GEUtil.Vector.__getitem__( GEPlayer.GetAbsOrigin(), 2 )

this will return the z component of the player's position. A little awkward, I will fix this in v4.1 to be more direct (as in GEPlayer.GetAbsOrigin().z())...
Title: Re: Yeyinde's WIP Gamemodes
Post by: major on July 12, 2010, 03:38:53 am
Dang just reading this topic makes me excited and scared of my programming course this fall.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 14, 2010, 12:35:41 am
Time for an update!  The game mode now includes the changes I mentioned above, and some more. 

Other update 1: I've change the target selection code to pick from a list of available targets instead of iterating over all 32 player spots, checking if they're in spectator or not, then picking one.  The game now adds players into the list when they join a team other than spectator, and removes them if they join spectator or disconnect.  This change should fix that target selection bug from before.

Other update 2. The target hud progress bar now shows on two lines, to avoid it conflicting with the chat area somewhat.  The new display is like so:

[CLAN]SomePlayer (Character)
123.4m Above/Below
(RADAR)

This change allows me to make the name string and distance strings have different colours in the possible future.  We'll see what we can think of that uses that in the future.


As always, there is more testing on these things.  I'd like to give a big thanks to the OWS server for putting up with all of this testing and revision that has been going on.  You guys rock!
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on July 14, 2010, 02:19:26 am
Quick thought: if you want to color something do it by range. When you get close (~10m) it goes to yellow and when you are REALLY close (~3m) it goes red. Would be an instant way to tell when you are right on top of the guy you are after without having to stare at the text. (Remember don't color if above/below is active)
Title: Re: Yeyinde's WIP Gamemodes
Post by: Proxie on July 14, 2010, 08:09:57 am
Gamemode keeps getting better and better. :) I think it would be a good idea to have a color coded beacon that goes around the victim, if you're in the middle of bunch of May Day's I can see there being a problem deciding which one to attack.
Quote
I'd like to give a big thanks to the OWS server for putting up with all of this testing and revision that has been going on.  You guys rock!
You're welcome <3
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on July 28, 2010, 09:03:04 pm
Alright, it's time for an update.  I managed to get some actual testing done with JcFerggy a few days ago.  Thanks to him, I managed to fix a few bugs and add in the distance colour indicator.  If all goes well, I won't need any more bugs to fix up until I get the code ready for the 4.1 release. :)
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on July 28, 2010, 10:34:08 pm
SHAZAM! I can't wait to play the new version!!

On that note, I need to update our wiki with our python code its about time that got some attention...
Title: Re: Yeyinde's WIP Gamemodes
Post by: EMH Mark I on July 29, 2010, 12:28:30 pm
Nice to know you got some of those annoying bugs fixed  :).  Server's been updated, so just hit one of us up about giving it a try when you catch the server being populated.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on August 03, 2010, 05:39:08 pm
Well, according to my luck, it seems we have a few more errors.  This time around, I'm putting in some debugging code to see if I can't isolate where and when these errors are happening during live tests.  The debugging information can be turned on with the ass_debug CVar (defaults to 0).  Big errors that throw exception objects will be displayed even if ass_debug is 0, so I can at least find what might be happening in the functions.
Title: Re: Yeyinde's WIP Gamemodes
Post by: Mark [lodle] on August 04, 2010, 01:05:19 am
Why not add a item highlight to your target? Thus if there is more than one char you can tell them apart
Title: Re: Yeyinde's WIP Gamemodes
Post by: Yeyinde on August 04, 2010, 01:36:44 am
Why not add a item highlight to your target? Thus if there is more than one char you can tell them apart
Unfortunately, as I've been told, things like that are all-or-nothing settings, and cannot be made to have each individual player have a different outlining/radar setting.
Title: Re: Yeyinde's WIP Gamemodes
Post by: JcFerggy on August 04, 2010, 08:50:26 am
What about the left 4 dead glow that we have on object in specific game modes?
Title: Re: Yeyinde's WIP Gamemodes
Post by: killermonkey on August 04, 2010, 09:43:07 pm
What about the left 4 dead glow that we have on object in specific game modes?

Again all or nothing. That's a server made setting that is passed to all clients and would be incredibly challenging for me to parse it out per client with little reward. No to mention players are not included in the possible entities to give a glow. Only gameplay tokens can glow (weapons or custom tokens).
Title: Re: Yeyinde's WIP Gamemodes
Post by: Mangley on August 04, 2010, 11:22:26 pm
Would it be possible to have the word Target appear if you mouse over the person you're supposed to assassinate? Much in the same way that teammates names appear when you mouse over them. Just an idea.. I think that would be effective if it's possible.