Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Сб дек 05, 2020 18:58

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Чт янв 22, 2015 21:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
gudleifr писал(а):
Именно. Зачем он нужен, если речь идет о вызовах OpenGL?

А можно поинтересоваться, CreateSphere внутри чего вызывается? И почему там GLU, а не GL?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 00:24 
Полный текст примера из masm32: http://wcwp.googlecode.com/svn/trunk/wcwp/bin/masm32/examples/exampl06/opengl/opengl.asm


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 01:05 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
Нетрудно было догадаться, что я OpenGL на ассемблере писал, потому и вопросы мои ставили цель не получить rtfm, а обратить внимание на некоторые аспекты проблемы. Ну да ладно, отвечаю сам:
1. Сами графические примитивы рисуются в ответ на сообщение wm_paint. Со всеми вытекающими: просто так поместить объект на форму или в какую-то базу в OpenGL нельзя, ее там нет.
2. С GLU начинаются имена библиотеки расширения Open GL Utility Library, а не самого OpenGL. Если OpenGL в системе ставится вместе с драйверами видеокарты и ничего более не требует, то GLUT уже надо ставить и подключать - это раз. Два - это не смена движка в плане появления базы объектов, а добавление фигур.

В отличие от этого я сконцентрировался именно на решении таких задач:
1. Автоматическая отрисовка сцены просто по добавлению объектов в базу.
2. Динамическое управление параметрами объектов (в вызовах нет литералов, только ссылки).
3. Автоматическое вычисление нормалей (и освещение).
4. Индивидуальное масштабирование, смещение и вращение объектов (в системе азимут-наклон-крен).
В планах:
5. Индивидуальное текстурирование граней объектов.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 01:19 
Hishnik писал(а):
...
Тогда и я напишу, что имел в виду. Обращения к OpenGL выглядят одинаково на всех языках! Инклюды и запускающие фрагменты - не в счет!
Поэтому имеет смысл, либо просто дать возможность доступа к API ОС (и OpenGL в том числе). Либо придумать человеческий язык описания 3D-графики (в терминах отличных от указания координат). Промежуточные решения, как Вы сами правильно заметили в ответ на просьбу предоставить исходники, нафиг никому не нужны - "ни самому посмотреть, ни кому показать".


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 01:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
gudleifr писал(а):
Либо придумать человеческий язык описания 3D-графики (в терминах отличных от указания координат).

Не соглашусь. Я же не зря перечислил те вещи, которые я запрятал внутрь своих слов. Это и вычисление нормалей, и вычисление вершин фигур через их основные параметры, и модификация движка программы таким образом, чтобы не надо было думать про обработку сообщений. Ну и что с того, что установка нормали выглядит одинаково на любом языке? Мне-то зачем эта рутинная работа на фоне хитро улыбающегося движка "а ну попробуй забыть установить нормаль - я тебе тут же устрою неестественное освещение для этой грани". Удобная графическая библиотека от базовой OpenGL должна отличаться в ту же сторону, в которую Delphi отличается от Паскаля - не столько важен синтаксис, сколько сам факт, что можно просто сказать, что на форме должна быть кнопка. А от координат начальной точки и размеров ну никак не уйти, по чисто логическим соображениям. Точно так же, как в Delphi нельзя не указать, где находится кнопка и что на ней написано - это уже относится к смыслу приложения.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 01:40 
Hishnik писал(а):
Точно так же, как в Delphi нельзя не указать, где находится кнопка и что на ней написано - это уже относится к смыслу приложения.
Вот тут мы и расходимся. Я вижу в этом огромный недостаток визуального программирования, причину застоя в программировании.

Кстати, конкурс продолжается. Кому удастся красиво переписать на FORTH хоть одну из BASIC-игр, описанных в уже трех главах моих записок?


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 01:52 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
gudleifr писал(а):
Вот тут мы и расходимся. Я вижу в этом огромный недостаток визуального программирования, причину застоя в программировании.

Я тоже вижу в этом недостаток. Только "в этом" = "в практической невозможности использовать визуальное программирование в невизуальном стиле". Программист на Дельфи должен знать не столько Паскаль, сколько основные визуальные компоненты, их свойства и методы, практику применения. Часто он этим и ограничивается, хотя теоретически может написать свой компонент. Но кто это делает и насколько часто? Трудоемкость-то резко отличается.

В Форте, раз уж я отталкиваюсь от OpenGL, можно выстроить библиотеки отталкиваясь от собственных сценариев использования. Зря, что ли, я намекнул на "азимут-наклон-крен"? Это не запрещает мне использовать низкоуровневый OpenGL, тем более что в процессе разработки высокоуровневой библиотеки в нем пришлось не то что разобраться, а начать выделять общие моменты и искать места для автоматизации.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 02:18 
Hishnik писал(а):
В Форте, раз уж я отталкиваюсь от OpenGL, можно выстроить библиотеки отталкиваясь от собственных сценариев использования.
Я, тут, в рамках анализа BASIC-игр пересчитал полезные применения честного 3D в программировании - оказалось крайне мало.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 02:35 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
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 


Вложения:
star_destroyer.png
star_destroyer.png [ 38.41 Кб | Просмотров: 12569 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 11:41 
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 оно нафиг не нужно.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 16:37 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
Star Trek - обычный квест, с тем же успехом можно ходить по фэнтезийному миру и вводить команды.
Space Invaders - обычный скроллер, те же соображения, могут лететь пришельцы, а могут и ехать танки, нет разницы

Леталки - да, но 3D и 2D все же дают определенные различия. Цифры там важнее графики.

Elite некрасивая потому, что не хватает производительности. Вот оно с заливкой - вместо проволочной графики OpenGL дает честное освещение.

gudleifr писал(а):
Наоборот, можно заметить, что 3D применяется там, где других интересных идей нет.

Космос вообще интересная идея. Навскидку - Звездные волки, Homeworld, да и современная Elite. Третья координата имеет значение, и трехмерное изображение играет роль в плане оценки ситуации. Вот Eve online от 3D только украшается, не зря ее называют Excel-ем в космосе.


Вложения:
elite.png
elite.png [ 63.76 Кб | Просмотров: 12925 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 16:56 
Hishnik писал(а):
Леталки - да, но 3D и 2D все же дают определенные различия. Цифры там важнее графики.
...
Третья координата имеет значение, и трехмерное изображение играет роль в плане оценки ситуации.
Но в космосе ее-то и нет. Для того, чтобы выйти за пределы плоскости нужно, по крайней мере 4 объекта, а такие модели, да еще с гравитацией и реальными расстояниями (и реальным освещением) игроку явно в сыром виде не подашь. И 3D - это первое, что просится под нож.

В Star Trek (я не о квестах, а о первых текстовых ролевых стратегиях) гораздо проще подставить реальные цифры.

Даже в самолетных леталках, где трехмерность необходима по жизни, красивее смотрятся спрайты. Трехмерность можно оставить только для расчета координат, визуализировать только 2D. А какие раньше были рельсовые шутеры-леталки!
Изображение


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 18:38 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
gudleifr писал(а):
Даже в самолетных леталках, где трехмерность необходима по жизни, красивее смотрятся спрайты. Трехмерность можно оставить только для расчета координат, визуализировать только 2D. А какие раньше были рельсовые шутеры-леталки!

Если это делать с помощью OpenGL, многие задачи решатся самой библиотекой - например, масштабирование спрайтов. Да и спрайты еще надо нарисовать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 19:16 
Hishnik писал(а):
Да и спрайты еще надо нарисовать.
А вот тут возникает проблема. "Вам ехать или шашечки?!" Должна ли игра, как мы привыкли в последнее время, быть законченным качественным мультимедийным продуктом? Или достаточно, чтобы в нее было интересно играть?
Я, например, начав писать про BASIC-игры, увидел, что все толстые и красивые книги "про программирование игр" писаны либо про то как добавить к готовой игре графику-музыку, либо, как сделать ее конкурентно-годной. То же, кстати, и с настольными варгеймами.


Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Старые игры на языке Форт
СообщениеДобавлено: Пт янв 23, 2015 19:26 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7080
Благодарил (а): 17 раз.
Поблагодарили: 116 раз.
gudleifr писал(а):
А вот тут возникает проблема. "Вам ехать или шашечки?!" Должна ли игра, как мы привыкли в последнее время, быть законченным качественным мультимедийным продуктом? Или достаточно, чтобы в нее было интересно играть?

Для меня 90% - "интересно играть". Потому что если это текстовый экран, то в большинстве случаев теряется заметная часть играбельности (за исключением текстовых квестов). Но представление игровой информации должно быть хотя бы минимально удобным. Тот же варгейм теоретически можно представлять в виде таблиц с координатами и консолью для приказов. Но разве не удобнее видеть скроллируемую и масштабируемую карту с вменяемыми значками и управлять мышкой? Я не говорю про детализированную анимацию и динамическое освещение, это действительно похоже на попытку закрыть отсутствие игровой идеи спецэффектами. А что касается 3D, то я не могу руками нарисовать спрайт Star Destroyer-а. А тремя объемными примитивами сделать узнаваемую фигуру (не рисуя ее, а задавая координаты) - вполне. Поэтому тут просто вопрос удобства оформления графики.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB