После очередного возвращения дума в мою жизнь, снова потянуло к своему 3D-движку (на основе которого крутился Виртбург) - надо чтоли его допилить и приделать к чему-то полезному...Shaos wrote:Наверное пришло время умертвить проект - заниматься Виртбургом нет времени...
Самодельный 3D движок с открытыми исходниками
Moderator: Shaos
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Мысли по возрождению 3D движка (который уже поддерживает SDL):
- переписать с C++ на C (чтобы собиралось под большее кол-во платформ и компиляторов, включая 16-битные и без floating point)
- добавить SDL звук (или mikmod), причём стерео!
- добавить скриптование на RW1 (со встроенным отладчиком и т.д.)
- добавить возможность редактирования уровней непосредственно в 3D
- добавить возможность стерео-отображения с помощью красно-зелёных очков
- насоздавать уровней
- насоздавать ботов
- написать документацию
- выпустить под GPL (залив на github.com)
- переписать с C++ на C (чтобы собиралось под большее кол-во платформ и компиляторов, включая 16-битные и без floating point)
- добавить SDL звук (или mikmod), причём стерео!
- добавить скриптование на RW1 (со встроенным отладчиком и т.д.)
- добавить возможность редактирования уровней непосредственно в 3D
- добавить возможность стерео-отображения с помощью красно-зелёных очков
- насоздавать уровней
- насоздавать ботов
- написать документацию
- выпустить под GPL (залив на github.com)
Last edited by Shaos on 21 Feb 2011 00:48, edited 5 times in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
мне как раз и жалко УЖЕ потраченного времени и усилий - я этот 3D-движок пилю как минимум с 1998 годаLavr wrote:А смысл потраченного времени и усилий? - Only just for fun?
Или считаешь - может где пригодиться?
потом под SDL олдскульных софтверных 3D-движков не так уж и много - кому-то может и пригодиться...
кроме того можно этот 3D-движок позиционировать как недо-движок для недо-девайсов на которых нету OpenGL

ну и к тому же теперь это будет опенсорц под GPL (раньше был клозесорц с некоторым кол-вом открытого кода)
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Посмотрел архивы - начал я пилить свой движок в марте 1997 года. Поначалу экспериментировал с алгоритмом из книжки "Компьютерная графика" (который рисовал лишь одноцветные стены):Shaos wrote:мне как раз и жалко УЖЕ потраченного времени и усилий - я этот 3D-движок пилю как минимум с 1998 годаLavr wrote:А смысл потраченного времени и усилий? - Only just for fun?
Или считаешь - может где пригодиться?

Сначала я раскрасил перпендикулярные стены в 2 разных цвета:

А потом наклеил на стены текстуры:

Потом переписал с нуля алгоритм и началось - вот скрины моих тестовых программ за 1997 год:









Как видно я кое-что из дума подтянул ради эксперимента

Скрины за 1998 год (реальный 3D-объект, возможность подниматься вверх и туман):









В 2000 году на базе этого движка был рождён Виртбург:














а в 2002 году развитие Виртбурга по сути остановилось:

























P.S. ещё в 2002 году я немного поэкспериментировал с OpenGL:


но это была тупиковая ветвь развития...
Last edited by Shaos on 25 Feb 2011 18:32, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Пока решил развивать движок в сторону гипотетической игры "Robot Warfare 3D", в которой по карте будут бегать роботы, управляемые программами на языке RW1:

P.S. Картинка частично отрендерена моим движком, а частично подрисована в гимпе

P.S. Картинка частично отрендерена моим движком, а частично подрисована в гимпе
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
раньше разрешение скрина было 320x200, а теперь - 800x600Lavr wrote:Есть такое ощущение, что разрешение маловато... нет?
Грубовато рендеринг смотрится...
размер текстуры на один кубик - 64x64 (а у куборобота - 40x40, чтобы мог визуально гладко протискиваться по коридорам шириной 64, а также вертеться)
мне оно не понравилось т.к. там уже много чего кем понаделано и соревноваться водиночку собственно бессмысленно, а софтверный рендеринг - это искусство+математикаLavr wrote:А ОпенГЛ тебе за кратные степени 2 матрицы не понравился?

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Внимательно перечитал свой код - про 16-битную компиляцию и отсутствие floating point придётся забыть - от плавающей точки там так просто не избавиться...Shaos wrote:Мысли по возрождению 3D движка (который уже поддерживает SDL):
- переписать с C++ на C (чтобы собиралось под большее кол-во платформ и компиляторов, включая 16-битные и без floating point)
- добавить SDL звук (или mikmod), причём стерео!
- добавить скриптование на RW1 (со встроенным отладчиком и т.д.)
- добавить возможность редактирования уровней непосредственно в 3D
- добавить возможность стерео-отображения с помощью красно-зелёных очков
- насоздавать уровней
- насоздавать ботов
- написать документацию
- выпустить под GPL (залив на github.com)
Ещё из мыслей:
- вместо языка описания 3D-карт 3DMap (файлы с расширением .3dm) разработать более вменяемый синтаксис с объектным подходом
- светотени станут программными (до сих пор затемнение или высветление сторон кубов приходилось прописывать в 3dm-файле путём заведения тёмных или более светлых версий одной и той же текстуры)
- появится возможность наклеивать на стены кубов разные текстуры друг над другом (до сих пор на одной стороне повторялась одна текстура)
- вернуть в движок туман, полумрак и реальные 3D-объекты (пока лишь с одноцветными гранями без текстур)
- входным файлом для движка вместо исходного кода 3D-карты будет монолитный бинарный файл, скомпилированный из исходника и включающий все необходимые текстуры и байткод скриптов (до сих пор монолитный файл VDS использовался только лишь как хранилище стандартных текстур)
- любая поверхность внутри игры может быть модифицирована по ходу, например забрызгана кровью, изрешечена пулями или разукрашена
- сохранение игры создаст новый монолитный бинарный файл, который даже может играться без оригинального бинарного файла игры
- кроме того этот сохранённый файл будет содержать записть всего происходящего до момента сохранения с возможностью проиграть "видео" с различных точек зрения, либо запустить это как демо (как вдуме)
- допускается возможность наличия в природе коммерческих бинарных файлов с игровыми уровнями, распостраняемыми отдельно от опенсорцного GPL движка
P.S. Сегодня со своей уже пятилетней дочкой (в августе будет 6) создавали уровни - она рисовала на бумажке что она хочет увидеть, а я описывал в 3dmShaos wrote:Сегодня моя ребетёнка (в августе будет 4 года) с интерeсом бродила по Виртбургу и когда я показал ей секретную комнату в "Валютном Козлино" попросила сделать ещё

Last edited by Shaos on 17 Apr 2013 19:07, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Померял с секундомером скорости - если принять, что высота (и ширина) одного куба (один этаж) составляет около 2 метров, то игрок ходит со скоростью 17 км/ч, а бегает - со скоростью 50 км/ч (стометровку с такой скоростью можно пробежать за 7.2 секунды)
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
А нос пожалуй длинноват - укорочу...
P.S. Вчера исправил проблему перевода чисел с плавающей точкой в целые из-за которой середина любого спрайта имела размазанную двойную точку во всех горизонталях (+0.9 переводится в 0, однако -0.9 тоже переводится в 0, поэтому отрицательные числа надо смещать на 1), а сегодня исправил проблемы отображения по вертикали - съедание верхней горизонтали и щели между вертикальными спрайтами (их на видео видно).
P.S. Вчера исправил проблему перевода чисел с плавающей точкой в целые из-за которой середина любого спрайта имела размазанную двойную точку во всех горизонталях (+0.9 переводится в 0, однако -0.9 тоже переводится в 0, поэтому отрицательные числа надо смещать на 1), а сегодня исправил проблемы отображения по вертикали - съедание верхней горизонтали и щели между вертикальными спрайтами (их на видео видно).
Я тут за главного - если что шлите мыло на me собака shaos точка net