Pull to refresh

Погружение в Глубину: как вместить реальность в маленькую коробочку

Reading time4 min
Views6.4K
Привет! Это вторая статья, в которой я хотел бы уже более детально рассказать и показать наш взгляд на процесс создания игры, то, чем мы сейчас и занимаемся. Итак… Погружение продолжается…

image

А начать я хотел бы с основ, как известно, фундамент — самое главное в строительстве дома. Так что расслабьтесь от кода, пока мы с вами сфокусируемся на чертежах и планах будущего строения :)

Фундамент проекта, который мы делаем, заключается в создании некой «Базы данных представлений», как я её называю, а если проще — то базы данных объектов и взаимодействий между ними.

С моей точки зрения, с этого логично начинать, но пока что, за исключением нескольких проектов, сделать это никто не пытается, настолько, насколько глубоко хотим мы. А хотим мы, грубо говоря, перенести базу данных образов, объектов и взаимодействий из нашей реальности в ту самую маленькую коробочку, под названием компьютер. Звучит шизофренично? Да это только на первый взгляд! :)

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

Тем, кто сразу отрицает на корню возможность реализации такого проекта, я бы предложил читать далее просто как сказку, там же всё возможно. Остальным предлагаю вникнуть в картинки настолько глубоко, насколько получится, потому что на наш взгляд, мы как люди, а точнее наш мозг именно так и устроен, как мы пытаемся сделать, и отрисовка реальности происходит на основе той постоянно пополняемой базы данных образов, логических цепочек и представлений обо всём вокруг, что мы успели накопить и распаковать, превратив эти представления в «свой собственный опыт». И, соответственно, если мы хотим сделать такую вот оцифрованную копию устройства нашей реальности внутри компьютера (насколько это будет возможно), нам нужно отталкиваться от того, как мы устроены, а для этого придётся копнуть немного поглубже, чем обычно.

image

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

image

По мере заполнения базы данных объектов и взаимодействий, конфигурации, схожие по определённым критериям, образуют некие «конгломераты», так, рыба, живущая в воде и капли росы, образующиеся в процессе конденсации водяного пара, входят в конгломерат: Водная стихия. Это всё только для примера, ну и немного для размышлений.

image

Дальше речь пойдёт о том, для чего составляется такая база данных объектов и их взаимодействий, и как с этим всем работать.

Вообще, сама база данных представляет из себя «массив из массивов в массиве», а глобально пока подразделяется на два направления:

1) Объекты;
2) Действия.

Или ещё можно сказать — на существительные и глаголы — того, кто делает и на тот процесс, который совершается.

Как я уже сказал, все субъекты базы данных — имеют составную природу, т.е. несмотря на всю сложность и иллюзорную целостность, их можно разбить на меньшие составляющие (за исключением некоторых самых фундаментальных проявлений, за рамки которых мы не собираемся выходить), а в таком «разборном» виде, представить и реализовать их намного проще. Так, составной объект «Фруктовый салат» можно представить как сборник, состоящий из яблока, банана, апельсина, сливок и тарелки, в которой продукт готовится, и далее по определённо-заданному алгоритму уже сделать из этого салат. Всё же это проще, чем каким-то образом пытаться моделировать салат, не углубляясь во входящие в него ингредиенты. Всё же глобальная идея заключается в том, что пользователь сможет взять ложку и попробовать этот виртуальный салат, а для этого нужно «описывать» каждый объект и все возможные связи его с другими объектами этой базы данных виртуальной реальности… Сложно, долго, но возможно.

О птичках


Далее, для примера я наобум взял направление на алгоритмы реализации полёта птицы, так что поговорим об этом.

image

Действие отличается от составного объекта тем, что его проявление, в отличие от возможности проявления отдельного объекта — не возможно, потому что, как говорится, речь вести не о чем. Ну полёт, да полёт и что дальше… Пока нет того, кто летит — действий нет, некому их совершать. А как только появляется какое-то «существительное», — так оно сразу норовит что-то сделать, да ещё обрастёт по дороге кучей эпитетов — какой красивый полёт, небо голубое и солнышко ясное…
image
Напоследок я оставил самое интересное, — это то, как мы будем работать с этой постоянно пополняемой базой данных объектов и взаимодействий, это то, что мы ласково называем «4D Программированием». Хотим реализовать то чувство, когда неосознанный компьютер начинает понимать тебя с полу-слова… По мере его «обучения», т.е. пополнения и обновления базы, анализируя предложение-запрос пользователя, вычленяя из него объекты, детали и действия между ними, подставляя и сопоставляя нужное из своей базы, выполнять нужный пользователю алгоритм.
image
В следующей части я продолжу рассказ, планирую сделать ещё более глубокий срез в детали проекта. Спасибо за внимание и всё получится!



Первая вступительная часть: Погружение в Глубину: как сделать качественный проект без миллионов в кармане и почему не нужно бояться «долгостроев»
Tags:
Hubs:
Total votes 19: ↑11 and ↓8+3
Comments3

Articles