118

Space Simulation Toolkit

Я инди разработчик, с 2012 года создающий игру-конструктор - глубокую физическую симуляцию, работающую на видеокарте.


Изначально, я хотел создать игру, в которой из клеток развиваются и эволюционируют виртуальные живые существа. Такие игры уже существуют, но все они имеют очень примитивную форму организмов, так как ограничены мощностями обычного процессора, в то время как GPU позволяет вычислять очень крутую и разнообразную физику, симулируя при этом огромные миры.


Позже я настолько увлекся созданием "лаборатории" для экспериментов с виртуальной физикой, что проект перерос в универсальную песочницу-конструктор, целью которой является дать всем игрокам возможность создавать любые собственные симуляции, и реализовывать самые безумные идеи.


В некотором смысле, это попытка создать игру в Бога.

8 лет понадобилось, чтобы создать первую публичную версию игры.


За это время, я с нуля изучил C++ и CUDA, 4 раза полностью переписал движок, написал свой язык программирования видеокарт и фреймворк на его основе. Главной целью создания нового языка программирования - было создание этой игры-конструктора.


На данный момент игра представляет собой несколько заранее заготовленных симуляций, в которых можно попробовать поэкспериментировать с происходящими процессами в режиме песочницы.


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


Сейчас мне интересно привлечь сообщество к проекту, по двум причинам:


- Проект 100% инди, независимость принципиально нужна для создания игры именно такой, какой она должна быть. Поэтому единственный способ ускорить создание игры - привлечь поддержку сообщества на этапе её доработки. я бы сказал, есть некоторая миссия в том, чтобы показать на своем примере, как можно создать и развивать большой инди проект


- Сообщество игроков - основа для большой игры-конструктора. Я хочу создать возможность обмена элементами симуляций между игроками, чтобы сообщество могло работать коллективно, обмениваясь сконструированными объектами и созданными материалами

Мне кажется, это должно быть похоже на обмен сновидениями, когда каждый может создать свой мир на основе собственных уникальных законов физики, приглашать других игроков разделить его опыт и возможность для каждого взять элементы из чужих миров и добавить в свой


Страница игры в Steam: https://store.steampowered.com/app/1196080/Space_Simulation_...


Это первая публикация, посвященная запуску игры в Интернете

Привет, Пикабу!


Космос точно будет наш!

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

5
DELETED
Автор поста оценил этот комментарий
из клеток развиваются и эволюционируют виртуальные живые существа

Можно узнать про механику этого процесса более подробно? Клетки тоже состоят из атомов? Или какая у них структура? Как происходит эволюция? Было бы здорово увидеть на эту тему отдельный пост, возможно он глубже погрузит в происходящее и заинтересует не только меня.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Сейчас одна клетка - это один игровой атом. Экспериментов с эволюцией я ставил и планирую ставить очень много, поэтому структура и принципы эволюции пробовал разные. Подробнее об этом можно почитать, например, в раннем посте на Хабре:

https://habr.com/ru/post/458612/

общий принцип - клетки разных типов (броня, мышцы, клетки, способные усваивать пищу из внешней среды), форма существ эволюционирует в случайном порядке, внешняя среда обеспечивает закрепление полезных мутаций

есть существа с нейросетями и без (в игре пока только без нейросетей, планирую добавить полноценный конструктор существ с машинным обучением ближе к осени)

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

Дело в том, что случайные мутации отдельных клеток - формируют, как правило, аморфные структуры, в то время как моей целью является именно хорошо читаемая и различимая форма тела у отдельных видов, и различные по функциональности и структуре органы и конечности существ.

Автор поста оценил этот комментарий

Сочтите меня дилетантом, но кто предполагается аудиторией игры? Желающие симуляций могут поиграться с fx и всякими Гудини (+ с графеном). О клеточных автоматах\фракталах\т.д. тоже вагон и маленькая тележка всего. В остальном - "ни верстака, ни танка, ни заданий". Или оно будет про сложные цепочки и взаимосвязи структур?

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Оно будет про сложные цепочки и взаимосвязи структур

аудитория - энтузиасты всех этих игр и программ моделирования. я предлагаю следующий уровень по многим параметрам, знающий человек сразу почувствует.

всякие fx - не реалтаймовы и не интерактивны

о клеточных автоматах и фракталах - игра всецело им посвящена, и является next gen'ом по отношению ко всему, что существует. изучаю тему 10 лет

если бы игра с такими возможностями существовала, я бы просто в неё играл, а не создал свою

Иллюстрация к комментарию
показать ответы
2
Автор поста оценил этот комментарий

Вот тебе идея на миллион - сделай в бесплатной версии бёрн-тест видиокарты. С загрузкой по производительности/температуре, по памяти.

Так же - можно некий анимационый скрипт а-ля 3дмарк, суперпозишн с определённой анимацией + онлайн пиписькометр.


Это будет лучшей рекламой полной версии )

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

интересно )

показать ответы
2
Автор поста оценил этот комментарий

Скачал, поигрался. Интересно, но с моими познаниями в английском и опытом в подобных песочницах, мне там делать нечего. Не разобрался. Народу интереснее будет, если ты сделаешь парочку туториалов с примерами. Как создать частицу, как её изменить. Как заставить их взаимодействовать и менять свои свойства при взаимодействии. С удовольствием поигрался бы, если б хоть что - то понимал, кроме как добавить частицу или заменить на другую из готового набора.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

спасибо за отзыв!

на неделе начну заниматься следующей версией, понятность и пояснения - в приоритете

4
Автор поста оценил этот комментарий

Амбициозным инди-проектам, которые не забрасываются своими создателями - всегда плюс в карму)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Благодарю за отзыв!

Автор поста оценил этот комментарий

Выглядит честно говоря, как стандартная ситуация когда кто-то очень долго что-то делал, а в итоге оказалось, что это только ему и было интересно. Потенциальное сообщество, из большого количества людей, тут рассмотреть очень сложно. Тем более насколько я понял, оно еще и ограничивается владельцами видеокарт Нвидии.

Мне кажется, это должно быть похоже на обмен сновидениями,

В том то и прикол, что если мы говорим только про визуал, то есть более простые способы генерировать себе наркотрипы.


А если говорить про симуляцию, то какой конечный результат этой работы? Симуляция ради симуляции? Что можно получить в конце кроме "О прикольно!"?


Короче куча каких-то непонятных вопросов появляется на ровном месте.

В этом определенно что-то есть, но аудитории ты явно ищешь не в то время и не в том месте.

Это должно продвигаться как-то по другому.


p.s. Это ты делал игру про танчики в подобном стиле, рассчитывающуюся так же полностью на видеокарте?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

игра определенно под свою аудиторию. насколько аудитория широка - мне самому интересно выяснить. думаю, я сделал бы её, даже если бы она была интересна мне одному. но, думаю, найдутся ещё энтузиасты

нет, работает не только на Nvidia, я сделал OpenCL порт и на текущий момент портирую на максимально широкий список устройств, в том числе на Mac/Linux

нет, игру про танчики делал не я, но я знаком с разработчиком. Он её сделал в 2017 году, я свою симуляцию развиваю с 2012 года, только не публиковал

0
Автор поста оценил этот комментарий

А насколько велика точка гравитации? В меню нашел что то связаное с гравитацией, но как регулировать не разобрался.

Про скорость не совсем понятно. Ну, то есть - понятно, что цвет меняется в зависимости от скорости. Но, например, частицы красные в состоянии покоя. Но при разгоне они снова проходят весь спектр в тч и красный, это немного путает. Хочется что бы были "пределы". То есть красный - состояние покоя, фиолетовый - максимальная скорость (или скорость выше какого то порога). Но это уже так, мелочь и возможно я просто докопался.

О! Сейчас ещё понял что было бы очень хорошо добавить быстрый перезапуск мира. Что бы не через "новая игра, режим" и тд и тп, а просто рестарт.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

быстрый перезапуск - интересный запрос, а для чего хочется часто перезапускать на примере? хочется детальнее понять потребности

показать ответы
0
Автор поста оценил этот комментарий

А насколько велика точка гравитации? В меню нашел что то связаное с гравитацией, но как регулировать не разобрался.

Про скорость не совсем понятно. Ну, то есть - понятно, что цвет меняется в зависимости от скорости. Но, например, частицы красные в состоянии покоя. Но при разгоне они снова проходят весь спектр в тч и красный, это немного путает. Хочется что бы были "пределы". То есть красный - состояние покоя, фиолетовый - максимальная скорость (или скорость выше какого то порога). Но это уже так, мелочь и возможно я просто докопался.

О! Сейчас ещё понял что было бы очень хорошо добавить быстрый перезапуск мира. Что бы не через "новая игра, режим" и тд и тп, а просто рестарт.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

точка гравитации имеет радиус 5, находится в центре симуляции SST, в случае Planet её найти сложно, она очень далеко внизу сцены

второй способ получить к ней доступ - это кликнуть в дереве на надпись Gravity, откроется панель (она нам не нужна) и рядом с Gravity в дереве появится [0], нужно поставить курсор в этот [0] и нажать enter. это такой способ по индексу открыть панель объекта

там два свойства, mpow и mforce, pow - это кривизна гравитации в зависимости от расстояния (линейная, квадратично убывающая или любая другая), mforce - это множитель, именно его имеет смысл пробовать уменьшить

0
Автор поста оценил этот комментарий

А насколько велика точка гравитации? В меню нашел что то связаное с гравитацией, но как регулировать не разобрался.

Про скорость не совсем понятно. Ну, то есть - понятно, что цвет меняется в зависимости от скорости. Но, например, частицы красные в состоянии покоя. Но при разгоне они снова проходят весь спектр в тч и красный, это немного путает. Хочется что бы были "пределы". То есть красный - состояние покоя, фиолетовый - максимальная скорость (или скорость выше какого то порога). Но это уже так, мелочь и возможно я просто докопался.

О! Сейчас ещё понял что было бы очень хорошо добавить быстрый перезапуск мира. Что бы не через "новая игра, режим" и тд и тп, а просто рестарт.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

периодический спектр просто один из способов отображения

в ближайших версиях я проработаю панель режимов отображения, есть очень много интересных способов визуализировать текущие состояния материи

0
Автор поста оценил этот комментарий
Скачал демку, попробовал потыкать кнопки, но всегда я вижу вылеты с сообщением о нехватке видеопамяти даже на самом малом поле. Видеокарта вроде не самая донная(1660ti) или тут играть можно только на топовых ?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

1660ti это хорошая видеокарта для игры, сбои, которые у Вас наблюдаются - нетипичны для такой конфигурации

сейчас есть способы вызвать падение игры своими действиями (существующие технологии программирования видеокарт не дают возможности перехватывать ошибки без падения процесса, поэтому процесс стабилизации движка затягивается)

не могли бы вы уточнить, сбои наблюдаются даже без совершения активных действий? или сбой всегда вызван каким-то конкретным действием в игре?

показать ответы
2
Автор поста оценил этот комментарий
Это может стать каким-нибудь вторым Майнкрафтом, если сделать из этого конструктора игру. Пойти от обратного, там сначала была простая игра и простые блоки, потом стало усложняться, новые блоки, моды итд. И превратилось в то что есть. Тут можно было бы поступить похожим образом. Оставить за кадром всю сложность и продуманность движка, сделать интересную игру на нём, которая бы раскрывала некоторые возможности и уже потом раскрывать все особенности для опытных игроков. Как-то так видится. Без сообщества будет сложно, да.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

спасибо за отзыв!

есть схожие соображения, из конструктора действительно нужно сделать игру - планирую двигаться в этом направлении

4
Автор поста оценил этот комментарий

Скачал, поиграл, прикольно.

Особенно с атомами понравилось.
пожелания:
-добавить регулятор гравитации
-возможность "пулять" объекты, а не просто спавнить
-больше объяснений. Например: почему атомы меняют цвет и какой цвет что означает?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

спасибо за отзыв!

- регулятор гравитации есть, но его пока трудно выбрать, надо знать где находится точка гравитации и кликнуть на неё. в доработке
- возможность "пулять" объекты - принято
- да, будет больше объяснений, все просят. градиент цвета атомов в симуляции SST - отражают их текущую скорость движения

показать ответы
1
Автор поста оценил этот комментарий
Не имею никаких проблем с английским языком. Попробую вашу игру и в цехе на заводе прорекламирую если мне зайдет.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо!

2
Автор поста оценил этот комментарий

На AMD будет работать?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да, OpenCL порт есть, но работает ещё не на всех устройствах. Попробуйте демо для теста

1
Автор поста оценил этот комментарий

в правилах сообщества явно указано, как оформлять ссылки на свои игры в STEAM:

"Страница игры в Steam: URL"

вроде я все правильно сделал

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

если есть требование, чтобы была бесплатная версия - то она есть, демо доступно по ссылке

Автор поста оценил этот комментарий

Страница на платную игру – не реклама ли?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

в правилах сообщества явно указано, как оформлять ссылки на свои игры в STEAM:

"Страница игры в Steam: URL"

вроде я все правильно сделал

показать ответы
2
Автор поста оценил этот комментарий

понятно что англоязычная аудитория более платежеспособна, но зачем тогда рекламировать здесь? мы только в танчики под пивас поремся

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

верю, что многие соотечественники могут в английский

показать ответы
3
Автор поста оценил этот комментарий

неужели так трудно за 8 лет сделать локализацию? Там так много текста что ли?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

собственно, игра заняла примерно 1 год, остальные 7 лет я работал над технологией

я решил выложить так рано, как смогу, это можно сделать и без локализации, и без кучи других запланированных фич. Называется MVP

Появится локализация - аудитория расширится, а те, кто могут и хотят играть уже сегодня - пусть получают удовольствие, время не ждет

0
Автор поста оценил этот комментарий

ну, оговорился, конечно я имел ввиду молекулы. интересует именно как вы пошли - от разработки и симуляции мелких частиц к сложным комплексам из них или приняли подход "вот такая вот ебака, а из чего она состоит и на основании чего двигается - потом решим.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

я с самого начала художественно старался воспринимать проект, мне интересно ухватывать момент когда неуклюжее нагромождение точек начинает ощущаться как живой организм/какое-то знакомое вещество по поведению. т.е. я в первую очередь иду от визуала, "рисую мультик", трогаю вещества на ощупь подбирая коеффициенты так чтобы "текло/трескалось как мне нравится". оригинально проект был направлен не на симуляцию неорганической физики а на симуляцию существ состоящих из мягких тканей и костей/когтей, плавающих и совершающих с помощью мышц всякие там движения атаки. долго работал над тем чтобы ткань могла прорезать другую ткань когтем, например, чтобы от силы и точности удара зависел урон, чтобы плавание смотрелось красиво при нейро-мышечной локомоции. но существ я так и не доделал с мышцами пока, потому что понял что в первую очередь нужно создать красивую и сложную окружающую среду, которую можно саму по себе широким массам продавать начать, а затем уже заселять её существами (которых сложнее сделать но которые без красивой окружающей среды всё равно столько внимания не привлекут сколько песочница сама). много рисовал фломастерами воображаемые сцены из игры с детализацией физики как я её себе представлял. сейчас уже нет необходимости рисовать на бумаге потому что удобнее сразу рисовать в игре стало, но осталась пачка "чертежей" цветных

0
Автор поста оценил этот комментарий

а атомы из таблицы менделеева или какие попало? электрическая проводимость и радио волны, насколько я понял  - не входят в планы?

а живые существа - у них формируются прямо ткани разные, органы, системы?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

атомы - это частицы материалов, не из таблицы менделеева. электричество уже есть, радио волны в планах

живые существа - да, задумка такая, сложность развивается постепенно от релиза к релизу. недавно добавил травоядных хищников и всеядных, потом всякие плодовые растения и плодовоядных. есть клетки брони, двигательные, пищеварительные

мышц и сложного поведения на нейросетях пока нет, но в планах

показать ответы
0
Автор поста оценил этот комментарий
Так я протестировал игру. Я переоценил свои знания английского и пользовался транслейтом на мобиле. Играл в демку, оценить игоу не смог от силы совсем. На земле нагревал лед и землю баловался с атомамм, но что то большее чем нет. Либо я не знаю какой тут функционал, либо это не является игрой, должно быть инуитивно понятно что как прожимать кнопки должны подсвечиваться. Нужно разбираться в том как играть если я тупой потребитель мне вообще будет непонятно зачем я здесь? Так что заводских работников привлекать смысла нету (работяг). Допилите GUI сделайте дружелюбный интерфейс. Для вас и каких более умных людей все просто и понятно а вот обычным людям сложно от силы совсем. Даже мои друзья задроты игру не смогли оценить по достоинству так что много чего ещё предстоит сделать.

P.S.Буду следить за развитием проекта, если увижу что можно показывать обычным людям разрекламирую.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

спасибо! справедливые замечания

сейчас я открыл доступ к той версии, которая есть, как раз чтобы собрать отзывы и понять, чего не хватает реальным игрокам в первую очередь

начинаю работать над следующей версией, обязательно учту ваши замечания и предложения

0
Автор поста оценил этот комментарий
Да да, она :) Удачи вам в разработке!
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

спасибо! )

1
Автор поста оценил этот комментарий
Насколько возможности игры зависят от мощности видеокарты? Размеры игрового мира, скорость частиц и т.д. в зависимости от модели (например, 750ti и RTX 2080ti). Кстати, будет ли поддержка RT и тензорных ядер?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

750 Ti - это level 2 (50K частиц)
2080 Ti - это level 8 (800K частиц)

RT и тензорные ядра - задумывался, это возможно, но не каждая физика умеет на них работать. тензоры хорошо могут подойти для более умных нейросетей, для виртуальных существ

0
Автор поста оценил этот комментарий
А это не вы делали игру про танк? Там физика тоже видеокартой просчитывается
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

нет, но я знаком с разработчиком. да, Jelly in the Sky основан на похожем движке, мы даже обменивались идеями

показать ответы
0
Автор поста оценил этот комментарий
Они происходят, когда я либо добавляю что либо, либо изменяю материал на другой. Но для вылета не требуется добавлять много материала.
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

спасибо! попробую разобраться, в чем дело

1
Автор поста оценил этот комментарий

Можете сравнить свой движок с Noita?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Noita является шедевром оптимизации физики для работы на центральном процессоре (CPU). Это обеспечивает работу на наиболее широком перечне устройств, но накладывает принципиальные ограничения на физику процессов

SST работает на видеокарте (GPU), что дает доступ к вычислительным ресурсам, в 100-1000 раз превышающим возможности процессора. это сужает перечень устройств, на которых работает игра, но максимально расширяет возможности физики процессов

грубо говоря, это означает, что одновременно движущихся частиц в SST на 2 порядка больше, и они совершают на порядок больше микро движений в секунду, что делает жидкости более текучими, материалы обладающими более широким спектром свойств и т.д.

движок типа Noita подходит для создания некоторых эффектов "физической песочницы", но не подходит для создания большого "аквариума" для эволюции виртуальных существ - что является одной из ключевых целей SST:

Моделирование эволюции требует одновременного существования хотя бы 1000 существ, при этом физика их тел должна быть достаточно сложна, чтобы сделать процесс естественного отбора осмысленным и интересным с точки зрения наблюдателя.

Такое количество вычислений принципиально нельзя произвести на CPU в режиме реального времени

показать ответы
1
Автор поста оценил этот комментарий

Понял, удачи в разработке!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Благодарю!

1
Автор поста оценил этот комментарий

Посмотрю демку. Удачи!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

благодарю!

Автор поста оценил этот комментарий

>Не поддерживается русский языкЭтот продукт не поддерживает ваш язык. Пожалуйста, перед покупкой ознакомьтесь со списком поддерживаемых языков.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

да, пока только на английском

показать ответы