Игра на Pygame+OpenGL стеке. Как я докатился до жизни такой.

Давно я грезил о создании собственной игры. Но идей не было, а в геймдизайне я полный ноль.

Однажды на досуге я решил побаловаться с математическими моделями в Python. Я учусь на радиотехника, специализация — радиолокация, так что симуляторы и матмодели для меня привычная среда.

Вечером я залипал на одну из своих первых моделей — простой расчёт полуэмпирического уравнения радиолокации. Полное физическое уравнение — это диффур, который на тот момент я не потянул бы ни знаниями, ни мощностью своего старого

Pr​=(4π)3⋅R4Pt​⋅G2⋅λ2⋅σ​⋅Lsys​⋅Lemp​

В один момент я подумал: а почему бы не сделать вместо статичных целей объекты, которые появляются динамически и ведут себя по-разному в зависимости от параметров уравнения?

Так родилась идея «Интерфазы».

Первая версия была просто тыкалкой по точкам — набор простейших уравнений и симуляций волн. Конкретно: уравнение длины волны, полуэмпирическая модель Максвелла и коэффициент рассеивающих элементов к длине волны. Тогда всё было сильно упрощено.

Постепенно игра начала обрастать механиками и быстро переехала с Tkinter на Pygame. А когда производительность упала ниже плинтуса — подключил OpenGL.

Почему я не перешёл на другие движки?Во-первых, я в них ничего не знал, а изучение заняло бы слишком много времени — скорее всего, я бы просто потерял интерес. Во-вторых, построить реальную физическую симуляцию в Unity или Godot оказалось бы очень сложно, если вообще возможно.

Поэтому я продолжил этот путь на Python-стеке. Да, он не дружелюбен для геймдева, и многие говорят, что он подходит только для аркад. Но мне кажется, я смог преодолеть этот барьер и создать нечто большее, чем просто змейку.

Сейчас разработка всё ещё идёт активно. В игре уже присутствует достоверная и физически корректная симуляция работы радиоволн. Единственное, что пока не учитывается — геометрия объектов (учитывается, но очень условно) и геометрия земли. Я боюсь, что добавление таких вычислений сильно ударит по производительности и игровому опыту. Поэтому пока упор идёт на сюжет.

Игра насчитывает более 30 реальных физически достоверных (хоть и несколько упрощённых) процессов для симуляции мира игры и работы РЛС. И это, возможно, ещё не конец.

Сюжет не сказать, что будет чем-то сверхъестественным — я не писатель, но стараюсь давать его дозированно и сделать достаточно интересным и драматичным (насколько это возможно для текстовой подачи), чтобы игроку не надоедало через 2 часа игры. В последней версии черновой сюжет сделан до 4-го дня. Всего я планирую 10–12. То есть ориентировочно 10–12 часов геймплея.

В свой блог я, возможно, буду постить детали разработки. Также всегда готов слушать ваш фидбек, рекомендации, советы и пожелания.

Демо можно скачать на itch.io по ссылке ниже:

Буду рад обратной связи!

15
3