Комментарии 15
Спасибо за статью, было очень интересно почитать про закулисье игровых движков. Можете посоветовать литературу по программированию мультиплеера?
https://habr.com/ru/companies/piter/articles/310680/
https://www.amazon.com/Multiplayer-Game-Programming-Architecting-Networked/dp/0134034309
Лучше разбора чем у Glazer, я пока не встречал.
А вообще можно почитать код дагора или анриала, там очень хорошо это реализовано, с предикшенами, прогнозированием и компенсацией задержек.
Вот тут еще есть много материала
https://gafferongames.com/ можно идти с первой статьи и делать как автор рассказывает
Спасибо за ссылки и за цикл статей, жду бонусную, с примерами, люблю жизу почитать)
Хотел бы спросить: а «Многопользовательские игры. Разработка сетевых приложений» можно считать информативной? А то мне показалось, что слишком много общих вещей, не совсем про практику. Может быть, я невнимательно смотрел её и всё-таки стоит погрузиться получше?
Это теория, как и GEA. Практику надо смотреть в анриале например, но без теории не будет понятно почему сделано так а не иначе.
смотрите сразу в суть либо по библиотеке, либо ищите конкретно туториал о том как сделать серверный код, и как обрабатывать запросы с клиентов(Libuv, epoll, poll и тд.), ах еще смотря какая сетка я тестил простенькое решение только с сервером (тоесть сервак слушает получает позицию игрока и всем говорит об этом, клиент отправляет принимает например свою позицию, это простой пример, еще там есть с физикой моменты например солвер физики на сервере как пример), если это конечно сурс будет, а так на движках что-то есть
что еще фазирование по параметрам из последних технологий, когда на серваке мало игроков 2 или группа серваков сливаются, но игроки остаются на своих серваках )
Зарегистрировался просто чтобы сказать что статья интересная, не особый любитель читать всякие айтишные чтива, но даже со своим небольшим опытом пользования игровыми движками и создания 2Дшных приколов на <canvas> ванильным js статья очень понравилась.
P.S.: Про затупы при создании механик типа движения рендера и колижна которые можно было бы сделать за пару вечеров прослезился...
Но ... Cities Skylines зачем-то тащут зависимости на PhysX, а возможно не просто тащут, но и как-то его используют.
Калькулирование течения рек и осушения морей под очередной квартал с шестнадцатиэтажками наверняка требует недюженной физики, хотя я не знаю точно, как в игре это под капотом реализовано.
В том то и дело, что они написали свою физическую симуляцию для рек и питчили это в девблоге. Я так понимаю физикс там тянется от юнити и выпилить его из движка очень сложно, если возможно
в майнкрафте на текучесть(и смешивание текучих материалов) тоже своя физика так как там полигональные кубики там тоже классно сделано, я так и не понял как, там почти наука, когда смотрел)
Сеть (Networking)
и все либы про http, лол. Видимо речь за ММО-помойки типа MyLands.
Не увидел raylib/sdl/sfml. Кажется они закрывают немало базовых потребностей для геймдева - окошки, ввод, поддержка разных графических бэкэндов, примитивное управление ресурсами и пр.
в sdl3Net обновили что-то в сетке теперь создать дедикейтед простенький дело 10 минут(пулл из 30 например мест для игроков и 30 окон к примеру, ну у меня получше работало чем на SDL2Net) (почти на сокетах будет работать так как вызываем либу эту, соотв обработка от клиентов на серваке просто в SDL_Thread на первое время чтоб понять что к чему самый топ, так-то там должны быть распаралеливающие либы за место трида, но у меня конектилось и я видел игроков))
так и сайтик можно сделать )
Когда-то выбрал AngelScript и поначалу все было нормально, но потом вылезли баги в Linux/Android, долго добавляли Mac на arm. В итоге решил что скрипты будут только для ускорения разработки.
По ИИ: смотрел как племянник играет в мобильный файтинг, показывают что подбирают противника равного по уровню, но он выносится с трех ударов. Я сразу сказал что это бот, но не убедил. В общем имитация интеллекта работает для определенной возрастной группы, а тем кто перерос уже скучно играть.
Game++. while (!game(over))