Игра на Pygame+OpenGL стеке. Как я докатился до жизни такой.
Давно я грезил о создании собственной игры. Но идей не было, а в геймдизайне я полный ноль.
Однажды на досуге я решил побаловаться с математическими моделями в Python. Я учусь на радиотехника, специализация — радиолокация, так что симуляторы и матмодели для меня привычная среда.
Вечером я залипал на одну из своих первых моделей — простой расчёт полуэмпирического уравнения радиолокации. Полное физическое уравнение — это диффур, который на тот момент я не потянул бы ни знаниями, ни мощностью своего старого
В один момент я подумал: а почему бы не сделать вместо статичных целей объекты, которые появляются динамически и ведут себя по-разному в зависимости от параметров уравнения?
Так родилась идея «Интерфазы».
Первая версия была просто тыкалкой по точкам — набор простейших уравнений и симуляций волн. Конкретно: уравнение длины волны, полуэмпирическая модель Максвелла и коэффициент рассеивающих элементов к длине волны. Тогда всё было сильно упрощено.
Постепенно игра начала обрастать механиками и быстро переехала с Tkinter на Pygame. А когда производительность упала ниже плинтуса — подключил OpenGL.
Почему я не перешёл на другие движки?Во-первых, я в них ничего не знал, а изучение заняло бы слишком много времени — скорее всего, я бы просто потерял интерес. Во-вторых, построить реальную физическую симуляцию в Unity или Godot оказалось бы очень сложно, если вообще возможно.
Поэтому я продолжил этот путь на Python-стеке. Да, он не дружелюбен для геймдева, и многие говорят, что он подходит только для аркад. Но мне кажется, я смог преодолеть этот барьер и создать нечто большее, чем просто змейку.
Сейчас разработка всё ещё идёт активно. В игре уже присутствует достоверная и физически корректная симуляция работы радиоволн. Единственное, что пока не учитывается — геометрия объектов (учитывается, но очень условно) и геометрия земли. Я боюсь, что добавление таких вычислений сильно ударит по производительности и игровому опыту. Поэтому пока упор идёт на сюжет.
Игра насчитывает более 30 реальных физически достоверных (хоть и несколько упрощённых) процессов для симуляции мира игры и работы РЛС. И это, возможно, ещё не конец.
Сюжет не сказать, что будет чем-то сверхъестественным — я не писатель, но стараюсь давать его дозированно и сделать достаточно интересным и драматичным (насколько это возможно для текстовой подачи), чтобы игроку не надоедало через 2 часа игры. В последней версии черновой сюжет сделан до 4-го дня. Всего я планирую 10–12. То есть ориентировочно 10–12 часов геймплея.
В свой блог я, возможно, буду постить детали разработки. Также всегда готов слушать ваш фидбек, рекомендации, советы и пожелания.
Демо можно скачать на itch.io по ссылке ниже:
Буду рад обратной связи!