Продолжаю разрабатывать собственную компьютерную игру. Рабочее название - Red Dunes Project.
Короче, пока моя 3060Ti уехала по гарантии, пришлось взять видеокарту попроще - уровня Geforce 710. И оказалось, что... моя игра прекрасно работает даже на ней! То есть, в плане графики она вообще не требовательна. Круто!
Зато неслабо грузила процессор. В обычном режиме игры на карте редко бывает больше 20 юнитов, поэтому всё работало превосходно и я даже не подозревал о проблемах. Но потом я задумал сделать нечто вроде встроенного теста производительности - взять двух ИИ-соперников, заставить их биться между собой, раздав каждому по 50000 денег, и посмотреть, что будет. В результате, когда с каждой стороны было по 100-120 юнитов, частота опускалась до 18-20 кадров в секунду! Причина была проста: каждый юнит проверял расстояния до всех остальных юнитов - даже если те находились на другом конце карты. Сложность вычислений посчитать нетрудно. 200 * 200 = 40000 вычислений за кадр.
Пришлось всерьёз заняться оптимизацией. Переписал последовательность выполнения скриптов, что позволило избавиться от множества лишних условных переходов - ведь ничто не бьёт по производительности так, как они. Доработал игровую логику. Но главное - разбил карту на небольшие районы, чтобы расстояния подсчитывались только до тех юнитов, которые оказались в одном районе. В итоге, никаких просадок частоты кадров больше не наблюдается. Тем не менее, пришла ещё одна мысль - раскидать вычисления на несколько ядер. Раньше игровая логика не позволяла этого сделать, но теперь - позволяет. В ближайшее время займусь...
В общем, очередной этап разработки подходит к концу. Игра по сети и игра против ИИ работают отлично. Баланс фракций я поменял, ИИ доработал, мелкие баги планомерно исправляются.
Следующий этап - большая одиночная кампания. Опишу основные особенности, которые намерен реализовать:
- Система прогрессии. За каждую победу ГГ получает денежное вознаграждение, которое можно потратить на улучшение базы или техники. Улучшения, кстати, могут быть как постоянными, которые останутся на протяжении всей кампании, так и временными, которые будут действовать только в течение одного уровня.
- Различные типы заданий. Если сейчас все бои проходят по формуле "Уничтожь базу противника, защитив свою", то в кампании будут встречаться и другие режимы. Например, защищать добывающую станцию в течение определённого времени. Или разгромить противника, имея лишь ограниченное количество ресурсов, которые не будут пополняться. Ну, смысл вы поняли.
- Два уровня сложности. Если на стандартном заработанные деньги можно будет тратить только на апгрейды, то на усложнённом придётся ещё и нанимать ОПЕРАТОРОВ, которые будут высаживаться на планету и управлять войсками. Причём, при проигрыше оператор погибнет вместе с уничтоженной добывающей станцией, и вам придётся нанимать нового. Если кончились и операторы, и деньги, чтобы их нанять - игре конец...
А ещё думаю над тем, чтобы выложить у себя в группе небольшую демо-версию. Её функционал, естественно, будет ограничен, но "пощупать" игровой процесс это не помешает.
Сегодня записал для вас ролик, где два ИИ сражаются друг с другом. Получилось очень любопытно. Сначала синий ИИ лидирует, так как выбрал более удачное сочетание техники, но красный ИИ анализирует ситуацию и видит, что враг уязвим для лазерного оружия. Он перестраивает своё производство, в результате чего десятки тяжёлых танков с лазерными пушками легко разбирают всю армию противника...
Короче, плюсуйте, минусуйте, пишите, что думаете, будет интересно почитать)
Вступайте в сообщество, чтобы видеть новости https://vk.com/publicreddunesproject