Войти
ПроектыФорумОцените

Бред 3d - играбельная альфа 1999-го года

Страницы: 1 2 3 Следующая »
#0
23:51, 22 мая 2022

Бред 3d - это гэговый 3d шутер для MS-DOS (минималки: Pentium-166, 4Mb RAM, VGA)
Разработка велась с 1995-го, окончательно заглохла в 2001-м. Средства разработки - Турбо Паскаль 7 + Турбо Ассемблер, приложение - 16-битное с редкими ассемблерными хаками для работы с 32битными регистрами. Изначально было многопоточным (хаки на прерывание таймера) - но, увы, вырезал в процессе отладки (потом оказалось - глючила материнка, очень обидно). Арты и карты - DeLuxePaint II Enhanced (да, я создавал уровни, кодируя объекты наборами точек в картинках - изврат страшный, но сэкономил на редакторе)

Это не релиз, это играбельная альфа, замороженная навеки.

Она к вам шла 23 года.
Наконец, моё терпение лопнуло. Я закрасил сиськи чёрными плашками, потом вообще отредактировал карты, убрав все объекты, имевшие сиськи, пересобрал пак-файл тулзами из 1999-го, отредактировал наименее сломаный екзешник (от октября 1999-го) в хекс редакторе, чтобы вырезать из него свои персональные данные.

Вот. (4Мб) http://chebmaster.com/downloads/bryed_3d.zip

g_screenshot | Бред 3d - играбельная альфа 1999-го года Скриншот с боссом игры "Бред 3d" | Бред 3d - играбельная альфа 1999-го года

В конфиге досбокса: (гарантированно работает в 0.74-3 с https://www.dosbox.com/ )
core=dynamic
cputype=auto
cycles=fixed 200000
иначе будет слайд-шоу.
aspect=true
чтобы картинку не плющило

Многое сломано: у Змей Горыныча не работает коллизия со скалами, когда людоеды идут по мостам - они часто слипаются друг с другом, слипаются с игроком и ловят урон от коллизии с ним, невозможно выбраться из воды или зыбучего песка, рука не толкает монстров, как должна (если вы умудритесь толкнуть их с берега - они тонут), входы и выходы пещер выглядят, как покемон Missingno.

Начинал на 386 SX 25, но на реальных картах мой чудовищно неэффективный код тормозил даже на 486 DX 100, забегал только на K6-2 266: спрайты *только* размера 128х128 (иногда два сцеплены вместе для 128х256), кеш умирает мучительной смертью и всё упирается в нещадно насилуемую память.

Исходники в таком состоянии, (ну, помимо того, что отловить все сиськи в исходниках арта - всё равно, что переловить всех тараканов в лесу, а с исходниками кто-нибудь может и вернуть вырезанный хентай обратно) что собирать проект просто бесполезно. В позднейшей версии (от 2001-го, ЕМНИП) сломано вообще всё.
Это если я вообще вспомню, какой версией компилятора это всё собиралось.

Да, людоеды - это рескин арчвиля. А чебурашки-мутанты - рескин манкубуса. И чо? Арт взять было неоткуда. Хотел лепить из пластилина - но не на что было снять, чтоб в компьютер. На видеокассету? Плата захвата появилась годы спустя. Снимать на плёнку, проявлять, отдавать в печать и сканировать сканером? Родители никогда бы не дали столько денег.

Внимательно прочтите вложенный прочти меня.txt - там описание управления (нет, переназначения привязки клавиш НЕТ - есть то, что есть. Стрелочки, иными словами). Предметы подбираются только в присядке. Нужны боеприпасы для мухоморомёта? Заруливаешь на мухомор и приседаешь, чтобы сорвать его. Только хардкор. Спринт? Комбо стрелка вверх + стрелка вниз.

На первом уровне надо найти вход в пещеру (выглядит, как покемон missingno посреди скал). Людоедов - толпы, а из оружия - одна сковорода (и одна волшебная палочка - если людоеды не зажмут раньше). Лечилки - бутылки кока-колы на крыше первого домика.
Второй уровень - это корридор-кишка с четырьмя людоедами. Главная трудность - отличить проход от стен. Крайне непросто. Посветлее сделать не смог: палитры - в бинарниках, я вообще не понимаю, чем они собирались.
Третий уровень. Горыныч вообще ни о чём. При убиении оставляет не подбирающийся золотой ключ. Предполагалось, что в замок, ломящийся от ништяков, можно зайти либо через ворота, убив Горыныча, либо по спиральке, вынеся турели - и потом, уже отожранным, идти валить Горыныча. Но подъёмные решётки я так и не закодил, остался только второй путь и босс - не пришей звезде рукав (поскольку на выходе из замка дальше решётки, естественно, тоже нет).
Четвёртый уровень - пустой, демонстрация палитры. Предполагался Дюк Нюкем и прочие злобные пиндосы, пиндосящие очередную пустынную страну - но огребающие от *нашего* главгероя. Вместо воды - зыбучий песок, *очень* трудно заметить. И опаньки.
Пятый уровень - пустой, демонстрация палитры. Типа, лава у меня тоже есть. Лава убивает мгновенно.
Шестой уровень - неудачная попытка сделать мост через море. Море срёт спрайтами от души. Движок корчится, выдавая слайд-шоу. Впереди - неодолимая орда людоедов, потом зацикливает обратно на первый.

З.Ы. Людоеды немножечко слишком давящие толпой. Их ИИ устроен так, что предпочитает идти мацать нагих невольниц - чтобы монстры естественным образом толпились вокруг тех, агрясь на игрока только когда подойдёт слишком близко или выстрелит в них. Но поскольку весь хентай я вырезал - щупать им остаётся только тебя.

#1
0:29, 23 мая 2022

На нормальных настройках досбокса слайдшоу, а на твоих - runtime error 200 at 1A55:00B2. Похоже у тебя в зависимости от частоты процессора происходит деление на 0, потому что модуль CRT используется борландовский, а не тот, в котором эта ошибка вылечена. Есть ещё патч для готовых бинарей, собранных TP 7, надо поискать, но ты всё равно глючную функцию в модуле замени.

Это же знаменитая некогда винтажная ошибка 200 борландпаскаля - деление на 0, не думал что кто-то ещё её использует.
Исправление Runtime error 200 (Pascal).

Зы. Что-то патч в досбоксе не помогает. Или с точной эмуляцией 386 процессора - слайдшоу, или с твоими настройками - ошибка 200.

С core=simple можно даже с тормозами запустить, но стрельба вообще не видна, все патроны выпустил хз куда и тормози пока жрут.

#2
7:30, 23 мая 2022

Вроде,
cycles=fixed 200000
спасают отца русской демократии.
Если будет где-то подтормаживать - Ctrl+F12 увеличивает циклы досбокса

#3
8:15, 23 мая 2022

Не, без сисек не торт.

#4
8:38, 23 мая 2022

Теперь тоже тормозит, но чуть быстрее и звук гавкает. Причём при тормозах не найти как собственно игра включается, только по справке лазить можно.
Мне почему-то кажется, что твои оптимизации имеют обратный эффект. Ну ладно там на 386 проце с 20 мегагерцами игрой с растровой графикой скорость выжрать, но на современных компах, это надо постараться. Причём, если бы ты несколько лет назад выбросил нах все эти ассемблерные вставки (ну может несколько оставил и переписал под вин и лин) и перенёс код с tp7 на fpc и OpenGL 1.2, то получилась вполне играбельная кроссплатформенная игрушка и не нужно было заниматься сексом с оверлеями и доступом к памяти - никаких тебе ограничений в 64Кб на все глобальные переменные. Если бы и там не стал оптимизировать в ущерб стабильности - тогда и самого последнего проца могло не хватить чтобы её нормально запустить.

Зы. Хак для писателей современных игрушек с 16 цветовой попиксельной графикой: если рисовать на экране не по одному пикселю, а линиями одного цвета, то получится быстрее! Когда цветов всего 16, то соседние пиксели часто одного цвета, это надо использовать.

#5
9:18, 23 мая 2022

У меня *никогда* не тормозило, никогда не крашилось и летает на говне мамонта (ноутбучный i5 2012 года)
Skvoznjak
> Теперь тоже тормозит, но чуть быстрее и звук гавкает.
Попробуй сбросить конфиг досбокса в чистый. Вангую либо что-то нестандартное выставлено, либо скейлер тормозит.

Skvoznjak
> Причём, если бы ты несколько лет назад выбросил нах все эти ассемблерные
> вставки (ну может несколько оставил и переписал под вин и лин) и перенёс код с
> tp7 на fpc
Так я все эти годы этим и занимаюсь. Просто движок никак допилить не получается, по уровню фич всё время отстаёт от очередной версии UE и приходится рвать жилы, чтобы догнать и перегнать (просто догнать - мало, некруто). Бегу изо всех сил и остаюсь на месте. Вроде, решил, наконец, остановиться на некоторых фичах класса UE3 и потолке графики в GLES2 - но опять увяз в рефакторинге.

Гонка за фичами - плохо.

Конкретно у этой игры должна была быть версия 2.0 на 32-битном дельфи - тону усилий в ассеты вложил. Но не дотянул, не осилил. Несколько новых монстров (включая превращение нагих наложниц в полноценных неписей, способных бегать и бить игрока по фамильным драгоценностям), с полдюжины новых оружий...

И громоздятся в моей файловой помойке простыни за простынями спрайтов, как готовых, так и и недорисованых. И кучи исследовательских утилит - тестов быстродействия виртуальной памяти, быстродействия флипа DirectDraw с разной битностью... Behold my works, ye mighty, and despair...


nes
> без сисек не торт.
Я знаю, что не торт - но уж больно сырая фича была. Там нужно в стиле "или вниз, к свинству, или вверх, к богине" / "когда ты заглядываешь в бездну - бездна заглядывает в тебя" -т.е. гораздо больше интерактивности и невидимую карму как в Undertale и две концовки. А то, что было на момент смерти проекта реализовано - это тупое растление игрока.

#6
9:26, 23 мая 2022

З.Ы.
Пример конфига досбокса, при котором работает "Бред 3d"

#7
10:27, 23 мая 2022

Cheb
>У меня *никогда* не тормозило, никогда не крашилось и летает на говне мамонта (ноутбучный i5 2012 года)

Тормозит, потому что на других конфигурациях вылезает винтажная ошибка 200, которая происходит из-за хренового деления на частоту процессора, которая настолько огромна, что из её числа вынимается нолик и используется в качестве делителя. Эта ошибка была популярна лет 20 назад, тогда и надо было с ней разбираться, а не бережно хранить десятилетиями. В досбоксе нельзя выставить частоту процессора ручками, потому тут лотерея: на одном компе программа делит на 0, а на другом, на другое число. По нормальному надо код патчить, чтобы на 0 не делило, а не подгонять среду исполнения чтобы в программе на месте делителя 0 не появился.

>Пример конфига досбокса, при котором работает "Бред 3d"

На этом чуток получше, но звук испохабился, а управление всё равно плавает. И джойстиком бить не получается, хз на какую кнопку тут удар спрятан. Некогда кнопку искать, сразу набегают и жрут тормозящего игрока. Получается рассинхронизация с прицелом сковородки и эксбиционистами, пока персонаж махнёт сковородкой противник уже убежит из кадра. Нет такого прикола бить и попадать как в думе. По частоте процессора у тебя нетипичная досовская игра, потому что на четвёртых пнях уже было проблемно играть в реальном досе в игры использующие звуковухку - уже не было для них дров. Теоретически они были, но добиться работоспособности не получалось. Значит такую жручую игру нужно было переносить на среду со звуковухой много лет назад. Замена доса у нас одна и это линукс.

>Конкретно у этой игры должна была быть версия 2.0 на 32-битном дельфи - тону усилий в ассеты вложил.

> И кучи исследовательских утилит - тестов быстродействия виртуальной памяти, быстродействия флипа DirectDraw с разной битностью...

Ну вот и причина - подвела гонка за виндовыми технологиями. Сначала даже у мелкософта под винду такие качественные игры получались, что хоть стой, хоть падай. Не у тебя одного не получалось. Какие-то разработчики игрописание под винду всё же осилили и на фичи их продуктов натянули директ, а остальные виндовые графические библиотеки пошли по одному адресу. На древнем OpenGL, кототорый сразу был кроссплатформенным, хоть что-то заработало бы, пусть не так быстро как на директе, но более надёжно.

#8
10:38, 23 мая 2022

Skvoznjak
> И джойстиком бить не получается, хз на какую кнопку тут удар спрятан.
Ни на какую. В левой руке - джойстик, в правой - мышь. Джойстиком бегаешь, прыгаешь и приседаешь. Мышью целишься и бьёшь. Только ЛКМ, без альтернатив.

Skvoznjak
> Эта ошибка была популярна лет 20 назад, тогда и надо было с ней разбираться, а
> не бережно хранить десятилетиями.
Вот если бы я про неё знал тогда - но ведь откуда? Ни в одной книге об этом не писалось.
Повторюсь, сборка приложения из исходников более не возможна (рабочие не сохранились). Единственный работающий екзешник, из сохранившихся, был собран в октябре 1999-го. Не смотри на дату файла, я оттуда свои ФИО вымарывал.

Skvoznjak
> на одном компе программа делит на 0, а на другом, на другое число.
Обидно.
Но я ничего сделать с этим не могу.

З.Ы. А вообще, досбокс делает timeBeginPeriod ? Я не помню, на чём остановился после вырезания многопоточности. На прерывании таймера может висеть звук или просто быть хаки с изменением его частоты до 25/секунду или ещё какая экзотика.

#9
11:34, 23 мая 2022

Cheb
>Вот если бы я про неё знал тогда - но ведь откуда? Ни в одной книге об этом не писалось.

Я её сам обнаружил, когда досовскую прогу, написанную на тройке, стал тестировать на четвёртых пнях и выше. Полез в тырнет смотреть, а там оказалось, что это модная штука - Борланд в последнюю версию своего паскаля её вложил, посчитал что процев быстрее чем на 200Мгц быть не может, и лекарства потом не дал. Негатив в книги и документации класть как-то не принято, у читателей при чтении должны быть только положительные эмоции. Там многое чего плохого не пишут.

Известная тогда игра kb2 тоже эту ошибку кидала и лечилась патчем с того сайта. Потом стали распространять уже пропатченную версию.

>сборка приложения из исходников более не возможна (рабочие не сохранились).

Все на дискетке лежали, а её заглючивший привод зацарапал? Просто странно хранить собранный билд где-то далеко от исходников, которые мало весят.

>З.Ы. А вообще, досбокс делает timeBeginPeriod ?

Вообще без понятия. Раньше вместо досбокса dosemu использовал, он не имел привычки при запуске кидать в другой каталог, из которого в текущий напряжно перелезать.

#10
12:01, 23 мая 2022

Skvoznjak
> Все на дискетке лежали, а её заглючивший привод зацарапал?
Нет. "Настоящие джедаи бекапов не делают" + 2 катастрофы с жёсткими дисками (непатченная вин2к на диске больше 128гб, потом - смерть 500гб сигейт барракуды), пожравшие неизвестное число наработок. Готовые сборки я иногда откладывал (точнее, случайно куда-то заваливались), а исходники всегда были только рабочие, без единой точки отката, только в единственном экземпляре.

Skvoznjak
> странно хранить собранный билд где-то далеко от исходников, которые мало весят.
Э?
Билд имеет вес пера (4Мб в архиве), а исходники - огого.
Там же все арты вперемешку с кодом в одной папке.

#11
12:03, 23 мая 2022

Слушай, а ведь если бы у тебя было время/деньги в том-же 95м - ты мог бы стать кумиром молодежи и рок идолом. Ибо по исполнению - шедевр. Вспомните "Кремль" или как его там. Из той же эпохи, а ведь до сих пор есть где-то люди, которые скажут, что ДУМ - это детский лепет (не смотря на причастность движка), а "Кремль" - просто божественная игра.

#12
12:16, 23 мая 2022

Да :(
Если бы у меня была машина времени, и я мог бы сказать себе тогдашнему, что ружья кирпичом не чистят...
На четвёрке точно летало бы.

табличная 16-битная тригонометрия

+ Показать

- причём, эта 16-битная физика *реально* имела вес пера и летала на тройке. Потому что я все "тяжёлые" операции типа проверки видимости или прощупывания доходимости до игрока по прямой, размазывал по времени, не больше одного монстра на тик.

Тормозит - графика.
Хотя: все подвижные объекты (до 512) хранятся в одном массиве и любой движущийся проверяет коллизию со всеми. Все статические (до 2400 с чем-то) тоже хранятся в одном массиве, но карта (100х200метров) побита на квадраты 10х10 метров, содержащие индексы статических объектов, пересекающих этот квадрат. То есть, каждый подвижный проверяет коллизию со всеми статическими в квадрате 10х10м., а там может быть дофига (большой домик или мост, например).
А мобов может быть до 63 (нулевой - игрок). Горыныч жрёт четыре места в массиве (ибо головы).

#13
13:55, 23 мая 2022

Cheb
>а исходники всегда были только рабочие, без единой точки отката, только в единственном экземпляре.

Это же звиздец. Иногда редактор код портит, не заметишь, сохранишь пару раз и хана. Пока код мелкий, архиватор отлично бэкапит.

>а исходники - огого.
>Там же все арты вперемешку с кодом в одной папке.

Вот это неправильно. Арты, исходники и примеры артов и код надо в разных подкаталогах хранить. Тем более что арты временами подолгу не меняются.

#14
14:49, 23 мая 2022

Skvoznjak
> Вот это неправильно.
Конечно, неправильно!
[ностальгически]Мой первый проект, когда я ещё не знал понятия "проект"[/ностальгически]
(не считаем предыдущие попытки на Бейсике для 286-го с EGA, тот комп был у мамы на работе в сейфе)

Страницы: 1 2 3 Следующая »
ПроектыФорумОцените

Тема в архиве.