Official Content > Soldat Developer Log

Devlog update (2018-09-10) Back after a break

(1/4) > >>

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( 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)

--- Code: ---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

--- End code ---

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 -

- 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.


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.

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

Ygrek Starmagedon:
Pls, share 1.8 WM with us already!! xd

Thx for all the Devs who's making soldat great again
Also Welcome to dev team Savage And Thestoreyofbook we trust in you guys.

I didn't understand a single word above but I know it's all okay in your hands  8)


--- Quote from: Ygrek Starmagedon on September 10, 2018, 11:35:42 am ---Pls, share 1.8 WM with us already!! xd

--- End quote ---

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


[0] Message Index

[#] Next page

Go to full version