Declined Upgrading to VSH2 (1 Viewer)

Status
Not open for further replies.

Nergal

Active Member
Joined
Feb 20, 2021
Messages
18
Hello Everybody. I am Nergal, the creator & lead developer of VSH2 and I would like to discuss the possibility of having the Panda VSH servers upgrade to VSH2!

Firstly, why VSH2?
Well compared to VSH1...
  • VSH2 is in active development.
  • VSH2 allows you to have more than 1 bosses at a time (multi-bosses)
  • VSH2 not only allows multi-bosses but you can have ANY combo of bosses (i.e. 2 Saxtons and 1 Vagineer)
  • VSH2 allows you to create completely custom bosses with completely custom mechanics that not even FF2 can compete with.
  • VSH2 has a massive ton of cvars that allows you to adjust gameplay and the gamemode as needed (see below).
  • VSH2 has its own special config that you can use to modify weapons such as adding stats, completely overriding stats, or even completely replacing weapons!
  • Said config also lets you modify the class help messages and even add extra download assets!
  • VSH2 uses a boss event-based callback system that allows a coder to manipulate, modify, and/or execute code based on those events!
    • Example, VSH2 has an event for when a boss was airshotted by a projectile, a boss killing a player, or even the boss background music has started playing!
  • VSH2 has built-in Goomba stomp plugin support!
  • VSH2 actually has Medieval Mode support!
  • VSH2 has built-in chat targets: '@ boss' to target bosses, '@minions' to target boss minions, and '@nextboss' to target the next chosen boss.
  • VSH2 has a built-in Set Boss command that can be overriden to work for donators only.
  • For backwards compatibility, VSH2 uses the same map configuration files as FF2 and VSH1.
  • VSH2 uses two types of modules: addons and boss modules. Addons are plugins that hook to and can modify and/or read events from VSH2
    • Addons always have higher execution priority than boss modules, which allows you to modify/tweak existing boss behaviors with confidence!
  • VSH2 also uses a game mode manager which can be accessed by addons and boss modules whenever needed with information like the number of rounds passed, the next set boss, sorted queue points list, and counting by either players, bosses, or minions!
  • VSH2 is completely open source and has even has coding documentation (including an API reference) with it such as the plugin's architecture and source file hierarchy as an image.
One of your admins has also informed that Panda community has FF2 servers as well.
VSH2 also comes with an FF2 Compatibility Layer Engine which allows you to run both VSH2 custom bosses AND FF2 bosses together!

Given all of this, VSH2 uses a built from scratch framework where VSH1 (and barely FF2) had no framework (or even structure really)

vsh2-architecture.png


For Coders Only, Here's a sample of just what VSH2 is capable of ;):
Code:
public void Template_OnBossMedicCall(const VSH2Player player)
{
    if( !IsTemplate(player) || player.GetPropFloat("flRAGE") < 100.0 )
        return;

    /// use ConfigMap to set how large the rage radius is!
    float radius = 800.0; /// in case of failure, default value!
    template_boss_cfg.GetFloat("rage_dist", radius);

    /// generic player & building stun is built-in!
    player.DoGenericStun(radius);
    VSH2Player[] players = new VSH2Player[MaxClients];
    int in_range = player.GetPlayersInRange(players, radius);
    for( int i; i<in_range; i++ ) {
        if( players[i].GetPropAny("bIsBoss") || players[i].GetPropAny("bIsMinion") )
            continue;

        /// do custom, distance-based rage code here!
    }
    player.PlayVoiceClip(TemplateRage[GetRandomInt(0, sizeof(TemplateRage)-1)], VSH2_VOICE_RAGE);
    player.SetPropFloat("flRAGE", 0.0);
}


public void Template_OnBossThink(const VSH2Player player)
{
    int client = player.index;
    if( !IsPlayerAlive(client) || !IsTemplate(player) )
        return;

    /// run speed based on health code.
    player.SpeedThink(340.0);

    /// run glow timer code (was shot by sniper rifle).
    player.GlowThink(0.1);

    /// allow superjump if right clicking and enough power.
    if( player.SuperJumpThink(2.5, 25.0) ) {
        player.PlayVoiceClip(TemplateJump[GetRandomInt(0, sizeof(TemplateJump)-1)], VSH2_VOICE_ABILITY);
        /// player.SuperJump will reset "flCharge" back to 0.0
        player.SuperJump(player.GetPropFloat("flCharge"), -100.0);
    }

    /// increase rage if only scouts left.
    if( OnlyScoutsLeft(VSH2Team_Red) )
        player.SetPropFloat("flRAGE", player.GetPropFloat("flRAGE") + g_vsh2_cvars.scout_rage_gen.FloatValue);

    /// run weighdown ability code.
    player.WeighDownThink(2.0, 0.1);

    /// hud code
    SetHudTextParams(-1.0, 0.77, 0.35, 255, 255, 255, 255);
    Handle hud = vsh2_gm.hHUD;
    float jmp = player.GetPropFloat("flCharge");
    float rage = player.GetPropFloat("flRAGE");
    if( rage >= 100.0 )
        ShowSyncHudText(client, hud, "Jump: %i%% | Rage: FULL - Call Medic (default: E) to activate", player.GetPropInt("bSuperCharge") ? 1000 : RoundFloat(jmp) * 4);
    else ShowSyncHudText(client, hud, "Jump: %i%% | Rage: %0.1f", player.GetPropInt("bSuperCharge") ? 1000 : RoundFloat(jmp) * 4, rage);
}
 
Has VSH2 been used in other servers/communities before? if so, how has it worked out? If not, why?
 
And how did they like it? was the transition difficult? how much more is there for the admins/developers of our community to learn about VSH2?
 
I remember Skial having glaring issues with the switch between vsh 1 and vsh 2 driving players away
Are the defaults for vsh 2 that different from vsh 1? I think one of our biggest issues with switching to vsh 2 was due to the lack of information as to what's different
 
And how did they like it? was the transition difficult? how much more is there for the admins/developers of our community to learn about VSH2?
For Skial, the transition wasn't easy (wasn't difficult either) because VSH2 was in open beta. However I have to thank Skial because they pushed through the pain and their feedback allowed me to get VSH2 to where it is today.

For BlackWonder, the transition was easy.
TFF's transition was easy as well because their original FF2 server had died and, when I told them about VSH2, they decided to adopt VSH2 as a new platform to revive their server.

The Brew Crew's leadership was originally part of Skial but they broke off and formed their own VSH2 community.

I forgot to mention that I do give free tech support which includes helping coders develop bosses and addons, VSH2 code questions, and including feature/code requests.
 
I remember Skial having glaring issues with the switch between vsh 1 and vsh 2 driving players away
Are the defaults for vsh 2 that different from vsh 1? I think one of our biggest issues with switching to vsh 2 was due to the lack of information as to what's different
Yes I mentioned this. VSH2 was in open beta at the time and one of the reason that it drove players away was because Skial's VSH had modified weapons and VSH2 didn't have the weapons modified in the same manner, so they were upset.

Many of them did not leave though and voiced their concerns, which I was then prompted to quickly add. Skial's issues concerning its previous modifications gave me the impetus to engineer a strong configuration system for making weapon modifications easier.
 
  • Like
Reactions: Racer911-1
Is there any list of the default weapon changes that have been made between vsh1 and vsh2?
E.G Mantread's effect being changed/altered etc etc
 
Ok, just 1 more question for me. as you might see we have a suggestion area on our forums (which includes boss and map ideas) with what you said in your original post about creating your own bosses, how does that work exactly? do we need a certain program to make our own that would be able to work with VSH2? or is it the normal process?
 
What do you mean. One or more bosses at the same time?
 
Ok, just 1 more question for me. as you might see we have a suggestion area on our forums (which includes boss and map ideas) with what you said in your original post about creating your own bosses, how does that work exactly? do we need a certain program to make our own that would be able to work with VSH2? or is it the normal process?
Nope, you just need some decent coding knowledge (or DM spam me on discord ;) )
Bosses are created as their own plugins which then hook to VSH2, thus you can add/remove bosses via plugins. By convention and organization, boss modules are usually named like `vsh2boss_bossname` and addons like `vsh2_addon_addonname`

VSH2 exports specific data through a specific file, all a boss module requires is to include that file and register a boss name with VSH2. The VSH2 registrar will then assign the boss module a custom ID that is used to verify during the boss events what type of boss it is. After that, just hook to which boss events you need from VSH2 and you're done!
 
Ow I see, I was ready to face Saxton Hale and Vagineer on a really hard map. The 2 hale combo. Sounds super fun that's just me
 
  • Dumb
Reactions: vinny
Nope, you just need some decent coding knowledge (or DM spam me on discord ;) )
Bosses are created as their own plugins which then hook to VSH2, thus you can add/remove bosses via plugins. By convention and organization, boss modules are usually named like `vsh2boss_bossname` and addons like `vsh2_addon_addonname`

VSH2 exports specific data through a specific file, all a boss module requires is to include that file and register a boss name with VSH2. The VSH2 registrar will then assign the boss module a custom ID that is used to verify during the boss events what type of boss it is. After that, just hook to which boss events you need from VSH2 and you're done!
I like your way of thinking (how did you know I like to spam?) :^) nice to see that your actively answering our questions and giving us answers that are very thought out. After doing my own research and with what you have said, I am for this being added (hopefully sooner than latter lol)
 
@Madact can you add an appropriate deadline to the poll since Nergal is unsure if he has added one himself

@Kevin This might be worth keeping an eye on since it's a pretty significant change that's been something quite a few regulars/staff have been wanting
Nergal is more than open to talking directly to anyone curious about his plugin update if you need any more info on it
 
how does that work?
with two cvars (one that enables random multibosses & one that limits how many), When a single boss has been selected, the boss selection event is fired which then processes to do random multibosses. It typically works by selecting the next players in the sorted queue list and make them as a random boss before the round starts
 
I don't believe this will go active on VSH EU but rather VSH US. Past changes to 'new and updated' plugins have been rather un-reliable and once a tf2 update comes they break. Not to say that this will but Panda Community has a laid back rare updates so even with help from the originally plugin creator, if something goes wrong, it'll stay wrong for a while. Possible leaving of lots of regulars unhappy with the update and then a dead server.

No multi bosses by the way. That's one of the main complaints that us ff2 got updated and though fun at first ends up annoying and chaotic. A lot of sitting around waiting for either boss to kill each other.
 
The main issue with VSH2 is that you need to learn sourcepawn to create custom hales, which is fine but the VSH/FF2 playerbase is pretty small and only about 1% of folks actually have the time and mental resolve to learn to code. What will probably happen is that folks who want to create custom hales for VSH2 will just copy from other custom VSH2 hales, change the models, maybe tweak a few numbers and release. So the cookie cutter methodology of FF2 remains, except with even more complexity, though I definitely see the benefits of having the hale plugins somewhat embedded into the hale files themselves.

I do not know if VSH2 will get enough traction to sustain itself with willing coders, though I hope am wrong. Nice to see your helping that by taking in requests yourself however.

Voting no, would rather have the VSH community and FF2 community merged, with the panda FF2 server having a more recent version and larger player cap. This schism needs to end.
 
  • Disagree
Reactions: Magglet
Status
Not open for further replies.

Users who are viewing this thread