NewsBlog

Новогодний релиз Battle Tanks!

22 December 2007

Здравствуйте наши дорогие радиослушатели! Мы с гордостью представляем вам новый юбилейный 16-ый релиз нашей радостной сетевой аркады. В игре поменялось практически всё. Судите сами.

Во-первых, мы добавили быдло-скриптинг на LUA (и, пользуясь случаем, хотим высказать громкое ФИ тем, кто придумал этот язык). Во-вторых, полностью переделан игровой баланс:

  • Существенно снижены радиусы поражения оружия.
  • Играя солдатом, теперь можно кидаться гранатами и таскать ядерные бомбы (не пытайтесь повторить это дома!).
  • Ракетная установка научилась возить в кузове ракетоносца, что сделало её опаснее, чем когда-либо.
  • Солдаты теперь телепортируются поближе к своему хозяину, если не могут дойти до него пешком.
  • Подводная лодка теперь запускает ядрёные баллистические ракеты.
  • Игрок может садиться в бесхозные машины, ездить на них и БИБИКАТЬ! На время, пока вы в гражданском транспорте, вражеские юниты теряют к вам интерес.

В-третьих, мы добавили кооперативную карту «Arena» со случайным набором противников, на которой можно потестировать практически-всё-вооружение против практически-всех-врагов:) Кстати, на арене можно ощутить мощь нового монстра — кислотно-щелочного слизня.

Да, не обошлось и без новых машин для убийства: вертолет-бомбометатель и десантный «chinook», целенаправленно преследующие игрока (вы встретите их на Арене) и багги с полуавтоматическими пушками (единственный юнит, способный сбить вертолет). Кстати, падение сбитого вертолета на вашу голову чревато летальным исходом! Будьте бдительны!

Изменения коснулись и схем десматча: теперь, вместе с ограничением времени можно включить «респаун в случайной точке». А также, специально для этого релиза, всемирно известный музыкант и пароход композитор Петрович написал новую песню «Карбофос».

Коллектив Battle Tanks поздравляет всех наступающим Новым Годом и Рождеством и объявляет о Сенсационной Рождественской Скидке на Пожертвования: Жертвуя в период с 22.07.2007 по 07.01.2008 вы получаете скидку — 5 центов на каждое пожертвование!*

* — скидка недействительна при пожертвовании посредством Sourceforge

Comments: 5647 Comments
Tags: Релизы

Немного о будущем релизе 0.7

7 December 2007

Завершаются работы над новой версией, в которой мы сделали очень много всего, начиная от десятка новых обьектов, радикальных улучшений баланса, кончая скриптингом на LUA, который имеет доступ практически ко всему движку — от контроля обьектов до музыки. И мы очень нуждаемся в ярких, креативных идеях для новых карт и обьектов чтобы показать всю мощь движка. 

Не стесняйтесь, пишите в комментарии даже самые безумные идеи :)

Comments: 5574 Comments

Вышла версия 0.6.5064!

3 October 2007

Пожертвований нет уже второй месяц. В Cибири выпал первый снег, медведи и лоси обглодали всю кору с деревьев, а люди обглодали медведей и лосей. Очень хочется кушать. Везде из земли торчат отполированные ветром белые кости. Нашу землянку окружили голодные людоеды. Если мы не
переживём эту зиму, считайте нас коммунистами. Пароли лежат в белом конверте под третьей слева половицей.

Тем не менее, несмотря на все тяготы и лишения, мы находим в себе силы выпускать нашу фронтовую радостную аркаду. Мы сделали поправку на триольные пульсации идущие к нам с Юпитера учли многочисленные поправки и предложения товарищей на местах и успешно их проигнорировали.

Коротко о главном: мультиплеер самостоятельно научился посылать сам себе UDP пакеты для ускорения и уточнения cамого cебя. Машинки больше не ездят взад-вперёд на клиенте. Многие замечали какие-то рывки где-то раз в секунду, их больше нет — мы их съели. Painball преобразился: бешеные опоссумы сгрызли весь асфальт, пришлось насыпать грунта и вырастить травку. Кроме этого от голода скончались миллиарды багов, ликов и готч. Мир их праху :(((

Comments: 10196 Comments
Tags: Релизы

Новый релиз - 0.5.4800

30 August 2007

Очередной багфикс релиз с круглой чиселкой :) Вот небольшой список изменений:

  • Добавлен итальянский перевод.
  • Добавлена новая карта “paintball”. На этой небольшой карте есть почти всё(может быть даже всё:)) вооружение доступное в игре.
  • Убрана зависимость звука от скорости, ибо в 2д аркаде это совершенно лишнее и только искажает звук.
  • Поправлен ядерный взрыв, теперь от него сложнее скрыться.
  • Разные улучшения мозга игроков:
    • мозг научился видеть и входить в телепорты.
    • исключает недостижимые обьекты из списка целей на некоторое время.
    • стал лучше стрелять из бесконечного вооружения.
    • куча мелких фиксов, поправлены небольшие баги с тороидальными картами.
  • Игру можно запускать с носителей без возможности записи (сидиромов или сетевых дисков)
  • Порт игры и библиотек на vc80, поправлен инсталлер, установка OpenAL теперь опциональна. Как возможность обойти ошибки в висте :)

Мы очень ждём отзывов от пользователей Висты касательно инсталлера, OpenAL и, собственно, игры.

Comments: 5199 Comments
Tags: Релизы

Неофициальная сборка для убунты

28 August 2007

Женщина-легенда Miriam Ruiz собрала пакеты для i386, ppc и amd64. (Похоже для убунты, может быть будет работать в дебиане).

http://www.miriamruiz.es/weblog/?p=100

Слить можно здесь:

http://users.alioth.debian.org/~baby-guest/games/

Comments: 6433 Comments

Программирование под OpenAL

28 August 2007

Я решил немного пособирать часто задаваемые вопросы и некоторые неочевидные факты про OpenAL. Как говорится: “мыши плакали кололись, но продолжали есть кактус” - это всё про OpenAL :)
Прежде всего, что вы получаете используя OpenAL в сравнению с другими библиотеками ?

  1. Простота и минималистичность API
  2. Кроссплатформенность.
  3. Бесплатность и открытость кода.

Минусы будут перечислены в этом faq :)

Как определить количество источников доступных для OpenAL?
К сожалению, в документации этот вопрос не освящён вообще. Многие люди используют alut для инициализации OpenAL, хотя на самом деле инициализация “руками” занимает совсем немного места и позволяет контролировать разные аспекты типа перечисления устройств. Не используйте alut для этого :)

  1. Выбираете устройство (как показано в следующем пункте, либо NULL для устройства по умолчанию, вызываете alcOpenDevice(name)
  2. Необязательный шаг : создание массива атрибутов типа :
    ALCint attrs[] = {
    ALC_STEREO_SOURCES, stereo_sources,
    ALC_MONO_SOURCES, mono_sources,
    ALC_INVALID, ALC_INVALID,
    }; // stereo_sources и mono_sources - хинты OpenAL. Минимально
    “работающее везде” решение - 16 источников суммарно. Учтите что один
    стерео источник тратит 2 реальных. Итого, по умолчанию стоит ставить
    хинты так чтобы stereo_sources * 2 + mono_sources == 16. Вы можете
    предложить пользователю попробовать увеличить это значение, или
    попробовать угадать в процессе исполнения.
  3. создаёте контекст alcCreateContext(alc_device, attrs);
  4. Теперь надо получить обратно атрибуты :)
    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);
    по указателю attributes теперь лежат атрибуты в том же формате в котором они передаются в OpenAL в п.2. Теперь циклом до ALC_INVALID бежим по attributes и ищем ALC_MONO/STEREO_SOURCES. Если вам повезёт и у вас не linux - вуаля! OpenAL вернул реальные числа для устройства.

Как выбрать устройство используемое OpenAL ?

alcGetString(NULL, ALC_DEVICE_SPECIFIER) возвращает не только устройство по умолчанию. Оно возвращает указатель на массив всех устройств следующим образом:
“Generic Hardware”, 0, “Generic Software”, 0, 0
Для чистоты эксперимента можно проверить наличие ALC_ENUMERATION_EXT, но если мне не изменяет память, спецификация OpenAL 1.1 сделала его обязательным. (поправьте?)

Я хочу заниматься микшированием в своём треде. Я не хочу чтобы OpenAL создавал тред!

Проще простого: поставьте контексту атрибут ALC_SYNC, AL_TRUE, и периодически вызывайте alcProcessContext(context);

У меня возникают случайные очень странные ошибки, которые никак не относятся к делу.

Решений могу предложить несколько, применять их следует в этой же последовательности:

  1. После каждого вызова OpenAL вызывать alGetError(), например используя макросы для экономии места.
  2. Выделять источники один раз, при инициализации звука. Не динамически. Учтите это при проектировании приложения.
  3. у вас 64 битный linux ? попробуйте мою сборку openAL и не забудьте написать в bugtracker openal, дистрибутива, чего угодно чтобы выключили MMX в openal на x86_64 :)

16 источников это очень мало - у меня “сто звучащих” обьектов на уровне.

Больше вам вряд ли надо :) OpenAL не содержит менеджера источников, поэтому вам эту сущность придётся написать самим или взять из какого-нибудь проекта. Чем эта сущность должна заниматься ?

  1. Инициализацией OpenAL и созданием источников.
  2. Отслеживать расстояние до обьектов и реально играть только самыми близкими обьектами.
  3. Перезапускать приблизившиеся обьекты с зациклеными звуками (например вертолёт)

Как сделать источник звучащий слушателю “в голову” ?

Ключевые моменты инициализации:
alSourcei (source, AL_SOURCE_RELATIVE, AL_TRUE);
alSourcef (source, AL_ROLLOFF_FACTOR, 0.0);
По умолчанию эти значения выставлены в AL_FALSE и 1.0 соответственно.

©2007 Меньшаков Владимир, Netive Media Group.

Comments: 7509 Comments

Итальянский перевод

22 August 2007

Франческо Бользони добавил итальянскую локализацию в игру. Она будет доступна в следующих релизах. Огромное спасибо!

Comments: 5073 Comments

Две новости: хорошая и ещё лучше

21 August 2007

Хорошая новость : Я починил debian-amd64 билд, вырезав из openal завязаные на макрос __MMX__ блоки, потому что HAVE_MMX в config.h.in в openal нет :) В configure запретить тоже нельзя. Качать тут

Новость ещё лучше: btanks добавлены в генту. Ждите ебилдов. ©

Comments: 4402 Comments

Вышла версия 0.5.4739

15 August 2007

Я так бежала, так бежала что чуть ноги не сломала…

Предыдущий релиз был сделан как-то в спешке и изобиловал багами :( Этот релиз призван бороться со старыми багами и рождать новые, а именно :

  • Теперь можно подсоединиться к серверу вдвоём, в режиме split-screen :)
  • Добавлено ограничение по времени для десматч карт
  • Можно разговаривать во время игры, нажимая кнопку ENTER или RETURN (на ваш вкус ;)
  • Поддержка имён для игроков и смешная генерация :)
  • Поддержка utf-8 во всех текстовых поля, включая консоль (это значит можно разговаривать по сети на своём любимом языке)
  • Несколько новых читов :)
  • Глобальные сообщения теперь можно прочитать, у них есть фон и они не мешают другим контролам, меню и статистике.
  • В очередной раз человечки и башни перестали стрелять сквозь стены :)))
  • Корректно начисляются фраги
  • Если во время сетевой игры произошла какая-то ошибка, игра не выключается, а выходит в меню
  • Настройка громкости фонового шума
  • Улучшение поведения стадового AI в сетевой игре.
  • Тороидальные карты теперь тоже работают в сетевой игре
Comments: 5232 Comments
Tags: Релизы

Дистрибутивы линукс

1 August 2007

Танков нет в вашем любимом дистрибутиве Linux? Напишите об этом в багтракер, как это сделали в Gentoo: bug 172772. (А ещё я слышал что btanks недавно включили в SUSE).

PS: Лиор Каплан указал нам на баг в Дебиане

Comments: 4350 Comments