Занурення в Глибину: як вмістити реальність в маленьку коробочку

Привіт! Це друга стаття, в якій я хотів би вже більш детально розповісти і показати наш погляд на процес створення гри, те, чим ми зараз і займаємося. Отже… Занурення триває…

image

А почати я хотів би з основ, як відомо, фундамент — найголовніше в будівництві будинку.
Так що розслабтеся від коду, поки ми з вами сфокусуємося на кресленнях та плани майбутньої будови :)

Фундамент проекту, який ми робимо, полягає у створенні якоїсь «Бази даних уявлень», як я її називаю, а якщо простіше — то бази даних об'єктів і взаємодій між ними.
З моєї точки зору, це логічно починати, але поки що, за винятком кількох проектів, зробити це ніхто не намагається, настільки, наскільки глибоко ми хочемо. А хочемо ми, грубо кажучи, перенести базу даних образів, об'єктів і взаємодій з нашої реальності в ту саму маленьку коробочку, під назвою комп'ютер. Звучить шизофренічно? Та це тільки на перший погляд! :)

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

Тим, хто відразу на корені заперечує можливість реалізації такого проекту, я б запропонував читати далі просто як казку, там же все можливо. Іншим пропоную вникнути в картинки настільки глибоко, наскільки вийде, тому що на наш погляд, ми як люди, а точніше наш мозок так влаштований, як ми намагаємося зробити, і відтворення реальності відбувається на основі тієї постійно поповнюється бази даних образів, логічних ланцюжків і уявлень про все навколо, що ми встигли накопичити і розпакувати, перетворивши ці уявлення в «свій власний досвід». І, відповідно, якщо ми хочемо зробити таку от оцифровану копію устрою нашої реальності всередині комп'ютера (наскільки це буде можливо), нам потрібно відштовхуватися від того, як ми влаштовані, а для цього доведеться копнути трохи глибше, ніж зазвичай.

image

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

image

У міру заповнення бази даних об'єктів і взаємодій, конфігурації, схожі за певними критеріями, утворюють якісь «конгломерати», так, риба, що живе у воді і краплі роси, які утворюються в процесі конденсації водяної пари, що входять в конгломерат: Водна стихія. Це все тільки для прикладу, ну і трохи для роздумів.

image

Далі мова піде про те, для чого складається така база даних об'єктів і їхніх взаємодій, і як з цим всім працювати.

Взагалі, сама база даних представляє з себе «масив масивів у масиві, а глобально поки поділяється на два напрямки:
1) Об'єкти;
2) Дії.
Або ще можна сказати — на іменники та дієслова — того, хто робить і на той процес, який відбувається.
Як я вже сказав, всі суб'єкти бази даних — мають складну природу, тобто незважаючи на всю складність і ілюзорну цілісність, їх можна розбити на менші складові (за винятком деяких найбільш фундаментальних проявів, за межі яких ми не збираємося виходити), а в такому «розбірному вигляді, представити і реалізувати їх набагато простіше. Так, складовою об'єкт «Фруктовий салат» можна представити як збірник, що складається з яблука, банана, апельсина, вершків і тарілки, в якій продукт готується, і далі по безумовно-заданим алгоритмом вже зробити з цього салат. Все ж це простіше, ніж якимось чином намагатися моделювати салат, не заглиблюючись у вхідні в нього інгредієнти. Все ж глобальна ідея полягає в тому, що користувач зможе взяти ложку і спробувати цей віртуальний салат, а для цього потрібно «описувати» кожен об'єкт і всі можливі зв'язки його з іншими об'єктами бази даних віртуальної реальності… Складно, довго, але можливо.

Про пташок
Далі, для прикладу я навмання взяв напрямок на алгоритми реалізації польоту птаха, так що поговоримо про це.

image

Дія відрізняється від складеного об'єкта тим, що його прояв, на відміну від можливості прояву окремого об'єкта — не можливо, тому що, як мовиться, мову вести не про що. Ну політ так політ і що далі… Поки немає того, хто летить — дій немає, нікому їх здійснювати. А як тільки з'являється якийсь «іменник», — так воно відразу намагається щось зробити, та ще обросте по дорозі купою епітетів — який гарний політ, небо блакитне і сонечко ясне…

image

Наостанок я залишив найцікавіше — це те, як ми будемо працювати з цією постійно поповнюваною базою даних об'єктів і взаємодій, це те, що ми ласкаво називаємо «4D Програмуванням». Хочемо реалізувати те почуття, коли неусвідомлений комп'ютер починає розуміти тебе з пів-слова… По мірі його «навчання», тобто поповнення та оновлення бази, аналізуючи пропозицію-запит користувача, вычленяя з нього об'єкти, деталі і дії між ними, підставляючи і зіставляючи потрібне зі своєї бази, виконувати потрібний користувачеві алгоритм.

image

У наступній частині я продовжу розповідь, планую зробити ще більш глибокий зріз деталі проекту. Спасибі за увагу і все вийде!

______________

Перша вступна частина: Занурення в Глибину: як зробити якісний проект без мільйонів у кишені і чому не треба боятися «довгобудів»
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.