PDA

Просмотр полной версии : Combatants – 2д командный мультиплеерный шутер


OlegAntipov
20.11.2015, 14:26
http://onlinegamer.cc/tmp/img/combVKLogo.jpg

Игра обновлена 30.11.15.

Версия 0.1.3:
- исправлен баг с не пропадающим оружием и бонусами на клиенте
- добавлена карта "bunker"
- Исправлен глюк с режимом "без подбирания оружия" (клавиша T)
- Исправлен глюк с неверным расчётом пути ботами
- Уменьшен сетевой трафик между игроками почти в 3 раза за счёт сжатия и оптимизации структуры пакета синхронизации.
- Исправлено несколько глюков с рассинхроном игроков при подключении к уже идущей игре.
- Несколько увеличен радиус попадания из ракетницы в игроков.
- Исправлен глюк со списком идущих игр. Иногда список не обновлялся (!)
- Улучшен интеллект ботов, теперь они не стреляют в игроков, находящихся за стенами.
- Добавлена возможность выбора персонажа, при коннекте к уже идущей игре.
- В доступном списке игр отмечаются жёлтым цветом уже начатые игры.

===============================================

Привет народ,

уже довольно долгое время разрабатываю что-то вроде тим фортреса в 2д с графикой аля аркадные игры прошлого, такие как бомберман, танчики и т.д. Мультиплеер, чат, боты, создание комнат, классы, карты - всё как положено. Вот доделал до какого-то играбельного состояния, и выношу на суд общественности. Надеюсь на вашу критику, пожелания, найденные баги. Графика пока сильно не финальная, она будет ещё дорабатываться.

Поиграть можно тут: http://bit.ly/combatants
Или тут: https://vk.com/app5101271

Видео геймплея на ютубе: https://www.youtube.com/watch?v=HHr418XLRaY

Группа игры в Вконтакте: https://vk.com/combatantsgame

Суть игры в общем думаю очевидна: беги, стреляй, оружие подбирай, аптечкой лечись, бонусы лови, фраги, флаги, команды - вот это всё. Можно играть как с реальными игроками, так и с ботами.

Чтобы начать игру один игрок создаёт комнату, назначает параметры игры, а другие игроки к ней подключаются. Поддерживается функция подключения игроков к уже идущей игре на лету.

Управление:
WASD - Ходить
мышка - прицеливаться и стрелять
ESC или F12 – вызвать меню в самой игре
R - перезарядка
T - подбирать или не подбирать оружие
ENTER - открыть\закрыть чат в игре
TAB - статистика по фрагам

Что сделано на данный момент:

3 режима игры: десматч, командный десматч, захват флага. Планирую ещё добавить контрольные точки, уничтожение баз и может другие режимы, которые впишутся в механику игры.

Оружие в количестве 10 штук: пистолет, автомат, дробовик, снайперка (тяж), бомбомёт (тяж), катана, бензопила, ракетница (тяж), огнемет (тяж), миниган (тяж). Тяжелое вооружение уменьшает скорость перемещения на 30%. Изначально я думал запретить некоторым персонажам брать тяжелое вооружение, но потом решил, что это не особо весело будет, и разрешил пока любому персонажу брать любое оружие.

4 вида персонажей (ака классы):
Морпех - средний по скорости, изначально вооружен автоматом, большое количество здоровья.
Док - средняя скорость передвижения, изначально вооружен пистолетом, может подлечивать себя и своих игроков если они стоят рядом (по сути передвигающаяся аптечка), среднее количество здоровья
Ниндзя - очень быстрый, изначально вооружен катаной, если не двигается может становиться почти невидимым для других игроков, малое количество здоровья.
Подрывник - медленный по скорости, изначально вооружен гранатами, большое количество здоровья и плюс ещё бронник по-умолчанию. Когда берёт тяжёлое оружие оно его не замедляет (он и так медленный).

Планирую ещё добавить 4-5 персонажей типа инженера, полковника, диверсанта и т.д. со своими всякими особенностями.

5 видов бонусов:
Аптека - восполняет здоровье до максимума.
Скороход - ускоряет передвижение на 50%, не действует на ниндзю.
Берсерк - увеличивает урон в 4 раза от оружия.
Шмалятор - повышает точность, скорострельность и перезарядку любого оружия.
Бронник - бронежилет добавляет дополнительную полосу жизни, которая принимает повреждения на себя, защищая полосу здоровья игрока.

На данный момент доступно пять карт, в дальнейшем буду добавлять ещё.

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

Спасибо!

http://onlinegamer.cc/tmp/img/Comb_scr01.jpg
http://onlinegamer.cc/tmp/img/Comb_scr03.jpg
http://onlinegamer.cc/tmp/img/Comb_scr04.jpg

OlegAntipov
24.11.2015, 11:28
http://onlinegamer.cc/tmp/img/swat_shield.jpg

В следующем обновлении появится карта "город" и новое оружие - щит спецназа 8-) который останавливает любые пули, летящие фронтально, а также при его ношении можно стрелять из пистолета. Незаменим для прикрытия напарника по команде, несущего вражеский флаг на свою базу.

http://www.youtube.com/watch?v=WirSwfiauDg

Tails
24.11.2015, 12:22
Сделайте аппаратный курсор.

tattori
24.11.2015, 13:42
еще не играл, глянул видео и мне понравилось)) тут даже ниндзя есть))) вечерком попробую поиграть)))

CrazyFlasher
24.11.2015, 16:49
Сервак свой? Логика сервер-сайд или на клиенте?

OlegAntipov
24.11.2015, 21:20
Сделайте аппаратный курсор.

Да, мне про это уже несколько человек сказало :) Сделаю в следующих обновлениях.

еще не играл, глянул видео и мне понравилось)) тут даже ниндзя есть))) вечерком попробую поиграть)))

Спасибо :)

Сервак свой? Логика сервер-сайд или на клиенте?

Сервак свой, но используется только для соединения игроков между собой и менеджмента созданных игр, сама игра работает через p2p флеша. По сути игрок, создавший игру, хостит всю логику у себя.

CrazyFlasher
26.11.2015, 11:29
Сервак свой, но используется только для соединения игроков между собой и менеджмента созданных игр, сама игра работает через p2p флеша. По сути игрок, создавший игру, хостит всю логику у себя.
Если игра станет популярной, то вы просто замучаетесь с читерами. Проверено на практике.

caseyryan
26.11.2015, 12:37
Сервак свой, но используется только для соединения игроков между собой
Зачем тогда нужен свой сервак? Можно же просто через цирус

OlegAntipov
26.11.2015, 14:26
Игра обновлена до версии 0.1.2:
- исправлен баг с перезарядкой
- добавлена карта "city"
- добавлено оружие "щит спецназа"
- следы от пуль стали чуть толще и следовательно заметнее
- исправлен баг с респауном сетевых игроков
- гранаты теперь подсвечиваются красным
- Мультиязычный интерфейс
- аппаратный курсор
- В лобби-меню при клике на кнопке "создать бота" и нажатой клавишей B, N или D можно создавать ботов соответственно подрывника, ниндзю, дока. Для создания бота-морпеха нажимать ничего не надо.
- на карте greenland добавлено защитное укрытие у аптечки
- на карте island добавлены дополнительные мостки, ведущие к базам игроков

Добавлено через 1 минуту

Если игра станет популярной, то вы просто замучаетесь с читерами. Проверено на практике.

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

Зачем тогда нужен свой сервак? Можно же просто через цирус

Сама игра работает через цирус, но сервак нужен чтобы получать список доступных в данный момент битв, их параметры, а также peerID игрока, создавшего игру (NetGroup не используется, юзается прямое соединение через NetStream)

Добавлено через 48 часов 37 минут
Насчёт лагов. Я тут недавно в статьях по сетевому программированию вычитал, что есть такая каверзная вещь в протоколах данных как MTU - Maximum transmission unit, т.е. максимальный размер полезного блока данных одного пакета, который может быть передан протоколом без фрагментации. Так вот, для UDP трафика он равняется по дефолту примерно 1500 байт. И тут меня заинтересовало, а какой у меня размер пакета синхронизации. Оказалось что он очень часто превышает 1500 байт (при полной нагрузке в 14 игроков). Т.е. почти в половине случаев сообщение синхронизации дробится на два куска, что весьма хреново, ибо на другом конце надо дождаться прибытия обоих. Вообщем путём deflate сжатия данных и уменьшения структуры самого пакета вроде удалось запихать всё в среднем в ~550 байт. Пока ещё рано говорить, но теоретически это позволит весьма неплохо снизить лаги и стабилизировать пинг.

Кому интересно, вот изначальный трафик, без сжатия и со сжатием deflate. Средние значения соотвественно ~1500 байт и ~840 байт.

http://onlinegamer.cc/tmp/img/traf1.gif

А на этом графике уже трафик с оптимизированными пакетами, соотвественно средние значения ~852 байт и ~544 байт.

http://onlinegamer.cc/tmp/img/traf2.gif

Тесты проводились на карте island с максимальным кол-вом игроков - 14. По идее теперь фрагментации пакетов практически никогда не должно быть, а лагов должно быть существенно меньше.

Да кстати я ещё пробовал сжатие lzma, хоть оно и лучше сжимает, но по данным Скаута тратится до 10% cpu! на сжатие и разжатие, по сравнению deflate, у которого менее 1%. А разница в эффективности сжатия не превышает 2-3%. Так что я остановился на deflate.

OlegAntipov
30.11.2015, 20:30
Игра обновлена до версии 0.1.3:

- исправлен баг с не пропадающим оружием и бонусами на клиенте
- добавлена карта "bunker"
- Исправлен глюк с режимом "без подбирания оружия" (клавиша T)
- Исправлен глюк с неверным расчётом пути ботами
- Уменьшен сетевой трафик между игроками почти в 3 раза за счёт сжатия и оптимизации структуры пакета синхронизации.
- Исправлено несколько глюков с рассинхроном игроков при подключении к уже идущей игре.
- Несколько увеличен радиус попадания из ракетницы в игроков.
- Исправлен глюк со списком идущих игр. Иногда список не обновлялся (!)
- Улучшен интеллект ботов, теперь они не стреляют в игроков, находящихся за стенами.
- Добавлена возможность выбора персонажа, при коннекте к уже идущей игре.
- В доступном списке игр отмечаются жёлтым цветом уже начатые игры.

http://onlinegamer.cc/tmp/img/comb_0.1.3.jpg