Battle Tanks Xmas Edition released!

22 December 2007

Good day dear friends! We proudly present the anniversary 16th release of our funny network arcade. In the new version, we have changed… well, everything. Have a look!

First of all, we have released the jerk scripting based on LUA (blames to its inventors).Then, the game balance is fully recalculated:

  • Weapon destruction ranges are reduced.
  • Playing as trooper, you can throw grenades and carry nukes (don’t try that at home!)
  • Rocket launcher can now carry the rocket trooper-beware of angry launchers!
  • Troopers teleport to their carrier if cannot find path.
  • Ther submarine launches nuke missiles.
  • The player can capture empty cars, drive them and USE HORN! When you are in the civilian vehicle, enemy units will not bother you.

Third, we have added The Arena. This is a coop map where you can test almost all weapons against almost all enemies. (BTW, try a new monster on Arena-the Acid Slime.)

Oh well, and of course we have added some killer machines: a bomber helicopter and Chinook that lands troops-they will both hunt you (see them on Arena). Also the new land unit is introduced-a buggy with MG turret; this is the only unit that can shoot down the helicopter. Beware of falling helis!

Also there are changes to deathmatch; we have added there a respawn in random place. And the new sountrack is composed-specially for this release!

The BT team wishes you the Merry Christmas and Happy New Year and offers the Sensational Christmas Discount on Donations: you get 5¢ discount on all donations made before 7th of January next year!*

* — not applicable to donations made through Sourceforge

Comments: 5647 Comments
Tags: Releases

Something about upcoming 0.7

7 December 2007

We’ve done another big step towards the next release: rebalanced all stuff, reduced bullet ranges, implemented dozen new cool objects and modes (including submarine with ballistic nuke missiles), added LUA scripting which can affect almost all stuff on maps. 

But now we’ve hardly needed bright ideas for new maps demonstrating power of the new engine:) Feel free to drop a line or two in comments.

Comments: 5574 Comments

Battle Tanks 0.6.5064 released!

3 October 2007

This release primarily was targeted at multiplayer improvements and playability even on poor connections. Added UDP connection for faster player response, paintball map was redrawn from scratch and millions fixes. Check it out!

BTW, we’ve got first snow here. Today.

Full changelog available here.

Comments: 10196 Comments
Tags: Releases

0.5.4800 is out!

30 August 2007

Another bugfix release + Italian translation. Key features for this release are:

  • Added new simple map : paintball. You can test almost all weaponry available in game there.
  • Removed velocity parameters from sound engine, it’s not needed for 2d arcade, really. Improved cannon sounds.
  • Make nuke harder to escape.
  • Various AI fixes:
    • AI is able to travel via teleports (very basic support, they threat teleport as some kind of the bonus).
    • Blacklisting of unreachable objects.
    • Improved weapon balance calculations for infinite weaponry such cannons and machine guns.
    • Improved torus map handling and various small fixes.
  • Game could be started from the read only environment like cdrom or network drive.
  • Ported build system to vc80 compiler. Added manifests, upgraded installer.

We are waiting for the feedback from the Vista users regarding openAL and installer issues.

Comments: 5199 Comments
Tags: Releases

Unofficial Ubuntu build

28 August 2007

Legendary Miriam Ruiz built Ubuntu (maybe Debian) packages for i386, ppc and amd64. :)

Packages are available for download here:

Comments: 6433 Comments

OpenAL programming faq

28 August 2007

OpenAL Lite Programming FAQ

How could I determine maximum sources number available for OpenAL ?
Many people use alut for OpenAL initialization and do not know it’s simple to do yourself. You will gain additional control over device and context by doing so.
Do not use alut for that!

  1. Choose audio device (by name or using NULL as name for default device, usually the best hardware driver available)
  2. You can skip this step : create context attributes:
    ALCint attrs[] = {
    ALC_STEREO_SOURCES, stereo_sources,
    ALC_MONO_SOURCES, mono_sources,
    }; //stereo_sources and mono_sources are OpenAL hints. Minimal and working for the most people value - 16. Note that stereo source use 2 real mono source. So if you have music thread, only 14 mono sources remain available.
  3. create contexrt alcCreateContext(alc_device, attrs);
  4. Get context attributes:
    ALCInt attr_size;
    alcGetIntegerv(alc_device, ALC_ATTRIBUTES_SIZE, sizeof(attr_size), &attr_size);
    const ALCInt * attributes = (ALCint *)malloc(attr_size * sizeof(ALCint));
    alcGetIntegerv(alc_device, ALC_ALL_ATTRIBUTES, attr_size, attributes);
    Now ‘attributes’ points to the context attributes, arranged as attrs[] array from (2).

How could I open non-default device?

alcGetString(NULL, ALC_DEVICE_SPECIFIER) doesn’t only return default device string. It returns all devices supported by OpenAL, arranged in the following manner:
“Generic Hardware”, 0, “Generic Software”, 0, 0
Just for sanity you could check the presence of ALC_ENUMERATION_EXT, but as long as I remember, OpenAL 1.1 made it mandatory. (fix me?)

I do not want OpenAL mixer thread, I want mixer working from my own thread.

It’s very easy : use attribute ALC_SYNC set in AL_TRUE. Call alcProcessContext(context); from your worker thread.

I’m experiencing weird errors or crashes. What should I do ?

Check the following conditions in your code:

  1. After every single OpenAL call, you call alGetError() and process critical errors for your code. alGetError cleans internal OpenAL error state.
  2. You call alGenSources once while your application starts. You do not use alGetSources(&source, 1); every time you need a single source.
  3. Have debian-amd64? Try my openAL build. Do not forget report bug against debian bug tracker system. OpenAL mistakenly use mmx ia32 builtins on x86_64 architecture. At least disabling all __MMX__ dependent sources helps.

16 sources is not enough. I have more than hundred objects on single level.

You don’t need all hundred sources playing simultaneously. :) OpenAL does not have any source manager. You should write it yourself or take from another project. (Do not forget to read the license)

  1. OpenAL initialization
  2. Tracking object positions, remove distant sounds.
  3. Restart previously removed loops. (helicopters or such)

How could I create stereo source playing music without 3d attenuation.

Set the following source attributes:
alSourcei (source, AL_SOURCE_RELATIVE, AL_TRUE);
alSourcef (source, AL_ROLLOFF_FACTOR, 0.0);
To restore 3d state set it back to default values (AL_FALSE and 1.0 respectively)

©2007 Vladimir Menshakov, Netive Media Group.

Comments: 7509 Comments

Italian translation

22 August 2007

Francesco Bolzoni added Italian translation to the game. It will be available in the next releases. We are really appreciate your help! Thank you :)

Comments: 5073 Comments

Good news, everyone :)

21 August 2007

First of all, after several days of hardcore debugging I “fixed” openal for debian-amd64. (Removed mmx support on x86_64 arch). Debian packages available here.

Also, btanks were added to gentoo. :)

Comments: 4402 Comments

Release 0.5.4739 is out

15 August 2007

0.5.4739 is bugfix and multiplayer enhancement release. Several major features and fixes:

  • You can join network game in split screen mode.
  • Added optional time limit to deathmatch map.
  • You can talk with other players by hitting ENTER/RETURN key.
  • UTF-8 everywhere! You can use diacritics from French or Germal language without transliteration.
  • Several new cheats :)
  • Tuned global messages (about new tasks, game over or checkpoints ) to avoid mixing with menus or map background.
  • Once again troopers don’t shoot through the walls.
  • Multiplayer errors do not shutdown game anymore and many many other multiplayer fixes.
Comments: 5232 Comments
Tags: Releases

Linux distibutions

1 August 2007

Do not have package for battle tanks in your favorite Linux distro? File a bug report! Gentoo tracker already has such item: bug 172772. (I’ve heard that SUSE recently included btanks package).

PS: Thanks Lior Kaplan for pointing at Debian bug

Comments: 4350 Comments