nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 18 Sep 2020 05:41



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

Joined: 09 Jan 2003 00:22
Posts: 18837
Location: Silicon Valley
Reply with quote
Shaos wrote:
  • байт ex - тип куба пока может принимать только 2 значения: 0x00 - можно пройти и 0x10 - нельзя пройти (препятствие);
  • байт hs - сколько разных текстур можно наклеить на столбик (пока не поддержано);
  • байт dd - цвет для верхушки столбика (пока используется лишь при построении карты);
  • байт hh - высота столбика в кубиках (0 - пустая клетка, 1 - один этаж и т.д.);
  • слово id - идентификатор линка если есть (можно в будущем расширить вообще для абстрактных триггеров);
  • слово t0 - задаёт идентификатор текстуры для верхушки столбика (пока используется только для комнат как текстура на потолке);
  • слово t1 - идентификатор текстуры на восточной стороне столбика (если hh>=1) или текстуры на полу (если hh==0);
  • слово t2 - идентификатор текстуры на северной стороне столбика (невидно если hh==0);
  • слово t3 - идентификатор текстуры на западной стороне столбика (невидно если hh==0);
  • слово t4 - идентификатор текстуры на южной стороне столбика (невидно если hh==0).

По аналогии с описанной выше Micro Edition можно поддержать автоматическую анимацию для пола (для кубов без столбиков где hh=0) задействовав hs, которая предполагалась быть использованной только для столбиков высотой 2 и выше (чтобы разные текстуры клеить на одну сторону) - например старший нибл hs задавал бы частоту смены кадров в герцах, а младший нибл - сколько текстур ротейтится - 2, 3 или все 4 (задействовав полный набор t1,t2,t3,t4, причём t0 всё также останется на потолке)...

Для пущей понятности dd можно переименовать в cc (column color?)

Другие возможные типы ex на будущее:
0x0N - площадка на высоте N=0...F (туда можно заходить только с такой же площадки либо с правильной стороны пандуса);
0x10 - также как и раньше обозначает обычную занятую клетку (пройти нельзя ни с какой стороны с любого уровня);
0x1N - пандус с востока и вверх на запад (N=1...F);
0x20 - клетка поднимающая вверх;
0x2N - пандус с севера и вверх на юг (N=1...F);
0x30 - клетка опускающая вниз;
0x3N - пандус с запада и вверх на восток (N=1...F);
0x40 - подбрасывающая клетка (смерть аватара при дальнейшем падении?);
0x4N - пандус с юга и вверх на север (N=1...F);
0x5N - бегущая дорожка с востока на запад (N=0...F);
0x6N - бегущая дорожка с севера на юг (N=0...F);
0x7N - бегущая дорожка с запада на восток (N=0...F);
0x8N - бегущая дорожка с юга на север (N=0...F);
0x90 - электрическая клетка (мгновенная смерть аватара?);
0x91 - вода (аватар уходит под воду, оставляя над водой только голову - можно вылезти и можно плыть);
0x92 - болото (аватар постепенно уходит вниз - вылезти невозможно);
0x93 - кислота (аватар уходит ниже уровня жидкости и начинает постепенно терять здоровье - можно вылезти);
0x94 - лава (аватар уходит вниз и с шипением умирает);
где N - высота уровня ног пользователя в самой высокой части соответствующей клетки.
Пандусы надо будет изображать полигонами в 3D - по ним можно подняться с одного уровня на другой.
Спрыгивать с верхних этажей можно с потерей здоровья (одна единица здоровья за 1 этаж?).

P.S. С другой стороны высота столбика уже задана как hh, соответственно в ex её повторять ненужно - все бегущие дорожки и пандусы могут быть возможны только на верхней поверхности столба из кубиков, соответственно типы ex можно переупорядочить вот так:
0x00 - проход разрешён с любой стороны на любом уровне;
0x01 - площадка на высоте hh;
0x02 - площадка на высоте hh через которую можно пройти только с востока или с запада;
0x03 - площадка на высоте hh через которую можно пройти только с севера или с юга;
0x04 - пандус с востока и вверх на запад (с уровня hh на уровень hh+1);
0x05 - пандус с севера и вверх на юг (с уровня hh на уровень hh+1);
0x06 - пандус с запада и вверх на восток (с уровня hh на уровень hh+1);
0x07 - пандус с юга и вверх на север (с уровня hh на уровень hh+1);
0x08 - бегущая дорожка с востока на запад (на уровне hh);
0x09 - бегущая дорожка с севера на юг (на уровне hh);
0x0A - бегущая дорожка с запада на восток (на уровне hh);
0x0B - бегущая дорожка с юга на север (на уровне hh);
0x0C - клетка поднимающая вверх;
0x0D - клетка опускающая вниз;
0x0E - подбрасывающая клетка (смерть аватара при дальнейшем падении?);
0x0F - электрическая клетка (мгновенная смерть аватара?);
0x10 - также как и раньше обозначает обычную занятую клетку (пройти нельзя ни с какой стороны с любого уровня);
0x11 - вода (аватар уходит под воду, оставляя над водой только голову - можно вылезти и можно плыть);
0x12 - болото (аватар постепенно уходит вниз - вылезти невозможно);
0x13 - кислота (аватар уходит ниже уровня жидкости и начинает постепенно терять здоровье - можно вылезти);
0x14 - лава (аватар уходит вниз и с шипением умирает).

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


02 Sep 2020 23:12
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18837
Location: Silicon Valley
Reply with quote
Post Re:
Shaos wrote:
Сделал имитацию робота, пользуясь набором спрайтов:


Если слегка приподняться, то будет видно "секрет" - робот построен из 46 узких спрайтов:

Attachment:
room2.png
room2.png [ 297.09 KiB | Viewed 161 times ]


Под спойлером текст 3DM-файла, который был использован для генерации видео робота 9 лет назад:

 room2.3dm
Code:
map 11:11
textures 16
t0000 bricks01
t0001 bricks01 +4
t0002 bricks01 -4
t0003 @d8,2 rama02
t0004 rama01
t0005 t
t0006 t2
t0007 rama01
hall 2
start 1 1 45
back baseback.gif
default hh=0 t1=3 t0=4
border ex=10 hh=2 t1=2 t2=0 t3=1 t4=0
objects 100
o0000 5.2200 5.2200 0 0.625 t_9
o0001 5.2200 5.2825 0 0.625 t_8
o0002 5.2200 5.3450 0 0.625 t_7
o0003 5.2200 5.4075 0 0.625 t_6
o0004 5.2200 5.4700 0 0.625 t_5
o0005 5.2200 5.5325 0 0.625 t_4
o0006 5.2200 5.5950 0 0.625 t_3
o0007 5.2200 5.6575 0 0.625 t_2
o0008 5.2200 5.7200 0 0.625 t_1
o0009 5.2200 5.7825 0 0.625 t_0
o000A 5.2825 5.2200 0 0.625 t2_1
o000B 5.2825 5.7825 0 0.625 t2_8
o000C 5.3450 5.2200 0 0.625 t2_2
o000D 5.3450 5.7825 0 0.625 t2_7
o000E 5.4075 5.2200 0 0.625 t2_3
o000F 5.4075 5.7825 0 0.625 t2_6
o0010 5.4700 5.2200 0 0.625 t2_4
o0011 5.4700 5.7825 0 0.625 t2_5
o0012 5.5325 5.2200 0 0.625 t2_5
o0013 5.5325 5.7825 0 0.625 t2_4
o0014 5.5950 5.2200 0 0.625 t2_6
o0015 5.5950 5.7825 0 0.625 t2_3
o0016 5.6575 5.2200 0 0.625 t2_7
o0017 5.6575 5.7825 0 0.625 t2_2
o0018 5.7200 5.2200 0 0.625 t2_8
o0019 5.7200 5.7825 0 0.625 t2_1
o001A 5.7825 5.2200 0 0.625 t_0
o001B 5.7825 5.2825 0 0.625 t_1
o001C 5.7825 5.3450 0 0.625 t_2
o001D 5.7825 5.4075 0 0.625 t_3
o001E 5.7825 5.4700 0 0.625 t_4
o001F 5.7825 5.5325 0 0.625 t_5
o0020 5.7825 5.5950 0 0.625 t_6
o0021 5.7825 5.6575 0 0.625 t_7
o0022 5.7825 5.7200 0 0.625 t_8
o0023 5.7825 5.7825 0 0.625 t_9
o0024 5.5012 5.1887 0.36 0.0625 d
o0025 5.5012 5.8137 0.36 0.0625 d
o0026 5.5012 5.1575 0.36 0.0625 d
o0027 5.5012 5.8450 0.36 0.0625 d
o0028 5.5012 5.1262 0.36 0.0625 d
o0029 5.5012 5.8762 0.36 0.0625 d
o002A 5.5012 5.0950 0.36 0.0625 d
o002B 5.5012 5.9075 0.36 0.0625 d
o002C 5.5012 5.0637 0.36 0.0625 d
o002D 5.5012 5.9387 0.36 0.0625 d
end

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


03 Sep 2020 20:47
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18837
Location: Silicon Valley
Reply with quote

Завёл твиттер для возможной реанимации игры в стиле киберпанка:

https://twitter.com/virtburg2

Quote:
Virtburg v2.0

Virtburg 20 years after - massively multiplayer online game with virtual economy and open source 2.5D game engine...

Туда можно запустить моих роботов, программируемых на языке Robby, а также сделать все виртуальные компьютеры в игре троичными (например терминалы в Виртбургбанке) :mrgreen:

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


14 Sep 2020 10:00
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 18837
Location: Silicon Valley
Reply with quote
Вот думаю как серверную часть сделать
Раньше было на перле и простой базе данных ключ=значение
Теперь можно тупо на PHP+MySQL переписать (чат и передача глобальных событий)
А можно уйти в облако с расчётом на будущую бесконечную масштабируемость :roll:
Или вообще попробовать сделать децентрализованно - типа вовсе без сервера обойтись :rotate:
(либо сервер будет только подтверждать что те или иные миры авторизованы быть показанными под маркой Virtburg)
P.S. Обсуждение децентрализованных виртуальных миров перенес в другой топик:
http://www.nedopc.org/forum/viewtopic.php?f=81&t=20142

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


16 Sep 2020 00:43
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 64 posts ]  Go to page Previous  1, 2, 3, 4, 5

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.