Разработка ПО включая игровые движки и инструменты геймдизайнера на Java. Наша Java-игра ждет Ваших оценок на VK Play: https://vkplay.ru/play/game/girl_of_war/
ты забыл добавить, чтобы после написания развивались дальше и никуда не выкладывали эти свои клоны
А теперь, дорогие мои детишечки, мораль сказочки: никому не нужна игра за 300 строк кода, даже для саморазвития. Лучше напишите её же, но за 600 строк - будет полезнее. А еще попробуйте реализовать все игровые сущности как экземпляры одного и того же класса, но с разными контроллерами логики и визуального представления. Это позволит взглянуть на игру, как на шаблон для дальнейшего развития и расширения
просто я вот люблю такими техническими моментами заниматься, но знаю , что это лучше оставлять на потом, ближе к бета-версии. Иначе я могу потратить (ладно, с удовольствием провести) кучу времени, а игра так и не выйдет из-за совсем других причин. Критичные проблемы типа < 18 FPS конечно лучше решать сразу, но лишь потому , что это усложняет адекватное тестирование.
А что за адовые проблемы с опттмизацией под ПК еще не готовой игры?
Почему в одном хит-параде и книги, непривязанные к какому-то конкретному инструментарию, а также книги, жестко завязаные на определенный софт? Все вперемешку. Если про инструментарий - то тут все очень субьективно. Если в общем про геймдев, то почему нет книг Game Development Patterns? Game Engine Architecture? Real Time Rendering? Book of shaders?
Предложение действует для всех, вкладывающую душу?
Я честно немного не на тот вопрос отвечал или не тому юзеру коммент отослал. Я говорил про метод реализации полного сохранения как симуляции игры от последнего чекпоинта без рендеринга.
Но раз уж про реплей заговорили, то я вижу лишь две возможные проблемы:
1) Идея с реплеем появилась уже после того, как архитектура игры скомпоновалась и работает. Это задница.
2) Нет доступа к исходникам физического движка и движка анимации. А ни тот ни другой не позволяет симулировать временной шаг с отрицательным знаком.
По поводу рандома - это вообще не проблема. Я вот в своей игре видя теоретическую возможность мультиплеера в будущем в начале каждого уровня генерирую массив рандомных чисел и когда мне в игре потребуются рандомоные числа - я их забираю оттуда по очереди, а не генерирую по необходимости. Они точно также могут быть сохранены на диск или отправлены всем игрокам в мультиплеере.
По поводу Вашего предложения по системе управления - да именно так и надо делать управление. Управление на низком уровне - это экземпляр класса команда, где есть:
1) идентификатор персонажа, которым управляем,
2) клавиша
3) состояние клавиши (нажата или отпущена)
4) Временная метка.
Между игроком и НПС разница лишь в том, что первый генерирует эти команды контроллером клавиатуры, а второй искуственным интелектом. Ваши поиски путей - это более высокий уровень и эти данные не стоит сохранять - они рассчитываются. Если ИИ генерирует команды без учета рандома - то и их можно не сохранять - они воспроизводимы. Т.е. поиск путей ищет ключевые точки пути, контроллер управления НПС считает, какие клавиши нужно нажать, чтобы двигаться по нужным траекториям и создает нужные команды. И Вы сразу решите проблему - как управлять персонажами в массовых кат сценах - отключаем опрос клавиатуры и ИИ у мобов и с нужными таймингами рассылаем сохраненные на диск команды управления.
Также вы решите проблему воспроизведения сложных багов - тестер может сохранить все команды, которые были сгенерированы перед падением игры и массив рандомных чисел, сгенерированный им в начале игровой сессии, а Вы воспроизведете их у себя на компе с включенным отладчиком и отключенной клавиатурой.
Те проблемы, которые Вы переоцениваете, не кажуться столь чудовищьными, если ознакомиться с книгой Game development patterns от Robert Nystrom (есть не только на вражеском).
Так а если сохранять с самой последней кат сцены не состояние, а набор команд пользовательского ввода игрока и команд управления противниками искуственным интелектом (с временными метками конечно) и при загрузке все это проиграть, но без рендеринга на экран? Получишь то же самое состояние и даже после загрузки сможешь отмотать время вспять. И загрузки там были не быстрые - полагаю игра проигрывала в офлайне игру до чекпоинта и от кат сцены
За красоту не переживается не разу
Молодцы! Люблю хардкорный low level геймдев. Жаль, что сама Sega Dreamcast не заимела в моем сердечке места в более молодые годы