ZDaemon Forum Index ZDaemon
Client/Server DOOM
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Frenchies' Chaotic Tuesdays #17 - Meet the V.I.P. -
Goto page 1, 2  Next
 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    ZDaemon Forum Index -> Frenchies' Chaotic Tuesdays
View previous topic :: View next topic  
Author Message
Oxyde
Dominating!


Joined: 01 Feb 2012
Location: France (67) Host: Zero Dawn

PostPosted: Mon May 27, 2013 11:51 pm    Post subject: Frenchies' Chaotic Tuesdays #17 - Meet the V.I.P. - Reply with quote

Salut à tous Smile

This week is going to be a blast. This is all I can tell you. Honestly!
Now that I have teased you all, I could just run away and let you all wonder what this week will be about! That would be fun! Very Happy
But I'm not cruel, so I will tell you because I love you. Smile
This week's mode was entirely though, written and designed by your favorite Frenchie server administrator, the one and only; Ch0wW!
Of course we helped him doing the testing, but everything was crafted by his godly hands!
Laissez moi donc vous présenter...



Frenchies' Chaotic Tuesdays #17 – Meet the V.I.P.
This game mode, entirely created by Mr. Ch0wW himself, is all based on team play and survival instincts.
At the start of a map, a player is choosen to be the VIP. This player is granted 200% Health & Armor, but his only weapon is his trusty handgun.
However, only the VIP is allowed to grab keys.
All the other players will spawn with a randomly choosen weapon. Their goal is to protect the VIP at all costs.
If the VIP dies, everyone will suffer from it...
The VIP can easily be recognized in the crowd because of the huge Arrow on his head.
You will be introduced to this masterpiece of a gamemode on Plutonia Revisited!
Protect the VIP, protect your team mates, and more importantly, think twice before grabbing a berserk pack. Wink


Some basic settings for today!
  • Server: BaseQ.fr
  • Gamemode: Survival
  • Lives: 1
  • Files: FCT17.zip, prcp.zip
  • DMFlags1: 218695720
  • DMFlags2: 823601680

Now for the special gameplay changes, here is how the episodes will play:
  • Episode 1 will be played with -fast monsters.
  • Episode 2 will be played with -respawning monsters.
  • Episode 3 will be played with a random maplist, 2* monster health and -fast monsters.

Nothing is broken again! And to celebrate, I didn't plan anything!

The madness will be starting at 21h (GMT+1).

We hope you will like this session! Very Happy
A bientôt sur le serveur. Smile


Last edited by Oxyde on Tue Jun 04, 2013 1:11 pm; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Cybershark
Spamming!


Joined: 05 Jan 2005
Location: off the grid, but still fighting for the users!

PostPosted: Wed May 29, 2013 12:08 am    Post subject: Reply with quote

Hahaha, wow, I just don't know how you manage to keep coming up with these fresh freakish twists each week!

Just a shame it's always for co-op/survival Sad
Back to top
View user's profile Send private message Visit poster's website
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Wed May 29, 2013 12:35 am    Post subject: Reply with quote

I'm planning this mod for TDM, for an alternative run Smile

I am impressed by the huge success of this week. A simple mod, with lots of awesome moments, and huge fails! Of course, we've been able to get more than 32 clients on the server AT THE SAME TIME! Even more than the shop!

Anyway, I'm sorry for the annoying "spectator is chosen" bug. I haven't seen that coming at all...

So, the fix is online now! Sorry again for the inconvenience =/ .

Also, the server is up until FRIDAY!

And we will give you now the changelog + a method of how to run a server + its following CVARs. I shouldn't for the server, because it's FCT-specific, but I've to this time, because it's my personal work Very Happy . However, I won't give the ACS source code, at least not for the following "id-years".

Code:

----------------------------------------
V.I.P

Version 1.2
Created by Ch0wW - http://www.baseq.fr

Changelog:
Version 1.2 (Post FCT #17):
   - (potential-fix) Fixed spectators being able to be chosen by the game (and giving a gameover instantly) if they joined previously and spectating after the game.
   - Modified vip_message to be able to randomise again with "vip_message -1"
   - Added colored time for the "Death Message".

Version 1.1:
   - Fixed a player being able to randomly change the music if he connected while the bomb is being activated
   - Added a "Death Timer"
   - Small bugfixes
   
Version 1.0:
   - Added Custom musics
   - Added vip_minplayers CVAR
   
Version 0.1:
   - Added Strong Weapons (cvar: "vip_strongweapons")
   - Added CVAR vip_deathtime

----------------------------------------


Wad Fixed 2 : http://dl.baseq.fr/doom/wads/FCT17Fix2.wad

To run this mod, make sure that this CVAR is set, else it won't load up at all!

Code:
 set vip_gameenable "1"


Then, you can use the following cvars :

Code:
set vip_choosetime    "5" // Time before a VIP got chosen
set vip_minplayers    "1" // (LATCHED) Minimum players needed before choosing a VIP
set vip_message    "-1" // Gives a random death message
set vip_strongweapons "0" // (LATCHED) Gives you Strong weapons (ie: RL/SSG/PG/RG)


That's all you need!


Last edited by Ch0wW on Wed May 29, 2013 2:34 am; edited 7 times in total
Back to top
View user's profile Send private message Visit poster's website
Empyre
Unstoppable!


Joined: 13 Dec 2006
Location: Texas, USA

PostPosted: Wed May 29, 2013 1:09 am    Post subject: Reply with quote

Cool! I like this idea and might use this as the mod on my server soon. I change the mod on my server every 2 weeks.
Back to top
View user's profile Send private message Send e-mail
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Wed May 29, 2013 1:53 am    Post subject: Reply with quote

No problem, feel free to do so!

I've updated my post above, if you want to run a server, follow what is written and you're good to go!
Back to top
View user's profile Send private message Visit poster's website
Memfis
MemfisWatt


Joined: 29 Oct 2011

PostPosted: Wed May 29, 2013 2:03 am    Post subject: Reply with quote

Main problem with this mod as I see it... Being a VIP sucks! Why this strange restriction that he gets nothing but a pistol? That just makes him feel like a loser rather than an important person imo. Everyone else is having fun while he is just holding the locked doors for them and occasionally using that crap weapon. pew-pew-pew...

That randomized weapon thing is quite controversial as well... Again, it simply sucks when you get a sg/cg while some other player gets a pg/rg. Random number generator decides who will have all the fun and who will be fighting barons with a weapon that needs like 20 shots to take them down. I strongly recommend to make this randomize thing optional and configurable via CVARs because I imagine that some people would like to play without it.

Ch0wW wrote:
However, I won't give the ACS source code, at least not for the following "id-years".

Absolutely no offense, but why? Wouldn't it be cool to let other people study your code so that they could learn something from it? Or make their own versions that would better suit their tastes? What do you lose by releasing the sources?
Back to top
View user's profile Send private message
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Wed May 29, 2013 2:27 am    Post subject: Reply with quote

Quote:
Main problem with this mod as I see it... Being a VIP sucks! Why this strange restriction that he gets nothing but a pistol? That just makes him feel like a loser rather than an important person imo. Everyone else is having fun while he is just holding the locked doors for them and occasionally using that crap weapon. pew-pew-pew...


Teamplay, mon cher Watson Smile

that's great to make coop/survival, but making it a bit more spicy is always better!
Plus, on some wads (we've thought of PRCP for this), you need to protect him from many sides, so you have to make groups, taking risks, and most important, having some teamplay (and fun too)! That was what we wanted to do first.

But, if we didn't get enough restrictions to avoid speedrunning, the VIP would be completely useless, what wasn't really the goal of this mod. that's why he only got a pistol and 200/200 (and he also got an automap, in case people didn't see that)... If he wants to be a kamikaze, he can play like that too, but that'll be hard for him (making an easy Game Over Razz ) !

What we wanted to plan too was the ability to carry 2 medkits, and 2 timebombs in order to protect himself a bit, but because of my will to do that week a vanilla-like mode, that wasn't put. But for a re-run, I'll make this.


Quote:
That randomized weapon thing is quite controversial as well... Again, it simply sucks when you get a sg/cg while some other player gets a pg/rg. Random number generator decides who will have all the fun and who will be fighting barons with a weapon that needs like 20 shots to take them down. I strongly recommend to make this randomize thing optional and configurable via CVARs because I imagine that some people would like to play without it.


I've thought of that too, but the teamplay will be less important if everyone has the same weapon, which wasn't one of the goals of the mod =/.

Don't forget too that every weapon has a unique goal in DooM 2: SG/SSG for mid/close range, CG/RL/RG for mid/long range, PG for all kind of situations. The most important is how you're using it...

But for a "workaround" ...

Code:
set vip_strongweapons "1"


With this CVAR, the only weapons available will be :
- Super Shotgun
- Rocket Launcher
- Plasma Gun
- RailGun

Oxyde thought about that thing on hard maps, to balance players, not being stucked on maps for about 1 hour. But that CVAR was not intended to make the game easier.


Quote:
Absolutely no offense, but why? Wouldn't it be cool to let other people study your code so that they could learn something from it? Or make their own versions that would better suit their tastes? What do you lose by releasing the sources?


Hum, I've got previous bad experiences of people "stealing" my mod's sources on a game UbiSoft released in 2003 (XIII), claiming "their creation", which seriously pissed me off, after months(years) of work. So I'm letting my source codes closed for a while, in order to make them as clean and optimised as possible.

I don't really like to give codes with lots of mistakes for new ACS coders ... I know that it isn't a neat thing to do (and I'm still pretty new on this scripting language, so I've to work a little more on that)

But don't worry. I'm releasing all my sources sooner or later after all Smile
Back to top
View user's profile Send private message Visit poster's website
Memfis
MemfisWatt


Joined: 29 Oct 2011

PostPosted: Wed May 29, 2013 9:44 am    Post subject: Reply with quote

Thanks for the response, everything you've said makes perfect sense. All this indeed makes the game more about teamplay. I guess I'm just not into it. In survival games it's not unusual for me to run away from everyone else to fight alone in some areas so that I can get all the fun heh.
Back to top
View user's profile Send private message
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Wed May 29, 2013 11:15 am    Post subject: Reply with quote

The Shop too was aimed as a Teamplay mode...

Anyway, screenshots: https://www.facebook.com/media/set/?set=a.149443191907612.1073741838.122056174646314&type=1&l=6eab4e32d1
Back to top
View user's profile Send private message Visit poster's website
Fsn76
Dominating!


Joined: 11 Dec 2005
Location: France (Rouen)

PostPosted: Wed May 29, 2013 11:20 am    Post subject: Reply with quote

Where is the banana? Open the door! Open the dooooooor!
Back to top
View user's profile Send private message
Edwart
Dominating!


Joined: 08 Jul 2011
Location: at #Burger Team Clan: NUMERO 1

PostPosted: Thu May 30, 2013 7:56 am    Post subject: Reply with quote

Fsn76 wrote:
Where is the banana? Open the door! Open the dooooooor!


LOOOOOOL COVER ME NIGGA XD
Back to top
View user's profile Send private message Send e-mail Visit poster's website MSN Messenger
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Thu May 30, 2013 8:08 am    Post subject: Reply with quote

XD

Question pour un champion: Dastan loves barrels. Right, or wrong?
Back to top
View user's profile Send private message Visit poster's website
Memfis
MemfisWatt


Joined: 29 Oct 2011

PostPosted: Thu May 30, 2013 3:21 pm    Post subject: Reply with quote

Heh, found my "heroic moment" on map11 in your videos. Thanks for recording, it was fun to watch without having to worry about surviving. Smile
Back to top
View user's profile Send private message
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Thu May 30, 2013 10:31 pm    Post subject: Reply with quote

Ahah, I guess so!

Anyway, I changed my mind for the source code. I dedice to post the current source-code (with some minor modifications). You can get it ...

... === HERE ===

The code has been commented a little more than I planned, for beginners, to see how the code was done.
Back to top
View user's profile Send private message Visit poster's website
UberGewei
SuperAntler


Joined: 01 Sep 2010
Location: The Netherlands

PostPosted: Fri May 31, 2013 12:37 am    Post subject: Reply with quote

Memfis wrote:
Main problem with this mod as I see it... Being a VIP sucks! Why this strange restriction that he gets nothing but a pistol?


The VIP gets to hold the keys, that means he needs to be protected for the keys to be safe, No keys = Game over. Makes it VIP enough to me :p


But i do agree with you, Playing with a pistol and waiting for all monsters to be killed by the other players can be very boring. So, Best thing to do would be creating a WAD based on this ACS Script. To implement some fun things to do for the VIP whilst the others take care of the monsters.

Nonetheless, The idea is very cool and it kept me going for a couple of hours!
Great job Ch0wW!
Back to top
View user's profile Send private message Visit poster's website
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Fri May 31, 2013 2:22 am    Post subject: Reply with quote

About some elements making the VIP more interesting, here are some ideas I've thought:

X) - Adding a random timer (every 120 seconds) having a sort of slot machine, giving powerups to players, OR to the VIP only. However, the chances to get a powerup will be about 20%.

Examples :
- The VIP can get a BFG for only 5 seconds (so if he's risky, he can give an advantage to players)
- Enemies are 20% weaker (I think that ACS can manage that)
- Invulnerability for everyone! (so that players will be going like Rambo and ignore the VIP a bit)
- Items given to players

X) - Giving more items for the VIP (2 medkits, 2 timebombs)
X) Able to spawn temporarly a random hitscan weapon (SG/SSG/Chaingun) for 30 seconds thanks to an item, to feel like a reinforcement

Those ideas could make the VIP being more dynamic for players, and could help more the team after all (or not, if I think about that too Razz )
Back to top
View user's profile Send private message Visit poster's website
Vigilante
has entered the game!


Joined: 03 Jun 2013

PostPosted: Mon Jun 03, 2013 10:41 pm    Post subject: Reply with quote

Excellent! The mod had a lot of success this week-end, several times there were 16+ people playing.
VIP-selection seems buggy however, I don't see why when I see the source but I can swear that when the team fails and the map restarts, the same VIP is chosen again, it's systematic.
PRCP has some nice tactical maps at the beginning but map07 is quite a showstopper, I only saw 2 successes - one "normal" with a swarm of plasma wielders, and one with an amazing VIP who archvile-jumped to exit, I still don't understand how.
map08 is a grinder, yesterday people struggled continuously for 5 hours to pass it.

If you want to give more stuff to do for VIP, you may let him be the only one who can collect items. (how? replace all items by cells, and give 300 cells to bodyguards, so they won't collect it when they touch it.) You could have for example a global effect happen when the VIP has collected 25 items. For example a global heal, especially if other health is removed: this way the VIP keeps an eye on everybody's health, and waits for the right moment to collect the 25th item that triggers the effect.
Back to top
View user's profile Send private message
Sr69Mm-jC
Unstoppable!


Joined: 21 Jul 2011

PostPosted: Tue Jun 04, 2013 9:29 am    Post subject: Reply with quote

Vigilante wrote:
VIP-selection seems buggy however, I don't see why when I see the source but I can swear that when the team fails and the map restarts, the same VIP is chosen again, it's systematic.

I'm not entirely sure this is the case but there is indeed a problem with doom's Random() function. What I believe happens here is that when map is restarted the random seed is also reset to whatever it originally was when the map was loaded. This means that when you start selecting things at 'random' through the exact same steps you result in having the exact same values again. This was done in original doom for the sake of multiplayer syncing, demo playback and so on.

Switching map through idclev doesn't change the initial seed, so you can probably test this effect with your scripts by idclev'ing to the same level and seeing how everything 'random' is actually the same as it was the last time. So I guess resetting the map in survival doesn't change it either. Triggering an exit linedef does, however - so if you exit to another map and idclev to previous map it will definitely be different this time.

I'm not entirely sure how to effectively fix it either. E.g. this is an example of an (very likely) ineffective fix:
Code:
int a; for (int i=0; i<PlayerCount(); i++) a = Random(0,1);

This would call in Random() function different amount of times depending on player count, so if you run this before you run your scripts you'd have it 'randomized' a bit. Obviously though, if player count is the same by the time you run this script (and it may as well be just 0 if you run it too early when noone has spawned it) then it will fix nothing at all.

I think doom gameplay mechanics such as damage and monster movement also use the same random table. Your players will always behave differently each time they play so the monsters will also move, attack, hurt and also get hurt differently. So if you let at least some action happen before running your code it might be good enough to 'randomize' the table but how would you even know that some 'action' has happened already? I can only think of checking all players' healths (checking whether anyone got hurt yet) but it could as well be those damaging floors.

Worst has once pretty much fixed this issue altogether by implementing his custom random function with its own logic built in it. Unfortunately I do not remember much about it and I'm not sure I have the code for it anywhere either. I will try to look for it though.
Back to top
View user's profile Send private message
Ch0wW
Dominating!


Joined: 05 Feb 2013
Location: France

PostPosted: Tue Jun 04, 2013 11:16 am    Post subject: Reply with quote

To Sr69Mm-jC : I have thought too of that issue, and looked around to check how to fix it... Yet, no tested solution has been found...


Quote:
Switching map through idclev doesn't change the initial seed, so you can probably test this effect with your scripts by idclev'ing to the same level and seeing how everything 'random' is actually the same as it was the last time. So I guess resetting the map in survival doesn't change it either.


Actually, I have thought the exact same reasons the SAME player was chosen again. I have thought of a possible & untested solution, that could be this :

Add to the beginning:
Code:

[...]
int    iDeathTime;            // Time before dying
int    iMinPlayers;            // Minimum players required
int    iPreviousVIPid;         // <-- Who WAS the VIP before?


Then, on the fonction function void Init_VIP ( void )
Code:

[...]
// generating the chosen one
    while ( ( GetActorProperty(i, APROP_Health) < 0 ) || !IsPlaying(i) || i == iPreviousVIPid )   // Fix for players being able to play before, and spectating after (+possible fix for avoiding the same VIP )
    {
        i = random (PLAYER_TID_START, (PLAYER_TID_START+iPlayerNb - 1));
    }   
           
    GiveActorInventory (i, "Megasphere",    1);
    GiveActorInventory (i, "Allmap",        1);
    GiveActorInventory (i, ITEM_PROVE_VIP,  1);
           
    iVIPtid = i;
    iPreviousVIPid = i;


However, I'm not even sure that check will be set (because if we restart, will the iPreviousVIPid variable will be kept? That's something that I think it'll not happen )...

Once this week's FCT will be done, I'll remake another server with that mod, and we'll check that more in details.


To Vigilante : I'll implant more things for the VIP in order to be more enjoyable for players, and your idea is neat, I like it pretty much!

I'll implant then a way to add an item which can heal every player once the VIP activates it. Once the VIP has 50 "items/coins" ( can be any, except powerups+health), he'll get a full medkit that will heal everyplayer, making them @ 100 HP (ineffective if the player has >100 HP) again.
Back to top
View user's profile Send private message Visit poster's website
rhinoduck
Potatoes


Joined: 22 Oct 2012

PostPosted: Tue Jun 04, 2013 3:54 pm    Post subject: Reply with quote

Ch0wW wrote:
However, I'm not even sure that check will be set (because if we restart, will the iPreviousVIPid variable will be kept? That's something that I think it'll not happen )...


Indeed, it won't work. Values in map scope variables, as used in your example, are lost upon every map change/restart. The unfortunate thing is that even values in global scope variables are lost upon forced map change or survival map restart, so, to my current knowledge, there is no way to keep state if these events occur (although I've just got an idea that I will test).

You can still use this RNG to solve your problem:

Code:
// map scope
int m_w;
int m_z;

function int PRandMarsaglia (int min, int max) {
   m_z = 36969 * (m_z & 65535) + (m_z >> 16);
   m_w = 18000 * (m_w & 65535) + (m_w >> 16);
   return Abs((m_z << 16) + m_w)%(max-min+1) + min;
}


Source: http://www.jstatsoft.org/v08/i14/paper

This is what I adopted from worts's original TNS randomisation script. The m_w and m_z variables are the RNG seeds and you must initialise them to a non-zero value before you start using the function. You should be able to use values calculated from one or more player coordinates/angle and/or gameticks passed to seed the RNG at each map (re)start if the decision about who the VIP will be is made some time into the game and the players are allowed to move a bit first.
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    ZDaemon Forum Index -> Frenchies' Chaotic Tuesdays All times are GMT + 1 Hour
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group