Ну почему, если на злобу дня, да еще остроумно... А вот в ЗН не играл, каюсь, не зацепило.
Вид для печати
На злобу дня уже есть игра - Theatre Europe. Поиграй, очень познавательно. Только не забудь активировать ядерные ракеты (там есть такая опция) словом MIDNIGHT SUN. А то, когда НАТО уже почти загонишь в Атлантический океан, или у них войск почти не останется, то они сразу ракеты запускают.
Зря. Для того времени это был супер-хит. Да и сейчас по уровню загадок она уделывает многие игры "на раз". Жаль продолжение так и не вышло (на РС не в счёт, там шляпа какая-то получилась).
[b .
Оч. хорошая игра. Только там есть хитрый алгоритм победы над амерами: из всего сброда там две амерских армии (очень крутых, очень). За их уничтожение комп обижается и сжигает ядреной бомбой два города Советского Блока. Но вот если их вовремя вынести, то потом всяких бельгийцев=франков-итальянцев выносить легко и просто. Т.к. американцев уже нет, то за их унижение в ближке комп не обижается, и все ядренбатоны не пуляет.
В результате на емнип 15 день в европе нет ни одной дивизии нато, а армии ВД стоят возле Парижа. Это на высшем уровне сложности, могу снапов выложить. :wink:
С правилами все согласны? Какие установить сроки?
Т.е. никакого компиллятора, проигрывателей музыки и расширений стандартного бейсика (ProDos, NEWSupercode, Laser basic)? :(
---------- Post added at 01:32 ---------- Previous post was at 01:32 ----------
Предыдущий пункт, все же накладывает сильные граничения на выбор жанра (Дыже быстро вывести картинку на экран, нельзя без кодовых процедур).
Я 10мес. назад "Хоббита" и "Холмса" тщательно прошел. И меня совсем не напрягало то, что картинка там рисуется секундами (машкодом).
Хотя может быть есть смысл разрешить LDIR экрана (или кусков) из буфера.
Т.к. чисто технически не запрещено делать это же командами рамдиска. (по третям вообще элементарно). Хотя мне это особо не нужно. ;)
Лучше тогда сделать несколько групп:
1. Игра на бесике. Без применения расширений и вызовов ассемберного кода.
2. То же самое, но использований коротких процедур ассемберного кода (NEW Supercode, распаковщики, плейеры и т.п.). С условием написания основы "движка" на бейсике.
3. То же самое, но с использованием расширений стандартного бейсика (Mega\Beta\Laser BASIC...).
4. То же самое, но с использованием компиллятора, с приложением исходников (Laser Basic Compiller, TOBOS, MCoder).
Для последних двух пунктов, считаю весьма спорным, возможность использования ассемберного кода.
Имеется в виду несколько конкурсов? Не уверен, что наберется столько игр.
ИМХО, такие игры будут весьма унылы - без нормальной графики, музыки...
Вот это уже разумно вполне. Если еще перед конкурсом (или сразу после его начала) опросить авторов на предмет машкодовых модулей, нужных им для создания красивых эффектов, и реализовать их силами жюри/сочуствующих, будет вообще здорово. Разумеется, модули общего назначения типа плееров, опросчиков клавы/мыши, скроллов и т.п.
На самом деле, это примерно то же, что и предыдущий пункт. Laser - это набор машкодовых подпрограмм, со слегки измененным синтаксисом их вызова. Beta- и Mega-Basic - да, дают заметное преимущество в плане простоты разработки и скорости выполнения, но сильно ограничивают объем программы. Не вижу сильного смысла отделять игры на них от игр с регалментированным набором машкодовых вызовов.
Предлагаю запретить компиляцию. Ибо некомпилированные игры не смогут составить конкуренцию компилированным из-за колоссальной разницы в скорости.
PS После конкурса можно же выпустить компилированный релиз?
Мне кажется музыку можно и потом добавить, если игра будет того достойна.
А без музыки проще работать жюри. Оценивать именно программистость.
Да и некоторым конкурсантом проще не чувствовать себя ущемлёнными будет. Тем у которых с музыкой напряжёнка. То есть более равные условия.
Музыки, говорят, навалом. На текущем игроконкурсе проблем с музыкой не было. А впечатление от игры с музыкой и без сильно разные. И потом, есть еще проблема с качественной графикой. Графику тоже предлагаете отменить из-за сложностей с ее доставанием? Кстати, с графикой на бэйсике все еще интереснее - найдется ли художник, который вместо scr-файла отдаст в игру кусок программы из PLOT, DRAW и CIRCLE?
Лучше оценивать замысел, кодинг, играбельность. Без музыкальных впечатлений.
---------- Post added at 15:52 ---------- Previous post was at 15:48 ----------
Если для всех будет один набор, то это справедливо. Только он не должен быть узко специализированным. И должен быть хорошо документирован.
1) Процедура опрос клавиатуры или джойстиков, одинаковая всем.
Использование например let inkey = USR addr
У меня в сканах журналов такая где-то была, но еще не проверял.
2) Звуки/музыка - не стоит. Будем BEEPать и PLAYить! :rolleyes_std:
3) Копирование экрана из памяти и обратно LDIRом. Аналогичный сервис дает Бейсик-128. Заставку мгновенно выводить.
Все вроде. Если больше - то это уже будет не ZX-BASIC.
---------- Post added at 14:14 ---------- Previous post was at 14:01 ----------
А, вспомнилось еще: в Бейсике ZX81 была команда SCROLL, сдвигющая экран вверх на знакоместо. На Спектруме её убрали, но вызов по USR 3582 остался. Его постоянно использовали в куче бейсик-игр 80х. :wink:
Так что может быть добавить еще скролл экрана по знакоместам?
Так можно продолжать долго. :)
Вывод спрайта.
Преобразование текстовой строки в список индексов найденных в словаре, для текстовых адвентюр.
Рисование 3D обьекта... :)
Ага. :wink:
Открыл сейчас Step-By-StepProgrammingZXSpectrumAndZXSpectrum (4 тома, на WOSе есть) - глаза разбежались.
Столько приятных процедурок с вызовом из Барсика через DEF FN(аргументв куча) = USR addr, что аж глаза разбегаются. :cool_std:
Но надо остановится. За минимум предлагаю принять опрос управления, т.к. через INKEY$ наискосок управлять нереально.
Бука, опрашивай порты
IF IN(65278) AND 1 THEN ...
В Basic'е AND логический, а не арифматический.
Мое мнение очень простое. Можно использовать любой скомпилированный в данный момент код. То есть, при разработке игры на BASIC'е запроещено разрабатывать любой код на ассемблере и/или использовать чужой код, зраелиженный после старта конкурса, за исключением специально заказанного участниками и разработанного кода (типа, сделаем быстреноко пакет NewSuperCode2014).
И чего ты этим добьешься? Чем это отличается от let i = IN addr?
По поводу машкода для опроса надо думать. Первая пришедшая идея - сделать DEF FN S(A$) = USR addr, возвращать из опросника факт нажатия/ненажатия, а в переменную с именем в первой буквы VAL$ A$ класть строку с полным списокм нажатых клавиш.
---------- Post added at 18:13 ---------- Previous post was at 18:08 ----------
А еще более кправильный вариант придумали разработчики Спектрум-BASIC'а, точнее BIOS. LET A$=INKEY$#<номер потока>. А поток открывается кодом при старте программы.
---------- Post added at 18:16 ---------- Previous post was at 18:13 ----------
Тихо сам с собою... Не подумал, что такое правило позволяет надрать любого кода из игр, систем и других уже придуманных программ. С другой стороны, хочется разрешить всякие SuperCode, распаковщики, скомпилированные музыки, в общем, любых сушествующих библиотек и кода, который генерят тулы (кроме компиляторов).
Нужен обзор того, чего есть на эту тему... Я кроме [New]SuperCode и распаковщиков не знаю что еще есть готового. Ну да, SpriteGrabber еще есть мой :) Неплохо бы еще определиться со списком нужного "заказного" кода специально для конкурса. Для этого предлагается конкурс начать, зарегистрировать участников, спросить что им надо, принять решение о домустимости надобного и пообещать разарботать "заказной" код за месяц-два, к примеру. Олсо остался нерешенным вопрос с использованием хитробэйсиков.
Использование расширений бейсика, думаю, не будет разрешено. Необходимые процедуры: музплеер, выводилка спрайтов, опрос клавы/джоя/мыши. Остольное можно сделать посредством zx басика, имхо.
Призовой фонд - 5 тыс деревянных (надеюсь будет больше) и фирменный +2. Так что конкурсу быть.
---------- Post added at 19:08 ---------- Previous post was at 18:57 ----------
Если предложений по необходимым процедурам не будет, нарою сам и положу сюда.
Следующий конкурс, игры на C ? :)
Будут ограничения по памяти? Это я к тому, что серьезная BASIC-программа может занять все доступные 40+К, и места под музыку и графику не останется. Вот тогда-то и будет полезен набор процедур, которые и сами находятся в страницах, и данные для них находятся в страницах. Опять же, на 128к можно сделать MERGE! (если мержуемый кусок поместится до RAMTOP).
Тут он
---------- Post added at 20:04 ---------- Previous post was at 20:02 ----------
То есть, можно загрузить бэйсиком кучу графики в метр Profi, переключать страницы OUT'ами и вызывать из них распаковщики картинок? ;)
---------- Post added at 20:11 ---------- Previous post was at 20:04 ----------
Вспомнился еще кошерный тул: В, кажется, 93-м сборнике ZX-Ревю был листинг проги ABS для создания адвентюр на BASIC'е. В нем есть машкодовая часть для перехода по локациям без тупняка. Предлагается к разрешению. Еще можно позволить машкодовые тулы для русификации (а-ля смена фонта "на лету") и для перехвата ошибок. Из всяких Инфоркомовских график тулы тоже есть неплохие, если сочтете перебором содание окошек/раочек, то хоть filler'ы позвольте, в Бэйсике вообще альтернатив нету.
Я с нетерпением жду поддержку хобетных файлов в эводос стандартного конфига Эволюшн. Грузить бейсик файлы с флешки, код/графику в любую часть 4м озу. Блин, это будет круто! Но это интересно только владельцам zxEvo. Так что ограничемся 128к.
Да, согласен. Это надо при наборе программы, а для пользовательского ввода не подойдет.
Как вариант: пригодится ли машкод, создающий дополнительные потоки и позволяющий печатать всякие хитрости? Типа букв двойной вышины/ширины, других каких эффектов при выводе, букв из разных знакогенераторов/наборов UDG в одном операторе, из знакогенераторов, расположенных в страницах (для увеличения свободной памяти под программу)?
---------- Post added at 20:30 ---------- Previous post was at 20:24 ----------
Еще вопросы по допущениям. Стоит ли разрешить использование всякие тюнеров кода (типа, генераторы DATA 0,0,..., где в 5-байтном представлении лежат реальные числа)? Как насчет всяких SOS-2006, SOS от буржуев с фиксами ошибок и дополнительными плюшками?
Пример печати хитростей, машкода 0.00%.
Но будет работать лишь в режиме 48к без подключенного ZX-Printer(ну это малоактуально).
З.Ы. У меня на реальном "Пентагоне128" работало даже в 128к, в эмуле виснет.
З.З.Ы. Почему форум не грузит SNA/Z80?