nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 22 Sep 2017 20:28



Reply to topic  [ 63 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Самодельный 3D движок "Stacked Cubes" 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post 
Shaos wrote:
Пока решил развивать движок в сторону гипотетической игры "Robot Warfare 3D", в которой по карте будут бегать роботы, управляемые программами на языке RW1


Посидел я в гимпе (линуксовый клон фотошопа) и сваял прототип интерфейса:

Image

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

_________________
:eugeek: https://twitter.com/Shaos1973


09 Mar 2011 03:40
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
управляемые программами на языке RW1

Интересно. Посмотрим на твою "многозадачность". А как так произошло,
что у тебя на это время появилось? Проект вроде как чють не умер из-за
осутствия времени у тебя... :wink:


09 Mar 2011 16:25
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post 
Lavr wrote:
Shaos wrote:
управляемые программами на языке RW1

Интересно. Посмотрим на твою "многозадачность".


При наличии виртуальной машины с многозадачностью всё легко и просто ;)

Lavr wrote:
А как так произошло,
что у тебя на это время появилось? Проект вроде как чють не умер из-за
осутствия времени у тебя... :wink:


Проект "Виртбург" таки умер - т.к. поддерживать его социально-экономическую составляющую у меня времени небыло и нет. А вот покодить свой движок я всегда время могу найти - например путём сокращения времени на сон ;)

_________________
:eugeek: https://twitter.com/Shaos1973


09 Mar 2011 18:11
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Пока решил развивать движок в сторону гипотетической игры "Robot Warfare 3D", в которой по карте будут бегать роботы, управляемые программами на языке RW1


Посидел я в гимпе (линуксовый клон фотошопа) и сваял прототип интерфейса:

Image

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


Так будут какие-то замечания, предложения? В основном по нижней панели - что туда можно отображать? С верхней панелью всё понятно - в левой части будет типа терминал - для подачи внутренних команд и печати ответов, а в правой - лог радиопереговоров роботов, находящихся на этом уровне. По нижней панели - слева экран карты местности, справа - экран видеосвязи, в который например может выводится то, что снимается камерой на ракете, а также туда можно подключать вид сзади, слева или справа. В середине голова робота-андроида - возможно отображающая степень разбитости (как в думе). Слева - проценты энергии и вертикальный прогрессбар (здоровье=энергия). Понятие ARMOR я применять не буду. Справа вертикальный прогрессбар показывает кол-во основого оружия роботов - ракет. Ещё у робота есть пистолеты (как на картинке) - количество патронов планирую не ограничивать либо ограничивать каким-то большим числом типа 999. Также планируются гранаты (потом). Справа мелко хочу писать кол-во каждого из оружий. Ещё можно отображать часы - показывающие сколько часов-минут-секунд прошло с момента начала игры и с момента входа в уровень. Ещё предложения есть?

_________________
:eugeek: https://twitter.com/Shaos1973


10 Mar 2011 08:16
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Роботы твои напоминют мне зело сплющенные танки В.Д. Менделеева. :lol:



http://upload.wikimedia.org/wikipedia/ru/thumb/b/bf/Mendeleev_tank.jpg/350px-Mendeleev_tank.jpg


10 Mar 2011 08:40
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post 
да - действительно :)

_________________
:eugeek: https://twitter.com/Shaos1973


10 Mar 2011 08:43
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post 
Подумалось, что если байткод может модифицировать уровень, то байткод может и генерировать уровень - т.е. язык описания уровней не нужен (во всяком случае пока) - просто всё пишем на языке RW1 :)

_________________
:eugeek: https://twitter.com/Shaos1973


22 Mar 2011 09:05
Profile WWW
Doomed

Joined: 26 May 2003 09:57
Posts: 599
Reply with quote
Post 
Как развитие идеи:
- изначально все клетки "ничьи" и каждый может модифицировать их
- после модификации клетки она принадлежит тому, кто её модифицировал и другие не могут её менять
- хотя другие могут и атаковать препятствия, с целью уничтожения
- мощность укрепления зависит от времени (количества ходов) постройки/уничтожения

Таким образом бот может строить себе заграждения и лабиринты :)

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


22 Mar 2011 10:01
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post 
строительство ботом - это да, можно добавить в будущем, но пока я думаю про то, что внешним видом уровня будут управлять "нематериальные" боты - те которые не ездят и не стреляют и их не видно (10 лет назад я хотел обозвать их "ангелами")

_________________
:eugeek: https://twitter.com/Shaos1973


22 Mar 2011 10:08
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 11:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
Как развитие идеи:
- изначально все клетки "ничьи" и каждый может модифицировать их...

Чем-то концепция напоминает древне-компьютерную игру "Жизнь"...


22 Mar 2011 12:22
Profile
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Мысли по возрождению 3D движка (который уже поддерживает SDL):
- переписать с C++ на C (чтобы собиралось под большее кол-во платформ и компиляторов, включая 16-битные и без floating point)
- добавить SDL звук (или mikmod), причём стерео!
- добавить скриптование на RW1 (со встроенным отладчиком и т.д.)
- добавить возможность редактирования уровней непосредственно в 3D
- добавить возможность стерео-отображения с помощью красно-зелёных очков
- насоздавать уровней
- насоздавать ботов
- написать документацию
- выпустить под GPL (залив на github.com)


Внимательно перечитал свой код - про 16-битную компиляцию и отсутствие floating point придётся забыть - от плавающей точки там так просто не избавиться...

Ещё из мыслей:
- вместо языка описания 3D-карт 3DMap (файлы с расширением .3dm) разработать более вменяемый синтаксис с объектным подходом
- светотени станут программными (до сих пор затемнение или высветление сторон кубов приходилось прописывать в 3dm-файле путём заведения тёмных или более светлых версий одной и той же текстуры)
- появится возможность наклеивать на стены кубов разные текстуры друг над другом (до сих пор на одной стороне повторялась одна текстура)
- вернуть в движок туман, полумрак и реальные 3D-объекты (пока лишь с одноцветными гранями без текстур)
- входным файлом для движка вместо исходного кода 3D-карты будет монолитный бинарный файл, скомпилированный из исходника и включающий все необходимые текстуры и байткод скриптов (до сих пор монолитный файл VDS использовался только лишь как хранилище стандартных текстур)
- любая поверхность внутри игры может быть модифицирована по ходу, например забрызгана кровью, изрешечена пулями или разукрашена
- сохранение игры создаст новый монолитный бинарный файл, который даже может играться без оригинального бинарного файла игры
- кроме того этот сохранённый файл будет содержать записть всего происходящего до момента сохранения с возможностью проиграть "видео" с различных точек зрения, либо запустить это как демо (как вдуме)
- допускается возможность наличия в природе коммерческих бинарных файлов с игровыми уровнями, распостраняемыми отдельно от опенсорцного GPL движка

Shaos wrote:
Сегодня моя ребетёнка (в августе будет 4 года) с интерeсом бродила по Виртбургу и когда я показал ей секретную комнату в "Валютном Козлино" попросила сделать ещё ;)


P.S. Сегодня со своей уже пятилетней дочкой (в августе будет 6) создавали уровни - она рисовала на бумажке что она хочет увидеть, а я описывал в 3dm :roll:

P.P.S. См. http://rw3d.org ведущий на github - я там создал репозиторий и начинаю потихоньку документировать проект на вики


Почти через год вспомнил про свой 3D-движок - возникла гениальная мысль использовать SQLite в качестве формата файла для хранения уровней и состояния игры! Правда при этом сохраняться придётся в тот же файл - т.е. файл будет содержать в себе все сохранённые моменты - более классический подход в отличие от того, что я предлагал раньше (сохранялки в отдельных независимых друг от друга файлах, в каждом из которых присутствовали бы все ресурсы игры).

_________________
:eugeek: https://twitter.com/Shaos1973


24 Jan 2012 19:59
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Post Re:
Shaos wrote:
Shaos wrote:
Ночью добавил управление от мыши - движения мыши переводятся в движения головы (влево-вправо-вверх-вниз), левая кнопка будет выстрел, колёсико - движение вперёд-назад, средняя и правая кнопка - пока не решил (возможно правая будет открывать двери и нажимать на кнопки, а среднюю можно попробовать задействовать для движения в сторону).


Вот видео (записанное кстати самой программой в виде отдельных кадров - 30 кадров в секунду - и затем собранных конвертером в avi) мышиного управления:



P.S. Для записи видео я ходил и бегал в реальном времени (см. на счётчик миллисекунд вверху) по трём секторам бывшего Виртбурга...


Смотрю насколько популярен Minecraft у моих дочек и жалею, что забросил свой 3D-движок в 2011... :roll:

_________________
:eugeek: https://twitter.com/Shaos1973


23 Mar 2015 19:20
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Shaos wrote:
В начале июня 2009 решил было отпустить домен virtburg com и сконцентрироваться на оставшемся vburg.com, а щас вот думаю может продлить таки virtburg com и возможно даже прикупить обратно virtburg net?...


Прикупил обратно virtburg.net т.к. он до сих пор был свободен (правда пока не до конца понимаю для чего), а вот vburg.com (c 2012) и virtburg.com (с 2014) принадлежат каким-то жуликам-перепродавцам...

_________________
:eugeek: https://twitter.com/Shaos1973


24 Mar 2015 14:32
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Решил дать название движку - Stacked Cubes (это потому что тут кубики стоят столбиками друг на друге), а в связи с графическими экспериментами в PIC32 подумалось, что можно создать Micro Edition движка (на фиксированной точке и с меньшим разрешением текстур и малым количеством цветов) для заталкивания его в PIC32. Например - резмер текстуры, наклеиваемой на кубик, можно ограничить размером 8x8 пикселов, где каждый пиксел может быть раскрашен в один из 16 цветов (среди которых есть цвет прозрачности), т.е. имея 4 бита на точку, мы получаем 8*8/2=32 байта на текстуру (восемь 32-битных слов). Далее всё также будет 2 текстуры для пола и потолка в случае пустой клетки карты и 4 текстуры для боковых сторон кубика в случае заполненной - скажем мы всё также будем использовать 16-битный идентификатор текстуры, который будет использован как смещение внутри массива текстур - в результате имеем 4*2=8 байт для представления текстур клетки и нам надо ещё иметь информацию о количестве кубиков в столбике:
cell[0]=количество стоящих друг над другом кубиков (младший байт) и тип клетки (старший байт);
cell[1]=id1 - идентификатор текстуры первой стороны кубика либо пола если клетка пустая;
cell[2]=id2 - идентификатор текстуры второй стороны кубика либо потолка если клетка пустая и у уровня есть потолок;
cell[3]=id3 - идентификатор текстуры третьей стороны кубика либо возможная вторая текстура пола для анимации;
cell[4]=id4 - идентификатор текстуры четвёртой стороны кубика либо дополнительная информация если клетка пустая.
В старший байт нулевого параметра можно заложить тип клетки (болото, вода, лава, телепортер в пределах уровня, выход из уровня и т.д.), а опциональная дополнительная информация будет обозначать куда телепортируемся либо глубину воды и т.д.

_________________
:eugeek: https://twitter.com/Shaos1973


27 Apr 2015 02:05
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 02:22
Posts: 15486
Location: New York
Reply with quote
Анимация путём переключения текстур наверное должна быть не только для пола, но и для потолка и не только из 2 текстур, но и из 3 (место есть). Надо помнить, что анимация невозможна (ну разве что только путём программной подмены текстур) для клеток, где стоят столбики кубиков - т.е. место отведённое под тип анимации можно перезадействовать подо что-то другое (например вариант выхода из уровня обозначать):
Code:
bit 15 - ceiling animation or E3 (N>0)
bit 14 - floor animation or E2 (N>0)
bit 13 - slow or fast animation or E1
bit 12 - 2 or 3 textures or E0
bit 11 -\
bit 10 --\ type of cell if empty (see below) or
bit  9 --/ trigger identifier if occupied (trigger 0 means exit)
bit  8 -/
bit 0...7 - N of stacked cubes (0 for empty cell)

Types of cell if empty:
0 - walkable
1 - exit (with code E0,E1 for empty cell without animation)
2 - teleporter (id3 is location)
3 - mover (id3 is direction and speed?)
4 - water (id3 is depth)
5 - swamp (id3 is speed)
6 - lava (id3 is temperature?)
7 - acid (id3 is acidness?)
8 - obstacle (id3 is object id?)
9...14 - other types
15 - trigger (id3 is identifier)

_________________
:eugeek: https://twitter.com/Shaos1973


27 Apr 2015 04:08
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 63 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.