Автор | Сообщение |
alko Marine
| 26 |
Doom Rate: 2
|
Отправлено: 20.11.15 21:44:19 | | | MaxED: | да и while там не нужен) |
Это пока. Но когда потребуется выполнение параллельно нескольких процедурок, внешний цикл всё же понадобится. | |
|
| |
alekv - Colonel -
| | 4168 |
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 -
| | 4168 |
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 -
| | 4168 |
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
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 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: +1631 |
Отправлено: 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
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 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: +1631 |
Отправлено: 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 -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 23.11.15 10:50:52 | | | ZZYZX: | Немного про битовый сдвиг людям, которые не понимают, зачем он нужен (и следовательно никак не могут запомнить). Что такое битовый сдвиг наглядно как я себе представляю: |
Спасибо за разъяснения, я так в целом понимал что если мне надо конвертировать целое число в фиксед, юзал <<16>>16, но то что >>8 для угла, не знал, это мне очень поможет. ps. по таблице нифига не понял хД | |
|
1 |
3 |
1 |
|
|
| |
Shadowman UAC General
| 8391 |
Doom Rate: 2.08 Posts quality: +1995 |
Отправлено: 23.11.15 11:51:29 | | | Файл не скачивается. | |
|
1 |
7 |
2 |
|
|
| |
VladGuardian = Commissar =
| 5537 |
Doom Rate: 1.28 Posts quality: +1934 |
Отправлено: 23.11.15 12:06:08 | | | alekv: | но то что >>8 для угла, не знал, это мне очень поможет. |
Угол, недаром он и называется в документации - не "fixed angle", а "byte angle". | |
|
4 |
10 |
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: +857 |
|
1 |
1 |
4 |
|
|
| |
Memfis = Colonel =
| 4753 |
Doom Rate: 1.8 Posts quality: +701 |
Отправлено: 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 |
|
|
| |