Суббота, 20 Июля 2019, 19:23

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Модератор форума: Ordan  
Форум игроделов » Ваши проекты » Проекты в разработке » [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
НохчиДата: Понедельник, 09 Июля 2012, 23:35 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Пока конечно обсуждать особого нечего, "карта" ужасна, коллизии только с танками обрабатываются. Но проект очень интересен. Буду следить за темой.

Многие вопросы по Windows отпадут, если посмотреть тут
VinchensooДата: Вторник, 10 Июля 2012, 08:45 | Сообщение # 3
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (zodiak)
Я люблю с++, но… на С# проще программировать, да и быстрее

Тогда зачем тебе плюсы для сервера? Пиши на С#, там вроде бы все достаточно мило, соберешь под Mono для линуксов и все проблемы.
Quote (zodiak)
Почему проект опенсорс?

Это редкость для шарпа, похвально)
Quote (zodiak)
Но позже понадобится художник, который подправит/добавит графику.

Бери оригинал, этим ты выйграешь, потому что обычных 2d танчиков уже было много всяких, тут лучше давить на ностальгию, имхо.
Quote (zodiak)
И нужен будет человек, который согласится держать у себя сервер, желательно со статическим IP, поскольку разные хамачи меня не вдохновляют.

Так опенсорс же. Выложи сервера в паблик, кому надо играть- пусть сам хостит и играет с друзьями.
Quote (Нохчи)
Пока конечно обсуждать особого нечего, "карта" ужасна, коллизии только с танками обрабатываются. Но проект очень интересен. Буду следить за темой.

Коллизии в клиенте обрабатываются? Это win =)

В принципе, удачи. Я думаю, ты один из немногих тех, кто может что-то доделать до конца. Надеюсь поиграем в августе)


НохчиДата: Вторник, 10 Июля 2012, 09:40 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Quote (Vinchensoo)
Коллизии в клиенте обрабатываются? Это win =)

Это да, по привычке ляпнул ( :
Но тогда и столкновения с танками должны на серве обрабатываться, нет ?


Многие вопросы по Windows отпадут, если посмотреть тут
omsklavrДата: Вторник, 10 Июля 2012, 10:05 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
я предлагаю сделать + к этому чтобы можно было танкистом еще играть, с автоматом бегать + добавить симс элементы facepalm lol и получится онлайн тамагочи про танк

Делаю самый супер сервер C.S. 1.6
VinchensooДата: Вторник, 10 Июля 2012, 10:23 | Сообщение # 6
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Нохчи)
Но тогда и столкновения с танками должны на серве обрабатываться, нет ?

Ну в идеале да. Мы просто как-то раз думали, а что будет, если написать онлайновые танчики =) И думали, какие подходы использовать.
Тут либо обрабатывать все на сервере, чем его грузить, либо кешировать карту в клиенте, но тогда надо заботиться об актуальности кеша и защиту от подмены делать, хз, как по мне, первый вариант и проще, и надежнее.


omsklavrДата: Вторник, 10 Июля 2012, 10:29 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Quote (Vinchensoo)
Ну в идеале да.

Лучше б Черепашек ниндзя денди онлайн сделали )


Делаю самый супер сервер C.S. 1.6
zodiakДата: Вторник, 10 Июля 2012, 10:45 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
Quote (Vinchensoo)
Тогда зачем тебе плюсы для сервера?

Встроенный в движок сервер для шарпа жрет очень много памяти на каждый клиент. На 2 гига нормально будут работать максимум 100 клиентов. Тогда как на плюсах несколько тысяч.

Quote (Vinchensoo)
Это редкость для шарпа, похвально)

Да какая там редкость, декомпилятор в руки и все резко становится опенсорс)

Quote (Vinchensoo)
Выложи сервера в паблик, кому надо играть- пусть сам хостит и играет с друзьями.

Он и будет выложен, сразу как только появится, но нужен же какой-то типа официальный, захотел поиграть - зашел, чтоб не искать где-то что-то.

Quote (Vinchensoo)
Коллизии в клиенте обрабатываются? Это win =)

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

Quote (Vinchensoo)
Я думаю, ты один из немногих тех, кто может что-то доделать до конца. Надеюсь поиграем в августе)

Спасибо за веру. Но до августа я разве что однопользовательский функционал доделаю.


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

Взломщик
Battle City.Net
AGENTX001Дата: Вторник, 10 Июля 2012, 11:09 | Сообщение # 9
почётный гцупер
Сейчас нет на сайте
Quote (zodiak)
Какие есть похожие игры: Battle City, Танчики, Battle City World

А приятно то как happy
zodiak, удачи, надеюсь у тебя терпения будет больше, чем у меня biggrin
x-and1988Дата: Вторник, 10 Июля 2012, 12:01 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
zodiak, уж если на джава серверах висят по 2к+ клиентов, чем шарп хуже то? Думаю ,всё зависит от реализации

Изучаю Java
My new project
My old project
VinchensooДата: Вторник, 10 Июля 2012, 20:55 | Сообщение # 11
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (zodiak)
Встроенный в движок сервер для шарпа жрет очень много памяти на каждый клиент. На 2 гига нормально будут работать максимум 100 клиентов. Тогда как на плюсах несколько тысяч.

Так ты не юзай его, а просто пиши на С#, чистом. Там есть класс сокеты, многопоточность и тд. Сложнее, конечно, но проще, чем на цпп, хотя бы из-за отсутствия утечек памяти на шарпе.
Quote (x-and1988)
zodiak, уж если на джава серверах висят по 2к+ клиентов, чем шарп хуже то? Думаю ,всё зависит от реализации

Примерно одинакого по ощущениям)


nilremДата: Вторник, 10 Июля 2012, 22:08 | Сообщение # 12
Просветленный разум
Сейчас нет на сайте
Quote (x-and1988)
уж если на джава серверах висят по 2к+ клиентов, чем шарп хуже то? Думаю ,всё зависит от реализации


Да, от кривизны рук разработчика. В движке используются синхронные(блокирующие) сокеты, причем на каждый клиент(сокет) выделяется отдельный поток. Каждый поток в шарпе жрет около 10 мб.

Quote (Vinchensoo)
Так ты не юзай его, а просто пиши на С#, чистом. Там есть класс сокеты, многопоточность и тд.

Вот на многопоточности я и прогадал. Зато, пока хватает памяти все работает быстро и стабильно.
Во второй версии движка сеть переработана, используются асинхронные сокеты, по 100 штук(задается в ручную и зависит от нагрузки на сервер) на поток максимум. Тестовый сервер выдержал больше 6000 подключений.

Это как бы оффтоп, желающим поговорить о движке сюда.


Windmill 2

WindMill 2D Game Engine
VinchensooДата: Среда, 11 Июля 2012, 10:24 | Сообщение # 13
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (nilrem)
Да, от кривизны рук разработчика. В движке используются синхронные(блокирующие) сокеты, причем на каждый клиент(сокет) выделяется отдельный поток. Каждый поток в шарпе жрет около 10 мб.

Оу, дофига. Либо я не замечал, либо в яве такого просто нет. Сегодня подниму сорцы своего курсовика, попырим.
Жрет именно поток или сокет?
У меня сейчас на сервере 1 клиент = 1 тренд, причем сокеты используются синхронные.
Я открывал во время тестов до 10к потоков, все вполне работало, никакого прожорства оперативки не было.
Но это ява, сеть на шарпе я не мучал, не было необходимости.
Quote (nilrem)
Это как бы оффтоп, желающим поговорить о движке сюда.

А мы обсуждаем сервер для игры, а не твой движок =)


НохчиДата: Среда, 11 Июля 2012, 11:32 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Vinchensoo, жрут память именно потоки, так как у каждого из них свой стек(по дефолту каждому по 1 мб в винде). Уточни что значит открывал, что происходило в твоей thread_func, мне почему-то кажется она у тебя сразу или почти сразу возвращала управление и поток прибивался, ибо тут не только в памяти дело, при 10к поток планировщик просто подавится. Обычно создается некое разумное число потоков(до нескольких десятков), которые лежат в пуле и достаются оттуда по мере необходимости и возвращаются в пул, когда становятся не нужны.

Многие вопросы по Windows отпадут, если посмотреть тут

Сообщение отредактировал Нохчи - Среда, 11 Июля 2012, 11:44
VinchensooДата: Среда, 11 Июля 2012, 12:08 | Сообщение # 15
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Нохчи,


zodiakДата: Четверг, 12 Июля 2012, 14:02 | Сообщение # 16
постоянный участник
Сейчас нет на сайте
nilrem, Вобщем непонятки какие-то. Тестировал, сколько же памяти будет использовать в шарпе каждый поток с клиентом. Затраты незначительны, от 10 до 100 кб. Но я же помню как раньше 100 клиентов сжирало всю память. Может от винды зависит, тогда стояла Windows XP, сейчас 7.

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

Взломщик
Battle City.Net
VinchensooДата: Четверг, 12 Июля 2012, 14:08 | Сообщение # 17
Злобный социопат с комплексом Бога
Сейчас нет на сайте
zodiak, оно же на виртуальной машине исполняется, не должно отличаться в зависимости от ОС.
Тогда тебе надо сразу на МОНО проверять, сервер-то скорее всего на никсах будет стоять.


zodiakДата: Четверг, 12 Июля 2012, 14:35 | Сообщение # 18
постоянный участник
Сейчас нет на сайте
Quote
оно же на виртуальной машине исполняется, не должно отличаться в зависимости от ОС.

Действительно, может был виноват Net Framework. Сейчас то у меня последний.
Вот программа для теста, попробуйте кто-нибудь.
Запускаем сервер, стартуем. Запускаем клиент, указываем максимум клиентов, стартуем. Сбой это разорванное или неудачное подключение.
Занимаемую память можно посмотреть в диспетчере задач.


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

Взломщик
Battle City.Net
VinchensooДата: Четверг, 12 Июля 2012, 14:42 | Сообщение # 19
Злобный социопат с комплексом Бога
Сейчас нет на сайте
zodiak, у меня сплошной сбой + под конец сервер упал.
А память диспечером смотреть не айс, врет он.


zodiakДата: Суббота, 14 Июля 2012, 20:27 | Сообщение # 20
постоянный участник
Сейчас нет на сайте
Кода пока немного (771 строка), но пришлось потратить пару часов на оптимизацию. а все началось с того, что создал я для теста уровень размером 1000 на 1000 клеток, содержащий примерно 50000 активных обьектов. Активных в смысле обьектов для которых просчитываются коллизии. Изображения я так и не увидел, все время сожрали 2,5 миллиарда просчетов столкновений. Да ну нафиг. Система столкновений была забракована и переписана заново. Если раньше каждый кадр просчитывалось все для всех, то теперь подход изменился. Двигающиеся обьекты, при смещении, теперь сами посчитывают себе столкновение. Причем если раньше все действия над ними при столкновении выполняла CollisionSystem, то теперь просто вызывается внутренняя функция объекта, в которой прописаны разные действия.

Добавлен новый функционал:
• Гусеницы у танка при движении анимируются (довольно таки геморным способом, увидите код, поймете. день на это убил)
• Танки и снаряды взаимодействуют со стенами, танками, снарядами.
• Снаряды взрываются.

Настала пора делать редактор карты, а то теперь, при работе столкновения со стенами и водой генерация в 9 случаях из 10 создает уровень, в котором вообще нельзя двинутся с места. Потому новой демки не выкладываю. Верьте на слово.

Quote (Vinchensoo)
zodiak, у меня сплошной сбой

Может фаервол блокирует сетевую активность.

Добавлено (14.07.2012, 17:19)
---------------------------------------------
Новая демка. (140 кб)

Изменения:
То, что в предыдущем посте +
• Чуть подправленные коллизии, теперь их расчет интерполируется, и нет такого бага, как пролетание пули сквозь стены или застревания танков при большой скорости движения или тормозах.
• Вражеские танки уничтожаются. Пока без взрыва.
• Простенький редактор карты. Игра автоматически грузит карту с именем "1.lvl".
Танки все еще генерятся рандомно, так что не удивляйтесь их появлению в стенах.



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

Добавлено (14.07.2012, 20:27)
---------------------------------------------
И да, можете начинать рисовать карты. Удачные элементы обязательно попадут в финальный, большой мир. И мир этот будет поначалу минимум 1000 на 1000 клеток.


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

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


Сообщение отредактировал zodiak - Суббота, 14 Июля 2012, 17:21
Форум игроделов » Ваши проекты » Проекты в разработке » [MMO] Battle City.Net (2D MMO по мотивам Battle City)
  • Страница 1 из 5
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

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