Forth http://fforum.winglion.ru/ |
|
Старые игры на языке Форт http://fforum.winglion.ru/viewtopic.php?f=34&t=3029 |
Страница 2 из 3 |
Автор: | Hishnik [ Чт янв 22, 2015 21:41 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
gudleifr писал(а): Именно. Зачем он нужен, если речь идет о вызовах OpenGL? А можно поинтересоваться, CreateSphere внутри чего вызывается? И почему там GLU, а не GL? |
Автор: | gudleifr [ Пт янв 23, 2015 00:24 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Полный текст примера из masm32: http://wcwp.googlecode.com/svn/trunk/wcwp/bin/masm32/examples/exampl06/opengl/opengl.asm |
Автор: | Hishnik [ Пт янв 23, 2015 01:05 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Нетрудно было догадаться, что я OpenGL на ассемблере писал, потому и вопросы мои ставили цель не получить rtfm, а обратить внимание на некоторые аспекты проблемы. Ну да ладно, отвечаю сам: 1. Сами графические примитивы рисуются в ответ на сообщение wm_paint. Со всеми вытекающими: просто так поместить объект на форму или в какую-то базу в OpenGL нельзя, ее там нет. 2. С GLU начинаются имена библиотеки расширения Open GL Utility Library, а не самого OpenGL. Если OpenGL в системе ставится вместе с драйверами видеокарты и ничего более не требует, то GLUT уже надо ставить и подключать - это раз. Два - это не смена движка в плане появления базы объектов, а добавление фигур. В отличие от этого я сконцентрировался именно на решении таких задач: 1. Автоматическая отрисовка сцены просто по добавлению объектов в базу. 2. Динамическое управление параметрами объектов (в вызовах нет литералов, только ссылки). 3. Автоматическое вычисление нормалей (и освещение). 4. Индивидуальное масштабирование, смещение и вращение объектов (в системе азимут-наклон-крен). В планах: 5. Индивидуальное текстурирование граней объектов. |
Автор: | gudleifr [ Пт янв 23, 2015 01:19 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Hishnik писал(а): ... Тогда и я напишу, что имел в виду. Обращения к OpenGL выглядят одинаково на всех языках! Инклюды и запускающие фрагменты - не в счет!Поэтому имеет смысл, либо просто дать возможность доступа к API ОС (и OpenGL в том числе). Либо придумать человеческий язык описания 3D-графики (в терминах отличных от указания координат). Промежуточные решения, как Вы сами правильно заметили в ответ на просьбу предоставить исходники, нафиг никому не нужны - "ни самому посмотреть, ни кому показать". |
Автор: | Hishnik [ Пт янв 23, 2015 01:24 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
gudleifr писал(а): Либо придумать человеческий язык описания 3D-графики (в терминах отличных от указания координат). Не соглашусь. Я же не зря перечислил те вещи, которые я запрятал внутрь своих слов. Это и вычисление нормалей, и вычисление вершин фигур через их основные параметры, и модификация движка программы таким образом, чтобы не надо было думать про обработку сообщений. Ну и что с того, что установка нормали выглядит одинаково на любом языке? Мне-то зачем эта рутинная работа на фоне хитро улыбающегося движка "а ну попробуй забыть установить нормаль - я тебе тут же устрою неестественное освещение для этой грани". Удобная графическая библиотека от базовой OpenGL должна отличаться в ту же сторону, в которую Delphi отличается от Паскаля - не столько важен синтаксис, сколько сам факт, что можно просто сказать, что на форме должна быть кнопка. А от координат начальной точки и размеров ну никак не уйти, по чисто логическим соображениям. Точно так же, как в Delphi нельзя не указать, где находится кнопка и что на ней написано - это уже относится к смыслу приложения. |
Автор: | gudleifr [ Пт янв 23, 2015 01:40 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Hishnik писал(а): Точно так же, как в Delphi нельзя не указать, где находится кнопка и что на ней написано - это уже относится к смыслу приложения. Вот тут мы и расходимся. Я вижу в этом огромный недостаток визуального программирования, причину застоя в программировании.Кстати, конкурс продолжается. Кому удастся красиво переписать на FORTH хоть одну из BASIC-игр, описанных в уже трех главах моих записок? |
Автор: | Hishnik [ Пт янв 23, 2015 01:52 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
gudleifr писал(а): Вот тут мы и расходимся. Я вижу в этом огромный недостаток визуального программирования, причину застоя в программировании. Я тоже вижу в этом недостаток. Только "в этом" = "в практической невозможности использовать визуальное программирование в невизуальном стиле". Программист на Дельфи должен знать не столько Паскаль, сколько основные визуальные компоненты, их свойства и методы, практику применения. Часто он этим и ограничивается, хотя теоретически может написать свой компонент. Но кто это делает и насколько часто? Трудоемкость-то резко отличается. В Форте, раз уж я отталкиваюсь от OpenGL, можно выстроить библиотеки отталкиваясь от собственных сценариев использования. Зря, что ли, я намекнул на "азимут-наклон-крен"? Это не запрещает мне использовать низкоуровневый OpenGL, тем более что в процессе разработки высокоуровневой библиотеки в нем пришлось не то что разобраться, а начать выделять общие моменты и искать места для автоматизации. |
Автор: | gudleifr [ Пт янв 23, 2015 02:18 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Hishnik писал(а): В Форте, раз уж я отталкиваюсь от OpenGL, можно выстроить библиотеки отталкиваясь от собственных сценариев использования. Я, тут, в рамках анализа BASIC-игр пересчитал полезные применения честного 3D в программировании - оказалось крайне мало.
|
Автор: | Hishnik [ Пт янв 23, 2015 02:35 ] | ||
Заголовок сообщения: | Re: Старые игры на языке Форт | ||
gudleifr писал(а): Я, тут, в рамках анализа BASIC-игр пересчитал полезные применения честного 3D в программировании - оказалось крайне мало. Точно? Код: #BRICK NEW-OBJECT
-0.1 -0.01 0.02 CREATE-ORIGIN-POINT 0.2 0.2 0.1 CREATE-BRICK 0x7FFFFFFF 0x7FFFFFFF 0x7FFFFFFF ACTIVE-OBJECT SET-3DCOLOR #BRICK NEW-OBJECT -0.2 0.19 0.02 CREATE-ORIGIN-POINT 0.4 0.1 0.1 CREATE-BRICK 0x7FFFFFFF 0x7FFFFFFF 0x7FFFFFFF ACTIVE-OBJECT SET-3DCOLOR #PYRAMID NEW-OBJECT -0.3 0.0 0.0 NEW-POINT SET-PT0 0.0 0.1 0.0 NEW-POINT SET-PT1 0.3 0.0 0.0 NEW-POINT SET-PT2 0.0 -0.1 0.0 NEW-POINT SET-PT3 0.0 0.0 0.9 NEW-POINT SET-PT4 0x7FFFFFFF 0x7FFFFFFF 0x7FFFFFFF ACTIVE-OBJECT SET-3DCOLOR
|
Автор: | gudleifr [ Пт янв 23, 2015 11:41 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Hishnik писал(а): Точно? Это, как раз, контрпример - насколько обычная съемка честных моделей (в первых фильмах) лучше, чем 3D (в последних).Да и изумительная игра "Возвращение джедая" (Atari 1984) без всякого 3D в 3/4 прекрасно смотрелась. Возьмем, например, космические игры: 1. Честно текстовый Star Trek 2. Space Invaders и прочие скроллеры 3. Space Wars! - два корабля в гравитационном поле звезды 4. Asteroids - корабль, болтающийся, как цветок в проруби 5. Лунолет - честная гравитация 6. Apollo 18 - интерактивный мультик 7. Elite... Последняя (единственная в 3D) не является ни самой реалистической, ни самой красивой... Наоборот, можно заметить, что 3D применяется там, где других интересных идей нет. Даже в Orbiter оно нафиг не нужно. |
Автор: | Hishnik [ Пт янв 23, 2015 16:37 ] | ||
Заголовок сообщения: | Re: Старые игры на языке Форт | ||
Star Trek - обычный квест, с тем же успехом можно ходить по фэнтезийному миру и вводить команды. Space Invaders - обычный скроллер, те же соображения, могут лететь пришельцы, а могут и ехать танки, нет разницы Леталки - да, но 3D и 2D все же дают определенные различия. Цифры там важнее графики. Elite некрасивая потому, что не хватает производительности. Вот оно с заливкой - вместо проволочной графики OpenGL дает честное освещение. gudleifr писал(а): Наоборот, можно заметить, что 3D применяется там, где других интересных идей нет. Космос вообще интересная идея. Навскидку - Звездные волки, Homeworld, да и современная Elite. Третья координата имеет значение, и трехмерное изображение играет роль в плане оценки ситуации. Вот Eve online от 3D только украшается, не зря ее называют Excel-ем в космосе.
|
Автор: | gudleifr [ Пт янв 23, 2015 16:56 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Hishnik писал(а): Леталки - да, но 3D и 2D все же дают определенные различия. Цифры там важнее графики. Но в космосе ее-то и нет. Для того, чтобы выйти за пределы плоскости нужно, по крайней мере 4 объекта, а такие модели, да еще с гравитацией и реальными расстояниями (и реальным освещением) игроку явно в сыром виде не подашь. И 3D - это первое, что просится под нож.... Третья координата имеет значение, и трехмерное изображение играет роль в плане оценки ситуации. В Star Trek (я не о квестах, а о первых текстовых ролевых стратегиях) гораздо проще подставить реальные цифры. Даже в самолетных леталках, где трехмерность необходима по жизни, красивее смотрятся спрайты. Трехмерность можно оставить только для расчета координат, визуализировать только 2D. А какие раньше были рельсовые шутеры-леталки! |
Автор: | Hishnik [ Пт янв 23, 2015 18:38 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
gudleifr писал(а): Даже в самолетных леталках, где трехмерность необходима по жизни, красивее смотрятся спрайты. Трехмерность можно оставить только для расчета координат, визуализировать только 2D. А какие раньше были рельсовые шутеры-леталки! Если это делать с помощью OpenGL, многие задачи решатся самой библиотекой - например, масштабирование спрайтов. Да и спрайты еще надо нарисовать. |
Автор: | gudleifr [ Пт янв 23, 2015 19:16 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
Hishnik писал(а): Да и спрайты еще надо нарисовать. А вот тут возникает проблема. "Вам ехать или шашечки?!" Должна ли игра, как мы привыкли в последнее время, быть законченным качественным мультимедийным продуктом? Или достаточно, чтобы в нее было интересно играть?Я, например, начав писать про BASIC-игры, увидел, что все толстые и красивые книги "про программирование игр" писаны либо про то как добавить к готовой игре графику-музыку, либо, как сделать ее конкурентно-годной. То же, кстати, и с настольными варгеймами. |
Автор: | Hishnik [ Пт янв 23, 2015 19:26 ] |
Заголовок сообщения: | Re: Старые игры на языке Форт |
gudleifr писал(а): А вот тут возникает проблема. "Вам ехать или шашечки?!" Должна ли игра, как мы привыкли в последнее время, быть законченным качественным мультимедийным продуктом? Или достаточно, чтобы в нее было интересно играть? Для меня 90% - "интересно играть". Потому что если это текстовый экран, то в большинстве случаев теряется заметная часть играбельности (за исключением текстовых квестов). Но представление игровой информации должно быть хотя бы минимально удобным. Тот же варгейм теоретически можно представлять в виде таблиц с координатами и консолью для приказов. Но разве не удобнее видеть скроллируемую и масштабируемую карту с вменяемыми значками и управлять мышкой? Я не говорю про детализированную анимацию и динамическое освещение, это действительно похоже на попытку закрыть отсутствие игровой идеи спецэффектами. А что касается 3D, то я не могу руками нарисовать спрайт Star Destroyer-а. А тремя объемными примитивами сделать узнаваемую фигуру (не рисуя ее, а задавая координаты) - вполне. Поэтому тут просто вопрос удобства оформления графики. |
Страница 2 из 3 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |