Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2013, 21:38   #21
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

А как реализована работа по сети? через что?
Виталий Желтяков вне форума Ответить с цитированием
Старый 05.03.2013, 22:55   #22
EridorBlade
CAE Engineer
Пользователь
 
Аватар для EridorBlade
 
Регистрация: 10.03.2011
Сообщений: 75
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Коли есть желание - я всегда готов сразиться по сети (глюки бывают раз в 10 партий, почти норм, сборку высылаю и всё разъясняю) и есть возможность доказать на практике проявится ли где-то дисбаланс ))) Для такой встречи надо бы правила все знать (ну и сами расклады по балансу - там есть документик по нему и сыграв пару партий, можно оценить), ибо есть тонкие моменты, которые новичок не всегда учитывает, чем я в итоге могу воспользоваться.
У меня немного посвободнее со временем станет скоро и я с удовольствием поковыряюсь. Ну и сыграем если будет такая возможность . Проект интересный
EridorBlade вне форума Ответить с цитированием
Старый 06.03.2013, 06:14   #23
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Работа по сети сделана через почти (есть пара моментов жёсткой привязки, ещё пересмотрю) самостоятельную обёртку, которой неважно какой будет реализация - есть просто базовый интерфейс - методы, пока для версии 1.1 прицеплены самые банальные дельфи-компоненты, когда сяду этим заниматься для версии 2.0 (совместно с остальным портированием), возьму сетевой плагин движка, на котором работаю, и напишу наследника обёртки для него.

Сама сеть, по сути, примитивна. Есть понятие приёма и отправки, когда создаётся команда (из "системы команд" которая), она проходит шаги: формируется полностью/предобрабатывается, при сетевой игре кидается наружу и обрабатывается ("принимается у себя"). При приёме просто есть метод приёма команды - полностью безрализчный к тому, кто её послал (это мб свой комп, удаленный комп, загрузчик сейва, в будущем и АИ будет по такой схеме работать), там просто исполнение команды идёт и запоминание. За счёт запоминания реализованы сейвы и реплеи - игра при этом загружает исходную карту из сейва и исполняет всю очередь команд, для сейва мгновенно, для реплея с паузами и перерисовкой после каждой команды.

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

EridorBlade , замётано. Погляжу на то, как может освоиться с такой игрой любитель пошаговок ) В принципе , при определённой тренировке, 1 партия играется минут 10-15, если не мутить сложных стратегий ))

Последний раз редактировалось phomm; 06.03.2013 в 06:27.
phomm вне форума Ответить с цитированием
Старый 06.03.2013, 13:35   #24
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Из вашего описания следует, что вы никак не проверяете передаваемые данные. Бойтесь рассинхронизации.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 06.03.2013, 14:40   #25
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

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

Ну а вопросы безопасности меня не беспокоят пока что, команды шлются открыто, но шифрование - работа реализующей части, а не обёртки, которую делаю непосредственно я.
phomm вне форума Ответить с цитированием
Старый 06.03.2013, 20:09   #26
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Что-то я не понял. Так через что работает сеть? Какой протокол?
Виталий Желтяков вне форума Ответить с цитированием
Старый 06.03.2013, 20:51   #27
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Протокол TCP/IP на стандартных дельфи компонентах TClientSocket TServerSocket
Впоследствии будет работать через плагин движка, для вин-сборки там винсокеты, для других ос пока не знаю
phomm вне форума Ответить с цитированием
Старый 07.03.2013, 11:43   #28
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

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

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 07.03.2013, 14:40   #29
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

А как обстоит дело с обычной (не спрайтовой) анимацией? Есть ли возможность плавно перемещать изображения, плавно менять их прозрачность и размытость?
Виталий Желтяков вне форума Ответить с цитированием
Старый 07.03.2013, 17:10   #30
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Да, всё нормально с ней. Изображения перемещаются, можно менять альфу, блендить в разных режимах и т.п. Когда будет готов этап работы над "заготовкой" (прямо перед началом работ по портированию игры на эту заготовку) - предоставлю либо видео по основным возможностям, либо даже саму технодемку пощупать.
Насчёт размытия - либо универсальным шейдером, либо постобработчиком встроеным (и то и то в доработке в движке, но неуниверсальным шейдером можно уже сейчас, аналогично почти как в опенгл).
Если интересуют больше технические аспекты, то наверное резонней дать ссылку - можно ознакомиться со всеми фичами, существующими и планируемыми http://dgle.dronprogs.org/ лично я для себя решил, что усердствовать с эффектами пока не буду, мне достаточно будет базовой отрисовки графических объектов в движении, немного работы с динамически генерируемыми элементами типа гуи и эффектами типа фейдинга.
phomm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
игра N1b1V Общие вопросы .NET 0 06.11.2010 15:49
Игра на C++ Chuvak ot dushi Общие вопросы C/C++ 1 05.11.2010 15:09
Игра zumm Софт 0 15.10.2009 13:25