Под конец 90-х меня нашли старые знакомые и предложили поучаствовать в проекте. С них - спец.аппаратура и обсчет ее показаний. С меня - риалтаймовый графический интерфейс.
"Чего? Чего?" - спрашиваю.
"Z", говорят, видел? Ну, вот, как-то так.
"В смысле?"
"Ну, есть двухэтажное здание. Первый этаж - офис. Подвал и второй этаж - лабиринты. Их наполняют дымом до полной непроглядности и запускают живых пожарных с дых.приборами - исполнять свой учебный квест. Пожарные тащат ультразвуковые датчики, ловящие сигнал расставленных по всему лабиринту излучателей (Или наоборот? Не помню). В итоге пакеты радиосигналов "кто-кого услышал" с итоговой информацией через кольцевую антенну вокруг всего здания уходят на компьютер. В общем, все уже отлажено и считается, надо только на экране нарисовать".
"А "Z" при чем?"
"А, разве еще и другие игры есть?"
Ладно, говорю, это - просто. В те времена еще не было проблем с "шейдерами". Тупо оптимизировали регистровую арифметику и размер пространства съемки. У меня даже был где-то свой "воксельный движок", живенько рисовавший что-то типа "вида из окна поезда".
Ну, говорят, есть проблемы. Радиотехник, написавший фильтрацию радиосигналов (в итоге выдающую набор текущих координат пожарных) написал все на Турбо Паскале (BP 7.0)... И переписывать не будет.
Все мечты о новом слове в графических мечтах начали меркнуть. Дык, говою, а я-то тут при чем? Берите библиотеку Турбо и рисуйте.
Уже, отвечают. Показывют лабиринт, по которому бегает кружок-пакмен. Это, говорят, совсем "не то".
"А что ТО?"
"Этого мы от тебя ждем... Да, еще совсем забыли, экран должен быть большим - 1024*768. Иначе лабиринт не влезет".
Это сейчас "хи-хи". А 20 лет назад телевизор такой по спецзаказу покупали... Да еще на Паскале.
Так я и не понял, что им было надо. Пошел изобретать что-то свое. DOS-Паскаль с его жуткими проблемами с расширением памяти? Значит, вся большая память будет под управлением видеоадаптера, а лабиринт буду передавать частями. Частями? Тогда сам бог велел сделать конструктор.
Нарисовал красивый желтенький "кубик" и зафигачил простенький редактор. Сидел и тупо рисовал комнаты лабиринта. Показал.
Видимо, они подумали, что дальше будет лучше, и они сказали, что сойдет... Но через неделю все-таки начали ныть, что конструктор не нужен, а нужна "картинка".
Конец первого движка.
Картинка - так картинка. Выкинул "кубики". Накопипастил из "Incubation" фрагментов и нафигачил три задника - отдельно этажи и общего вида. Проблему памяти решил самым простым способом: DOS-программу запускаем из-под Win95 и юзаем DPMI... Единственно Паскаль-программа стала немного "египетской" из-за преобразований "адрес-ссылка"...
Ок, говорят, красиво. А где конструктор?
"???"
"Ну, датчики-то надо как-то развесить и в программу их координаты вставить".
Конец второго движка.
Т.е. нужны "диалоговые окна". Которые у самого Билла не сразу получились!? В те годы считалось, что "окна" - это такая очень сложная и жутко тормозящая штука, которую и понять-то трудно. В книге Мэтта Питрека "Внутренний мир Windows" описывались сложнейшие финты...
Но, может, можно по-нашему, по деревенски, тупо отрисовать прямоугольник и опросить координаты мыши? Оказалось это не только можно, но и очень просто. (Кстати, вся работа с мышкой, в силу принудительной синхронизации, и свелась к единственной ф-ии "Опрос состояния").
Готово. Провоняли дымом, развешивая датчики и замеряя расстояние рулеткой. Вбил их в программу, попутно исправляя ошибки "интерфейса"... Добавил к "радиотехнической фильтрации" свою - чтоб мимо дверей не ходили и летку-енку не танцевали.
Дымокамера функционирует... Дым циркулирует... Спрайты пожарных осциллируют... Фельдшерица рвется их спасать, когда иконки замирают. Лепота!
Тут ко мне подходит "делегация" с ехидным выражением лица.
"А нам еще надо базу экзаменуемых вести..."
Напугали ежа... Окно-то уже есть - добавить туда пару лишних "контролов" - готово!
...
Конечно, были там и другие приключения. Но все это вместилось в те две тысячи строк на Паскаль (без всей этой радиотехники). Кстати, тогда я еще не окончательно переболел ООП и он изобиловал страшными комментариями "ЧУЖОЙ - ВЕЩЬ - НЕЧТО", "ГЕНЕРАЦИЯ - МОДИФИКАЦИЯ - ДОСТУП - ВЫВОД", "ПРЕДСТАВЛЕНИЕ - ОПРЕДЕЛЕНИЕ - КОНЦЕПЦИЯ"... Жуть...
Сохранившийся у меня текст (без "радиотехники", возможно, не окончательный/не отлаженный - доводил-то на объекте):
https://cloud.mail.ru/public/4ApC/HPKedGJ47
(В превью кодировка съехала, не пугайтесь).
gudleifr
Жаль. Но ты как бы еще в 90-х остался.
А на дворе уже скоро 2020 год будет !
Ziltop
> Жаль. Но ты как бы еще в 90-х остался.
Об том и спич. Сейчас, казалось бы, столько новых инструментов... Но все силы "современных движкописателей" уходят на борьбу с ними.
Ну потом будет бороться ИИ.
Тогда человек вообще не будет ничего писать.
А просто как в ресторане делать заказ чего он хочет. А искусственный интеллект будет это делать.
Ziltop
> Ну потом будет бороться ИИ.
Громадные машины со всем их сложным механизмом, где так сильно чувствуется отсутствие простоты, управляются людьми, которым по природе своей свойственно ошибаться; но теперь появляется еще новая опасность от тех неисправностей, которые могут произойти в самих машинах.
Х.Р.Вильсон, Броненосцы в бою, 1896
Обратите внимание на год.
jaguard
Наверное его огорчил Микрософт со своим унылым Шиндовс.
Меня Шиндовс тоже напрягает в последнее время.
Ziltop
> Наверное его огорчил Микрософт со своим унылым Шиндовс.
Примерно лет за пять до описываемых событий.
Залейте плиз на нормальный файлообменник.
Ребята. Вы упускаете главное - условия в которых пишутся "реальные движки": за две недели до расстрела, там и на том, что велено. А все эти благорассуждения о том, что в этом сезоне все пишут на <...>, можете засунуть к "рефакторингу" и "переносимости".
И, второе: ВСЕГДА проще переписать, чем учесть все заранее! И если Вы не учитываете "все заранее", то "все" весит тысячу строк, не более.
Zegalur
> Залейте плиз на нормальный файлообменник.
А в чем проблема?
Ziltop
Микрософт всех огорчил, и виндоуз действительно был в меру унылым (но был многозадачным - и это в результате все решило). И программировать под него на голом АПИ было (и остается, хм) действительно болью, поэтому так Дельфи и поднялся. Но это не повод гордиться тем что ты просто не хочешь или не умеешь учиться.
Движки вылизываются годами.
Как кот свои помидоры :)
В студенческие годы, по приколу писал программу-телефонный справочник, с интерфейсом в стиле win95... кнопочки, эдиты, Turbo Pascal, BGI (жаль, что TMT Pascal мне попался только через 1.5 года).... курсор мышки. Ничего сложного, учитывая, что из литературы у меня под рукой был только учебник Шилдта по Turbo C с примером псевдографического оконного интерфейса со стековыми окошками.
nes
Извините за удаление Вашего поста, попавшего в зону игнора к нашему шаурмену.
nes
> Это не движок, это "як як на коленке".
Это именно движок. И он работал!
А "як як на коленке" - это бездумное перестроение абстрактных сущностей без понимания того, что они делают.
nes
> Движки вылизываются годами.
Вас обманули. За пару месяцев вы отстанете от железа на огромное расстояние...
nes
> Мне вот интересно как автору вообще удалось сохранить столь древнего мамонта?
В 90-е уже изобрели жесткие диски.
Вас обманули. За пару месяцев вы отстанете от железа на огромное расстояние...
Не ! Нес он впереди паровоза :)

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