Raised This Month: $ Target: $400
 0% 

VSH Introducing VSH Advanced


Post New Thread Reply   
 
Thread Tools Display Modes
Powerlord
AlliedModders Donor
Join Date: Jun 2008
Location: Seduce Me!
Old 06-09-2015 , 11:46   Re: Introducing VSH Advanced
Reply With Quote #191

You know, as much as you harp about the FF2 subplugins system (which isn't perfect) and boss system in here, it does have a few advantages that you apparently haven't considered or have just ignored.
  1. FF2 Subplugins generally adhere to the Don't Repeat Yourself principle.
  2. Boss models and sounds aren't precached until the boss is actually used.
  3. Less code in general as the core kept track of a lot of the boss related things that are now tracked inside each boss plugin for VSHA.

In FF2 (and VSH), you only had one copy of OnTakeDamage... not a separate one for Hale, Vagineer, HHH Jr, etc... SuperJump just had the one copy in the defaultabilities plugin instead of being compiled into every plugin.

As long as I'm talking about FF2... way back in ages past, I had a Grand Dream for FF2... the original verson 2.0. It's been something like 4 years, but as I recall, these were the major goals for it:
  • Rewrite the way FF2 communicated with its subplugins using private forwards.
  • Rework how boss configurations worked.
    • Support for version 1.0 subplugins and bosses would have stuck around for a while, but would have eventually gone away.
  • Make the queue a subplugin that could be switched out for another implementation. This was essentially finished and is probably somewhere in the code repo Wilu has.
  • Move weapon replacements and attribute changes out to a separate file. If this sounds familiar, it's because it ended up in PropHunt Redux, albeit without the ability to add custom functions to a weapon.
  • Make a Freak Fortress Gallery site that would be a place where bosses could be downloaded... it would have subplugins required by bosses listed for them and such.

Now, obviously this didn't happen as I kinda lost interest in the project after my then-community did.
__________________
Not currently working on SourceMod plugin development.
Powerlord is offline
Haxray
Senior Member
Join Date: Jun 2014
Old 06-09-2015 , 11:52   Re: Introducing VSH Advanced
Reply With Quote #192

Not even a proper sourcepawn related coder(Mainly done things for gmod's lua), and I can agree with everything powerlord said.

Plus, it is easier for people who don't know much about sp to be able to go and edit a hale. Maybe they decided your hale had balance related issues and wanted to modify something? Its way easier for them to do that with ff2 than with the way VSHA is going.
__________________
Basic Freak Fortress 2 boss creator, and very basic modeler.
Haxray is offline
nergal
Veteran Member
Join Date: Apr 2012
Old 06-09-2015 , 14:13   Re: Introducing VSH Advanced
Reply With Quote #193

Quote:
Originally Posted by Powerlord View Post
You know, as much as you harp about the FF2 subplugins system (which isn't perfect) and boss system in here, it does have a few advantages that you apparently haven't considered or have just ignored.
  1. FF2 Subplugins generally adhere to the Don't Repeat Yourself principle.
  2. Boss models and sounds aren't precached until the boss is actually used.
  3. Less code in general as the core kept track of a lot of the boss related things that are now tracked inside each boss plugin for VSHA.

In FF2 (and VSH), you only had one copy of OnTakeDamage... not a separate one for Hale, Vagineer, HHH Jr, etc... SuperJump just had the one copy in the defaultabilities plugin instead of being compiled into every plugin.
Technically, you CAN use one copy of TakeDamage to VSHA but the focus here is flexibility.

Secondly, what's the point of having SuperJump as a default ability plugin when the code to it is included in the .inc? Not just superjump but weighdown and sentry stunning and they're all included as stocks...

Also, VSHA does track alot of things for the boss subplugins as well, idk where you got that idea from...

The idea here is about full control.

When it comes to quality, control and flexibility always trump ease of use. Of course, ease of use can trump control and flexibility, but it all boils down to what you're making.
__________________

Last edited by nergal; 06-09-2015 at 14:25.
nergal is offline
El Diablo War3Evo
Veteran Member
Join Date: Jun 2013
Old 06-09-2015 , 15:21   Re: Introducing VSH Advanced
Reply With Quote #194

I could make a external damage engine similar to War3Source: https://github.com/War3Source/War3So...amageSystem.sp

Then that engine could handle all the damage modifications from all plugins in one single swoop. The only difference is I would make it private forwards instead of global. Then you have the option to hook it or not.

It wouldn't take much to create a "common" library engine that handles the damages that are most common, and allow plugins to "opt" out of it.

Quote:
Originally Posted by Powerlord View Post
Boss models and sounds aren't precached until the boss is actually used.
Hold on.. so.. You're saying I can cache the models and sounds on round start, and the current in game clients do not have to know this until you plan to use them in game? So in game clients don't need to "prepare" their clients to cache this stuff before joining the server?
__________________

Last edited by El Diablo War3Evo; 06-09-2015 at 15:41.
El Diablo War3Evo is offline
xXDeathreusXx
Veteran Member
Join Date: Mar 2013
Location: pPlayer->GetOrigin();
Old 06-09-2015 , 16:56   Re: Introducing VSH Advanced
Reply With Quote #195

Quote:
Originally Posted by El Diablo War3Evo View Post
I could make a external damage engine similar to War3Source: https://github.com/War3Source/War3So...amageSystem.sp

Then that engine could handle all the damage modifications from all plugins in one single swoop. The only difference is I would make it private forwards instead of global. Then you have the option to hook it or not.

It wouldn't take much to create a "common" library engine that handles the damages that are most common, and allow plugins to "opt" out of it.



Hold on.. so.. You're saying I can cache the models and sounds on round start, and the current in game clients do not have to know this until you plan to use them in game? So in game clients don't need to "prepare" their clients to cache this stuff before joining the server?
Clients only need to have the files in their TF2, this is where AddToDownloadsTable comes in

You can precache things at any point in time to be used when it's needed, only the server cares what's precached or not(See Host_Error: Not precached crashes)
__________________
Plugins|Profile
Requests closed

I'm a smartass by nature, get used to it

Last edited by xXDeathreusXx; 06-09-2015 at 16:57.
xXDeathreusXx is offline
Powerlord
AlliedModders Donor
Join Date: Jun 2008
Location: Seduce Me!
Old 06-10-2015 , 11:31   Re: Introducing VSH Advanced
Reply With Quote #196

Quote:
Originally Posted by nergal View Post
Technically, you CAN use one copy of TakeDamage to VSHA but the focus here is flexibility.
Question time: Do any bosses use custom logic for different weapons that the client uses? For backstabs?

For that matter, flexibility works in both directions. Right now, if a server wants to make specific weapons do something special when the boss takes damage from them, it has to be modified in every boss plugin.

At the very least, this is copy-and-paste programming.

Quote:
Originally Posted by nergal View Post
Secondly, what's the point of having SuperJump as a default ability plugin when the code to it is included in the .inc? Not just superjump but weighdown and sentry stunning and they're all included as stocks...
So that the code exists in just one place in memory instead of having a separate copy in each plugin.

In C/C++, this is the difference between statically linked libraries (include files) and dynamically linked libraries (having it in a separate plugin).

Why is this important?

Because right now, if you modify vsha-stocks.inc and fix some critical bug, every boss plugin that uses that method has to be recompiled or else they will still have that bug.

That includes boss plugins not written by you.

Quote:
Originally Posted by nergal View Post
Also, VSHA does track alot of things for the boss subplugins as well, idk where you got that idea from...
By looking at the code.

WeightDownTimer, RageDist, HaleCharge, all the functions to play and stop sounds, almost everything on OnBossTimer...

Quote:
Originally Posted by nergal View Post
The idea here is about full control.

When it comes to quality, control and flexibility always trump ease of use. Of course, ease of use can trump control and flexibility, but it all boils down to what you're making.
Always? I'm afraid not.

If you take control and/or flexibility too far you can end up with a Stovepipe System or the Inner-platform effect.

VSHA is arguably already at the former.

Quote:
Originally Posted by El Diablo War3Evo View Post
Hold on.. so.. You're saying I can cache the models and sounds on round start, and the current in game clients do not have to know this until you plan to use them in game? So in game clients don't need to "prepare" their clients to cache this stuff before joining the server?
Yes. While you have to add files to the downloads table up front, you do NOT have to precache them up front.

I added the ability to precache things on the fly to FF2 when Valve introduced the MvM update... because Valve basically completely filled the sounds precache table. They've since made it so that MvM files aren't precached on non-MvM maps.
__________________
Not currently working on SourceMod plugin development.
Powerlord is offline
Chdata
Veteran Member
Join Date: Aug 2012
Location: Computer Chair, Illinois
Old 06-10-2015 , 12:23   Re: Introducing VSH Advanced
Reply With Quote #197

here is the new and improved VSHE (VSHExpert)

Spoiler


But yeah, to everyone who keeps expecting me to just switch over to this plugin, y'know that would require me doing major rewrites / copypastes of my private VSH fork to change it to 1.7 syntax and merge it into this newly made native interface. I had enough trouble dealing with how restricted I was making a FF2 plugin because instead of being able to reference the FF2 core plugin for things like Hale's team or who's a boss, I had to use FF2's natives without having any clue exactly when these values get assigned (team_round_start? arena_round_start? some other event? were those two even events?), etc.

To me, having to use VSH_OnTakeDamage instead of just using OnTakeDamage is kinda redundant for my own private development. Now, if I were making a public ability like any of the FF2 abilities, it's just fine. I view the purpose of making this kind of thing as being an 'easier' way to allow developers to make more content for non-developers. It's an extra plus for non-developers to have the .ff2 plugin system... though I don't see why those aren't just .smx files in another folder.

I have no thoughts on how efficient or inefficient it is in comparison to FF2, but one problem I have with FF2 natives is as mentioned above; I don't know when certain things actually get set if I have to use a native instead of just traversing the plugin core. That could be fixed with good documentation though.

And well, Wliu knows about the weird index mess.
__________________

Last edited by Chdata; 06-10-2015 at 12:33.
Chdata is offline
El Diablo War3Evo
Veteran Member
Join Date: Jun 2013
Old 06-10-2015 , 12:36   Re: Introducing VSH Advanced
Reply With Quote #198

With some consideration, we took PowerLord's idea of single copy "TakeDamage" into VSHA with the exception that the boss plugin can "ignore" the OnTakeDamage changes and still "hook" events inside of the OnTakeDamage events like Fall Damage. The reason I thought to add the "ignore" for a single boss was if that boss plugin just happened to want to take a different approach to the OnTakeDamage that we haven't thought about.

Most of these "bosses" seems to be just copy and paste bosses with a few exceptions... so I do want to make VSHA flexible for writing new code for any boss that wants to "go against the grain" of the usual copy and paste boss and create something unique.
__________________

Last edited by El Diablo War3Evo; 06-10-2015 at 12:38.
El Diablo War3Evo is offline
El Diablo War3Evo
Veteran Member
Join Date: Jun 2013
Old 06-10-2015 , 14:37   Re: Introducing VSH Advanced
Reply With Quote #199

Quote:
Originally Posted by Chdata View Post
here is the new and improved VSHE (VSHExpert)

But yeah, to everyone who keeps expecting me to just switch over to this plugin, y'know that would require me doing major rewrites / copypastes of my private VSH fork to change it to 1.7 syntax and merge it into this newly made native interface.
I think that Nergal was going to call it VSHE .. i had to change VSHE to VSHA multiple times in the code. I bet he plans to create a VSHE after I'm done with VSHA.. lol

If you didn't know, I'll help you with some of those rewrites and keep it secret as long as if your okay with me using some of the code for War3Evo Just remove code before you give it to me.. that you don't want me to see. But if you don't except my help, that is okay.

Chdata, if you do move to VSHA, you do understand that I'm working hard on a compatibility plugin that would allow you to also access the FF2 sub-plugins for your own usage without having to convert!


DANG IT.. is there any way to remove these smilies
Please mod, help me out... and remove these smilies
__________________

Last edited by El Diablo War3Evo; 06-10-2015 at 14:42.
El Diablo War3Evo is offline
nergal
Veteran Member
Join Date: Apr 2012
Old 06-10-2015 , 15:25   Re: Introducing VSH Advanced
Reply With Quote #200

Quote:
Originally Posted by El Diablo War3Evo View Post
I think that Nergal was going to call it VSHE .. i had to change VSHE to VSHA multiple times in the code. I bet he plans to create a VSHE after I'm done with VSHA.. lol

If you didn't know, I'll help you with some of those rewrites and keep it secret as long as if your okay with me using some of the code for War3Evo Just remove code before you give it to me.. that you don't want me to see. But if you don't except my help, that is okay.

Chdata, if you do move to VSHA, you do understand that I'm working hard on a compatibility plugin that would allow you to also access the FF2 sub-plugins for your own usage without having to convert!


DANG IT.. is there any way to remove these smilies
Please mod, help me out... and remove these smilies
To be exact, Chdata doesn't use FF2 but a highly modified version of his own VSH

I originally did name it VSHA (for Advanced) but, when I going too fast with idea development, I thought why not restructure it into a sort of engine-like plugin?

So it sorta shifted between VSH Advanced and VSH Engine.
__________________
nergal is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:20.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode