0.9.0: *) Multiplayer changes: *) Added high-priority queue for datagram. *) Added codenames for incompatible releases + user friendly error message. (last release was longcat) *) Clunk - 3d sound library: *) Clunk has moved to separate sourceforge project. *) Added three distance attenuations models: linear, inversed and exponent. *) Doppler effect. *) More documentation. *) 3D attenuator's implementation changed from FFT to the MDCT. Less noise and distortion. *) GUI improvements: *) Added player profiles support *) Gamepad setup had been rewritten from scratch. *) Added grid control with colspan/rowspan support. *) Removed bogus "Back"/"Ok" buttons, added "reset to defaults" and "Ok" everywhere. Saving options instantly. *) Added modal mode for dialogs. *) Added static image control. *) Now it's possible to add controls after another control. *) Added render_multiline() to sdlx::Font *) Rewrote tooltip from scratch with better text placement and nbsp/newline support. *) Rewrote main menu / menu in a flexible and extensible way. *) Added names for the control, buttons/mouse icons *) Campaign improvements: *) Added pre-initialization logos with fade in/fade out. *) Added best/last score/time panel with medal icons. *) Added medals support and nice hall of fame. *) Map could provide best stats from developers for a competition *) Disable donation screen for the campaigns which require it. *) Network could be disabled *) Engine improvements/fixes: *) D3D SDL wrapper ported to DirectX 8.1, added per-surface alpha support. *) Fixed long stanging bug preventing user from getting into vehicles. Get into a vehicle much easier now. *) Resample splash screens. Removed all duplicated splashes less than 1280x1024. *) All control methods were ported to events. Sticking keys on some laptops should be fixed now. *) Map could disable minimap. *) Added mouse control. (sic) *) Removed 'enable_lua' as it's completely useless and bogus. *) Fixed possible lua timers race. *) Do not play more than one boomerang sound. *) Changed collision grid to quad tree. *) New base class for cutscene-like objects, ported logos and credits to it. *) Resource optimizations: *) Optimized tiles and sounds, new release will be real lightweight - about 35Mb *) Added spanish/catalanian translations. *) Added static collision maps allowing tiles' alpha pixels optimizations. 0.8.7689: *) Fixed critical multiplayer bug. *) Added proper language detection for MacOS X. 0.8.7667: *) Added capitalization of the autogenerated nick. *) Updated french translation *) Fixed one of the reasons for the hissing noise in hrtf. (I believe another bugs exist there) *) Fixed stripping of the leading slashes on **nix systems. 0.8.7656: *) Gameplay *) New gameCaptureTheFlag AND TEAMDEATHMATCH! *) Spectator mode and life loans. *) Rewrote frags handling in a accurate and clean way. *) Added team colors to the chat. *) Automatic join/leave and insulting messages. *) New tabbed UI for map picker. *) Shilka's redesign *) Increased shilka's power allowing its turret to work in automatic mode. *) [rc2] Shilka drops all troops after death. btw, nuke mine too ;)) *) New map: "Four Rooms" *) Removed acceleration code for all objects. This added annoying effect of slowness. (especially while playing on gamepad). Adjusted speed for the most of the objects. *) Help player with diagonal aiming (small delay between releasing buttons to allow stay in diagonal position) *) Added one-way teleports. *) Grenade amd mortar's "can" could fly over fences and other stuff. *) Several double-takes fixed. *) "Telefrag" - if two or more players teleports in the same teleport, only the last one survives. *) Changed the oldest visual effect : earthquake to the smooth one. :) *) Boomerang now bounces map instead of exploding *) Multiplayer fixes: *) Added 'scan' feature - scanning/querying servers in the local network. *) Keep clients connected between games. *) Reuse UDP address. Added broadcast mode support. *) New on-demand serialization model: 2-3-10 times smaller packets send thru network. *) Improved client dialog: show map/slots info and hostname/ip. *) Removed unnesessary memory allocation in serializator. *) Added dictionary-based serializator for the better compression. *) Server mode with registration on the master server (+lotta command-line switches controlling time limit, ais, game type and initial map, map rotation) *) Round-robin updates broken in smaller pieces - better consistancy, less glitches. *) Moved timestamp code into engine level to avoid timing errors. *) Removed idle/moving timers from the core object (used only in a few objects, -10 bytes per object in MP :) *) Removed blinking timer, use effect timer instead (-10 bytes per object) *) Removed _delta_position from the core objects, rewrite group handling. (-10 bytes again) *) Removed useless allocations from the network monitor thread. *) Fixed race condition with 'connection-id' causing errors on map join *) [rc2] Better delta calculation based on simple errors histogram. *) [rc2] Various mp messages shows in player's locale. *) [rc2] Added DNS cache. *) [rc2] Added compact and portable serialization of the float type. *) [rc2] Fixed UDP malfunctioning on the BSD-based systems. *) Scripting improvements: *) Added `trainophobic' and `monstroid' variants for the troops (attacking train/troops) *) Added `obey` effect for controlling ai objects from script. Added pose control functions. Added timer. *) Implemented 3d-spatial sound library with HRTF (clunk). Dropped OpenAL support. *) Unlimited objects *) Unlimited sources *) Unlimited music streams with simple api. *) HRTF and family *) Fadeout sample cancellation *) Added first version of the documentation *) Massive performance optimizations: *) Inner object loops ported to the grid-based approach. *) Added notifications for the adding/removing objects from the map. *) [rc2] Engine ported and bundled for the MacOSX 10.5 Leopard! *) Added pick/drop api to the engine. CTF flag use picking and dropping now. *) Put resources in single big file. *) In a kill'em'all mode show marks on map if 5 or less targets available. *) Map editor went public (user unfriendly) *) Various menu controls improvements/fixes. *) Added Direct3d(tm)(r) wrapper for SDL (2d over 3d). No more OpenGL(tm) on Microsoft(r) Windows(tm). :) *) Added MPEG-1 video control for GUI (campaign dialog) *) Removed sigc++ library in a favor of my own stupid lite and working sl08 (what a weird name though) :) *) All stuff ported to g++ 4.3, made sources compatible with the recent STLPort *) Get available resolutions from the SDL, removed hardcored values. *) Better random with the period of 2^32 *) Rewrite core alarming system in a clean and simple way. *) Remove some deques if no random access needed. (avoid iterator corruption too) *) Fixed possible thread-safety problems in network threads. *) Added various messages while loading game. *) Fixed torus modes once again: pathfinding and position validation. *) Renamed binary to btanks instead of bt to avoid confusion *) Reimplement attaching/detaching vehicle allowing to put object into vehicle and vise versa. *) [rc2] Added Ukrainian translation and almost all diacritical chars. *) [rc2] Removed default exception handling to allow thread cancelation for the scanner thread. Now join menu does not hang because of connection issues or something. *) [rc2] Fixed z boxes of teleported troops (aqua world for example) *) [rc2] Fixed crash at startup if no sound card was found or it's busy *) [rc2] Invalid channels value was fixed in ogg stream *) [rc2] Added 'install' target for scons *) [rc2] Fixed terrible error allowing objects become invincible (spaceport for example) *) [rc2] Color lines in join menu dialog. *) [rc2] Change background for the buttons on mouse enter/leave. *) [rc2] UDP broadcast problems fixed. *) Billions bugfixes. 0.7.5800: *) Introduce lua scripting support (map zones and special handlers): *) Hiding/showing/spawning items *) Spawning/killing objects *) Loading new map *) Using visual effects *) Changing background music *) Ending game: win or lose. *) Modification of the player's properties - start object/animation, spawn limit, etc. *) User interaction: messages and timers. *) Enabling/disabling AI *) Damaging map *) Balance modifications: *) Combine can harvest troops :) *) Troopers can throw grenades. *) Machinegunner player can grab nuke missile item (check it out ;) *) Shilka can pick up nuke item (becomes nuke mine) *) Increased damage from machinegunner installed on launcher. *) Boat patrols water. *) Launched can pick up thrower item. Deadly combination. *) Reduce bullet ranges, improved fog of war by limiting visible range for enemies (half of screen's width). *) All items which fire a burst limited and cannot fire continiously *) Troopers can evade missiles and bullets. :) *) Kamikaze was redrawn from scratch and they do more damage (could be chained) *) Your troopers wear coloured helmets to distinguish them from enemy. *) You could drive any ownerless car. Enemy troops don't see while you in. *) Helicopter could fall and kill someone *) Troopers can panic and try to escape bullets and missiles. *) Teleporting your troopers closer to vehicle. *) Stupid ai's like cows and zombies now better sticks to hints' areas. Cow can panic if hit. *) New items and objects: *) "Chinook" helicopter. *) Raider helicopter with bombs and paratroopers. *) Buggy vehicle + automatic turrel. Find it on the lenin's square map. This vehicle can kill helis *) Ballistic missile (now for submarine only) *) Acid slime which helps zombies and other monsters. *) Network multiplayer fixes: *) Do not trust TCP updates for players, use only UDP updates. *) Skip tcp updates for player in slots. *) Allowed using of the pathfinding API. (better synchronization for cars and other PF clients) *) Implemented congruent 32-bit random generator. Added its synchronization in the network game. *) AI fixes: *) Removed various bogus throttling stuff from pathfinding improving performance. *) AI players without slot properly moves in multiplayer game. *) AI players could enter vehicles. *) New AI code: rush and old-school roaming. :) *) Moved configuration data to ~/.btanks for linux and appdata/Battle Tanks for windows version. *) New scripted map: Arena with random enemies and items. *) Added X-mas tiles, happy X-mas, everyone! *) Added preload feature to minimize memory usage and decrease loading time. *) Added visual effect for teleportation. *) Implemented simple 32-bit congruent random generator to allow random synchronization. *) 'Random respawn' mode. *) New tune: "karbofos" *) Fixed important stuff in static collisions map. Now nuke 100% destroys mines and other static objects. *) You could not survive(by freezing) in nuke explosion anymore. *) You could mark any object you want on minimap. (by naming object like 'special-12') *) Troopers don't hide under barracks and tents/don't shoot through it anymore. *) Vehicles does not pick up items which wont have any effect. *) Fixed edge impassability on non-torus maps. (baykonur, near start) *) Do not display layers with 'hidden' attribute. *) Added maximum nick length (32) *) Added gamepad hack for broken hid, (fedora 7), ability to limit gamepad to 2 axis in config. *) Disabled hardcoded keys in "redefine keys" dialog. *) Improved engine scalability by removing subobjects from the global map. *) Do not link to libGL anymore. Check for acceleration both on win32/linux 0.6.5064: *) Massive changes and cleanups in multiplayer code: *) added parallel udp connection for faster player state reporting. *) sync-ing timers instead of ping-based corrections. *) thread-safety and memory leaks were fixed in network monitor. *) allowed port to be specified in config :))) *) various 'out-of-sync' objects were fixed. (cars for example) *) fixed stupid 64-bit client incompatibility. *) Improved minimap generation, removed "jerking" mostly noticeable on large maps. *) Added one more minimap mode (small), this is default now. *) Do not trust sound driver about 99 sources available. always obey maximum-sources from config. *) Added object-specific penalties to pathfinding. *) New "paintball" map with almost all available weaponry. *) Do not exit game if multiplayer exception was thrown *) Remove gzip headers from network compression code *) Removed SDL_Delay, ported to my own timers. *) As usual, lots of fixes and improvements. 0.5.4800: *) Added Italian translation *) Removed velocity to avoid 3d sound corruption. Sound improvements. *) Increased attack of the "cannon" sounds. *) Reduced "escape from nuke" probability. *) AI fixes: *) players now could travel via teleports *) blacklisting unreachable objects *) increased infinite weaponry balance *) torus map issues. *) various small AI fixes *) Game could be started from the readonly win32 environment (cdrom). *) VC80 port, added manifests to library, fixed installer, made openAL installer optional as workaround for Vista(tm) users. *) Removed magic 10000s interval from maps. *) Added difficulty levels to campaign mode. *) Added speedup/slowdown/god effects. I hope corresponding items will appear in newer releases. *) Added default take() implementation for Object. *) Fixed invalid memory reads reported by valgrind. 0.5.4739: *) Added "split screen" mode in multiplayer client. *) Added time limit to deathmatch maps and show game statistics when game is over. *) Basic network chat is now supported *) Player name generated automatically and passed to server in network game (editable). *) More tacticals map *) Allowed UTF-8 in all text controls. *) Added several new cheats. *) Moved game messages like 'game over' to the upper side of the screen and put background under it. *) Fixed checkDistance() api, so troopers does not shoot through walls and buildings. (again). *) Fixed players' frags calculations. *) Added outline for civilian. *) Multiplayer errors do not cause game to exit. *) Added engine.speed parameter *) Fixed cheater object overflow and invalid SDL event handling. *) Fixed --connect option. *) Fixed torus map handling in multiplayer *) Do not poll keyboard while menu is active or chatting. *) Respawn only dead bonuses in campaign mode. *) Added ambience volume slider. *) Fixed screenshot saving in **nix builds. *) Fixed ai hints in multiplayer mode. Shivering cows and other issues. 0.5.4549: *) Added French translation 0.5.4536: *) Added unicode support, russian and german translations. *) Added `torus'(endless) map mode and converted `lenin square' and 'gaddino' to it. Feel the power of Infinity! *) Fog of war support (available in `settings' menu) *) Random and sometimes surprising tips are added (displayed while game is loading). *) Tons of stickin' & stuckin' issues are fixed. *) AI players have became stronger and learnt some close combat skills. *) AI troopers can now shoot through fences where possible. *) Watchtower now detects possible directions for shooting and doesn't shoot thru the walls. *) Smooth layer scrolling is implemented. *) AI-civilian is added, alt fire uses horn while in car or tractor. *) Sandworm no longer eats mortar. *) Lives support is added to HUD. *) Ricochet bullets work again. *) Added support for objects with non-standard directions on map. Car facing down, for example. *) Campaign support: *) Campaign structural map *) Hiding and showing levels by several criterias. *) Score and some statistics. *) Shop with campaign-provided wares and animation preview. *) Updated sounds, fixed several glitches. Small pitch to every sound to randomize samples. (Shooting for ex.) *) Sound overruns are more accurately handled. Sound buffers have been increased to several seconds each. *) Pass hints to openal (stereo sources, mono sources), read back values. *) Added kill-em-all game mode. *) Removed `player' class and all magic with it. Added `disable_ai' flag to object to not call the original AI. (could be used to seize any object) *) Load bt_objects shared objects dynamically. *) Collision handling code is rewritten in clean and very quick way. *) Main menu can be controlled with joystick. 0.5.3808: *) Added new 'batterie' tune from Petrovich. *) Chain explosions are now possible. *) Fall back to generic software if nVidia nForce detected. *) Zombies and other aggressive monsters do not damage items. *) Fixed speed of Shilka with AI driver inside. *) Added default FPS limit (120). *) Pathfinding fixes, cars' movements are now more accurate and precise. *) Fixed helicopter's bomb warnings. *) Added lib_dir handling for **nix packaging. 0.5.3784: *) A couple of new maps: "Dune"--cooperative survival with timer and "Battle Tanks University". *) Shilka is now able to pick up mines. *) Adding auto-aiming support for tank's and shilka's bullets. *) Lots of new sounds, completely rewritten sound subsystem. Ambient sounds thread. (forest, swamp, city and country ambient loops) *) Added secret "mortar" vehicle on every map (!). *) Added 'sandworm' creature inspired by famous 'dune' series. *) Cars stop and beep instead of crashing. :) *) Added screen resolution/full screen mode to options screen. *) "Bomberman" map--stupid map generator test. *) Now you don't need to have your copy of map, it's downloaded from game server automatically. *) Added custom "tactical map" in map picker. *) HP bars (similar to many RTS) are rendered near each important object. *) Changed dirt to experimental 'drifting' implementation. *) Added "redefine keys" and "gamepad setup" dialogs. Improved gamepad handing. (second ministick used for controlling the camera) *) Added "hint control" key. (skips current hing, replay last) *) Name screenshot files with numbers to allow taking more than one screenshot at ones. *) Added random vehicle selection (?) *) Added various debug options : no-clip, tiles marks on map, stripping alpha from objects and tiles. *) Added icons for controls setup dialog. *) Implemented (ally) variant to allow creation friendly troopers and other objects. *) Implemented special zones with timers (win, lose), disable/enable ai switches, hints and checkpoints. Added spawn limit (lives). *) Implemented volume sliders in 'options' dialog. Fixed listener positioning. *) Object variants instead of tons similar objects registered. *) Blacklisted nVidia's OpenAL implementation. It's way too buggy. *) Mods can now provide their own localized messages. *) Internationalized menu and in-game messages. *) Finishing a level makes you invulnerable. *) Various Linux packaging fixes, attempt to add ebuild to Gentoo. *) Split engine into separate DLLs. 0.4.2902: *) Added new map: 'Aqua World' with two separated levels: underwater and rooftops. *) a lot of various bugfixes everywhere (mostly multiplayer, several crashes) *) interpolation support in multiplayer. *) added proper player placement into checkpoint. *) added `teleport' object which easily could be extended with `telefrag' support. *) added new major feature : isolated z-boxes (different worlds, checkpoints, hints and spawns in one map) *) added various penalties for vehicles: launcher slower on sands, tank is stable on every surface. *) reduces respawn intervals for machinegunner/thrower items. *) improved menu controls: hotkeys, usual text control with cursor. *) show/hide mouse pointer if needed *) added several commands to console : setz, position *) timestamps in logs 0.4.2623: *) added game statistics shown by 'TAB' key. *) reworked all UI: menus, player/map pickers with usual controls. map descriptions. added mouse handling everywhere. *) you can assign experimental AI units to players right from menu. *) fixed long standing bug with bullets sticking to each other. *) animated tiles support (map), animated water tileset. (added an all maps where possible ;) *) map can provide hints, useful for tutorial or in-game messages. *) zombie unit added :) *) new tune (gameboy) *) preliminary internationalization support. *) fonts now scanned to properly calculate letters' widths. *) synchronize map damage between server/clients. *) minimap could be now switched on and off with 'M' key. (also minimap shows important targets) *) removed useless SDL subsystems from initialization (audio, cdrom) *) caching 'fadeout' surfaces to improve fadeout feature performance. *) cleaned code from direct loadImage() calls, do all stuff via ResourceManager. 0.3.2234: *) bugfixes... bugfixes... bugfixes... *) a pair of brand new map *) new objects: *) empty vehicles which could be driven (cars, tanks, ..) *) tents/barracks with troopers *) watchtowers with machinegunners and throwers *) patrol boat with missiles. *) real old-school 'boss' - spaceport Baykonur *) new multiplayer features (cooperative mode, vehicle selection by server), the most of glitches fixed. AI and pathfinding are now disabled for client side. *) improved AI for troopers. *) added gameOver OSD messages and messages generated by objects (spaceport) *) guided missiles make simple correction for target velocity *) calculate map projection with greater precision, more accurate hud. *) a lot of pathfinding fixes... added synchronous A* implementation. improved performance of both A* algos. *) improved collision performance / restored collision caching. *) implemented first working AI(still experimental and available only by hack ;). *) almost fixed sound glitches at the end of background tune. *) game console with spawn/spawnplayer/set/kill and quit command (yeah! we are REAL game now!) *) improved performance of getNearest() call. *) more accurate fps limiter/tick calculations (posix clock/windows perf counters) *) added grid indexes to collide objects on large maps. removed complexity of O(n^2) from everywhere. *) checkpoints support. 0.3.1796: *) updated README's *) fixed smoke cloud z-positioning. *) added win32 icon and MSI installer :) 0.3.1774: *) spawn explosion on map destruction *) great performance boost (brand new, rewritten from scratch collision code, fixes in map collision handling) *) pathfinding and outlines fixes *) more tiles for damaged map. destructable fences. :) *) tilesets optimizations *) cars collides with each other (while troops still do not kill each other) *) removed various 'grouped' object bugs (slight missiles-on-vehicle delay) *) added outline for machinegunner player 0.3.1651: *) map troops do not kill each other *) added new 'wastes' map. *) at last, added map/vehicle pickers to main menu. ;) *) map rendering optimizations. *) urgent release fixes/workarounds. 0.3.1593: *) if your vehicle was destroyed you are still able to escape in machine gunner form :) 0.3.1591: *) player can now leave vehicle and act as machinegunner. *) now it's possible to destroy/damage map. have fun :). *) mine now triggered by object with mass >= 20. *) fixed in getNearest() - core Object function. various bugs got fixed by that. *) added invulnerability effect. invulnerability on respawn. *) added throwers item/throwers for shilka. *) limited kamikazes dropped by heli. *) implemented hybrid waypoints-pathfinding system for ai traffic. more pathfinding fixes. *) moved new object-level pathfinding code to base object. *) [win32] critical errors appears in messagebox before exit. 0.3.1466: *) various small bugfixes. 0.3.1460: *) improved pathfinding *) increased damage from 'shilka' and ricochet bullets *) most 'stucking' issues fixed. *) various collision model improvements/bugfixes. *) machinegunners do not shoot in random directions if no target found on map *) nuke explosions do not kill each other *) moved nuke missiles to alternative mod (launcher) *) converted splashes to jpeg format. (-4mb in data/ directory) *) made music playback continuous. 0.3.1435: *) fixed several random multiplayer disconnects. *) added simple 'sliding' if object cannot move in desired direction. *) added car object, introduced new asynchronous configurable pathfinding (A*). *) improved Object::setWay, removed almost all glitches. *) various frag calculation fixes. *) fixed launcher mods logic. (magic guided missiles appeared in a truck and so on...). *) smoke clouds now do not collides with missiles/bullets *) added generic outlines support. 0.3.1298: *) first public release.