Official Soldat Forums
Official Content => Soldat Developer Log => Topic started by: helloer on September 10, 2018, 06:15:18 am
-
Hi guys, devlogs are back after a "short" break over summer.
New developers
Two new developers have joined the dev team:
- Savage
- thestoreyofbook
Greet them warmly :).
Changes in the net code
After returning to the devteam we had to decide which branch of code to use for the next version of the game, we had many options but the most sensible choice was the branch called `feature/netcode` which had everything that was done for 1.8 version and as the name of the branch itself indicates: changes in the code responsible for communication between the server and the client. Here are some of the most important changes:
The first change was to split into pieces a gigantic file called Net.pas which had 13 thousand lines of code into several smaller and organized units, thanks to which the work on the code became more readable.
The second change was to remove the old code which had accumulated in the code for years and was not used at all. After this change, more than 6 thousand lines of code were removed while maintaining the same functionality of the game. A lot of recent exploits were caused because of that code.
The third change was to replace the libraries responsible for sending and receiving UDP packets. Soldat used different network libraries for the server (Indy10) and for the client (NMUDP) - spaghetti code at its finest. With quick research, we have found a better library made specifically for use in games called ENet(http://enet.bespin.org/). ENet is a library that offers a number of functionalities that have been missing in soldat for years, including:
- Connection management
ENet creates a connection between the server and the player that we can supervise and easily control.
- Reliability & Sequencing
Sometimes important packets get lost or come in a different order. ENet solves this problem for us by making sure that packet always gets to the destination in the right order.
... and a lot more.
These changes will not result directly in the hit registration improvements as many would like to see but certainly, they bring us closer to the goal of "fixing" the netcode.
Commits (01.06-10.09)
283f4991 helloer Added new FileServer unit
9615393b helloer Added cl_lang cvar for picking the language of the game
251430e3 helloer Fixed cmd action interrupting chat mode
4303f324 helloer Added back sound for weather effects
6ae3d19d helloer Fixed initialization of array in StringToArray
2848d2ca helloer Fixed joinurl command
283bb514 helloer Fixed TNewPlayer.SkinColor using wrong property
feef11e1 helloer Added sv_teamcolors cvar
b0bcb5cf Savage Fixed player head and chain style typos for cvars
75a8c4e8 helloer Added AutoUpdater unit
32855f50 helloer Extract game configs from the game archive on first run
94e7c080 helloer Fixed radio messages
11020cc8 helloer Renamed Player.Color1,Color2 to ShirtColor,PantsColor
ce360cc0 helloer Fixed wrong netchannel for ServerSendVoteOn/Off
e5eb0068 helloer Removed compat request/unaccepted packet types
62b280c3 helloer Compile stb as 32-bit by default
08f70235 Savage Fixed alpha channel for WorldText
3b4a7943 helloer Added rpath for the server
0873c685 helloer Improved packet handling
a26cc18a helloer Fixed server not accepting passwords
02160173 helloer Added rpath for linux builds
593d152a helloer Fixed team menu for deathmatch mode
d5f38198 helloer Added game assets to macOS bundling script
5ea061fc helloer Fixed wrong check of sv_friendlyfire in HealthHit
46e570a2 helloer Fixed admin commands not working
dba2e9a5 helloer Removed stb step in the client Makefile
1e1443a5 helloer Fixed compilation for macOS
7d45251f thestoreybook revert Makefile
507b116b thestoreybook update to use TBooleanCvar
b7dcf55e thestoreybook adding cvars specific to what menu items show during a ranked matchmaking game
e7565048 thestoreybook dont push this change
80e4e9d5 thestoreybook Add player team cvar, useful for matchmaking to bypass team select menu
7c0f62b6 urraka Merged all explosion hit detection code into one function and modified it to use hitpoint modifiers
5448654f urraka Fixed bullet-hitpoints intersection check
8491069d urraka Fixed chat input issues and added +cmd action binding
04a568b1 helloer Add camswitch and camswitchflag commands
0799df6d urraka Updated to latest dglOpenGL and fixed some type errors
c29c143d urraka Add msaa support
30b45802 helloer Add missing handler for actionsnap
b149145c urraka Added multi texture support on the rendering side
f496b28d helloer Revert "Hide warning Call to subroutine marked as inline is not inlined"
4df538fc helloer Use UserDirectory for the basic folder structure
25869322 helloer Create the basic folder structure on startup
6ab78c00 helloer Show warning and exit when the fonts cannot be found
0d90805b helloer Hide warning Call to subroutine marked as inline is not inlined
a35b5f33 helloer Add inc command (increments cvar value by the delta)
9a000d91 helloer add r_zoom cvar (only for spectators)
8b6cd81f helloer Fix bad prefix for bot messages
9efeb06c helloer Fix compiling on windows
ceb1ab47 helloer Add openal headers
55cdc0e0 helloer Add 3rdparty libs
Some important changes from commit list:
- Urraka added multitexture support on the rendering side but we still need to support it in the map editor so I encourage you to help Nedi who is working on polybobin - https://forums.soldat.pl/index.php?topic=45191.0
- Urraka fixed bullet-hitpoints intersection check - no more leg shots registered as headshots [Alphaguy].
- Urraka merged all explosion hit detection code into one function and modified it to use hitpoint modifiers - this will allow us to better balance nades [nades]
- Savage committed his first commit to Soldat repository: "Fixed alpha channel for WorldText". 8)
- Thestoreybook committed his first commit to Soldat repository: "Add player team cvar, useful for matchmaking to bypass team select menu". 8)
- I have added auto updater support for the nonsteam version (still WIP).
- I have started working on new map downloads implementation that will be HTTP-based.
Steam thing
Our store page on Steam has been approved and will be soon made public as "Coming Soon" title, we still don't have an exact date of release but it will certainly take place this year.
Alpha builds
The first phase of the alpha tests will be soon available to everyone. We already have working CI for soldat so all we need to do is to push out those builds to the public.
Apology
I apologize for the lack of devlogs in such a long time and for less than expected progress on the game. I can assure you that this will not happen again.
(https://cdn.discordapp.com/attachments/234733999879094272/450975674144915466/SoldatForumsDiscordLogoTrans.png) (http://discord.gg/soldat)
http://discord.gg/soldat (http://discord.gg/soldat)
-
I can't understand half of what is said but you guys are doing amazing work it seems. ;D
Most importantlty not only keeping soldat alive but making it way better.
I'm looking forward the release !
Congrats to the whole team and wishing you good luck for what's happening next. :D
-
Pls, share 1.8 WM with us already!! xd
-
L 8) L BOIS
GOGO
Thx for all the Devs who's making soldat great again
Also Welcome to dev team Savage And Thestoreyofbook we trust in you guys.
GGWP
I didn't understand a single word above but I know it's all okay in your hands 8)
-
Pls, share 1.8 WM with us already!! xd
Yes, the game should become playable as in 1.5 the barret was not so devious that it was possible to fly and hit by pressing the lying position and other automatic weapons be very balanced... DAR DAR KILL THIS WEAPONMOD
-
Pls, share 1.8 WM with us already!! xd
This is the WM that has been tested and used on #gather for the last few weeeks:
;╔╦╗┬ ┬┌─┐ ╔═╗┌─┐┌─┐┬┌─┐┬┌─┐┬ ╔═╗┌─┐┬ ┌┬┐┌─┐┌┬┐ ╦ ╦┌─┐┌─┐┌─┐┌─┐┌┐┌┌─┐ ╔╦╗┌─┐┌┬┐
; ║ ├─┤├┤ ║ ║├┤ ├┤ ││ │├─┤│ ╚═╗│ ││ ││├─┤ │ ║║║├┤ ├─┤├─┘│ ││││└─┐ ║║║│ │ ││
; ╩ ┴ ┴└─┘ ╚═╝└ └ ┴└─┘┴┴ ┴┴─┘ ╚═╝└─┘┴─┘─┴┘┴ ┴ ┴ ╚╩╝└─┘┴ ┴┴ └─┘┘└┘└─┘ ╩ ╩└─┘─┴┘
; https://www.soldat.pl - official website
; http://gather.soldat.pl - competetive matchmaking community on Discord
; http://sctfl.net - Soldat Capture the Flag League
; https://forums.soldat.pl - official Soldat forums
; File updated on: 30/06/2018 - by darDar
;
; Changelog from 1.7.1 to 1.8 (Steam release):
; work in progress...
;Codename: Papergun
; Notes:
; 1. Some settings for non-standard weapons won't work for example: reload time on stationary gun or grenade for obvious reasons
; 2. Soldat uses ticks for measuring time. 60 ticks = 1 second
; 3. e.g. 90 ticks = 1.5 second, 10 ticks = 0.16666667 second
; 4. FireInterval, ReloadTime, Bink and StartUpTime are measured in ticks
; Damage Calculation:
; The 'Damage' value does NOT represent the actual damage dealt by a bullet. The formula for calculating the final damage dealt by a bullet is the result of: [Damage] * [CurrentSpeed] * [HitboxModifier]
; Note that your personal speed may inherit speed to the bullet.
; CurrentSpeed = Speed + PlayerSpeed * Inherited Velocity
; Fireinterval:
; The rate of fire is measured in ticks. The lower the interval, the faster the weapon fires.
; Ammo:
; Defines the size of a full clip.
; Reloadtime:
; The reloadtime is measured in ticks. e.g. ReloadTime=360 will result in a 6 seconds reload period.
; Speed:
; The speed is the initial base speed of a bullet. speed affects damage and does also influence the 'self boost' amount for Spas-12 and XM214 Minigun.
; A fired bullet is affected by the velocity of the player (YourSpeed).
; A fired bullet loses its speed over time, which will then also result in less damage.
; Bullet Styles:
; 1 = Plain bullet
; 2 = Frag grenade
; 3 = Shotgun pellets
; 4 = M79 grenade
; 5 = Flame
; 6 = Punch
; 7 = Arrow
; 8 = Flame arrow
; 11 = Knife/Chainsaw
; 12 = LAW missile
; 13 = Knife
; 14 = M2 bullet
; Example: changing the value 'BulletStyle=4' to 'BulletStyle=12' at the [M79] config, will result in LAW missiles being fired.
; StartUpTime:
; The StartUpTime is measured in ticks. It is currently being used at the XM214 Minigun and the Barret.
; e.g. 'StartUpTime=120 will result in 2 seconds of a delay.
; Bink:
; If the player is hit by a bullet, his aim is not accurate for this amount of time, the mouse cursor in-game will then enlarge as an indicator.
; Negative values mean self-bink. The lower the number, the more inaccurate the weapon will get after firing.
; MovementAcc:
; Defines how much the aim is getting affected by the players movement, the higher the value, the more you have to be still to aim properly. Using the jet results in the aim to be affected the most.
; BulletSpread:
; Defines how tight or loose the bullets will group when standing still.
; Recoil:
; Defines the amount that the cursor will fling up when fired.
; Push:
; Defines the weight of a bullet, factors together with its velocity to push away the receiving player and objects (flags and kits) but NOT yourself (self boost).
; InheritedVelocity:
; In percent how much velocity the bullet inherits from the player. This will result in higher / lower damage values, depending of the direction you move to and in which speed you move.
; - Due to the divisions, older weapon.ini files will not work as intended, until you fix the values.
; Use the following tool to convert old 'weapons.ini' files https://github.com/Soldat/WMConverter
; For help please visit:
; https://forums.soldat.pl
; http://gather.soldat.pl/discord/ (Discord)
[Info]
Name=Default mod
Version=1.8
[Desert Eagles]
Damage=1.51
FireInterval=24
Ammo=7
ReloadTime=85
Speed=19
BulletStyle=1
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0.15
Recoil=0
Push=0.0176
InheritedVelocity=0.5
ModifierHead=1.13
ModifierChest=0.98
ModifierLegs=0.98
[HK MP5]
Damage=1.01
FireInterval=6
Ammo=30
ReloadTime=105
Speed=18.9
BulletStyle=1
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0.14
Recoil=0
Push=0.0112
InheritedVelocity=0.5
ModifierHead=1.0
ModifierChest=0.85
ModifierLegs=0.80
[Ak-74]
Damage=0.945
FireInterval=10
Ammo=35
ReloadTime=150
Speed=25.6
BulletStyle=1
StartUpTime=0
Bink=-11
MovementAcc=0.006
BulletSpread=0.011
Recoil=0
Push=0.01376
InheritedVelocity=0.5
ModifierHead=1.0
ModifierChest=0.85
ModifierLegs=0.80
[Steyr AUG]
Damage=0.704
FireInterval=7
Ammo=30
ReloadTime=150
Speed=26
BulletStyle=1
StartUpTime=0
Bink=0
MovementAcc=0.001
BulletSpread=0.075
Recoil=0
Push=0.0084
InheritedVelocity=0.5
ModifierHead=1.0
ModifierChest=0.85
ModifierLegs=0.80
[Spas-12]
Damage=1.22
FireInterval=32
Ammo=7
ReloadTime=175
Speed=14
BulletStyle=3
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0.8
Recoil=0
Push=0.0188
InheritedVelocity=0.5
ModifierHead=0.88
ModifierChest=0.82
ModifierLegs=0.82
[Ruger 77]
Damage=2.49
FireInterval=51
Ammo=4
ReloadTime=90
Speed=33
BulletStyle=1
StartUpTime=0
Bink=0
MovementAcc=0.0275
BulletSpread=0
Recoil=0
Push=0.012
InheritedVelocity=0.5
ModifierHead=1.1
ModifierChest=1.028
ModifierLegs=1.028
[M79]
Damage=1550
FireInterval=6
Ammo=1
ReloadTime=178
Speed=10.7
BulletStyle=4
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.036
InheritedVelocity=0.5
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
[Barret M82A1]
Damage=4.45
FireInterval=210
Ammo=5
ReloadTime=250
Speed=55
BulletStyle=1
StartUpTime=19
Bink=65
MovementAcc=0.05
BulletSpread=0
Recoil=0
Push=0.018
InheritedVelocity=0.5
ModifierHead=1
ModifierChest=1
ModifierLegs=1
[FN Minimi]
Damage=0.85
FireInterval=9
Ammo=50
ReloadTime=240
Speed=27
BulletStyle=1
StartUpTime=0
Bink=0
MovementAcc=0.013
BulletSpread=0.0613
Recoil=0
Push=0.0128
InheritedVelocity=0.5
ModifierHead=1.0
ModifierChest=0.85
ModifierLegs=0.8
[XM214 Minigun]
Damage=0.58265
FireInterval=6
Ammo=80
ReloadTime=400
Speed=28
BulletStyle=1
StartUpTime=0
Bink=13
MovementAcc=0.0372
BulletSpread=0.0232
Recoil=1
Push=0.013
InheritedVelocity=0.5
ModifierHead=0.95
ModifierChest=0.92
ModifierLegs=0.88
[USSOCOM]
Damage=1.49
FireInterval=11
Ammo=14
ReloadTime=72
Speed=18
BulletStyle=1
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.02
InheritedVelocity=0.5
ModifierHead=1
ModifierChest=0.85
ModifierLegs=0.8
[Combat Knife]
Damage=2150
FireInterval=6
Ammo=1
ReloadTime=3
Speed=6
BulletStyle=11
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.12
InheritedVelocity=0
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
[Chainsaw]
Damage=50
FireInterval=2
Ammo=120
ReloadTime=180
Speed=8
BulletStyle=11
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.0028
InheritedVelocity=0
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
[M72 LAW]
Damage=1550
FireInterval=6
Ammo=1
ReloadTime=300
Speed=23
BulletStyle=12
StartUpTime=13
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.028
InheritedVelocity=0.5
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
[Punch]
Damage=330
FireInterval=6
Ammo=1
ReloadTime=3
Speed=5
BulletStyle=6
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0
InheritedVelocity=0
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
[Grenade]
Damage=1500
FireInterval=80
Ammo=1
ReloadTime=20
Speed=5
BulletStyle=2
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0
InheritedVelocity=1
ModifierHead=1
ModifierChest=1
ModifierLegs=1
[Stationary Gun]
Damage=1.8
FireInterval=10
Ammo=100
ReloadTime=366
Speed=36
BulletStyle=14
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.0088
InheritedVelocity=0
ModifierHead=1.1
ModifierChest=0.95
ModifierLegs=0.85
[Flamer]
Damage=19
FireInterval=6
Ammo=200
ReloadTime=5
Speed=10.5
BulletStyle=5
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.016
InheritedVelocity=0.5
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
[Rambo Bow]
Damage=12
FireInterval=10
Ammo=1
ReloadTime=25
Speed=21
BulletStyle=7
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0.0148
InheritedVelocity=0.5
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
[Flamed Arrows]
Damage=8
FireInterval=10
Ammo=1
ReloadTime=39
Speed=18
BulletStyle=8
StartUpTime=0
Bink=0
MovementAcc=0
BulletSpread=0
Recoil=0
Push=0
InheritedVelocity=0.5
ModifierHead=1.15
ModifierChest=1
ModifierLegs=0.9
Pls, share 1.8 WM with us already!! xd
Yes, the game should become playable as in 1.5 the barret was not so devious that it was possible to fly and hit by pressing the lying position and other automatic weapons be very balanced... DAR DAR KILL THIS WEAPONMOD
Not sure what you refer to.
You shold jointo discord and test the latest wm in #gather and give apropriate feedback.
-
- I have started working on new map downloads implementation that will be HTTP-based.
Oh, could this be Node on the server side? :D
I can assure you that this will not happen again.
it will certainly take place this year.
That's a lot of statements I did not expect to hear. Hopefully true.
-
Bink=0
Bink=0
Bink=-11
Bink=0
Bink=0
Bink=0
Bink=0
Bink=65
Bink=0
Bink=13
Bink=0
Bink=0
Bink=0
Bink=0
Bink=0
Bink=0
Bink=0
Bink=0
Bink=0
Bink=0
Guess which weapon!
Yep, you guessed it; Barret still fucked for competitive play
Use some common sense when it comes to bink ffs either all weapons should have it or none should have it; and if it's the former, it should be proportional across all weapons based on select relevant criteria
And if you're asking "what criteria?" you have no business being anywhere near the WM
-
Oh, WM Drama... Who saw that coming?
Good job and thanks for the update. ♥
-
Hell yeah <3
-
Keep it going guys and good luck :).
-
Looks like things are coming along well. I was a bit worried at first since there were no devlogs on the forum for months, but lots of code commits shown in soldat discord painted a completely different picture. Great job, keep it up! :)
-
Nice!
-
Great job! Its finally great to see some real content here.Keep it up guys.
-
Steam thing
Our store page on Steam has been approved and will be soon made public as "Coming Soon" title, we still don't have an exact date of release but it will certainly take place this year.
Seriously this year?
-
What is dead may never die, but rises again harder and stronger!
-
The amount of bugfixes, implementations and etc you have done in such a small amount of time especially in summer where everyone has other things to do is amazing. You have no need to apologize and yet you still did it, thank you very much for your efforts, not only helloer ofc, everyone in the dev team.
Bring back our beloved game, long live Soldat!
P.S: 80e4e9d5 thestoreybook Add player team cvar, useful for matchmaking to bypass team select menu
b7dcf55e thestoreybook adding cvars specific to what menu items show during a ranked matchmaking game
Is that what I think it is? Its like a dream come true
-
Is that what I think it is? Its like a dream come true
Yes, matchmaking talks were already at this summer and kind person thestoreybook assured us that this can be done in some*short* time.
Yes, this is matchmaking :)
I still wonder at people posting here about lack of progress when there is a lot more things done(helloer mentioned only important ones, I think a lot of small fixes, commits aren't listed for a reason to demonstrate how much the guys have actually done in short time). It's not too hard to use Discord, boys ;)
Anyway, happy to see that helloer found some time to communicate with us and deliver, even though anyone with proper English skills and will to post could do that with an approval of devs, of course.
Not because I don't like the devlogs :)
Thank you and the others for your work and looking forward to new progress reports.
P.S.: funny thing, right after I posted a reply about the stuff, new devlog appeared. Perhaps I should do it more often to satisfy forum folks :P
-
I like that you have focused on the netcode, especially that part of it. Thumbs up
-
With matchmaking like in other games, this will be a great success :D soldat still alive!!!