www.demoscene.ruenglish version
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Forth Haiku
На страницу Пред.  1, 2, 3, 4, 5 ... 19, 20, 21  След.
 
Начать новую тему   Ответить на тему    Список форумов DemoScene.Ru -> Демо
Предыдущая тема :: Следующая тема  
Автор Сообщение
BiTL
DOS lover


Зарегистрирован: 22.09.2007
Сообщения: 2946


СообщениеДобавлено: Сб Янв 04, 2014 17:00    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):
JavaScript 256b и 512b уже релизят на pouet. BiTL, ты сам говорил - будущее за браузерными демками. Принципиальных отличий Forth Haiku от JS и ShaderToy нет, да и релизить на pouet.net - не самоцель.


Ну, JS хотябы можно любым современным браузером открыть и посмотреть, даже если у тебя инета не будет. А твой "хайку" только посредством некоего веб-сервиса, который если закроется, то и трындец всем твоим трудам Smile

Цитата:

К тому же com-файлы под DOS в mode 13h морально устарели (и да, они "не честно" используют команды bios'а, аппаратную палитру видеокарты и микрокод x86-го процессора).
В общем, делаю, что хочу, точу скилы и жарю рыбу.
Smile



На счёт морального устаревания... Как ни странно, но DOS остаётся самой офигенной платформой для микро-интр. Незнаю никакой другой платформы, под которую можно такие вещи в 64b-256b вытворять.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1412


СообщениеДобавлено: Сб Янв 04, 2014 17:35    Заголовок сообщения: Ответить с цитатой

BiTL писал(а):
JS хотябы можно любым современным браузером открыть и посмотреть, даже если у тебя инета не будет. А твой "хайку" только посредством некоего веб-сервиса, который если закроется, то и трындец всем твоим трудам Smile

Кстати, Forth Haiku работает и в Internet Explorer 11 (кроме некоторых интр, например, моего рейтрейсинга, но я ещё буду с этим разбираться).
Если сервис закроется, то программы у меня в Evernote останутся записанными. И можно их на GLSL перевести, если так уж надо. Или вообще новый интерпретатор Forth написать.
Вообще, проблема "закрытия сервиса" актуальна для демосцены - сейчас уже накопилось много старых демок, которые никак не запустишь (хотя бы "Okie Dokie" или "Shian Lee"). Увы, это неизбежно. А ведь есть ещё wild-демки под всякие контроллеры, которые ни у кого, кроме автора, не идут. И ничего.

Цитата:
На счёт морального устаревания... Как ни странно, но DOS остаётся самой офигенной платформой для микро-интр. Незнаю никакой другой платформы, под которую можно такие вещи в 64b-256b вытворять.

Спектрумисты то же самое говорят про ZX Spectrum.
На самом деле, хороших старых платформ полно - Amiga, Gameboy Advanced, БК-0011... Сейчас DOS запускают в эмуляторе, то есть, по сути, таскают с 128-байтной интро здоровенную виртуальную машину. Это объективно некошерно, только ради олдскула прокатывает.
А прикинь - во всём мире Интернет кончится или сайт DOSbox закроется - вот ужас, все 128-байтные интры канут в Лету. В такой ситуации виртуальную машину для Forth написать по-любому проще, чем воссоздать эмулятор DOS.
_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
BiTL
DOS lover


Зарегистрирован: 22.09.2007
Сообщения: 2946


СообщениеДобавлено: Сб Янв 04, 2014 17:50    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):

Кстати, Forth Haiku работает и в Internet Explorer 11 (кроме некоторых интр, например, моего рейтрейсинга, но я ещё буду с этим разбираться).


Кто-то вообще пользуется Internet Explorer 11? 0_o

Цитата:

Если сервис закроется, то программы у меня в Evernote останутся записанными. И можно их на GLSL перевести, если так уж надо. Или вообще новый интерпретатор Forth написать.


Ну в итоге только ты их и будешь смотреть и радоваться.

Вообще, проблема "закрытия сервиса" актуальна для демосцены - сейчас уже накопилось много старых демок, которые никак не запустишь (хотя бы "Okie Dokie" или "Shian Lee"). Увы, это неизбежно. А ведь есть ещё wild-демки под всякие контроллеры, которые ни у кого, кроме автора, не идут. И ничего.

Цитата:
Сейчас DOS запускают в эмуляторе, то есть, по сути, таскают с 128-байтной интро здоровенную виртуальную машину. Это объективно некошерно, только ради олдскула прокатывает.


Но DOS всё ещё можно поставить на современное железо, и интры будут работать.

Цитата:

А прикинь - во всём мире Интернет кончится или сайт DOSbox закроется - вот ужас, все 128-байтные интры канут в Лету. В такой ситуации виртуальную машину для Forth написать по-любому проще, чем воссоздать эмулятор DOS.


не, поставить Windows XP в виртуалку всяко проще, а под ним все микро-интры работают.


В конце концов, ты же понимаешь, что MS-DOS микро-интры - это устоявшаяся категория. Да и ты в своём "хайку" не сможешь повторить большинство трушных интрошек Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1412


СообщениеДобавлено: Сб Янв 04, 2014 18:16    Заголовок сообщения: Ответить с цитатой

Лично меня не прельщает участие в конкурсах устоявшейся категории типа DOS 128b или ZX demo. Пока что мне просто понравился Forth Haiku. Выжму из него всё, что смогу, и пойду дальше - на GLSL, например. Сперва же надо мышление под шейдеры переформатировать.
А на Internet Explorer 11 скоро 90% пользователей будут сидеть, не переживай Smile
_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Digimind
assembler digger


Зарегистрирован: 22.09.2007
Сообщения: 103


СообщениеДобавлено: Сб Янв 04, 2014 18:21    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):
Сейчас DOS запускают в эмуляторе

Очень редко. Во-первых, в нём не поддерживаются все команды FPU. Во-вторых 3D-интры в нём нетерпимо тормозят. Я вот не перешёл на 64-bit OS, поэтому у меня DOS-интры запускаются в windows напрямую простым кликом, без всякой эмуляции. А на пати загружают компьютер напрямую в ДОС в true-шном стиле, благо это дело нескольких секунд.

Manwe писал(а):
А прикинь - во всём мире Интернет кончится

Северная Корея и её последователи - это ещё не весь мир, не переживай Smile

Manwe писал(а):
В такой ситуации виртуальную машину для Forth написать по-любому проще

Forth - это не платформа (и не эмулятор, продлевающий жизнь известной платформы). Поэтому придётся приплюсовывать размер виртуальной машины либо написать ещё и компилятор, чтобы из просто кусков текста получились полноценные интры.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1412


СообщениеДобавлено: Сб Янв 04, 2014 18:29    Заголовок сообщения: Ответить с цитатой

а JavaScript - платформа что ли? Или эмулятор, продлевающий жизнь? Smile
Маньяков, у которых DOS-интры запускаются одним кликом, всё меньше. Зато Forth Haiku и HTML5 demo идут у меня на iPad. BiTL верно заметил, что за браузерными интрами будущее. Уже сейчас DOS intro смотрят, в основном, из браузера - на youtube. Так лучше писать код под браузер, чем видео заливать.
_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
BiTL
DOS lover


Зарегистрирован: 22.09.2007
Сообщения: 2946


СообщениеДобавлено: Сб Янв 04, 2014 19:01    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):

А на Internet Explorer 11 скоро 90% пользователей будут сидеть, не переживай Smile


Не будут. Все будут сидеть под WebKit-браузерами. Впринципе уже сидят. ИЕ только в винде и будет стоять, просто потому-что он там подефолту стоит.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
BiTL
DOS lover


Зарегистрирован: 22.09.2007
Сообщения: 2946


СообщениеДобавлено: Сб Янв 04, 2014 19:05    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):
а JavaScript - платформа что ли? Или эмулятор, продлевающий жизнь? Smile


JavaScript это язык. А вот браузеры с поддержкой html5 и WebGL - это уже платформа. Можно считать, что это неотъемлемая часть ОС. И парадигмой не отличается от DirectX'a.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Digimind
assembler digger


Зарегистрирован: 22.09.2007
Сообщения: 103


СообщениеДобавлено: Сб Янв 04, 2014 20:27    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):
Так лучше писать код под браузер

Вообще-то предмет обсуждения - это не "код под браузер", а текст под язык форт. Код под браузер это вот: http://forthsalon.appspot.com/static/haiku.js - 23kb в непакованном виде. Так что код+текст с помощью небольшой адаптации может превратиться в интро средних размеров, которое на pouet классифицируется как "platform: JavaScript".
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1412


СообщениеДобавлено: Вс Янв 05, 2014 19:01    Заголовок сообщения: Ответить с цитатой

Digimind писал(а):
Код под браузер это вот: http://forthsalon.appspot.com/static/haiku.js - 23kb в непакованном виде. Так что код+текст с помощью небольшой адаптации может превратиться в интро средних размеров, которое на pouet классифицируется как "platform: JavaScript".

Можно скачать этот компилятор, оптимизировать (например, выкинуть обработку звука) и запускать локально (разве что доступа к базе с чужими хайку не будет). Таким образом проблема "падения сайта" решается (кстати, а что будет если упадёт scene.org?..). В принципе, поднять этот Forth-компилятор можно будет и у себя на сайте, если надо.
_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1412


СообщениеДобавлено: Вс Янв 05, 2014 22:24    Заголовок сообщения: Ответить с цитатой

Ужал "Candy Waterfall" в рекордные 80 байт
Код:
: r dup y 12 ** * t + sin swap x * cos + dup floor - ;
18 r
12 r
25 r
dup rot /

И теперь никто не догадается про возведение в 12-ую степень Smile
_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Digimind
assembler digger


Зарегистрирован: 22.09.2007
Сообщения: 103


СообщениеДобавлено: Пн Янв 06, 2014 05:19    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):
Ужал "Candy Waterfall" в рекордные 80 байт
Код:
: r dup y 12 ** * t + sin swap x * cos + dup floor - ;
18 r
12 r
25 r
dup rot /



Как можно так бесстыдно заявлять о рекордах, если оператор rot избыточен, а функции выбраны неоптимальные? Например:

отрывок "12 r 25 r dup rot" имеет более короткий эквивалент "25 r dup 12 r"

отрывок "dup floor -" имеет более короткий эквивалент "1 mod"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1412


СообщениеДобавлено: Пн Янв 06, 2014 09:15    Заголовок сообщения: Ответить с цитатой

Digimind писал(а):
Как можно так бесстыдно заявлять о рекордах, если оператор rot избыточен, а функции выбраны неоптимальные? Например:
отрывок "12 r 25 r dup rot" имеет более короткий эквивалент "25 r dup 12 r"
отрывок "dup floor -" имеет более короткий эквивалент "1 mod"

О, наконец пошла польза от Digimind'а! Поздравляю, 69 байт! Но зачем же выдумывать "бесстыдство"? Рекорд - он на то и рекорд, чтобы его бить.
Единственное, команда mod вообще не должна так работать. Это какой-то глюк (или фича) данной реализации Forth, и в будущем она может быть исправлена. Так что использовать команду "остаток от деления" для получения дробной части - рисковано.
_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1412


СообщениеДобавлено: Пн Янв 06, 2014 11:01    Заголовок сообщения: Ответить с цитатой

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


Можно соптимизировать до 255 байт (или до 251 с Digimind'овским трюком "1 mod")
Код:
: d dup ;
: m 0.4 * 0.5 + - ;
: a * - y - abs 0.11 < x ;
: r t swap / 1 mod 1.8 * 0.9 - d 0 > 2 * 1 - * 0.05 + ;
: e 3 r ;
: p 4.7 r 0.9 * 0.05 + d t ;
e x - d * 4.7 r y - d * + sqrt 0.02 <
p 3 * sin m e a 0.03 < *
p 2 * cos m 1 e - a 0.97 > *
+ + d d

Но тогда движения шарика хуже: он отскакивает от верхней и нижней стен, немного не долетая до них.

Либо цветной вариант в 254 байта - движения шарика корректны, но "аутентичный монохром" нарушен:

Можно ещё поджать на 4 байта, заменив дробные коэффициенты целыми, но тогда повторяемость движений выше, а это некрасиво. В конец добавим + + d и получим монохромную (жёлтую) картинку и 256 байт. Но движения-то хуже. Так что лучше оставим дробный коэффициент.
Можно ещё на 1 байт поджать, избавившись от swap, и за счёт этого окрасить биты в одинаковый цвет (получится 255 байт)
Код:
: d dup ;
: m 0.4 * 0.5 + - ;
: a * - y - abs 0.1 < x ;
: r / 1 mod 1.96 * 0.98 - d 0 > 2 * 1 - * 0.01 + ;
: e t 3 r 0.94 * 0.03 + ;
: p t 4.7 r 0.9 * 0.05 + d t 3 * ;
e x - d * t 4.7 r y - d * + sqrt 0.02 <
p sin m e a 0.03 < *
p cos m 1 e - a 0.97 > *
+

Но в итоге я остановился на варианте 276 байт (без "1 mod", чтобы не рисковать) с правильной чёрно-белой графикой
Код:
: d dup ;
: m 0.4 * 0.5 + - ;
: a * - y - abs 0.1 < x ;
: r t swap / d floor - 1.96 * 0.98 - d 0 > 2 * 1 - * 0.01 + ;
: e 2.9 r 0.94 * 0.03 + ;
: f 3.7 r ;
: p f 0.9 * 0.05 + d t ;
e x - d * f y - d * + sqrt 0.02 <
p 3 * sin m e a 0.03 < *
p 2 * cos m 1 e - a 0.97 > *
+ + d d

_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Digimind
assembler digger


Зарегистрирован: 22.09.2007
Сообщения: 103


СообщениеДобавлено: Пн Янв 06, 2014 16:58    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):

Единственное, команда mod вообще не должна так работать. Это какой-то глюк (или фича) ... рисковано.

Не глюк и не рискованно. В глоссарии написано, что для всего используются действительные числа, а при использовании времени задействуется WebGL/GLSL. А там официальная спецификация такова: mod(x,y)=x-y*floor(x/y). При y=1 получается как раз то, что нужно: mod(x,1)=x-floor(x).
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DemoScene.Ru -> Демо Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3, 4, 5 ... 19, 20, 21  След.
Страница 4 из 21

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах