Четверг, 25 Апреля 2024, 14:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум игроделов » Ваши проекты » Проекты в разработке » [MMO] Battle City.Net (2D MMO по мотивам Battle City)
[MMO] Battle City.Net
zodiakДата: Понедельник, 09 Июля 2012, 21:26 | Сообщение # 1
постоянный участник
Сейчас нет на сайте


Название: Battle City.Net
Жанр: mmo/ RPG -action
На каком движке: Windmill 2D Game Engine
В каком пространстве: 2D
Какой вид в игре: сверху
Какие есть похожие игры: Battle City, Танчики, Battle City World
Какой Язык Пр. используется в игре: основной C#, возможно C++ для сервера.
Предоставление исходного кода игры: Open Source
Какой тип лицензии распространения: GNU GPL
Сроки разработки: идея появилась примерно 10.06.2012, к написанию кода приступил 7.07.2012.

Данная игра является ремейком известной Battle City, вышедшей для приставки Dendy еще в 1980 году. Основное отличие от оригинала, возможность игры против живых противников по сети. Помимо этого в игре будет больше разнообразных бонусов и типов врагов. Надеюсь получится более интересный геймплей, поскольку появятся РПГ элементы, танк можно будет модифицировать не столько за звезды, сколько приобретая различные улучшения. Звезды же будут давать возможность приобрести танк следующего поколения, но заработать звезду будет не просто.
Было бы неплохо подвести под это дело какой-нибудь сюжет, но пока мыслей нет.
Графике в игре пока будет из дендевской игры.

Сейчас занимаюсь базовым функционалом. На текущий момент сделано немного:
Перемещение танка.
Коллизии.
Стрельба.
Загрузка уровня, но она сделана только что, и танк с ним не взаимодействует. Редактора пока тоже нет, уровень генерится рандомом, естественно, что получается бяка.
Отчитываться о прогрессе и показывать новые демо я буду в процессе работы, ну а код буду выкладывать реже, примерно раз в неделю.

Почему С#?
Я люблю с++, но… на С# проще программировать, да и быстрее. Чего только стоит автоматическая работа с памятью. К тому же этот язык имеет больший функционал, не только в смысле наличия готовых функций для реализации различных вещей, например работы с файлами, xml, криптографией и сжатием данных, но и поддержкой непосредственно языком таких вещей, как динамическая типизация, рефлексия. Да и полностью русская справка с гигами примеров занимает не последнее место.

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

Кто нужен в команду:
Да, в принципе, пока никто.
Но позже понадобится художник, который подправит/добавит графику.
И нужен будет человек, который согласится держать у себя сервер, желательно со статическим IP, поскольку разные хамачи меня не вдохновляют.



Скачать демо:
Для запуска демо необходим установленный Net Framework 4, а для работы движка windmill не ниже Net Framework 3.
Демо 1.
Демо 2. (140 кб) 14.07.12
Демо 3. (144 кб) 17.07.12
Демо 4. (148 кб) 22.08.12
Демо 5. (180 кб) 06.09.12
Управление: стрелки, пробел - стрельба.

Обещанные исходники (50 кб). Для работы нужна Visual Studio 2010. В исходниках немножно нехватает комментариев, это я со временем поправлю.
С радостью послушаю критику и советы.



Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net


Сообщение отредактировал zodiak - Четверг, 06 Сентября 2012, 23:39
Markus_13Дата: Четверг, 23 Августа 2012, 14:30 | Сообщение # 61
частый гость
Сейчас нет на сайте
Quote (zodiak)
Размер мира на производительность больше не влияет.

ФПС не показатель, тут больше о лагах надо думать =)


{c0Der}
zodiakДата: Четверг, 23 Августа 2012, 18:40 | Сообщение # 62
постоянный участник
Сейчас нет на сайте
Ну сначала нужно сделать безбажный одиночный режим, чтобы потом не думать что лагает, сеть или другое. Да и сетевого кода я еще не начинал писать.

Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
WTALKERДата: Четверг, 23 Августа 2012, 19:04 | Сообщение # 63
постоянный участник
Сейчас нет на сайте
И самое интересное в Battle City - сделает ли кто-нибудь такую же систему ломания кирпичей! А то по другому не интересно.

Раз уж занялся игростроем, то умей и имей:
1) знание иностранного языка и понимание того, что делаешь
2) программы для игростроя, а так же для обработки текстур, моделей, звуков
3) много свободного времени
KVinSДата: Пятница, 24 Августа 2012, 08:33 | Сообщение # 64
постоянный участник
Сейчас нет на сайте
А не можешь поискать готовые решения?

Игра про лесных котов
zodiakДата: Среда, 29 Августа 2012, 14:45 | Сообщение # 65
постоянный участник
Сейчас нет на сайте
Quote (WTALKER)
И самое интересное в Battle City - сделает ли кто-нибудь такую же систему ломания кирпичей! А то по другому не интересно.

А моя разве не такая как в оригинале?

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

Добавлено (29.08.2012, 14:45)
---------------------------------------------
Что ж, сделал пространственное разделение, но при этом сильно испортил код, одни только перекрестные ссылки между статическими и обычными классами вызывают головную боль. Придется как-то упорядочивать.
Зато значительно продвинулся в оптимизации. На текущий момент каждый движущийся обьект проходит следующее количество проверок:
Со статикой от 16 до 32.
С движущимися арифметика сложнее. Коллизии проверяются не только в пределах текущей зоны но и с соседними, то есть всего 9 зон. Размер зоны у меня равен 5*5 клеткам, поэтому в зоне может быть 6 ботов (бот занимает 4 клетки 4*4 = 24). Ну а всего на 9 зон получается 54 – себя = 53 проверки максимум.

Тоесть в самых жестких условиях для 1000 ботов происходит 85000 проверок:
1000 *32 = 32000
1000 * 53 = 53000.

53000 проверок против 1000000 разница ощутимая. В результате на уровне размером 1000 на 1000 клеток с 1000 ботов, где раньше случался висяк, теперь я имею 30 фпс.
При 5000 ботов фпс равен 6-10. Это в дебаге, в релизе 16-18.
Есть над чем работать.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
Markus_13Дата: Четверг, 30 Августа 2012, 08:47 | Сообщение # 66
частый гость
Сейчас нет на сайте
Quote (zodiak)
53000 проверок против 1000000 разница ощутимая. В результате на уровне размером 1000 на 1000 клеток с 1000 ботов, где раньше случался висяк, теперь я имею 30 фпс.
При 5000 ботов фпс равен 6-10. Это в дебаге, в релизе 16-18.
Есть над чем работать.

Как-то странно, у себя тестировал проверку коллизий (локальную в сингле): до 90.000 объектов разбитых на 4 коллизийных группы (танки, снаряды, препятствия и триггерные зоны) - хотя нагрузка на ЦП возрастала, фпс сохранялся на том же уровне... Мне кажется у тебя или проблема в алгоритмах просчета или косяки с рендерингом...
Или очень слабый комп)))


{c0Der}
zodiakДата: Четверг, 30 Августа 2012, 17:03 | Сообщение # 67
постоянный участник
Сейчас нет на сайте
Quote (Markus_13)
Как-то странно, у себя тестировал проверку коллизий (локальную в сингле): до 90.000 объектов разбитых на 4 коллизийных группы (танки, снаряды, препятствия и триггерные зоны) - хотя нагрузка на ЦП возрастала, фпс сохранялся на том же уровне... Мне кажется у тебя или проблема в алгоритмах просчета или косяки с рендерингом...

Рендер двига точно не при чем, у меня на компе он держит 20000 видимых обьектов при 30 фпс.
Это либо алгоритмы, но они простые до ужаса, либо я хз че...
Заставляешь меня нервничать, совершу акт суициду, наложу себе в руки))). Вобщем не верю, что у тебя одновременно 90000 объектов. Сколько движущихся? потому как препятствий у меня на уровне несколько тыщ, и фпс они особо не жрут, я их даже не учитываю.
Покажи демку с 1000 танков, какой у ней будет фпс?
Я вот допилю группы, чтоб боты друг друга не мочили, и выложу.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
Markus_13Дата: Четверг, 30 Августа 2012, 17:11 | Сообщение # 68
частый гость
Сейчас нет на сайте
Quote (zodiak)
Покажи демку с 1000 танков, какой у ней будет фпс?

Через денек попробую =)
Я тестил - 5 танков, 50 препятствий (неподвижных), около 10 триггерных зон и около 80 тысяч снарядов разных с разной формой физ. тела (прямоугольная с произвольным углом и круглая)...

Quote (zodiak)
Заставляешь меня нервничать, совершу акт суициду, наложу себе в руки))). Вобщем не верю, что у тебя одновременно 90000 объектов.

Пока можешь не верить =))


{c0Der}
МарсДата: Четверг, 30 Августа 2012, 17:22 | Сообщение # 69
заслуженный участник
Сейчас нет на сайте
Markus_13, если тебе 1 минуту на тестирование снаряда. 80 000/ 60 = 1333 часа тебе понадобилось бы. Если бы ты делал тестирование 8 часов в день тебе бы понадобилось 166 дней.

Ты лжешь.
Markus_13Дата: Пятница, 31 Августа 2012, 04:21 | Сообщение # 70
частый гость
Сейчас нет на сайте
Quote (Марс)
Markus_13, если тебе 1 минуту на тестирование снаряда. 80 000/ 60 = 1333 часа тебе понадобилось бы. Если бы ты делал тестирование 8 часов в день тебе бы понадобилось 166 дней.

Бред какой-то, что за минуты, часы? Ты бы еще человеко-дни приплел *lol*

З.Ы. хотя вообще конечно с 80 тыс-ми я наверное загнул, сейчас поробую накидать стресс-тестер на тему коллизийных просчетов, скажу точно)

Добавлено (31.08.2012, 04:21)
---------------------------------------------
zodiak, часов 8 уже этой ерундой занимаюсь)))

В общем итоги такие:

80 тысяч снарядов получилось сделать только при условии что был лишь 1 объект с которым они могли столкнуться)))
и то фпс не радовал =)

Более-менее "без повисания" работало: 40К неподвижных (группа1), 15К движущихся (группа2, сталкиваются друг с другом), 25К снарядов (группа3, сталкиваются с группой1 и группой2) и около сотни триггеров (группа4, сталкиваются с группой3).
Группа 1 - препятствия (стены), группа 2 - (любые движущиеся объекты с физ. телом), группа 3 - пули/снаряды/ракеты и т.д., группа 4 - у меня были зоны замедления снарядов).
В режиме 800*600 кое-как удалось добиться 3 фпс))))

После долгого снижения планки дошел до следующего: 15К неподвижных и 2.5К подвижных, после старта карта постепенно заполняется снарядами (до 80 тысяч объектов в теории)... я не дождался, т.к. тормоза уже на 40К объектов были =))
Собстно вот ссылка: http://markuss13.narod.ru/s0me/CollStest.exe (тыц)
Слева вверху пишется фпс и общее кол-во объектов.
Управление такое: стрелки - движение камеры (с ускорением), левая кнопка - выстрел (в случайном направлении) если кликать с зажатым шифтом или к-трлом, то направл-ие будет вниз и вверх соотв-но, правая кнопка - создать область замедления снарядов...

Пока все... тестим, делимся впечатлениями)) Спать хочу сильно)))


{c0Der}

Сообщение отредактировал Markus_13 - Пятница, 31 Августа 2012, 04:22
zodiakДата: Четверг, 06 Сентября 2012, 22:54 | Сообщение # 71
постоянный участник
Сейчас нет на сайте
Снова я с новой демкой.
Внимание! изменен формат файла уровня. Он не совместим с предыдущими. В архиве находится обновленный редактор. Если кто-то делал карты, то старые можно конвертировать с помощью MapConverter_0.3.

Прошу тестировать, и пожалуйста укажите фпс и свой процессор. Фпс нужно смотреть сразу, ато через 30 сек на уровне остается 1000 танков.

Неделя оптимизации не прошла даром, и я таки добился поставленой цели, даже ее немного перевыполнил.
На текущий момент фпс с 5000 ботов равен 40. При этом на уровне размером 5000 на 5000 клеток находится 100000 статических объектов и около 500 снарядов. Причем, из-за высокой скорости снаряда и выполнения интерполяции его координат, коллизии для снаряда просчитываются раза в 3-4 медленнее.
Также в процессе была попытка распараллеливания задач, В результате скорость повысилась на 70% но появились проблемы синхронизации, так что эта возможность оставлена на потом.

Список изменений:
23.08
• Сделал отдельные списки для статических и динамических боксов. Колизии проверяются только для ближайшей статики. ПРирост производительности примерно в 20 раз.
29.08
• Алгоритм пространственного разделения для просчета коллизий.
31.08
• Множественные оптимизации. Цель в 30 фпс при 5000 ботов пока не достигнута(только 15-20).
MapEditor v.0.3:
• Оптимизировано отображение карты.
• Изменен формат файла карты, теперь он является архивом.
2.09
• Задействовал звуковой движок. Добавил несколько звуков.
6.09
• Переделал интерполяцию движения пуль. Завершил оптимизации. План перевыполнил. 40 фпс при 5000 ботов.

Это была последняя неигровая демка. В следующей уже появится хоть какой-то геймплей.

Markus_13, У тебя неподвижные объекты не сталкиваются с подвижными (танки со стенами). А при лагах подвижные объекты застряют друг в друге. И еще, когда начинаешь движение, фпс резко падает.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net


Сообщение отредактировал zodiak - Пятница, 07 Сентября 2012, 07:53
НохчиДата: Четверг, 06 Сентября 2012, 23:00 | Сообщение # 72
заслуженный участник
Сейчас нет на сайте
ФПС 85-88, тут вроде два проца по 2 гц стоят.

Многие вопросы по Windows отпадут, если посмотреть тут
x-and1988Дата: Четверг, 06 Сентября 2012, 23:10 | Сообщение # 73
постоянный участник
Сейчас нет на сайте
Интересный проект! Удачи автору! Пощупал бы исходники, будь они на java ...

Изучаю Java
My new project
My old project
Markus_13Дата: Пятница, 07 Сентября 2012, 12:10 | Сообщение # 74
частый гость
Сейчас нет на сайте
Quote (zodiak)
Markus_13, У тебя неподвижные объекты не сталкиваются с подвижными (танки со стенами). А при лагах подвижные объекты застряют друг в друге. И еще, когда начинаешь движение, фпс резко падает.

Не застревают, там просто алгоритм обработки столкновений косячный - при столкновении вектор движения меняется на обратный. Насчет движения - естес-но, при движении в обработку включается сразу много групп (у меня объекты разбиваются по группам в зависимости от расположения).
Но у тебя задача то проще, у меня объекты под любыми углами и 2ух разных форм - круг и квадрат, а у тебя только квадраты и все углы кратны 90 градусов, т.ч. тебе легче должно быть =)


{c0Der}
WTALKERДата: Суббота, 08 Сентября 2012, 01:09 | Сообщение # 75
постоянный участник
Сейчас нет на сайте
Quote (zodiak)
Quote (WTALKER)
И самое интересное в Battle City - сделает ли кто-нибудь такую же систему ломания кирпичей! А то по другому не интересно.

А моя разве не такая как в оригинале?

на картинках это не заметно.

Ну и долго же устанавливается Net4.. хотя даже он не помог:
"После запуска BattleCity.Net.exe - программа завершает работу, с выяснением причины ошибки". Win7, нетбук SamsungN150 Plus.
Сперва думал что "нет4" не установил.. Скачал, установил... Всё равно вылетает.. Спать уже надо..


Раз уж занялся игростроем, то умей и имей:
1) знание иностранного языка и понимание того, что делаешь
2) программы для игростроя, а так же для обработки текстур, моделей, звуков
3) много свободного времени


Сообщение отредактировал WTALKER - Суббота, 08 Сентября 2012, 01:16
zodiakДата: Воскресенье, 09 Сентября 2012, 10:05 | Сообщение # 76
постоянный участник
Сейчас нет на сайте
Quote (WTALKER)
После запуска BattleCity.Net.exe - программа завершает работу, с выяснением причины ошибки


Может еще нет3 нужен. А что пишет в windmill.log?


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
MrNeshДата: Воскресенье, 09 Сентября 2012, 10:30 | Сообщение # 77
Воин добра и света
Сейчас нет на сайте
Quote (zodiak)
После запуска BattleCity.Net.exe - программа завершает работу, с выяснением причины ошибки

У меня тоже dry

Добавлено (09.09.2012, 10:30)
---------------------------------------------

Quote
WindMill 2D Game Engine v1.40
10:29:51 Инициализация графики...
10:29:51 Инициализация графики не удалась.
10:29:51 Инициализация менеджера ресурсов...
10:29:51 Инициализация менеджера ресурсов выполнена.
10:29:51 Инициализация менеджера сцены...
10:29:51 Генерация шрифтов...
10:29:51 Ошибка генерации шрифтов.
10:29:51 Инициализация системы ввода.
10:29:51 Инициализация системы ввода выполнена.


nilremДата: Понедельник, 10 Сентября 2012, 13:31 | Сообщение # 78
Просветленный разум
Сейчас нет на сайте
jiumx60rus, У тебя видеокарта тоже интеловская, как и у WTALKERа?

Windmill 2

WindMill 2D Game Engine
zodiakДата: Пятница, 14 Сентября 2012, 11:25 | Сообщение # 79
постоянный участник
Сейчас нет на сайте
WTALKER, jiumx60rus, Вот нилрем выложил новую длл, которая теоретически должна работать на интеловских gpu.

По прогрессу разработки:
Сделал танкам жизнь и броню.
Сделал четыре вида снарядов - фугасные, бронебойные, подкалиберные, кумулятивные, с разным уроном, скоростью, дальностью. Делаю сменное разнокалиберное оружие.
ДОбавил кристаллические стены. Точнее кристаллические кирпич и бетон, которые со временем восстанавливаются.
Добавил Адамантиновый бетон, который будет абсолютно непробиваем.

Начал думать об функционале сервера.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
НохчиДата: Воскресенье, 17 Марта 2013, 21:04 | Сообщение # 80
заслуженный участник
Сейчас нет на сайте
Ну так что с игрушкой?

Многие вопросы по Windows отпадут, если посмотреть тут
Форум игроделов » Ваши проекты » Проекты в разработке » [MMO] Battle City.Net (2D MMO по мотивам Battle City)
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг