Announcement

Collapse
No announcement yet.

FreezeGUTS [v073b]

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    FreezeGUTS [v073b]

    FreezeGUTS is a team based gametype where players get frozen instead of getting killed. Frozen players can not move anymore and must spectate the game until they are thawed. Frozen team players are slowly melting by their own until full health is gained back. Team players can speed up the melting process by standing next to the frozen team players sharing body heat. You can also initiate a self thawing process using adrenaline if you got enough of it. The goal is to freeze all players of the opposing team.

    Beta-Notes

    FreezeGUTS is still in beta. There are several known issues which will be removed with a later release (hopefully). But there are for sure also unknown bugs. If you encounter any problem or if you have any suggestion for optimization, please, let me know.


    Features:
    • Team Radar:
      The team radar shows the location of your team players. It does NOT show the position of the enemy!!

      Legend:
      • red dots: living team mates
      • blue dots: frozen team mates
      • normal size dots: team mate is on the same level
      • bigger dots: team mate is above you
      • smaller dots : team mate is below you

    • Thawing Behaviour:
      A frozen player starts with zero health. In order to get unfrozen he needs 100% health back. Each second of melting 2 health points are added to a frozen player (configurable). Each second a team player stands beside and thaws a frozen player 20 health points are added (configurable). That means, it would take about 5 seconds max to thaw a frozen team player. If you have enough adrenaline you can speed up thawing by initiating self-healing. It is possible to kick frozen players out of the world so that the really die and would not come back to the current round!
    • Thawing AI:
      The chance that a bot AI decides to thaw a team player depends on the bot skill but will be at least 30% if a frozen team player is in range. The chance increases with the number of frozen team players.
      A bot will try to thaw the nearest frozen team player if he does not get thawed already. The decision is based on radar visibility. So a bot might decide to thaw a team player even if there is no direct path or line-of-sight. If so, the bot will try to find a path to the frozen team player. But on the way he might also decide to thaw somebody else. So don't get your hopes up to much ... :-)
      If vehicles are involved a bot might even come faster to the rescue. Advancing a frozen team player by vehicle the bot will leave the vehicle as soon as he is close enough for thawing.
      Bots can also perform self-healing using adrenaline as users can do.
    • Player Table HUD:
      On the left side of the HUD player tables show the frozen state of your team players and of the opposing team. For your own team the current health state is shown. The table order differs for frozen and alive players:
      • alive players are sorted by score
      • frozen players are sorted by health

      So the topmost frozen player in the list will be the next one thawed. The table size expands with the number of players (max. 16 per team) to give a overview of the team frozen states.

    • Scoring System:
      Scoring system which gives extra score points for full thawing and also score points when killing some frozen player by dodging him over the edge...
      • normal kill : 2 points(team kill: -2; team self kill: -1)
      • frozen kill : 1 point(dodging frozen pawn over the edge; team kill: -1)
      • long thaw : 2 points (thawing for more than 3 seconds in a row)
      • short thaw : 1 point
      • suicide : -1 point (jumping over the edge all by your own)

    • Round and Match Overtime:
      During overtime health, shield, adrenaline, and weapon pickups are removed. Health is periodically drained from alive players. In round overtime, frozen players can be thawed but they will not gain full healtz anymore. In match overtime frozen player do not melt and can not be thawn anymore. Default overtime options:
      • round time limit is set to 3 minutes
      • health drain cycle is set to 5 seconds
      • each drain cycle there is a 80% chance health gets drained from a living player
      • 5 health points are drained per drain cycle

    • Configuration Options:
      FreezeGUTS offers a bunch of configuration options for melting and thawing behaviour, overtime health drain, vehicle support, self-inflicting friendy fire option, and bot thawing behaviour.
      • Thawing: Amount of melting and thawing health per cycle, additional amount of health based on number of current thawers, and bot directive for maximum simultaneour thawers for the same frozen team player.
      • FriendlyFire: Normal FriendlyFireScale and in combination with self-damaging friendly fire.
      • Overtime: round time limit, overtime health drain cycle and amount, chance to skip health drain cycle.
      • Vehicles: Enable or disable vehicles in VCTF- or ONS-Maps.
      • Instagib: Enables Instagib mutator

      All these options can be configured in the 'FreezeGUTS.ini' file and also through the in-game GUI. As usual command line parameters do override Ini-file options.
      [/COLOR]

    • Misc:
      • Support for FriendlyFire with self-damaging option: the instigator will take damage when shooting on a team player and might run the risk to freeze himself. Self-damaging friendly fire does also apply to vehicles ... so you better do not overrun your own team players
      • Spectator HUD displays radar, freeze player table and thawing status. It shows your own health and adrenaline state.
      • Team colored icy texture and liquid shader on frozen pawns.
      • Team based relocation of all players at round start (from Nico de Vries BTFA4UT3).
      • When frozen you will hear some louder thawing sound shortly before fully thawn. You will hear that sound even if you are spectating other players.
      • Support for DM, CTF, DOM, ONS, and VCTF maps. Without the game type specific objects and objectives. Vehicles are fully supported
      • Console messages are in team color. So you can quickly see if an own team player or a player from the opposing team is back in the game. Messages for freezing, killing, and thawing are displayed.


    Credits
    • L7: FreezeGUTS is based on "FreezeTag_B2" from L7 who introduced this gametype to UT2004. Many thanks to L7 who give the source code for the community for free use.

    • Nico de Vries: Nico developed the BTFA Freeze mod for UT3. His version of the freeze gametype introduced a fully new and fresh gameplay. I tried to adapt some of his gameplay ideas and concepts to gain a similar feeling for UT2004. I am very grateful that Nico gave the permission to adapt his concepts and use his code.

    • Borysses: Many thanks to borysses for his icy texture which is used within FreezeGUTS for frozen players.

    • Sly: for bug finding and his great recommendation for adding support for VCTF and ONS maps with vehicles ... I really like that :-)

    • Epic: Credits go to Epic for the game UT2004 itself and for providing the means for game enhancements to the community.

    • Tester: Last but not least credits go to the GUTS online testers falvis, nemesis, bingobongo and stalker! Hopefully we got most of the bugs out :-)



    ScreenShots











    Download:

    #2
    Hmmm, that's interesting. I don't know about L7's work, but I know Battlemode (Nico de Vries) got a lot of inspiration from Freon for BTFA.


    Perhaps if you have time, it would be interesting to list the differences between FreezeGUTS and Freon, so that those who are already familiar with the latter can quickly see the advantages/disadvantages of each.

    I have only played Freon a few times but I am pretty sure there is not self-thawing available.

    Less sure, I don't think there is a team radar either. And I believe in Freon you can still thaw in overtime.

    Comment


      #3
      Originally posted by lilalurl View Post
      Hmmm, that's interesting. I don't know about L7's work, but I know Battlemode (Nico de Vries) got a lot of inspiration from Freon for BTFA.


      Perhaps if you have time, it would be interesting to list the differences between FreezeGUTS and Freon, so that those who are already familiar with the latter can quickly see the advantages/disadvantages of each.

      I have only played Freon a few times but I am pretty sure there is not self-thawing available.

      Less sure, I don't think there is a team radar either. And I believe in Freon you can still thaw in overtime.
      Seems that I have created some kind of a time loop ... because Freon is afaik also based on L7's work :-)

      You are right about the differences compared to Freon but there are also some more: FreezeGUTS has got the team radar, the player table HUD (from BTFA4UT3), the spectator mode, another thawing method, and some other tiny things like for example more sound effects.

      Freon on the other hand came with a new gaming philosophie and had definitely the better frozen textures. But its spectator mode always confused me.

      If you give me some time I will try to sort out the equals and differences. In the mean time, I would be glad if you gave FreezeGUTS a chance :-)

      Comment


        #4
        The 3SPN-README-3141.txt mentions L7, and also used some of the code for starters: "Special thanks to L7 for writing the first freezetag mod for UT2kx."

        3SPN Freon comparison:
        There is a radar function, but it's an indicator of direction. The Invasion radar used here looks cooler. The Freon radar has no range limit, though. Not sure about this one, not tested yet.

        There is no self-thawing boost in Freon, however, if you use the speed combo, you can thaw a frozen ally faster. / You can also thaw a frozen ally faster while in a group.

        You can thaw in overtime. Planned an option for this while on the 4SPN thing, but ideas are worthless unless implemented. 4SPN was based on OLTeams (4-team gametype) and 3SPN Freon which was based on 3SPN TAM which was inspired by L7's FreezeTag.


        Have a look at the 4SPN derivative (2-4 Team version of 3SPN Freon). You may find some corrections that apply to L7's FreezeTag (which I don't know the source code of). There was one crucial bug that ignored the RestartPlayer (IIRC) behaviour; that is, the game may kill the controller in the RestartPlayer function--maybe it decided there were too many bots, for instance. This would break the for-next loop, which had to be turned into a while loop instead, with caching the next controller value before passing it to RestartPlayer; a basic software pattern when dealing with linked lists. A nice catch by Piglet. Also, I believe Shambler fixed the "can't fire" bug at the start of a round (in PostNetBeginPlay?).
        http://gitorious.org/4spn/4spn/trees/master


        BTW: Have you had the sliding pawn problem? x) Frozen pawns would sometimes slide along in a fixed direction, but only client-side. The server had the right position.

        Comment


          #5
          A few comments before being able to test this mod:
          • Even if you don't like non-IG gameplay, if you create a new gametype you should make sure it works without any mutators.
          • I like the way the ice textures reflect team colors in those screenshots.
          • There have been doubts the GPL is applicable to UT2004 mods, because they are also subject to the UT2004 EULA. Also I lost count on the Readme.txt files that went into my UT2004 base folder already. You should really use a mod-specific name and potentially put it into the Help folder, where it belongs.

          Comment


            #6
            Nice to see my source code is still in use.

            Originally posted by Wormbo View Post
            There have been doubts the GPL is applicable to UT2004 mods, because they are also subject to the UT2004 EULA.
            This is a bit of a grey area but it seems to me Epic cannot forbid people to make their source code open source.

            Also his readme mentions: "This program also contains parts that are originally derived from Epic which are Copyright 1998-2007 Epic Games, Inc. All Rights Reserved. Those parts of the program is covered by the Epic license and not by the GPL."

            Comment


              #7
              This is certainly an ambitious effort, Donaldo. Sounds really cool though (pun intended).
              Good Luck!!..... and lemme no if I can ever help - I'm a sound freak

              Sergeant Todd

              Q. Why would Epic have a problem with this??? There are more extensive mods around.

              Comment


                #8
                Some GPL vs UScript considerations. The mod under GPL might be seen as a "library" being used by the (non-GPL) game, which would likely be against the GPL.

                Yes, Epic cannot forbid making mods open source (in fact, I think they like the idea), but generally mods are created under the terms of the UT2004 EULA (e.g. "must only work on UT2004 retail", etc.). Source stripping is allowed just as releasing the source under some Open Source license is. But the license must still be compatible to the UT2004 EULA, because that's what is originally in effect when you create/compile the source. There are enough other licenses available that prevent your code being used in closed source projects, without being too restrictive to potentially make the mod illegal to compile in UT2004.

                Comment


                  #9
                  Originally posted by rejecht View Post
                  Have a look at the 4SPN derivative (2-4 Team version of 3SPN Freon). You may find some corrections that apply to L7's FreezeTag (which I don't know the source code of). There was one crucial bug that ignored the RestartPlayer (IIRC) behaviour; that is, the game may kill the controller in the RestartPlayer function--maybe it decided there were too many bots, for instance. This would break the for-next loop, which had to be turned into a while loop instead, with caching the next controller value before passing it to RestartPlayer; a basic software pattern when dealing with linked lists. A nice catch by Piglet. Also, I believe Shambler fixed the "can't fire" bug at the start of a round (in PostNetBeginPlay?).
                  http://gitorious.org/4spn/4spn/trees/master


                  BTW: Have you had the sliding pawn problem? x) Frozen pawns would sometimes slide along in a fixed direction, but only client-side. The server had the right position.
                  Sliding pawns and can't fire bugs still exist in cuddles freon. Also there's a bug where a player joins and on next round starting the players start with health and ammo as they were at the end of the previous round, and you can't thaw teammates. The player joining triggers it.

                  The 4spn freon was fun to do, but didn't work well enough as a gametype to be worth the offort to complete it...but we did find and fix a load of bugs on the way. Shame we couldn't have a working code-base which did 2/3/4 teams as well as cuddles plays for 2.

                  Unfortunately I'm still too rubbish at uscript to work out how to fix the remaining bugs. I have too many kids to have the time to ever learn what I need to!

                  Comment


                    #10
                    Some things I have to mention/ask:
                    There is fall damage after round end: If the round is ending and you are falling (countdown: 3 2 1 for example) and you respawn it's as if you would crash on the floor. You still have the speed and suddenly you are respawning and crash on the floor. This can freeze you instantly or deal heavy damage. When you play regular FreezeGUTS it can be a serious issue, however, in Instagib (I love to play this with Instagib since it reminds me a lot of Quake 3 Arena's custom gametype which was quite similar (freezing with Railguns, melting others and boosting yourself by shooting on the floor)) it's no big deal, except for the freezing aspect.

                    A mutator for this gametype that boosts you when you aim and shoot on the ground would be pretty cool. Would you consider this?

                    Any chance to make the bots "push" frozen enemies into their death? They just freeze them and melt others. Also, sometimes their moves are not very clever. Sometimes, instead of trying to melt the bunch of players on their team they just try to shoot the enemy player which is actually leaving, barely visible and didn't see this bot. It would be good if the bots would have some "priorities" depending on the situation.

                    This gametype is really great! I have much fun playing it. You did a good job there.

                    PS: I could imagine that this gametype would rock on CTF maps and maybe even ONS maps (with or without vehicles)! DM maps are often too small for 32 players in this gametype without ending in a spamfest imo

                    EDIT: How about making the "automatic melting" in itself and the amount of hp that gets restored optional?
                    And when friendly fire is enabled you can use a mean exploit: You can kill your teammate if he has low hp to freeze him and melt him so that his hp are full again. This is not that bad since it could even stay but an option to make friendly fire kill teammates instantly (not frozen) would be better!

                    another late EDIT: Xan has 3 skins in use and thus the 3rd skin (the cables) are not "frozen". It's a shame many people, even Epic, forgot about the third skin because (just to name an example) when Xan dies the first two skins become the green one and fade but the cable skin remains the same and this looks just weird

                    Comment


                      #11
                      Originally posted by Piglet View Post
                      can't fire bugs still exist in cuddles freon.
                      I used another approach in a private 3SPN build. I intercepted SetPlayerDefaults and changed Pawn.bNoWeaponFiring depending on whether the countdown had passed. Try that in Cuddles. You could try that by adding SetPlayerDefaults in Team_GameBase and just check whether the round has started, and set Pawn.bNoWeaponFiring accordingly. The symptom that bNoWeaponFiring is true is when a client thinks it fires (simulated) and plays sound effects etc, but the server doesn't allow it, and nothing more happens. (My private 3SPN build ended up being a twisted sibling of 3SPNv3141--too many changes to merge with the original, all with its own particular bugs. Would be cool to continue with 3SPN, though I haven't really played since about Christmas. )

                      Comment


                        #12
                        Thanks for the comparison. I will try to summarize those points in a list.

                        Originally posted by rejecht View Post
                        3SPN Freon comparison:
                        There is a radar function, but it's an indicator of direction. The Invasion radar used here looks cooler. The Freon radar has no range limit, though. Not sure about this one, not tested yet.
                        The radar in FreezGUTS does have a range limit, so you only see players on the radar which are within a specific distance.

                        Originally posted by rejecht View Post
                        There is no self-thawing boost in Freon, however, if you use the speed combo, you can thaw a frozen ally faster. / You can also thaw a frozen ally faster while in a group.
                        In FreezeGUTS the speed combo does not have that effect. Also the thawing speed is not depending on the number of touching players.

                        Originally posted by rejecht View Post
                        Have a look at the 4SPN derivative (2-4 Team version of 3SPN Freon). You may find some corrections that apply to L7's FreezeTag (which I don't know the source code of).
                        Thanks for the hint ... shame on me I wasn't aware of a 4SPN derivate of freon. I will have a to try it and perhaps extend the comparison ...

                        Originally posted by rejecht View Post
                        There was one crucial bug that ignored the RestartPlayer (IIRC) behaviour; that is, the game may kill the controller in the RestartPlayer function--maybe it decided there were too many bots, for instance. This would break the for-next loop, which had to be turned into a while loop instead, with caching the next controller value before passing it to RestartPlayer; a basic software pattern when dealing with linked lists. A nice catch by Piglet.
                        Sometimes players did get stuck in spectator mode ... definitely removed this bug. But after some other changes I ended up with a similar problem ... perhaps it's caused by the loop ... will check this out. Thanks for the hint.

                        Originally posted by rejecht View Post
                        Also, I believe Shambler fixed the "can't fire" bug at the start of a round (in PostNetBeginPlay?).
                        I don't remember having this bug ... but FreezeGUTS does in general not prevent firing in the first seconds at round start as Freon does ...

                        Originally posted by rejecht View Post
                        BTW: Have you had the sliding pawn problem? x) Frozen pawns would sometimes slide along in a fixed direction, but only client-side. The server had the right position.
                        I did have this problem. As far as I remember this had something to do with entering the Pawn's frozen state but without getting the 'landed' event where the velocity of the Pawn was set to zero. I added a condition that's set the velocity to zero when not in falling state.

                        Comment


                          #13
                          Originally posted by Wormbo View Post
                          There have been doubts the GPL is applicable to UT2004 mods, because they are also subject to the UT2004 EULA.
                          I definitely do not want to step on someone's toes or cause any trouble with Epic. It is my understanding of the GPLv3 that a UT2004 Mod can be seen as an aggregate of separate and independent works that are not combined with UT2004 to form a larger program. So the Mod can have a GPL licence (with the mentioned exceptions) and UT2004 the EULA and it would be compatible... I might be mistaken ...

                          Originally posted by Wormbo View Post
                          Even if you don't like non-IG gameplay, if you create a new gametype you should make sure it works without any mutators.
                          Absolutely right, the mod should be tested also without the Instagib mutator before the final release ... I thought it kinda part of the mentioned beta status not to have tested it yet

                          Originally posted by Wormbo View Post
                          Also I lost count on the Readme.txt files that went into my UT2004 base folder already. You should really use a mod-specific name and potentially put it into the Help folder, where it belongs.
                          Point taken and noted for the next package.

                          Comment


                            #14
                            Originally posted by BattleMode View Post
                            Nice to see my source code is still in use.
                            Of course! And your mods are too

                            Comment


                              #15
                              Originally posted by Sergeant Todd View Post
                              This is certainly an ambitious effort, Donaldo. Sounds really cool though (pun intended).
                              Good Luck!!..... and lemme no if I can ever help - I'm a sound freak
                              Thanks, I'm glad to hear this Often sounds are taken for granted without appreciating the effort to make it sound right

                              Comment

                              Working...
                              X