Releases: netpanzer/netpanzer
v0.9.1
v0.9.0
0.9.0 - "Fulvio"
0.9.0 brings a lot of changes over 0.8, and is the first release of NetPanzer since 2017. It is dedicated to our friend Fu who passed away in 2024,
and was completed with the help from Andy (andy5995), Jammy (Jammyjamjamman), and Phelipe (ph2708).
Fu did a lot of work toward the 0.9.x release. Before his passing he mentioned several things he wanted to see, like migrating to SDL2, support for TTF fonts, and so on. We made sure to incorporate these improvements in the release. I was the only person working with Fu since 2023, and I'm happy to maintain the game and servers.
0.9.x saw several new contributors as well, @andy5995 who did a ton of magic on the build system, and @Jammyjamjamman who made improvements to the Lua integration. @ph2708 helped with some artwork and testing, and has a group in Brazil that occasionally play the game.
New Features & Improvements
- Core: Migrated to SDL2 by @winrid
- Gameplay: Added Map: Arena Fut by @andy5995 in #111
- Gameplay: Proximity Audio by @winrid in #188
- Gameplay: New bot modes by @futes
- Gameplay: New 'Desert' tileset/mapstyle by @silvestre
- Gameplay: In the global destruct powerup (a red one), the unlucky player now loses all of his outposts too. by @futes
- Gameplay: New global unit powerups by @futes and artwork by @silvestre.
- Gameplay: New game modes: game mode 3 (objective AND frag limit) - you must have both to win; game mode 4 (frag limit OR time limit). by @futes
- Gameplay: New respawn type: respawtype = 2 (random alternative) - It's random but never 2 consecutive respawns in the same spot. by @futes
- UI: New fancy styling for units, selectable on connect or by hitting "u". by @futes
- UI: New map styles by re-coloring our only tileset: SummerDay (the original one), IcyWinter, Moonlight, Scorched and Martian. by @futes
- UI: New "mute" option to mute a player in chat. by @futes
- UI: Support for rendering TTF fonts! This was a major refactor. by @winrid
- UI: Blended dynamic-width font rendering & a fancy new font! by @winrid
- UI: Wrapped Text Support With Variable Speed Scrolling by @winrid in #230
- UI: Improved switching to fullscreen on modern operating systems by @winrid
- UI: Game Background and UI Updated by @winrid and @ph2708 in #98
- UI: Localization Support by @andy5995 in #155
- UI: Lua Scripting UI Support by @Jammyjamjamman in #200
- UI: Add "starting soon" message to winner screen by @andy5995 in #168
- UI: new extra top info bar with live ping stats to and from gameserver (toggle it with F7) by @futes
- UI: New "abandon" outpost options by @futes
- UI: fixed visualization of names in outposts (owners, outpost names, units in production etc). Now they are responsive based on string length by @futes
- UI: SHIFT + m now toggles a bigger map. by @futes
Bugs Fixed
- Gameplay: Mouse Movement Fixes (Jerky Movement etc) by @winrid in #121
- Gameplay: Fixing volume controls not affecting ambient sounds, explosions, etc. by @winrid in #266
- Gameplay: Fixed not being able to use arrow keys to navigate map if mouse is inside minimap.
- Gameplay: Bots now pick a random flag instead of a blank image.
- Gameplay: Pathfinding improvements to greatly reduce "node unreachable" messages from server. by @futes
- Gameplay: You might notice a slightly better reaction time for movements and shooting. by @futes
- UI: Potential crash when deleting/editing text in text input fields. by @andy5995
- UI: Fixes for a crash during resolution selection when list is too large to fit on screen.
- Core: Fixed crashing if one master server is not available when hosting a game. by @winrid
- Core: Fix Game Config Not Saving by @winrid in #86
- Core: Fixes server using player.name instead of server.name config for dedicated servers by @winrid in #139
- Core: Fixes Random Crash by @winrid in #187
Other Changes
- Gameplay: Deleted a timer in the input management - it could have been an advantage for those unfair player who use tools to bypass it... by @futes
- UI: Updated server list to hide old incompatible servers. It still shows newer incompatible servers to encourage upgrading. by @winrid
- UI: added icons in ranking TAB that show if player is human or bot (must add a captcha soon..) - also the 'mute' icons have been replaced. by @futes
- UI: Improved support for other languages than just English (more characters than just ASCII supported now). by @winrid
- Core: Fixed c++17 compatibility (errors, some warnings). Build targets c++17 now. by @winrid
- Core: Network layer improvements (fixed catching some exceptions by-value instead of by-ref, fixes some potential memory issues reported by valgrind). by @winrid
- Core: Added netpanzer.io to master server list. by @winrid
- Core: Memory leak fixes by @futes
- Server: Anti Cheat Improvements - see README for new setting. The
game.anticheatsetting has been replaced. by @winrid - Server: Added ability to disable interactive console to run server as daemon. by @winrid
- Server: Network scrambling is now default, if for some reason you want to deactivate it you can run the server in DEBUG mode (option -g) by @futes
- Server: New config: game.bots_allowed = false (or true) by @futes
- Server: New config: game.mapstyle = "[string]" by @futes
- Server: New config: game.gametype can now be also 3 (objective AND frag limit) or 4 (fraglimit OR timelimit) by @futes
- Build: Switching to the Meson build system. by @andy5995
- Build: Documentation improvements. by @andy5995 @winrid
- Build: Can now compile for MacOS by @andy5995
- Build: Can now build and run server from Docker by @andy5995
- Build: Introducing new "data dir" concept by @andy5995
- Build: Able to compile on windows with MingW by @winrid
v0.9.0-RC-8
What's Changed
- meson: use wraps and fallbacks for some dependencies by @andy5995 in #133
- Build(deps): Bump actions/checkout from 2 to 4 by @dependabot in #151
- Fix some shadow declarations and CodeQL warning by @andy5995 in #156
- Fix crashing at main menu when sanitize is enabled by @andy5995 in #157
- maint: Remove Lib/INIParser by @andy5995 in #158
- meson: Post release version bump to 0.9.0.07.555 by @andy5995 in #160
- CI: Edit trigger filters by @andy5995 in #154
- docs: Add WhatsApp and Instagram group by @andy5995 in #153
- Fixing Various Segfaults and Warnings by @winrid in #169
- Add "starting soon" message to winner screen by @andy5995 in #168
- Move data by @andy5995 in #170
- Implement localization by @andy5995 in #155
- Fixes Random Crash by @winrid in #187
- Adding Proximity Audio For Hits and Explosions, Fixes Variable Audio Broken by @winrid in #188
- CI: Copy filters to other 2 tasks (fix) by @andy5995 in #190
- Build(deps): Bump RafikFarhad/clang-format-github-action from 3 to 4 by @dependabot in #196
- maint: Patch netpanzer.desktop by @andy5995 in #195
- docs,scripts: Update for use of subprojects, fix data install by @andy5995 in #194
- Add pak tools to build system by @andy5995 in #198
- Make game_config cli option work as expected by @andy5995 in #201
- CI-AppImage: Build arm64 image by @andy5995 in #197
- tests: Enable on Windows by @andy5995 in #183
- nls: Disable on Windows by @andy5995 in #204
- maint: Fix some PHYSFS deprecations warnings by @andy5995 in #209
- maint: Narrow scope of cleanupThreshold by @andy5995 in #207
- tests: Add test for netpanzer when '--help' is used by @andy5995 in #208
- meson: Add option - build_tests by @andy5995 in #210
- Improving Right Mouse Movement + Removing Black Bars by @winrid in #203
- Support Variable Width Text in Top Buttons by @winrid in #214
- CI: Use filter template (yaml alias) for Cirrus by @andy5995 in #212
- appimage: Use linuxdeploy-build-helper-container (remove focal build-env) by @andy5995 in #202
- CI: Update image:tag for arm64 container in cirrus by @andy5995 in #219
- CI: Improvments, remove cache by @andy5995 in #221
- meson: Write the correct path to the data in config.h by @andy5995 in #220
- Docker server: Switch to GitHub container registry (ghcr.io) by @andy5995 in #222
- Fix Sanitizer Warnings in Netcode by @winrid in #223
- meson: Remove ogg and vorbis by @andy5995 in #224
- Start defining properties for menu in lua script by @Jammyjamjamman in #200
- Fix color by @Jammyjamjamman in #225
- meson: Use alpha chars in version number by @andy5995 in #226
- CI: Bump FreeBSD to 14.0 by @andy5995 in #227
- Make Text Smooth by @winrid in #228
- Add get_version.py by @andy5995 in #229
- Wrapped Text Support With Variable Speed Scrolling by @winrid in #230
- Fix OSX Build by @winrid in #234
- Update Credits by @winrid in #233
- Build(deps): Bump docker/build-push-action from 5 to 6 by @dependabot in #231
- CI: Replace deprecated macos with sonoma by @andy5995 in #236
- Set required versions for SDL2 and SDL2_ttf, add Ubuntu Focal test to CI by @andy5995 in #237
- Fix code scanning alert #36: Multiplication result converted to larger type by @andy5995 in #238
- Fix code scanning alert #9: Comparison of narrow type with wide type in loop condition by @andy5995 in #239
- nls: Mark more strings and add translations by @andy5995 in #193
- Server Crash Fixes & Sanitizer Warnings by @winrid in #241
- Fix code-scanning alerts (wrong type of arguments to formatting funct… by @andy5995 in #243
- Add cross-compiling support by @andy5995 in #244
- CI: Add Ubuntu 24.04 (Noble) by @andy5995 in #247
- docs: Update for docker by @andy5995 in #246
- meson: Install docs (closes #140) by @andy5995 in #248
- Fix code scanning alert no. 35: Multiplication result converted to larger type by @andy5995 in #242
- Adding Bounds Check for Heap Buffer Overflow by @winrid in #251
- CI: refactor matrix by @andy5995 in #249
- Add docs from meson install to Dockerfile (fix) by @andy5995 in #253
- Add coverity.yml by @andy5995 in #254
- appimage.yml: Use andy5995/linuxdeploy:v2-focal instead of '...:latest' by @andy5995 in #256
- CI: Fix coverity scan, use EMAIL by @andy5995 in #255
- maint: Fix some coverity warnings by @andy5995 in #259
- Add test for lto and extra Werror flags by @andy5995 in #258
- Remove unused docs from root directory by @andy5995 in #260
- CI: Bump FreeBSD to 14.1 by @andy5995 in #261
- Fix Bot Crash in Dev Env by @winrid in #263
- Fixing volume controls not affecting ambient sounds, explosions, etc. by @winrid in #266
- Fixes Bots Crashing - Always use physfs by @winrid in #268
New Contributors
- @dependabot made their first contribution in #151
- @Jammyjamjamman made their first contribution in #200
Full Changelog: 0.9.0-RC-7...0.9.0-RC-8
0.9.0-RC-7
This is an incremental release toward releasing 0.9.0.
New Features
- Game Background and UI Updated by @winrid and @ph2708 in #98
- Added Map: Arena Fut by @andy5995 in #111
Bugs Fixed
- Potential crash when deleting/editing text in text input fields. by @andy5995
- Fix Game Config Not Saving by @winrid in #86
- Caching Introduced to Font Rendering to reduce potential frame rate drops by @winrid in #94
- Improving fullscreen switch reliability by @winrid in #110
- Fixes mouse zooming to top left by @winrid in #113
- Mouse Movement Fixes (Jerky Movement etc) by @winrid in #121
- Fixes server using player.name instead of server.name config for dedicated servers by @winrid in #139
Other Changes
- Switching to the Meson build system. by @andy5995
- Documentation improvements. by @andy5995 @winrid
- Can now compile for MacOS by @andy5995
- Can now build and run server from Docker by @andy5995
- Updated Credits by @andy5995 in #107
- Introducing new "data dir" concept by @andy5995
New Contributors
Full Changelog: 0.9.0-RC-6...0.9.0-RC-7
NetPanzer Weekly AppImage (Unstable)
You'll need to mark the AppImage executable either from the command line or using your file manager before you run it.
0.9.0-RC-6
This is the 6th release candidate for v0.9.0.
Bugs Fixed
- Fixed flag alignment in chat console (due to font change).
- Fixed flag alignment next to players (due to font change).
- UI and Fonts less blurry when game resolution does not match desktop resolution.
- Fixes mouse getting stuck after changing game resolution.
- Fixes crash sometimes when switching from fullscreen to windowed and back again.
- Fixes freezing when changing screen resolution or windowed/fullscreen mode.
- Fixed alignment with Ranking UI.
- Fixed alignment of arrows around unit style selection.
New Features
- Background image change.
- Anti Cheat Improvements - see README for new setting. The
game.anticheatsetting has been replaced.
0.9.0-RC-5
This is the 5th release candidate for v0.9.0. The first published release since 2017!
Bugs Fixed
- Fixed not being able to use arrow keys to navigate map if mouse is inside minimap.
- Fixed crashing if one master server is not available when hosting a game.
- Fixes for a crash during resolution selection when list is too large to fit on screen.
New Features
- Updated server list to hide old incompatible servers. It still shows newer incompatible servers to encourage upgrading.
- Added ability to disable interactive console to run server as daemon.
- Fancy New font!
- Bots now pick a random flag instead of a blank image.
Other Improvements
- Fixed c++17 compatibility (errors, some warnings). Build targets c++17 now.
- Network layer improvements (fixed catching some exceptions by-value instead of by-ref, fixes some potential memory issues reported by valgrind).
- Added netpanzer.io to master server list.
- SConstruct/build system migrated to Python 3.
- Able to compile on windows with MingW
- Support for rendering TTF fonts! This was a major refactor.
- Improved support for other languages than just English (more characters supported now).
- Migrated to SDL2 w/ new rendering mechanism that can scale the game regardless of resolution (experimental).
Not Final Release?
There are still some things to address before we release 0.9.0:
- Font rendering needs to be optimized more. You might see some frame rate drops, this might be why.
- We need some more play testing to see if the new rendering system is stable.
- There are some issues regarding anti cheat that need to be improved.
NetPanzer 0.8.7
Although there is already a 0.8.7 release on SourceForge, the SF project is no longer being updated. All future releases will happen here on GitHub.
If you already have 0.8.7 installed, you can add 'netpanzer.io' to the list of master server in your NetPanzer client.cfg and server.cfg files. When you click "join" from the main menu, you will see all running dedicated servers. Some may not be accessible until you use the next release, or one of the current release candidates.
server.masterservers = "netpanzer.io"
The ChangeLog for the 0.8.7 release was as follows:
ChangeLog
The following is a list of the main FIXES/NEW FEATURES in this Release:
-
Ally chat bug fixed. The new key to open it is now 't', instead of CTRL+a - press enter to send msg etc. just like the normal chat.
-
Crash of dedicated server on restart (generally after 3rd round) fixed.
-
Nicknames are now cropped at 24 chars (no more long ugly nicks)
-
Fixed server crash on receiving long chat strings (this was a serious vunerability easy to exploit in lua).
-
Fixed game (score,nicks,tanks control) hijacking by sending packets normally not destined to gameserver (there might be other similar issues regarding netpackets - but at least we now know where to look).
-
I noticed a TCP Nodelay issue in Windows systems newer than XP (not tested much, but I read that tcp nodelay must be set in an earlier stage in recent Win - not an issue in Posix systems), so I added an ifdef in the source targeting Win32 to make that call before in the socket initialization process.
-
Several Anti-Spam controls:
-
chat messages rate limited - abusers get brutally disconnected hehe.
-
high rate ally requests messages limited - abuser gets disconnected.
-
anti cheat (autoclick) - players with excessive click rate are kicked and a message appears on server. Can be tuned in server.cfg (values from 1 [strict] to 5 [very permissive], default is 3 - note: a very bad connection, and usually a wireless one, may cause to be wrongly identified as 'cheaters', though this appears to be not frequent).
-
no easy frags - players with a score (points) less than -25 get kicked (value can be set in server.cfg [from -15 to -100]), a warning appears in chat to remind this rule.
-
A remix of visuals and starting panels graphics (finally coordinated with the main website).
-
Added tips for newbies in JoinView (random on each restart).
-
The welcome msg in dedicated server is now repeated every 10 mins - can be used as reminder...
-
A set of ASCII Art messages have been added in usercommands.lua - usage '/say war' (you can add your own) - max 7 lines or servers disconnect you!
-
Partially reactivated bots (they just connect, get an ugly gray flag and sit there LOL).
-
Temporarily disabled unit powerups as they never worked (only unit self-destruct is still active) and replaced by bonus units and radar powerups - I'd like to make a major rewrite of bonuses in next release to make the unit powerups actually work and add new ones.
Source and binaries
They are already available in your Linux distro and on the SF project page so there's no need to duplicate them here.
AppImage
Run
chmod +x NetPanzer-0.8.7-x86_64-2.AppImage
./NetPanzer-NetPanzer-0.8.7-x86_64-2.AppImage
Notes for developers
The AppImage was built after applying Debian patches to the original 0.8.7 source files, and then changing line 367 of 'src/NetPanzer/Interfaces/GameConfig.cpp' to server_masterservers = new NPString("netpanzer.io, masterserver.netpanzer.info");
Miscellaneous other additions and changes can be seen by comparison.