Автор | Сообщение |
alko Marine
 | 26 |
Doom Rate: 2
|
Отправлено: 20.11.15 21:44:19 | |
|
MaxED: | да и while там не нужен) |
Это пока. Но когда потребуется выполнение параллельно нескольких процедурок, внешний цикл всё же понадобится. |
|
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 20.11.15 21:46:26 | |
|
alko: | Спрайты пока стандартные - думовские, с моей индексацией палитры. Спрайты я собираюсь рендерить со своих моделек (но пока есть лишь концепты, за моделинг ещё не брался).
Подробнее тут |
Не дурно, концепты сам рисовал?
Если что можешь мне задавать вопросы, смогу ответить на многие надеюсь. Да, если что есть еще GZDoom и GLOOME порты, чуть лучше здума, последний может запускаться без ивада, гздум не помню.. |
|
|
1 |
3 |
1 |
 |
|
| |
alko Marine
 | 26 |
Doom Rate: 2
|
Отправлено: 20.11.15 21:47:51 | |
|
Гайд по АЦС мега-полезный. Буду вникать.
Добавлено спустя 4 минуты 41 секунду:
alko: | Не дурно, концепты сам рисовал? |
Всё рисую сам. Текстуры тоже.
ГЗдум не интересует. Я леплю так, чтоб пахало даже на рэтро-машине, где нет аппаратного 3д-ускорителя. (пентиум ММХ на 225 мегагерц). Правда у Здума оптимизация хромает (на пне даже в Хексене, запущенном на этом порте, на "открытых" пространствах фпс проседает до 12-ти кадров. С появлением 3д-полов в кадре та же петрушка. Причём в разрешении 400*300 или даже 320*240). У движка ку2 даже производительность раза в два выше, но он более андеграундовый , нет такого продвинутого комьюнити, как у ЗДума, увы. Потому мой выбор пал на Здум.
Добавлено спустя 2 минуты 54 секунды:
Тем более мне openGL рендерер не нравится. Из-за перспективы по оси Y (по вертикали) спрайты кажутся ещё более плоскими, да и из-за 24-ёх битного цвета теряется пиксель-арт. Тонирование в глубину тоже не очень... |
|
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 20.11.15 22:33:34 | |
|
Дак здум модели не поддерживает, а гздум тянет или ты хочешь сделать 3д модели, отрендерить и сделать спрайты? Для какой машины делаешь? OGL по желанию можно отключать в гздум, до 2ой версии гозза использует 2гл. Если нужна атмосфера пиксельарта так это в настройках поклацай, по выключай фильтры и т.д. Да по поводу плоскости спрайтов есть настройка Forceflexy , забыл -_-, но как-то так называлась, возможно такое понравится. Но впрочем ладно, дело твое, просто с дин лайтами карты смотрелись бы красивее, а в место 3д полов, юзал бы 3д модели+ CustomBridge, значительный прирост производительности  |
|
|
1 |
3 |
1 |
 |
|
| |
alko Marine
 | 26 |
Doom Rate: 2
|
Отправлено: 21.11.15 01:01:07 | |
|
alekv: | Если нужна атмосфера пиксельарта так это в настройках поклацай, по выключай фильтры и т.д. |
Градация цветов всё равно будет 24-ёх битной. Ни какой это не пиксель-арт уже. Скорее майнсрафт, или копатель онлайн.
alekv: | Да по поводу плоскости спрайтов есть настройка Forceflexy |
В настройках нет отключения сдвига перспективы полигонального окружения по вертикали.
| Дак здум модели не поддерживает, а гздум тянет |
Тянет, но какие? *.md2 ? Много ли вы годных моделек в таком формате видели?
На мой взгляд, то что во второй кваке - это предел того, что можно замоделить в таком формате. Да и то, я даже на таком уровне не осилю замоделить.
alekv: | или ты хочешь сделать 3д модели, отрендерить и сделать спрайты? |
Для анимированных - да. Статические же 3д модели, типа айтемов и декораций, разбросанных на карте - конвертировать в воксели.
Добавлено спустя 5 минут 26 секунд:
alekv: | Для какой машины делаешь? |
Хотелось бы, чтоб не шибко тормозило на Pentium MMX 225 MHz (видяха ATI Rage II поддерживает только директ икс до 5-ой версии. Но полигональный 3д графон она раза в два медленнее отрисовывает, нежели это делает проц. Тем более ей часто не хватает памяти на текстуры.)
Добавлено спустя 5 минут 27 секунд:
Вот, замерял только что фрейм-рейт на пентиуме.
Такая сценка 12 кадров

Ступеньки 3д-полами в профиль - 19 кадров

Простенькая вульфенштейно-подобная сценка ~60 кадров.

Добавлено спустя 10 часов 42 минуты 29 секунд:
А в этом чудо-движке есть возможность задать яркость отдельно взятой грани сектора. Знаю как менять яркость на полу и потолке независимо друг от друга, а есть что-то подобное для стен, чтоб на яркость пола и потолка не сказывалось? |
|
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 21.11.15 13:49:25 | |
|
alko: | На мой взгляд, то что во второй кваке - это предел того, что можно замоделить в таком формате. Да и то, я даже на таком уровне не осилю замоделить. |
Эмм... Никогда не устану приводить в пример TotalChaos gzdoom
alko: | Тянет, но какие? *.md2 ? Много ли вы годных моделек в таком формате видели? |
Ты что никогда 3д редактор не открывал? А ты в курсе что ты можешь открыть многие 3д модели в самых разных форматах и сохранить в .md2? К тому же gzdoom поддерживает .md3 формат. А здум тянет воксели? В любом случае воксельная модель нагрузит в несколько раз сильнее чем 3д модель.
alko: | На мой взгляд, то что во второй кваке - это предел того, что можно замоделить в таком формате. Да и то, я даже на таком уровне не осилю замоделить. |
Нет предела совершенству 
alko: | Вот, замерял только что фрейм-рейт на пентиуме. |
Да.., для такого пентиума надо и в бум формате делать бе зо всяких 3д полов и прочих прелестей еще и с бубном танцевать что бы не лагало  В общем на этом и закончу, ты не думай что я тебя пытаюсь уговорить юзать гоззу, мне все равно, просто привел примеры почему гздум.. |
|
|
1 |
3 |
1 |
 |
|
| |
alko Marine
 | 26 |
Doom Rate: 2
|
Отправлено: 21.11.15 14:02:14 | |
|
alekv: | Никогда не устану приводить в пример TotalChaos gzdoom |
Статические модели конечно круто, ни что не мешает с куда бОльшим удобством сделать это на каком-нибудь Юнити (мой геморрой оправдан тем, чтоб оно работало на рэтро-машыне. А геморрой создателя(-лей) той карты для ГЗдума даже не знаю чем оправдан. На слабой тачке, даже с какой-нибудь TNT Riva оно вряд ли будет пахать. А для относительно современных тачек есть современные более удобные движки). Более того, там ни единого анимированного персонажа не увидел. Анимированные персонажи - эт вам не пару граней домика затекстурить фоточками.
alekv: | любом случае воксельная модель нагрузит в несколько раз сильнее чем 3д модель. |
Там позаимствован сорс Кена Сильвермана, который писался ещё для компов середины 90-ых. Не сказать бы что тот же Blood тормозил при разглядывании воксельных могилок.
Добавлено спустя 5 минут 20 секунд:
alko: | ни единого анимированного персонажа не увидел. |
А. Там в конце типа анимированная модель. В кромешной темноте с кучей постобработок [Features such as 16x motion blur, bloom lighting and godrays] оно может и нормально. Но выведи её на свет, будет шляпа.(тем более намалякать какого-то кривого зомби с рандомными пятнами на текстуре, много ума не надо) Таким образом разрабы "Амнезии" тоже поступили. Навесили кучу размытий и кромешную темноту, и норм. |
|
|
| |
Shadowman UAC General
 | 8758 |
Doom Rate: 2.06 Posts quality: +2277 |
Отправлено: 21.11.15 16:29:01 | |
|
Пытаюсь написать скрипт, который бы показывал на экране (для начала хотя бы в заданных координатах) параметры здоровья монстра при наведении на него курсора в виде: "Текущее здоровье / Максимальное здоровье". Не могу разобраться, как правильно указывать SetActivatorToTarget. Пробовал так, но не работает: script "MonsterHealth" enter { setHudSize(1024,768,0); setfont("bigfont"); SetActivatorToTarget(PlayerNumber()+5000); delay(1); if(ClassifyActor(0) & ACTOR_MONSTER && ClassifyActor(0) & ACTOR_ALIVE) { Target_MaxHealth = GetActorProperty (0, AProp_SpawnHealth); Target_CurrentHealth = GetActorProperty (0, AProp_Health); hudmessage(i:Target_CurrentHealth, s:"/", i:Target_MaxHealth;HUDMSG_plain,4000,CR_untranslated,512.0,64.0,0); } delay(1); restart; } но ничего не работает, никаких надписей нет.
переменные были обозначены, также в другом ентер-скрипте игроку присваивается новый тид при старте: script "StartCharacter" enter { Thing_ChangeTID (0, PlayerNumber()+5000); и т.д... } |
|
|
1 |
7 |
2 |
 |
|
| |
alko Marine
 | 26 |
Doom Rate: 2
|
|
| |
MaxED UAC Sergeant Major
 | 704 |
 Doom Rate: 2.12 Posts quality: +39 |
Отправлено: 22.11.15 00:20:46 | |
|
При помощи полупрозрачного 3Д пола, например. |
|
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 22.11.15 00:32:58 | |
|
Шадовмен, SetActivator(0, AAPTR_PLAYER_GETTARGET) от имени игрока. Таргет под курсором и таргет монстра это разные указатели, SetActivatorToTarget это то же самое что SetActivator(0, AAPTR_TARGET).
Немного про битовый сдвиг людям, которые не понимают, зачем он нужен (и следовательно никак не могут запомнить). Что такое битовый сдвиг наглядно как я себе представляю:

Я очень злой. Я не могу написать >> и << больше одного раза в посте. Поэтому разъяснения как работает 8-битный шифт сегодня на pastebin.
http://pastebin.com/mCwpnfPE |
|
|
2 |
2 |
1 |
 |
|
| |
Shadowman UAC General
 | 8758 |
Doom Rate: 2.06 Posts quality: +2277 |
Отправлено: 22.11.15 12:54:56 | |
|
ZZYZX: | SetActivator(0, AAPTR_PLAYER_GETTARGET) от имени игрока. Таргет под курсором и таргет монстра это разные указатели, SetActivatorToTarget это то же самое что SetActivator(0, AAPTR_TARGET). |
Все-равно ничерта не понятно, как это правильно можно использовать. Хорошо, дам кусок исходного кода, из которого пытаюсь вычленить нужное мне. Там же мои фопросы
Script "JP_HUD_Statusbar" (Int ActivatorID, Int Target_MaxHealth, Int Target_CurrentHealth)
{
if ((ActivatorTID() == 0) || (ActivatorTID() != Player_TID [PlayerNumber()])) GetPlayerID (); //Для чего эта строка нужна?
While (PlayerInGame(PlayerNumber()) && GetActorProperty (Player_TID [PlayerNumber()], AProp_Health) > 0) //Обязательно ли проверять наличие игрока и то, что его здоровье больше нуля?
{
ActivatorID = GetPlayerID(); //Не понял, зачем переменной присваивать значение функции GetPlayerID()
if ((GetUserCVar(PlayerNumber(), "hud_enemyhealthbar")) > 0) //Это условие тоже непонятно
{
if (SetActivatorToTarget(ActivatorID)) //Не проще ли вместо ActivatorID написать таг игрока, который ему присвоили один раз ентер-скриптом?
{
if (ClassifyActor(0) & ACTOR_MONSTER && ClassifyActor(0) & ACTOR_ALIVE && CheckFlag(0, "Shootable") && !(CheckFlag(0, "NoDamage") || CheckFlag(0, "Invulnerable"))) // Думаю, ряд условий можно убрать
{
Str Monster_ClassName = GetActorProperty(0, APROP_NameTag);
Target_MaxHealth = GetActorProperty (0, AProp_SpawnHealth);
Target_CurrentHealth = GetActorProperty (0, AProp_Health);
if (ActivatorID != ActivatorTID()) //Вот это непонятно.
{
SetActivator(ActivatorID);
DrawEnemyHealthBar(Target_CurrentHealth, Target_MaxHealth, Monster_ClassName); // Для начала проще написать в фиксированных координатах, чтобы проверить работу скрипта в целом, потом уже можно думать про спец. функцию.
}
}
else if (ClassifyActor(0) & ACTOR_PLAYER && ClassifyActor(0) & ACTOR_ALIVE) // Players/bots Не нужно!
{
Str Player_Name = GetCVarString ("Name");
Target_MaxHealth = GetActorProperty (0, AProp_SpawnHealth);
Target_CurrentHealth = GetActorProperty (0, AProp_Health);
// hacks to work around player health
// apparently players have a default max health of 0
if (Target_MaxHealth == 0)
{
if (Target_CurrentHealth > 100)
Target_MaxHealth = Target_CurrentHealth;
else
Target_MaxHealth = 100;
}
SetActivator(ActivatorID);
DrawEnemyHealthBar(Target_CurrentHealth, Target_MaxHealth, Player_Name);
}
else
{
SetActivator (ActivatorID);
}
Delay (1);
}
else
{
SetActivator (ActivatorID);
}
}
Delay (1); // Prevents runaway script
}
Delay (1);
Restart;
} |
|
|
1 |
7 |
2 |
 |
|
| |
alko Marine
 | 26 |
Doom Rate: 2
|
Отправлено: 22.11.15 18:47:32 | |
|
MaxED: | При помощи полупрозрачного 3Д пола, например. |
Точно, спасибо. Раньше не замечал этот атрибут у 3д-полов.
Добавлено спустя 22 минуты 34 секунды:
С 2д-скайбоксом фигня какая-то. Когда загружаю с заменой RSKY1 картинку, она тайлится 256*128 четыре раза. То есть на весь обзор в 360 градусов вместилась бы картинка 1024*512, но если картинку с таким разрешением импортировать, будет тайлиться 4 раза её угол 256*128.
Суть в том, что в оригинальном думе скайбокс повторяющийся. Но если у меня на скайбоксе изображение одной планеты запланировано, то эта планета будет 4 раза повторяться (и два раза ещё по вертикали). |
|
|
| |
ZZYZX - UAC Commissar -
 |  | 6284 |
 Doom Rate: 1.65 Posts quality: +1633 |
Отправлено: 23.11.15 03:41:21 | |
|
Рандомновад http://www.mediafire.com/download/e9qgdm5ipbtr4im/HSVLAMP.wad
А это шадовмену http://www.mediafire.com/download/eu3k6sctecb6f0u/MONSTERHP.wad Единственное что, тебе явно надо будет прикрутить проверку на РЕАЛЬНОЕ нахождение монстра под курсором, потому что здум имеет в виду автоаим, когда ищет цель игрока. И возможно прикрутить дальность между координатами игрока и монстром. Для этого SetActivator(ptid), сохраняешь координаты, потом SetActivator(ptid, AAPTR_PLAYER_GETTARGET), и сравниваешь текущие координаты с игроком (VectorLength функцией).
Да, исходный код выкинь, мой проще  Если хочешь, могу попробовать прикрутить 3D позиционирование текста рядом с монстром.
Добавлено спустя 5 часов 10 минут 45 секунд:
alko: | То есть на весь обзор в 360 градусов вместилась бы картинка 1024*512, но если картинку с таким разрешением импортировать, будет тайлиться 4 раза её угол 256*128. |
Какой порт? И как у тебя выглядит текстура? Честно не помню, является ли небо текстурой из нескольких патчей в ванили. Если является, то почини размер текстуры кроме замены патча. Если не является, то ограничение порта. |
|
|
2 |
2 |
1 |
 |
|
| |
alekv - Colonel -
 |  | 4170 |
 Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 23.11.15 10:50:52 | |
|
ZZYZX: | Немного про битовый сдвиг людям, которые не понимают, зачем он нужен (и следовательно никак не могут запомнить). Что такое битовый сдвиг наглядно как я себе представляю: |
Спасибо за разъяснения, я так в целом понимал что если мне надо конвертировать целое число в фиксед, юзал <<16>>16, но то что >>8 для угла, не знал, это мне очень поможет. ps. по таблице нифига не понял хД |
|
|
1 |
3 |
1 |
 |
|
| |
Shadowman UAC General
 | 8758 |
Doom Rate: 2.06 Posts quality: +2277 |
Отправлено: 23.11.15 11:51:29 | |
|
Файл не скачивается. |
|
|
1 |
7 |
2 |
 |
|
| |
VladGuardian - UAC Commissar -
 | 5977 |
 Doom Rate: 1.33 Posts quality: +2179 |
Отправлено: 23.11.15 12:06:08 | |
|
alekv: | но то что >>8 для угла, не знал, это мне очень поможет. |
Угол, недаром он и называется в документации - не "fixed angle", а "byte angle". |
|
|
4 |
17 |
23 |
 |
|
| |
alko Marine
 | 26 |
Doom Rate: 2
|
Отправлено: 23.11.15 12:19:12 | |
|
ZDoom.
ZZYZX: | И как у тебя выглядит текстура? |
2д-изображение в формате png разрешением 1024*512. |
|
|
| |
[LeD]Jake Crusher = UAC Marshal =
 Doom Rate: 1.59 Posts quality: +942 |
|
1 |
1 |
4 |
 |
|
| |
Memfis = Colonel =
 | 4755 |
 Doom Rate: 1.8 Posts quality: +702 |
Отправлено: 23.11.15 13:18:25 | |
|
alko: | С 2д-скайбоксом фигня какая-то. Когда загружаю с заменой RSKY1 картинку, она тайлится 256*128 четыре раза. То есть на весь обзор в 360 градусов вместилась бы картинка 1024*512, но если картинку с таким разрешением импортировать, будет тайлиться 4 раза её угол 256*128. |
Тебе видимо нужно открыть ламп TEXTURE1, найти там текстуру SKY1 и поставить ей ширину 1024. На небе отображается именно текстура SKY1, а не патч RSKY1. По дефолту у SKY1 прописана ширина 256 и она "не видит" что там дальше.
Добавлено спустя 1 минуту 19 секунд:
А, ну и высоту поправь на 512, раз у тебя нестандартная. |
|
|
1 |
2 |
1 |
 |
|
| |