www.G-2B.com www.G-2B.com
форум сайта проекта "ЮКисП"
 Помощь      Поиск      Участники


 Страниц (12): В начало « ... 4 5 6 7 [8] 9 10 11 12 »   

> Описание: Игра про строительство
krre
Отправлено: 29 Июля, 2016 - 19:28:28
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Ну, да, может получиться полный ацтой. Никто от этого не застрахован. гы-гы!
   Top
krre
Отправлено: 01 Августа, 2016 - 12:16:19
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




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

В чём суть проблемы? Смысл игры в процедурности и разрушаемости мира. Традиционно игры делаются по другой схеме - на заранее заготовленном контенте и его монолитности. Поэтому все научно-технические достижения, устройство видеокарт, оптимизации - всё основано на этом принципе. А если следовать выбранному мной принципу, то добро пожаловать тормоза и отсутствие готовых проверенных решений, которые надо изобретать самому. Ничего толковое пока не придумывается. Сижу жду - вдруг всё-таки придумается.
   Top
krre
Отправлено: 01 Августа, 2016 - 13:27:23
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Короче, решил так. Зафиксирую окно на разрешении 800x480, чтоб его нельзя было растянуть. Так мы снизим количество расчётов. И откажусь от аппаратного ускорения вообще. Ускорять всё равно нечего, полигонов-то нет, вместо них воксели, которые для OpenGL, что неизвестное науке лох-несское чудовище. Пока 5-10 лет будет разрабатываться игра, авось к тому времени видеокарты уже научатся их понимать, и проблема разрешится сама собой. Тем более, что буквально совсем недавно id Software выпустила игровой движок id Tech 6, на котором сделала новый DOOM, и вот он (движок), говорят, основан на вокселях. Раз так, то тенденция к переходу геймдева на воксели уже началась, и видеокарты просто вынуждены будут с ними работать, рано или поздно.
   Top
Коля Логан
Отправлено: 01 Августа, 2016 - 20:26:57
ID


почетный участник


Сообщений всего: 4379
Дата рег-ции: Июль 2008  
Откуда: Донецк, Украина
Репутация: 30




krre:
Тем более, что буквально совсем недавно id Software выпустила игровой движок id Tech 6, на котором сделала новый DOOM, и вот он (движок), говорят, основан на вокселях. Раз так, то тенденция к переходу геймдева на воксели уже началась, и видеокарты просто вынуждены будут с ними работать, рано или поздно.

id Software всегда впереди планеты всей по поводу движков. В своё время, перед тем как делать свой первый 3Д-движок, для игры "Hovertank 3D" они провели серьезный ресёрч, глянув на все перспективы развития. Выбрали очевидно, правильную, т.к. через одну игру из этого вырос суперхит "Wolfenstein 3D", из которого пошли "Doom", а потом и "Quake". С последнего, в свое время началась разработка другого ныне популярного движка - Source от Valve...
   Top
krre
Отправлено: 01 Августа, 2016 - 20:33:20
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Чуваки, конечно, активные и не боятся экспериментировать, пробовать что-то новое. Некоторые конторы сделали какую-нибудь одну хитовую игру и канули в небытие, а эти уже сколько лет держатся и при этом снова и снова впереди всех.
   Top
krre
Отправлено: 05 Августа, 2016 - 12:35:04
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




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

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

2016-08-05_12-28-38.png

   Top
krre
Отправлено: 11 Августа, 2016 - 10:41:55
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Gagarin Daily News

Вгрызаюсь в теорию рендеринга разрежённых воксельных октодеревьев. Теория эта, похоже, бесконечная и рекурсивная. Разбираешь один уровень, натыкаешься на более глубокий, лезешь туда, а там находишь ещё более глубокие уровни. Такой глубины погружения, какой я уже достиг, Русь ещё не знала.
   Top
2B администратор
Отправлено: 11 Августа, 2016 - 13:10:09
ID


администратор


Сообщений всего: 18102
Дата рег-ции: Июль 2004  
Откуда: Ирпень, Украина
Репутация: 56




Ты это, смотри не утони там Подмигну-ка
   Top
krre
Отправлено: 11 Августа, 2016 - 13:19:23
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Смотри не смотри, а утонуть придётся, потому как держусь уже из последних сил.
   Top
krre
Отправлено: 12 Августа, 2016 - 14:06:12
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




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

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

Теперь как это всё показать на экране. Метод отрисовки называется raycasting - бросание луча. Из каждого пикселя экрана в сцену бросается луч, ищется пересечение с ближайшим октодеревом, затем это октодерево трассируется в глубину и по заданному уровню детализации находится цвет куба, который мы и рисуем на экране. Уровень детализации зависит от близости объекта к камере. При этом также учитываются источники освещения, находящиеся поблизости, и их угол к нормали отрисовываемого куба.

Самым мутным для меня был вопрос: а как найти ближайшее октодерево по ходу движения луча? Допустим в сцене тысяча октодеревьев - я их должен по очереди все перебирать, что ли? Можно и по очереди, но, как обнаружилось, есть хитрые способы организации сцены во всякого рода двоичные структуры. Одной из таких структур является BVH - Bounding Volume Hierarchy, иерархия ограничивающих объёмов. В ней объекты рекурсивно группируются в дерево по близости расположения, и каждая группа задаётся ограничивающим объёмом с координатами расположения. Тогда останется только перебрать объёмы, которые находятся перед камерой, а не позади неё, а потом погружаться вниз по дереву, пока не будет найден конечный объект, который оказался на пути луча первым. Берём из него октодерево - ну, а дальше вы знаете.

Если вам кажется, что всё это какая-то дичь сумасбродная, то так и есть. Для меня самого это долгое время казалось дичью. И если в вашей жизнедеятельности не нужно иметь дело с разрежёнными воксельными октодеревьями, то лучше и не лезьте в них, психика дороже. Ну, а так как мне свою психику не жаль, то я теперь попытаюсь весь этот ужас реализовать в коде. гы-гы!
   Top
krre
Отправлено: 13 Августа, 2016 - 07:42:46
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Это всё-таки случилось. Рано или поздно это должно было произойти. У меня украли идею. Причём, украли, судя по всему, ещё в 2012 году, когда в Британии начали разрабатывать игру No Man’s Sky. Вчера она вышла в эксплуатацию, и народ смог её лицезреть. Я тоже сейчас качаю, чтобы ознакомиться с этим чудом.

Воровство, собственно, заключается в том, что в No Man’s Sky тоже присутствует галактика с квадриллионами, как заявляется, случайно генерируемых планет. По ним можно лазить, собирать ресурсы, усовершествовать корабль и лететь дальше. На этом суть игры заканчивается. Вроде можно ещё с кем-то торговать, воевать в космосе с какими-то пиратами, но строить ничего нельзя, то есть мы имеем чисто лазилку по планетам. Даже мультиплея нет.

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

Что же до украденной идеи, то в этом ничего трагического. Конечно, никто никакой идеи не крал, я иронизирую, понятное дело. Есть жанры с похожим содержанием, тысячам людям приходят в голову одни и те же идеи, и раз такое происходит, значит, есть потребность в чём-то новом. Не всё ж играть в одно и то же. Wolfenstain3D сделали 25 лет назад, но это же не значит, что с тех пор перестали делать шутеры. Делают до сих пор и очень активно, с новой графикой и кучей других модернизаций. Так что и я пошёл дальше делать свою игру, с новыми вокселями и новой процедурной генерацией планет. гы-гы!

1234.jpg

   Top
2B администратор
Отправлено: 13 Августа, 2016 - 10:14:53
ID


администратор


Сообщений всего: 18102
Дата рег-ции: Июль 2004  
Откуда: Ирпень, Украина
Репутация: 56




Однако! Может, они свою игру доработают? Судя по всему, денег-то немало угрохали...
   Top
krre
Отправлено: 13 Августа, 2016 - 10:20:52
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Возможно. Чем больше у них будет всяких интересных штук, тем лучше. Всегда хорошо, когда у кого-то можно передрать идеи. гы-гы!
   Top
krre
Отправлено: 16 Августа, 2016 - 20:55:07
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




ДА! ДА! Я сделал это! Вот как надо! 4 fps - мечта каждого геймера! И это при разрешении окна 800х480. А если развернуть на весь экран, то вообще 1 fps получается. Это значит отрисовать сцену без аппаратного ускорения силами одного только процессора. Причём, там до отрисовки ещё даже не дошло, а только луч для рейкастинга рассчитывается, но делается это для каждого пикселя на экране.

2016-08-16_20-46-50.png

   Top
Коля Логан
Отправлено: 17 Августа, 2016 - 23:46:15
ID


почетный участник


Сообщений всего: 4379
Дата рег-ции: Июль 2008  
Откуда: Донецк, Украина
Репутация: 30




krre:
ДА! ДА! Я сделал это! Вот как надо! 4 fps - мечта каждого геймера! И это при разрешении окна 800х480. А если развернуть на весь экран, то вообще 1 fps получается. Это значит отрисовать сцену без аппаратного ускорения силами одного только процессора. Причём, там до отрисовки ещё даже не дошло, а только луч для рейкастинга рассчитывается, но делается это для каждого пикселя на экране.

Великолепно! Отлично! Я ни фига не понял. Да ну?
   Top
krre
Отправлено: 18 Августа, 2016 - 08:36:01
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Думаешь, я что-то понимаю? Улыбка Как грил Сократ, я знаю только то, что ничего не знаю.
   Top
krre
Отправлено: 19 Августа, 2016 - 13:23:23
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Gagarin Daily News

Изобретаю алгоритм определения пересечения луча с кубом. В игре каждая отдельная модель - это октодерево. Октодерево представляет из себя куб. Из каждого пикселя экрана в сцену бросается луч. Если луч пересёк октодерево, то оно рисуется на экране в месте этого пикселя. Если не пересёк, значит, не судьба.

Говорят, вроде есть уже готовые оптимизированные алгоритмы. Какой-то алгоритм Кируса-Бека, но это опять же, надо искать, изучать, вдумываться, создавая этим нагрузку на мозг. Наверное, мозг меня уже люто ненавидит.
   Top
krre
Отправлено: 20 Августа, 2016 - 08:36:36
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Пока страна спит, я натихоря добавил в игру дискриминацию по девелоперскому признаку. Теперь отладочная консоль, через которую можно включать бессмертие и бесконечные патроны, а также отладочный вывод, доступны не всем подряд, а только тем, кто участвует в разработке. Для этого я добавил специальные директивы препроцессора, которые будут влиять на то, с какими опциями откомпилируется программа. Сейчас там только две опции, включение отладочной консоли и DebugHUD, но скоро собираюсь добавить ещё несколько. Если дискриминировать, так по полной!

Clipboard01.png

   Top
krre
Отправлено: 20 Августа, 2016 - 18:28:19
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Сходу не получилось сделать по-сложному, поэтому начал с самых основ. Убрал пока все матрицы и преобразования координат, поставил воксельный куб в начало координат, а систему координат сделал нормализованной в диапазоне [-1:1]. Эта система привязана к окну, то есть получается, что если у нас окно размером 800х480, то по оси X координата 0 соответствует -1, а 799 соответствует 1. Аналогично для оси Y координата 0 - это 1, а 479 - это -1. Вот так по-хитрому договорились путать 3D-программистов. Прежде чем эти нормализованные координаты будут преобразованы в мировые, они пройдут долгий путь преобразований. А пока мне удалось таким простым способом отрендерить свой первый воксель. В реальности он кубический, но на экране вышел растянутым по оси X, потому что окно не квадратное, и пропорции у куба вышли такие же, как у окна. На самом деле это почти ортогональная проекция, но для полной ортогональности не хватает коррекции пропорций.

Ещё интересный момент. FPS снова стал 60 - это потому что я пока убрал перемножение матрицы трасформаций на координаты вокселя. А вообще я планирую перекинуть все эти ресурсоёмкие вычисления на видеокарту. Будет костыльный такой способ через искусственные шейдера и текстуры. Авось что-нибудь да получится.

2016-08-20_18-09-48.png

   Top
krre
Отправлено: 22 Августа, 2016 - 10:21:15
ID

компьютерный мультипликатор


Сообщений всего: 2113
Дата рег-ции: Дек. 2008  
Репутация: 28




Придумал ещё одну интересную фичу, когда игра достигнет подходящего уровня развития лет так через 12, но скорее всего больше. Это путешествия во времени. Поскольку мир генерируется программно, то не составит труда сгенерировать его для прошлого периода, когда деревья были маленькими, или для будущего, когда деревья были большими. Чтобы перемещаться во времени, Гагарину понадобится (угадайте с трёх раз) машина времени, а чтоб её запустить, ей нужно будет много энергии, для чего Гагарину придётся прежде построить гидроэлектростанцию, что очень даже непросто. Единственный нюанс - нельзя попасть в то время, когда Гагарин рискует встретить самого себя. Вы же понимаете, как это муторно запрограммировать, все эти временные парадоксы, так что пусть этим занимается кто угодно, но только не я. гы-гы!

Для чего я вообще все эти фичи отдалённого будущего придумываю? Во-первых, для того, чтобы не потерять интерес к игре, который и так порой на соплях держится из-за постоянных сложностей, с которыми я уже устал бороться. А во-вторых... всё. гы-гы!
   Top
Страниц (12): В начало « ... 4 5 6 7 [8] 9 10 11 12 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« флуд »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




www.g-2b.com


Powered by ExBB. ExBB FM 1.0 RC1 by TvoyWeb.ru. InvisionExBB Style converted by Markus®, edited by 2B. Smiles by Aiwan, Connie and others. Hosted by Peleng.

[Script Execution time: 0.0431]     [ Gzip Disabled ]