• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[vJASS][2-Framework]FTMN- Footmen Wars Framework

Level 31
Joined
Jul 10, 2007
Messages
6,306
Ftmn-
Footmen Wars Framework

News Count- 3

-News Section-


Ok, so I started working on this since I finished Spawn v.01b as was requested by everyone. I'm really not sure what to do... Spawn has so much power and makes it too easy to do everything... I feel like I'm not really making anything... like honestly, I'm just setting up a layout and some basic settings, but other than that Oo. This is virtually empty.

I dunno what to do O-o.

JASS:
    globals
        Footman footman
    endglobals

    struct Footman extends Spawn_SpawnMethod
        public method createNew takes nothing returns nothing
            set .spawn = 'hfoo'
            set .spawnCount = 1
            set .spawnTime = 6
            set spawn2.spawnHandle = unitHandle
        endmethod //omg, all I have to do are set the basic settings and I'm done... all advanced settings are set by user.. what's the point then??
    endstruct

    public struct Barracks extends Spawn_BaseMethod
        public method createNew takes nothing returns nothing
            call .engraveSpawn(Spawn_SpawnPrototype.create3(footman)) //couldn't a user do this??
        endmethod
    endstruct

See, it's like no work when I deal with spawning... ....

Well, I'm going to sleep now ^_-. I'll think about it while I'm sleeping kk and we'll see what I come up with for this framework.

I dare you all to try and make a framework for a spawning map with Spawn... it's almost too easy... makes you feel like what you're making is worthless ><.

And then when I try to make it easy to add custom features, Spawn already does all of that, so it's like what do I do?? o_O.



Ok, rather than controlling Spawn via this framework, I decided that it would be better to have an intermediary system control Spawn and have this framework interface with it. In this way, the game can function in any way. These libraries on top of spawns would be useful in any map and by just changing out one library for another, the entire map's spawning concept can be changed in an instant.

There are too many styles for spawning. I will be making 3. I am curious to see if anyone else wants to join in and make some ^_-.

Concept 1- Spawn Points (was originally going to do this for the footmen wars framework but I then though, what if people want an original style??)
-Bases have abilities and an inventory. The inventory has 2 open slots. When an ability is clicked, it adds 2 items each with charges. The one to the right is the current amount of spawns the base has for that type of spawn. The one to the left is the current active spawns. In this way, detrimental effects and spawns can be added and removed to bases thereby disabling certain spawns for a period of time, or something like that.

The base's first page will be abilities that link it to regular spawns and detrimental effects. Detrimental effects will contain things like spawns added by enemies and what not.

Concept 2- Trainers (this was another very interesting concept in which trainers move from base to base and train people. Similar to spawn points except that the points are very specific rather than general and the points have levels. Useful for a more complex game).

Rather than having an ability page, base's are treated more like training grounds. You can upgrade how many trainers a base can contain, the equipment, and the capacity of trainees. Trainers are units that move from base to base. There will still be a page of abilities that show trainers similar to spawn points, but it will show different information about them and have different functions (rather than selling back spawn points you make a trainer leave).

Trainers are much more dynamic and much more powerful, but much less arcade style. In a game like footmen wars, where it's more arcade style, spawn points would be a better option. In a mass strategy game like Risk, trainers would probably be a better option.

Concept 3- Class (the classic footmen wars concept. Easy and straight to the point)
Classic footmen wars.



Ok, so since I decided to have another system handle spawning altogether and only have this one handle footmen wars in general, I have another version. And if you notice, I'm using a different layout for versions now (v1.2 means version 1 number 2).

I'll probably keep in version 1 for awhile. I fixed up the random engine, it works rather nicely. Default is 50% chance to advance where it gets 100% harder per tier, which seems like a good setting to me for 4 tiers. If you add more tiers and what not, you know diversify, you might want to tweak it a bit, or it'll be near impossible to go beyond tier 4 : O. Or, you could just have one tier.

Other new noticeable things are working fog. All team and global fog works. If you look, you'll notice spawning via GUI. I'm not plugging Spawn into it until v1.3 (version 1 revision 3) is done. Why? v.01b not only has some flaws (it works, but I don't like flaws), but it's also for 1.24 only.

Other things to note is a revision to the hero function section. Now you can define whatever you want, or just the hero type for each thingie. 8191 hero instance limit (as if you'll ever hit it). You can look at the tier 4 hero for an example on how I used that stuff.

What else? The areas were cleaned up a lot and look much nicer. All events work. The gold is *untested* as it wasn't working properly when I tested it with some people, but I'm 75% positive that it works now.

This is another pre-release as i'm not comfortable with this revision. Most of version 1 will probably just be betas and testing and tryouts, but yea.

Take a look at the new layout and tell me what you think : ).

Oh, and there are some things in this you can't really edit at the moment because this is a pre-release and I just wanted to "put" stuff in and make it work like magic : P. I will open up these areas, but uhm... like usual, you don't have to look at any of the actual code. All you have to look at are the areas : ).

Also, Ftmn handles 0 spawning, so you can really plug whatever you like into it. I'll probably keep it managing teams and what not, maybe dif players per team, and as for the random thing in there... I'm probably going to take it out and make it into a utility as it is "quite" nice for random fun.

Oh yes, a new feature made it into the random utility that makes it less likely for the same thing to pop up twice : ). I'll probably make it keep a history and as it fades out it'll regenerate it's chances to pop up again in random mode and probably make it so that the more often it pops up the less likely it is to pop up again. Like usual, I'll open this up for everyone to play with when I get around to it. Right now it's just set at 30%.

The random utility will be set up to work with anything and will include a nice "easy" to use interface where you can set up different random thingies. I suspect it will most likely be used in random character picking =).

Again, tiers don't have to be used, but if you're into the super omg secret almost impossible to get heroes, you could use them, or if you want different tiers of items or something with gambling, or maybe an entire loot system or dungeon system. Who knows, all I know is it turned out fantastic : ).

Because I am being a little bit lazy about it as this is a pre-release, I'm just releasing the map I'm building it inside of like before.

This can use patch 1.23 or 1.23b+ (delete the GetHandleId() function in Mfn at the very top for 1.23b+).

 

Attachments

  • FTMN v.01a CN 1 Pre-Release.w3x
    330.6 KB · Views: 62
  • Footmen Frenzy Chaos v.02b.w3x
    218.7 KB · Views: 66
Last edited:
Level 31
Joined
Jul 10, 2007
Messages
6,306
mmmm.... i don't think you get what I'm saying..

talking about when people pull off crap like this-

  • Spawn Footmen
    • Events
      • Time - Every 6.00 seconds of game time
    • Conditions
    • Actions
      • Player Group - Pick every player in (All players) and do (Actions)
        • Loop - Actions
          • -------- Barracks -> Footman --------
          • If (((Region centered at ((Picked player) start location) with size (384.00, 384.00)) contains (Random unit from (Units owned by (Picked player) of type Barracks))) Equal to True) then do (Unit - Create 1 Footman for (Picked player) at ((Picked player) start location) facing Default building facing degrees) else do (Do nothing)
now imagine 20 of those.


Next, imagine a defeat trigger that checks every second and is about 200 lines long

now imagine one that selects listens to every unit on the map :) o)

another one that goes every few seconds and selects all units on the map

etc, etc...

What I'm doing is creating timers that don't go through all of those units, rather they might just go thru one, meaning huge performance boost.. :\, well, not huge, but still : P.

Oh well : D, guess what! It's almost read!!! I added in clone methods, transfer methods, methods for this, methods for that >: O.
 
Last edited:
Level 11
Joined
Nov 4, 2007
Messages
337
This is too special, too.
This can be the core of a footman map you made, but people
will not use this system to make footies.
Really, I don't try to get all the code of MY maps approved.
Why do you?

Huge performance boost?
Guy, you have no idea.
Single timer ==> worse, pointless.
It is not a bit of performance boost.
It's slower.
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
but it allows for each timer to be manipulated individually -.-, and makes it so that timers aren't going when there is nothing there.. oi, lol, and because timers aren't going when there is nothing there, that's what I call a performance boost ; ).

Also, it allows you to get the triggering base (the base who has the timer) : ).

And this isn't the core of a footmen wars map I made... I'm building it inside of one similar to footmen frenzy 3.81.

Anyhow, I will be having some updates today I think on bases, and I'll probably be taking that stuff out of this framework and putting it into a system that this framework will be using.

I'll also be adding stuff for researching (createResearchEvent, destroyResearchEvent, addResearch). This is so, if people want, they can easily attach research abilities to a specific base. Let's say you want one that adds a new floor to the interior of a base?

Oh, that reminds me, I'll also be working on base interiors, and trust me, that'll be very cool ; ).


I am also working on documentation for everything at the moment, so yea... and finally, with JassNewGen 1.5c out and patch 1.23b around the corner, I'll be updating a lot of the stuff in MFN and FTMN : o.
Everything will be faster, easier to use, cooler, etc. I'll also keep working at making the user areas as clean and easy to use/understand as possible. I believe MFN is about as good as it can get, but FTMN still needs a lot of work.

Nobody really seems excited about this, but oh well, if anyone wants me to add in some other features, just let me know : ).

Oh yes, other interface changes include the removal of the unit type for base struct (you no longer have to specify that, it automatically retrieves it, doesn't matter what it is -.-).

In short, it'll now work like this-
Spawns (the actual spawn and all the stuff with it)
Bases (a group of spawns, upgrades, research stuff, and other settings)

However, this is not the final design. With interiors being worked on for bases, this layout might change : o.
 
Last edited:
Level 7
Joined
Dec 3, 2006
Messages
339
Bugs/Needs fixing things so far:
-Upgrading to Necropolis(ghouls) doesn't have a human building switch upgrade.
-Glaives, Aboms, and most of the other tier 4 spawns didn't work and many tier 3 spawns didn't work.
-When testing the map also theres no wisp to test to see if heroes work or not.
-Testing also resulted in blue and teals towers still spawned which would be just feed.

This is interesting though. I can definately see it could make map making a lot easier and more uniform. :grin:
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
pre-release

If you like the looks of this framework, check out its upcoming core (for when it is rewritten) at:
http://www.hiveworkshop.com/forums/submissions-414/vjass-system-spawn-133304/ (current release: v.01a with bugs etc, upcoming is v.01b within the next few days, please feel free to read -News 3- and post comments on what you think should be worked on before I release it. FTMN (footmen wars framework) will be running off of it in the rewrite).

-Upgrading to Necropolis(ghouls) doesn't have a human building switch upgrade.
Didn't test that far, just did a lot of the basic coding. Did you check the ini areas? I might have made some mistakes : ).

-Glaives, Aboms, and most of the other tier 4 spawns didn't work and many tier 3 spawns didn't work.

Same thing : p.

-When testing the map also there's no wisp to test to see if heroes work or not.
Haven't really worked on hero selection yet. If you read, this is being rewritten for some of the SPAWN rewrites ; ).

Don't worry, v.01b of SPAWN will be released soon, meaning CN 20 of this shall be released : O.

v.01b of SPAWN will still not have VGN features, I think that won't make it into SPAWN until v.01c, but you can def do a lot more with it.

Yes, FTMN is getting a "major" rewrite : ). The rewrite is also a lot better ^_^

I am happy you enjoyed the pre-release* of my framework though : ).


Real fast, tell me what you guys want-
Do you want me to work on documentation for SPAWN v.01b after it is finished?
Do you want me to work on FTMN rewrite after SPAWN v.01b is finished?
Do you want me to work on VGN after SPAWN v.01b so I can work on SPAWN v.01c?
Do you want me to write documentation on VGN after I get it finished and then do SPAWN v.01c etc??
Do you want me to update documentation on MFN?

Keep in mind that there will be an update to FTMN for new features in SPAWN v.01c when v.01c is finished

I have a lot to do : D. What do you want me to get out there first?

Also, documentation for SPAWN is so far estimated at over 74 pages... keep that in mind... it was 74 after I added quite a few things, and since then I've added quite a few more new things, so it is probably around 90 pages. I have probably 55 pages done.

MFN Documentation update will be 2-3 pages

Each page = pure XHTML (estimate 100-500+ lines per page)

VGN has a lot to be worked on, and to get SPAWN's new features going on, there would be a lot of work. Fully documenting all of it will probably be another 30 pages for SPAWN and 20-25 pages for VGN. Keep in mind that these pages take longer to write than a third of a page to a book : |.

Pick one : D. If I get some help, you could pick more, but since I'm solo... I gotta write a few hundred pages of docs and make a bundle of stuff o_O. I Shall Endure!!! fuahahahah *goes crazy*
 
Last edited:
Level 7
Joined
Dec 3, 2006
Messages
339
I'd say finish Spawn .01b then update this so it's basically a standalone footmen map. Cause this would be the major advertisement for the MFN and Spawn i'm sure. Also it would make modding of footmen maps so much cooler and easier. Then post what you have so far for Spawn documentation.

And I'm not sure what VGN is??
 
Level 7
Joined
Dec 3, 2006
Messages
339
Hmm well VGN being a part of Spawn seems kind of strange to me why not make it a seperate library? It would be strange to just make it only pertain to buildings since it's able to create virtual grids or objects for pretty much anything. Although VGN could have some virtual grids/objects that are more pertaining to building names like floors, roofs etc.
 
Level 31
Joined
Jul 10, 2007
Messages
6,306
VGN isn't part of SPAWN... it's a utility that SPAWN would be using once completed.

Works like this-

SPAWN v.01a and v.01b requirements-
MFN v.0r CN 24? or something like that

SPAWN v.01c requirements-
1. MFN v.01r CN 24 or w/e
2. VGN v.01a CN 1

SPAWN would be using VGN's features to do its cool stuff


Also, if you notice, I keep saying I'm rewriting FTMN. FTMN is not going to have SPAWN inside of it, it's going to require SPAWN to operate : ). This means a lot of code will be taken out of FTMN as SPAWN already has it : P. It will simply be using SPAWN : D.

I hope I'm clear now


Oh yea, and v.01b is getting such a slew of new features every single day, I might have to push back its release a bit o-o... Spawn ownership tracking, base ownership tracking, lending and borrowing spawns, etc, etc, and etc O_O.

I've added probably 30-40 methods and functions and various new variables... so yea : O. It's becoming quite the powerful system >: D, but I keep envisioning the most awesome Footmen Wars map and rewrite of FTMN that can be done with it : O. It is just....

stealing spawns
removing spawns
spawn caps
spawn times based on w/e u want
can manipulate spawns however (any type of event, any type of handle spawn, attached to any type of handle base and loads**** of manipulation commands from transfers to mimics to clones to trades to stealing to etc and etc with full ownership tracking enabled to return spawns to their rightful owners if desired).

My gosh... just imagine what u can do O_O.

I was thinking of stuff like this so far-
Mages guild (enhances their spawns and their team's and removes from other spawns among other things)
Thieves Guild (steal spawns, a unit goes to a base, steals a spawn (on the unit) and carries it back to their base and puts it in, can be stolen back etc, and if the unit dies it's returned to original base)
Rare Spawns (the more other types of spawns you have, the large the spawn time on these)
Traitor Spawn (given by certain races to other bases as a crippling spawn. Each one increasing spawn time or w/e by 30% (slower spawns)).
Negligent Cook (decreases one spawn's count at the base it's spawning at by 1)
Terrifying Totem (decreases 3 random enemy spawns by 1 for 10 seconds every 10 seconds)
Irresponsible Leader (decreases all spawns at the base it's spawning at by 1)\
Warcaller (enhances spawn time by 30% (lower spawn time))
Legendary Hero (increase all spawns at the base it's spawning at by 1)
Altar of Heroes (increases all spawns for a team by 1)
Altar of the Moon (decrease spawn time of all spawns for a team by 50%)

Just some of the ideas having to do with "spawns" that can be done easily with this stuff : O.

These actual units wouldn't be in FTMN as it is a framework, not a library. However, the features mentioned here would be easy to do in FTMN (stealing spawns, increasing and decreasing spawns, etc)

Oh, and that reminds me.. I do need a hero system for FTMN rewrite.... lol... calling it HERON, but shh
 
Top