1 (edited by fisted 2015-10-21 00:57:43)

Topic: [MOD] OpenFNG (updated and maintained again)

Hi again.

As OpenFNG seems to be actually played, and as it has evolved quite a bit, since its first launch, now a more thorough explanation of the game, rationale behind what is different to original fng, and goals for the future.

-------------------SNIP-------------------
Stuff/links for the impatient
Problems/issues/discussion: https://github.com/fstd/teeworlds/issues
Latest source code: https://github.com/fstd/teeworlds/tree/openfng
Standard maps: https://github.com/fstd/teeworlds/tree/ … /data/maps
Entities: https://github.com/fstd/teeworlds/tree/ … tities.png
Win32 server binary: https://github.com/fstd/teeworlds/blob/ … p?raw=true
Win32 client binary (optional): https://github.com/fstd/teeworlds/blob/ … p?raw=true
Linux 32bit server binary: https://github.com/fstd/teeworlds/blob/ … z?raw=true
Linux 64bit server binary: https://github.com/fstd/teeworlds/blob/ … z?raw=true
Config: https://github.com/fstd/teeworlds/blob/ … penfng.cfg
It's recommended to compile from source instead of using precompiled binaries!
-------------------SNAP-------------------

Abstract
OpenFNG is (obviously) a TW modification, which started as a free clone of the fng mod which was pretty popular in the 0.5 days.
It has seen life due to apparently nobody bothering to port fng to 0.6.
The reason for not porting, but rewriting from scratch was mostly that fng appeard to be written in python, with some c++/python glue. Not very much what i like.
Due to being rewritten from scratch, you will notice it behaves not always exactly as original fng did, usually with good reason;)

Platform support
OpenFNG should always properly build on unixlike systems, and i will try to keep it compilable for windows too.
In particular, i can only guarantee it to build properly on FreeBSD, however this usually means it builds on linux (and probably osx) as well.
I will occasionally ask people to see whether the windows build is broken, and if so fix it + update win32 binaries.
Whenever i break the build on some particular platform, let me know on IRC or on https://github.com/fstd/teeworlds/issues. Thanks.


Gameplay
Gameplay is quite simple to explain.
OpenFNG is a red/blue teamgame, where the only weapons usually in use (and given on spawn) are hammer and laser. Other weapons *may* be also provided, but are not required for gameplay.
Neither of the weapons will deal any damage.
The laser rifle is special in that it will freeze an enemy who is hit by a laser beam, usually for 10 seconds. A frozen tee is unable to move/hook/shoot/hammer and usually has to wait out the 10 seconds, but this can be shortened with a teammate hammering a frozen tee. This will subtract some time from the timespan the teammate is frozen.
The hammer is special in that it is slightly more powerful as in vanilla, except for when hammering frozen teammates (to melt them), where it will inflict much less force in order to make it easier to melt teammates (as this usually requires 2-3 hammer hits).

Said this about weapons, the main objective of the game is to gain teamscore, and this is mainly done by sacrificing frozen enemies in shrines.
There are three kinds of shrines, one which allows sacrification of any frozen tee, and red/blue shrines where only the team of matching color is allowed to sacrifice enemies in.

Usually (though adjustable) the scoring will look like this:
Sacrificing an enemy: +3 player score / +10 team score
Freezing an enemy: +1 player score /  +1 team score
Melting a teammate: +1 player score / +0 team score

(Note that you cannot suicide or switch teams/spectate while being frozen, and forcefully leaving the game while being frozen might lead to an automatic ban for 1 minute or so, to prevent people from exploiting this unfair way to circumvent being sacrificed)

Standard maps

I so far have turned three vanilla standard maps, ctf3-5 into similar openfng maps (openfng3-5), credits obviously go to whoever made those awesome ctf maps and graphics.

Due to some compatibility entities, the mod also directly supports original fng maps.
If someone has nice maps which will also do as standard maps, let me know please.

Entities
while you in theory could use fng entities, it is strongly to use the openfng entities for newly designed/transformed maps.
they can be found here: https://github.com/fstd/teeworlds/blob/ … tities.png

There are two new entities, which are merely markers. they indicate the positions of static teamscore displays, see openfng3.map for an example. there can only be max 3 teamscore displays per team on a map, however, putting only 1 per team is recommended.

Binaries
it is recommended to compile the mod from source.
However, for convenience, a win32 and a linux binary have been added to the git repo.
These do not necessarily always reflect the latest version. Wherever possible, build from source.

Client
OpenFNG can of course be played with the vanilla client.

However, if you want client-side freeze prediction (i.e. to get rid of prediction errors when being frozen), you can build the client target in order to get a correctly predicting client. In any other aspect, that client will always reflect the latest vanilla client. There is also a win32 client binary provided for moar convenience.

Thunderbird
I did not add the thunderbird as that feature was random and shitty (IMO).
I however see that some special feature would be nice, so people are invited to join a discussion on https://github.com/fstd/teeworlds/issues in order to talk about what that should be.
It should not be inherently random, as this violates a golden rule of teeworlds.
(I thought about maybe introducing something which gets triggered when an entire team is frozen)

Other differences to fng
Not implemented for being redundant: armor and 'clock' ticks indicating melting progress - the damage indicators already do
Implemented for being missing in fng: also individual score for sacrificing (as a consequence of the adjustability of the scoring system)
Not implemented for being shitty: full-automatic hammer will definitely not be a feature of OpenFNG
Generalized: broadcasts can also be triggered for melting or freezing, not only for sacrificing
Generalized: fully adjustable score/teamscore gains for freeze/melt/sacrifice
Added for being cute: greyfox's emotional tees as many know and love from ddrace
Added for looking cool and giving hints on scooring: plasma text displays when scoring, and also static score displays
Generalized: now in theory other weapons could be placed on maps, if sv_suppress_entities is set to zero. one would have unlimited ammo and no weapon would deal damage. probably not useful for good fng play, although some might wanna test it
Sanitized: the game is not longer written in python.
...actually i haven't played fng that much to know about every difference. probably quite some moar.

Future
Some features are planned. Always see  https://github.com/fstd/teeworlds/issues for whats going on.
For instance, there will be a punishment for sacrificing in a shrine of the enemy team, because obviously the gods will not be pleased with it;)
Furthermore, some replacement for the thunderbird will probably be introduced


Server configuration
An example, reference configuration is provided on github: https://github.com/fstd/teeworlds/blob/ … penfng.cfg

Here, for completeness:

# OpenFNG - Reference configuration.
#
# Except for sv_name, sv_port and sv_rcon_password, this configuration
# reflects the one used on the OpenFNG Reference Server
#
# It should provide a good configuration to start with.

# --------- Part 1: Vanilla Settings ---------

# <OpenFNG> i do NOT want to be called 'Open FreezeNG'. My name is OpenFNG.
sv_name "Yet Another OpenFNG Server"
sv_port 8309

# make sure to not pass around this one
sv_rcon_password "mysecretpassword"

# full-action server
sv_register 1
sv_max_clients 16
sv_spectator_slots 0

# move inactive ppl to spec after 5 minutes
sv_inactivekick 0
sv_inactivekick_time 5

# round ends at teamscore 700 or when one hour passed, whichever comes first
sv_timelimit 60
sv_scorelimit 700

# map cycles through our standard maps starting with openfng5
sv_map "openfng5"
sv_maprotation "openfng4 openfng3 openfng5"
sv_rounds_per_map 1

# disallow kickvote as ppl tend to abuse it
sv_vote_kick 0

#add some votes
add_vote "map openfng3" "sv_map openfng3"
add_vote "map openfng4" "sv_map openfng4"
add_vote "map openfng5" "sv_map openfng5"
add_vote "1 round per map" "sv_rounds_per_map 1"
add_vote "2 round per map" "sv_rounds_per_map 2"
add_vote "3 round per map" "sv_rounds_per_map 3"




# --------- Part 2: (Complete set of) OpenFNG-introduced settings ---------


# ----- Basic Settings -----


# freeze for 10 seconds when hit by laz0r
tune laser_damage 10

# hammering a frozen teammate takes 3 seconds from his remaining freeze time
sv_hammer_melt 3

# freezing an enemy will give +1 player- and +1 teamscore
# sacrificing will give +3 to the sacrificing player and +10 to his team
# sacrificing in a shrine of your enemy's color will take -5 / -1 from p/t
# melting a frozen teammate by hammer will give +1, but no teamscore
sv_freeze_score 1
sv_freeze_teamscore 1
sv_sacr_score 3
sv_sacr_teamscore 5
sv_wrong_sacr_score -5
sv_wrong_sacr_teamscore -2
sv_right_sacr_score 5
sv_right_sacr_teamscore 10
sv_melt_score 1
sv_melt_teamscore 0

# display plasma texts indicating player score gains when freezing, melting
# by hammer and sacrificing
sv_sacr_loltext 1
sv_freeze_loltext 1
sv_melt_loltext 1

# display a broadcast only when sacrificing
sv_sacr_broadcast 1
sv_freeze_broadcast 0
sv_melt_broadcast 0

# play global ctf flag capture sound when someone is sacrificed.
# (0 would be no sound whereas 2 would be a local sound)
sv_sacr_sound 1

# make a tee 'bleed' when frozen
sv_bleed_on_freeze 1

# allow shooting through frozen tees and teammates
sv_laser_skip_frozen 1 
sv_laser_skip_teammates 1 

# display 'all your base' to indicate the game is coming to an end, as soon
# as there is only 30 score left to gain for a team in order to win 
sv_all_your_base 30
sv_all_your_base_msg "ALL YOUR BASE ARE BELONG TO US"

# freeze for 6 seconds when sacrificing in wrong colored shrine
sv_punish_wrong_sacr 6



# ----- Advanced Settings -----
# Don't change these unless you know what you are doing.


# after having molten up yourself, be unfreezable for 20 ticks (around 0.4s)
# this gives the same as the auto-jump in original fng, but without
# enforcing a potentially counterproductive jump.
sv_melt_safeticks 20

# for enemies and unfrozen teammates, adjust hammer power to 320% in x-
# and 120% of vanillas power in y-direction so that we get something like 
# a fnglike hammer.
sv_hammer_scale_x 320
sv_hammer_scale_y 120

# for frozen buddies, as we don't want to kick them away too far while
# melting them, we scale down the hammer power to 50% of vanilla strength
sv_melt_hammer_scale_x 50
sv_melt_hammer_scale_y 50

# allow one emoticon every 2 seconds (do not set to 0)
sv_emoticon_delay 2

# make hooking count as interaction only when hooking for longer than 15
# ticks. this avoids noobs scoring by spamming their hooks down a shrine
sv_hook_register_delay 15

# forcefully prevent any entities (like weapons, armor, flags) from spawning
# a good map should not need this setting to be enabled. still it can't hurt
sv_suppress_entities 1

# allow broadcasts to be sent (for instance for scoring)
# default broadcast lifespan is 3 seconds
sv_broadcasts 1
sv_broadcast_time 3

# these two control the size of loltexts, 14 seems to be a good value 
sv_loltext_hspace 14
sv_loltext_vspace 14

# auto-mute on chat spam.
# chat penalty is 250 per message (-1 on each tick)
# if it exceeds 1000, we mute the spammer for 60 seconds
sv_chat_penalty 250
sv_chat_threshold 1000
sv_spam_mute_duration 60

# teh cute!
sv_emotional_tees 1

# ban for 30 seconds then someone leaves while being frozen
sv_punish_ragequit 30

# for now we leave the freeze hammer off:
sv_hammer_freeze 0

# start vote on map extending when there is only 60 seconds left to play, or
# 50 score left to gain, whichever comes first
sv_endvote_time 60
sv_endvote_score 50

# don't change these at all.
# no, really. don't.
# they are adjustable due to their origin as general purpose feature
# branches, however changing these variables would defeat fnglike gameplay.
# they are provided along along with their defaults just for completeness
sv_blood_interval 1 #don't touch me
sv_damage 0 # don't touch me
sv_unlimited_ammo 1 # don't touch me
sv_ninja 0 # don't touch me
sv_def_broadcast "" #don't touch me


# end of configuration

Reference Server

An official reference server is running on 5.231.62.161:8309 which will always reflect the latest version and use the reference configuration file (modulo map).


Have a lot of fun,

fstd







------------ original opening post ----------------

hi everyone,

i was asked whether i could port fng to 0.6, because the source was missing or closed or nobody could be fucked to port it, whatever, you certainly know (i actually don't play fng).
however as i had a lot of required stuff readily available in certain branches, i agreed and here is the result, which i call OpenFNG
(i did not port fng but wrote a clone from scratch)

https://github.com/fstd/teeworlds/tree/openfng

i have launched a demonstrational server, just search the serverlist for OpenFNG.

I am well aware of that certain things might be different than in original FNG, well, for any suggestions etc please open issues at https://github.com/fstd/teeworlds/issues

Settings:

  laser_damage (tunable) - how many seconds to freeze when hit by laser (adjust by 'tune laser_damage X')

  sv_hammer_melt  -  how many seconds to subtract from freezetime, when hammering frozen teammates

scoring:
  sv_freeze_score  -  player score for freezing
  sv_freeze_teamscore  -  team score for freezing
  sv_sacr_score  -  player score for sacrificing
  sv_sacr_teamscore   -  team score for sacrificing
  sv_melt_score  -  player score for melting
  sv_melt_teamscore  -  team score for melting
  sv_suppress_entities  -  for non fng maps, disables spawning of pickups (default: 1 (on))

since the fng hammer behaves quite different, there are these two settings
which adjust its power. they default to something which is more or less fnglike:
  sv_hammer_scale_x  -  linearly scale up hammer x power, percentage
  sv_hammer_scale_y   -  linearly scale up hammer y power, percentage


well, thats it, i hope it is of some use

as said, suggestions on github or in #OpenFNG on irc.quakenet.org

fisted

Edit: forgot to mention, as a side effect of how the underlying freeze mechanism is implemented, you can connect with both vanilla and openfng-client (build client_release).
the openfng client does not really differ from the upstream (vanilla) client currently, except that it correctly predicts movement even when frozen.

so, if you don't like the prediction error on vanilla client, just build the openfng client, it will continuously be merged with upstream so that it always resembles the latest vanilla state + the correct prediction as mentioned

2015-01-14 Edit: updated links to account for my username change on github
2015-01-17 Edit: finally got around to fix the broken-in-2012 openfng branch. this means that now there's no reason to use openfng_fixed_0_6 anymore
2015-01-17 Edit: repo changes, binaries are in openfng-bin. openfng5_Beat.map has been added because it's pretty nice and widely used -- if whoever made it doesn't like that, contact me on IRC.

2

Re: [MOD] OpenFNG (updated and maintained again)

I will definitely check it out and report back!! Thank you so much!!

3

Re: [MOD] OpenFNG (updated and maintained again)

I wanted to add fng in my modpack but it's not needed anymore wink
Good Work!

4

Re: [MOD] OpenFNG (updated and maintained again)

Thank you so much for porting 1 of my favorite mods smile smile smile

Once in a century...

5

Re: [MOD] OpenFNG (updated and maintained again)

thanks for the positive feedback, i have opened a few issues on https://github.com/fisted/teeworlds/issues so that ppl can see whats going on.

also, due to my lack of fng experience, i don't know what maps are popular/official etc, but i'd like to push a few de-facto standard fng maps to my repo. could anyone be so nice as to collect good versions of the most popular/liked say 4 or 5 maps, and then report back on irc or github or in here? would be awesome.

regards, fisted

6

Re: [MOD] OpenFNG (updated and maintained again)

fng1, mooshakes, darkforest those ones I love but other than that idk. I have a bug though, the sounds of freezing and throwing somebody in the score needs to be implemented

-SALAD

7 (edited by HipHopBlond 2011-05-17 23:58:58)

Re: [MOD] OpenFNG (updated and maintained again)

I hope we're allowed to compile it since it's open, right?

Well, i get these errors while compiling for windows:

src/game/server/gamemodes/mod.cpp(20) : error C2010: '.' : unexpected in macro f
ormal parameter list
src/game/server/gamemodes/mod.cpp(122) : error C2065: '__func__' : undeclared id
entifier
src/game/server/gamemodes/mod.cpp(126) : error C2065: '__func__' : undeclared id
entifier
src/game/server/gamemodes/mod.cpp(126) : error C2059: syntax error : ')'
bam: 'objs/game/server/gamemodes/mod.obj' error 2

EDIT: Excuse my matters, I forgot to thank you for porting the n1 mod!!! [+]

8 (edited by RoboT.ee 2011-05-18 02:37:28)

Re: [MOD] OpenFNG (updated and maintained again)

IMO. I was hoping that with the new fng, there would be new maps that emphasize different stratagies than the 0.5.2 fng (meet at middle and duke it out).

Maybe its just me but the only map I "like" is the original map (from ctf5). Maybe there could be more maps with better gameplay or more emphasis on movement (fng has almost none other than people who hit and run).

Nice job on the remake though smile

9

Re: [MOD] OpenFNG (updated and maintained again)

There is nothing stopping people from making new and different maps. In fact, I am trying to put together a new fng map at the moment that I hope turns out well.

10

Re: [MOD] OpenFNG (updated and maintained again)

Hip-Hop_BLOND wrote:

I hope we're allowed to compile it since it's open, right?

Well, i get these errors while compiling for windows:

src/game/server/gamemodes/mod.cpp(20) : error C2010: '.' : unexpected in macro f
ormal parameter list
src/game/server/gamemodes/mod.cpp(122) : error C2065: '__func__' : undeclared id
entifier
src/game/server/gamemodes/mod.cpp(126) : error C2065: '__func__' : undeclared id
entifier
src/game/server/gamemodes/mod.cpp(126) : error C2059: syntax error : ')'
bam: 'objs/game/server/gamemodes/mod.obj' error 2

EDIT: Excuse my matters, I forgot to thank you for porting the n1 mod!!! [+]

thanks, and yeah windows wasn't supported from the beginning because i lack a windows machine to compile/test it.
however, XXLTomate has been so nice as to compile win32 binaries which i now have added to the git repository.
(Furthermore, it should now compile on windows)
I will always try to have it compile on windows, though i can not always guarantee it. Whenver i break the win32 or the linux build (actually i can only ensure it properly compiling on FreeBSD), please let me know in IRC or on github

PS: updated the head post with a more detailed description

11

Re: [MOD] OpenFNG (updated and maintained again)

Enjoy pure fng with this mod before aimbots for 0.6 came out=)

12 (edited by BotoX 2011-05-20 23:49:10)

Re: [MOD] OpenFNG (updated and maintained again)

Aimbots are allready out but not public wink
And i hope that things won't change...

Anyways great mod! [+1]

13

Re: [MOD] OpenFNG (updated and maintained again)

Guys I play on this mod. And my play isn't good (only my shoots good).
And I need a fake bot, an imitation bot. The bot that not move. With whom I can be played in the LAN.
What should I do?

14

Re: [MOD] OpenFNG (updated and maintained again)

Fighting a bot will never increase your skills considerably. What you need to do is just keep practicing by playing online, against humans.

15

Re: [MOD] OpenFNG (updated and maintained again)

I agreed. But I need it only to study how to hook. On Fng servers too many people that I don't have time for it.

16

Re: [MOD] OpenFNG (updated and maintained again)

Ask Shahan. He (and his clan [iPod])made "iDDRace" a DDRace modifications in which you can have inactive bots for you to manipulate.

Once in a century...

17

Re: [MOD] OpenFNG (updated and maintained again)

Guys I have a problem. For some reason I don't see my server in the LAN. But I can see it in Internet bookmark. Why?

18

Re: [MOD] OpenFNG (updated and maintained again)

AntonRich wrote:

Guys I have a problem. For some reason I don't see my server in the LAN. But I can see it in Internet bookmark. Why?

Is it really a homeserver? Look at his IP (bottom right).
Also, you mustn't use an IP out of the 8303-8310 range or it will not be detected by the client.

Not Luck, Just Magic.

19 (edited by AntonRich 2011-11-09 18:04:06)

Re: [MOD] OpenFNG (updated and maintained again)

Thanks Dune. I change ip range and it's help.

BTW, today I was testing to play on iDDrace. And on that server you can really play with an imitation bots. You need put "/d" into chat. And then you will have "dummy". It's a copy of yourself. But I don't know how to make iDDrace server with openfng5 map.

20 (edited by Broken 2011-11-09 20:39:24)

Re: [MOD] OpenFNG (updated and maintained again)

Anton, to practice hooking a dummy tee, you can either host a home fng server, or find an empty openfng online, then just open two Teeworlds, login with both, and use one of them as the dummy. This works well and it's how I learned.

21

Re: [MOD] OpenFNG (updated and maintained again)

Seems like problem is solved. And the solution is very simple : )))
Thanks Broken.

22

Re: [MOD] OpenFNG (updated and maintained again)

Broken wrote:

just open two Teeworlds, login with both, and use one of them as the dummy.

When I minimize my client the CPU usage gets higher and when I open a other instance of the client it moves ultra slow.

In 0.6(.1?) 1 client is max,at least for me.
In 0.5.2 I could run 2 clients without problems.

Once in a century...

23

Re: [MOD] OpenFNG (updated and maintained again)

fisted what command shoud be changed if throw my enemies on their own spikes. I mean I don't want be frozen when I throw blue tee on blue spikes.

24

Re: [MOD] OpenFNG (updated and maintained again)

DARK HUNTER wrote:
Broken wrote:

just open two Teeworlds, login with both, and use one of them as the dummy.

When I minimize my client the CPU usage gets higher and when I open a other instance of the client it moves ultra slow.

In 0.6(.1?) 1 client is max,at least for me.
In 0.5.2 I could run 2 clients without problems.

Try cl_cpu_throttle 1.

25 (edited by Broken 2011-11-11 21:03:54)

Re: [MOD] OpenFNG (updated and maintained again)

AntonRich wrote:

fisted what command shoud be changed if throw my enemies on their own spikes. I mean I don't want be frozen when I throw blue tee on blue spikes.

Anton, I use:

sv_sacr_score 0
sv_sacr_teamscore 10
sv_wrong_sacr_score 0
sv_wrong_sacr_teamscore 10
sv_right_sacr_score 0
sv_right_sacr_teamscore 10
sv_punish_wrong_sacr 0

This makes all shrines equal.