PC-01 Lviv

It is currently 28 Apr 2024, 18:58

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 115 posts ]  Go to page Previous 1 2 3 4 58 Next
Author Message
PostPosted: 01 Jun 2012, 13:01 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Я вот что подумал. "River Raid" можно написать для ПК-01, но не стоит при этом буквально повторять классическую версию. Ведь можно что-то упростить, а что-то, наоборот, добавить, это ведь игра, тут важен геймплей, а не точность копирования. В подтверждение своих слов приведу ссылку на видео, где демонстрируется версия "River Raid" для браузеров (youtube). На мой взгляд получилось здорово! :)

upd. Еще об этой версии.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 01 Jun 2012, 14:42 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
Действительно, тот River Raid куда больше смахивает на 1942. Не совсем то...


Top
   
PostPosted: 01 Jun 2012, 14:47 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
Я вот что подумал. "River Raid" можно написать для ПК-01, но не стоит при этом буквально повторять классическую версию.
Если не повторять класическую версию, то это будет уже не River Raid!
Quote:
Ведь можно что-то упростить, а что-то, наоборот, добавить, это ведь игра, тут важен геймплей, а не точность копирования.
В РиверРайде много что "отпалировано" так как надо, а если добавлять-убавлять то как я уже писал - это будет не РиверРаид
Quote:
В подтверждение своих слов приведу ссылку на видео, где демонстрируется версия "River Raid" для браузеров .... На мой взгляд получилось здорово! :)
Леталка вроде неплохая.. но это не River Raid! :-)


Top
   
PostPosted: 01 Jun 2012, 14:51 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Действительно, тот River Raid куда больше смахивает на 1942. Не совсем то...
Quote:
Если не повторять класическую версию, то это будет уже не River Raid!
Сектанты! :D

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 01 Jun 2012, 14:56 
Offline
Site Admin
User avatar

Joined: 24 Jul 2008, 12:05
Posts: 1070
liberation
Quote:
Сектанты! :D
Вроде бы и Супер-Марио, а я б играть не стал. Совсем другая игра. Хотите клон 1942 - пожалуйста, но не называйте его River Raid.


Top
   
PostPosted: 01 Jun 2012, 15:00 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Вроде бы и Супер-Марио, а я б играть не стал. Совсем другая игра. Хотите клон 1942 - пожалуйста, но не называйте его River Raid.
Еще и снобы! :lol:

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re:
PostPosted: 02 Jun 2012, 22:52 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Создатели игры на Атари могли б ее сделать АБСОЛЮТНО бесконечной и с АБСОЛЮТНО разными уровнями... но почему-то так не сделали - уровни то бесконечны но после какого-то они повторяются...
Я еще подумал про "River Raid". В принципе, как сделать "скролл" ясно, все по рецептам "Аэрокобры". :D Но программировать ужасно не хочется, особенно под ПК-01. Поэтому я думаю дальше, и вот что меня смущает. А как быть с противниками? Они тоже генерятся случайно? Там присутствует момент, когда танчик выезжает на берег и пуляет, но всегда при этом попадает в бак с топливом. В чем причина такого поведения? Неужели настолько хитроумный алгоритм генерации задействован? Я больше склоняюсь к версии, что если карты вроде бы как генерируются на ходу (или они генерятся только при первом запуске), то расстановка объектов все равно жестко задана. И пресловутых 8-ми с копейками килобайт для этого дела хватает с головой, учитывая малый объем графики и логики.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: Re:
PostPosted: 03 Jun 2012, 10:32 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
..А как быть с противниками? Они тоже генерятся случайно? Там присутствует момент, когда танчик выезжает на берег и пуляет, но всегда при этом попадает в бак с топливом. В чем причина такого поведения? Неужели настолько хитроумный алгоритм генерации задействован?
Хитроумного вообщем-то ничего нет, главное "отпалировать" отработать это все хорошенько...
Quote:
Я больше склоняюсь к версии, что если карты вроде бы как генерируются на ходу (или они генерятся только при первом запуске),
При каждом новом уровне задается стартовое ГСЧ=уровень, т.е своя последовательность для этого ВСЕГО «страхомудия» (т.е карта противники их выстрелы, задержки движения противников и т д.) ТОЛЬКО НА ЭТОТ УРОВЕНЬ.
Quote:
то расстановка объектов все равно жестко задана.
Да все оно задано ЖЕСТКО в зависимости от ГСЧ, каждая процедура которая отрабатывает карты, а другая противников будет зависить от ГСЧ.

Я очень много наблюдал и думал о риверрайде...
Вот представь себе, что генератор для этого всего единственный, а противники (объекты) это ТЕЖЕ "точки" в ландшафте (карте)... поэтому он и будет генерить ВСЁ, повторяю ВСЁ, абсолютно одинаково и противников и их выстрелы в бак и т.д. в зависимости от стратового числа генератора. ЭТО ВСЕ зависит только от генератора, а не от "твоих движений» и выстрелов самолетом. Я не могу понять почему ТЫ это не можешь понять…:-)

Вот пример алгоритма, который словами выглядет может и сложно но пишеться легко…
Существет генератор ГСЧ(а), которы при Стратовых числах задет определенную последовательность следующих чисел
При ГСЧ(1), где 1 – это номер уровня, послед: 33 43 23 56 58 98 97 67 65 42 23 48 90 76 45 34 22 32
При ГСЧ(1), где 2 - это номер уровня, послед: 98 07 18 20 31 72 94 68 24 87 35 62 93 84 71 09 27 83
Создание уровня идет пошагово (по линиям), на ходу, за пределами экрана, скажем вверху (экрана) и дальше уже при появлении на экран «входит в действие».

Установать номер уровня генератору ГСЧ=УРОВЕНЬ.
Задать x1=ГСЧ,x2= ГСЧ коодинаты моста
Задать x1=ГСЧ,x2= ГСЧ ширину «реки»
Сводить линии от моста к «ширину «реки»
Брать «коблебания» «реки» из ГСЧ х1,х2 (повторить это =ГСЧ раз)
....
если ГСЧ=0 = нет противника
если ГСЧ=1 Установить противника ,ГСЧ=1- то воздушный шар, задать его координаты x1=ГСЧ,x2= ГСЧ,задержку движения=ГСЧ и т.д.

(повторить это =ГСЧ раз+ уровень), (чем больше уровень тем больше объектов противников.)
Если счетчик "линий уровня" = 1000, тогда уровнень=уровень+1 задать ГСЧ(уровень)
Порвторить это все.

Вот мысленно прокрути это все… при ГСЧ(1), ГСЧ(2) и т.д. подставляя числа из последовательности…

В процедурах создания карты и противников ты можешь вытворять что хош для «созднания красоты»... доспустим «если неудачно заданы х1, и х2 запросить их еще раз у ГСЧ»… И чтобы ты не делал, если все зависит от ГСЧ, у тебя каждый ДРУГОЙ уровень будет уникальный, но КАЖДЫЙ ТОТ ЖЕ УРОВЕНЬ БУДЕТ ТАКИМ ЖЕ! ОДИНАКОВЫЙ И ЖЕСТКО зависим от стартового ГСЧ, и картой и протвиниками и их движениями, и выстрелами в координаты» ОДИНАКОВЫМИ И ЖЕСТКО ЗАВИСИМЫМИ ОТ СТАРТОВОГО ГСЧ.
Все «твои» «ЕСЛИ» будут корректировать Уровень так «как надо», но тоже получиться что – ЖЕСТКО зависимо от стартового ГСЧ и соотв-нно от дальнейшей последовательно ГСЧ.

Хух… Надеюсь ты меня понял… :D


Top
   
 Post subject: Re: Re:
PostPosted: 03 Jun 2012, 15:08 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
Хитроумного вообщем-то ничего нет, главное "отпалировать" отработать это все хорошенько...
Не с того края мы зашли! Надо было сразу исходники смотреть, тем более они доступны, но, конечно, все под ассемблер проца 6502. Итак, вот один исходник, выглядит толково, вот второй вариант, а вот и современная любительская версия для Win7. Осталось только проштудировать первоисточники. :D

Теперь из собственных размышлений. Мне не дает покой такой момент: часто река расходится на два рукава, причем первый нашпигован техникой и топливными баками, тогда как второй почти пуст не только противниками, но и баками. Можно выбирать: или прорываться с боем, или пролететь тихой сапой. Я склоняюсь, что это все-таки предопределенное поведение, забитое в описание уровня ручками. Кстати, неплохо бы составить список игровых ситуаций в игре. Сходу могу припомнить такое: 1) тонкий рукав реки, когда нужно предельно аккуратно управлять самолетом, 2) широкий рукав со множеством супостатов, 3) рукав разделяется на два, причем с разной степенью нашпигованости техникой... Что там еще было? 4) Мост, перед которым идет резкое сужение. Что еще?

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: Re:
PostPosted: 03 Jun 2012, 16:58 
Offline

Joined: 20 Apr 2012, 16:00
Posts: 372
Location: Конотоп
Quote:
...Осталось только проштудировать первоисточники. :D
сколько я не изучал всякие исходники... а писать все равно по своему пишу... :-) ну не получается у меня учится... проще самому через дебри прийдти к возможно такому же выводу... :-) (ну эт я отклонился)
Quote:
Теперь из собственных размышлений.
Вот это уже по-нашему!!!
Quote:
Мне не дает покой такой момент: часто река расходится на два рукава, причем первый нашпигован техникой и топливными баками, тогда как второй почти пуст не только противниками, но и баками. Можно выбирать: или прорываться с боем, или пролететь тихой сапой. Я склоняюсь, что это все-таки предопределенное поведение, забитое в описание уровня ручками.
Опять двадцатьпять.. :-) Ну я же писал что там все жестко закреплено за генератором, а процедуры создания карты и противника, регулируют это! Ну что стоит вбить в процедуру что по правому боку создавать больше противников чем по левому... а потом возможно менять в зависитости от уровня, например если ФлагУровень=с рукавами и его номер делится на 2 то - "вот так вот"... все это в процедурах регулирующих и написать это на асме если по-умному то не так уж и сложно... больше кропотливо чем сложно. А фирме из нескольких человек одинаково хорошо мыслящих это вообще тьфу! Тем боллее изо дня-в-день этим занимающимся.
Quote:
1) тонкий рукав реки, когда нужно предельно аккуратно управлять самолетом,
генератор следит за тем что-бы "отверстие" растояние между линиями было не меньше чем надо...
Quote:
4) Мост, перед которым идет резкое сужение. Что еще?
допустим река Линия1=134; линия2=254;

Программно это приблизительно так:
...
если "линия уровня"=1000(шаг уровня) (т.к.когда нужен конец уровня), тогда "Стоп" генерацию линий генератором СЧ;
ОПРЕДЕЛИТЬ коодинаты моста=ГСЧ(уровень+1), которые стали равны Левыйкраймоста=78; Левыйкраймоста= 145.
Запустить генератор сведения Линия1 и линия2 к левый и правый края мостов.
повторять поточечное сведение пока не совпадут
Когда они совпадут: При точном совпадении СОЗДАТЬ мост.
Генерировать следующий уровень согласно ГСЧ(уровень+1);
...

Кстати ты мое письмо по этой теме на е-майл получил?.. смотрел?..


Top
   
 Post subject: Re:
PostPosted: 04 Jun 2012, 01:46 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Quote:
Хотя уровни как я понял строятся генератором уровней, а не хранятся в памяти....
Хранятся в памяти. В оригинальной игре уровни абсолютно идентичные при каждом запуске/перезапуске. Проверено электроникой.
в этом показательна Элита, в ней все 9 вселенных со всеми звёздами, планетами, расами и т.п. генерировались (для звезды хранилось seed значение из которого строилось всё остальное).
по поводу спрайтов - а почему нельзя их все генерировать для всех случаев жизни? если взять игрушку Космос, то там хранятся по одному спрайту каждого монстра и таблицы удаления строк/столбцов - монстры всех размеров получаются автоматически. ещё интересен шрифт в попрыгунчике, сначала обычный растягивают масштабированием в Х раз, а потом накладывают апертурную фильтрацию (уголки всякие подрезают) - получается точёно и красиво.

P.S. в Космосе ещё что-то должно генерироваться (уж больно долго он тормозит перед запуском).
Image

P.P.S. никто не скажет, что это стандартный знакогенератор, а ведь это так:
Image


Top
   
PostPosted: 04 Jun 2012, 03:50 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
неужели совсем ничего нельзя "отжать" ?
Attachment:
File comment: скроллер
scroll.zip [29.69 KiB]
Downloaded 494 times
генерировать ведь можно много "странного"

P.S.
http://asm8080.cvs.sourceforge.net/
http://nemesis.lonestar.org/computers/t ... codes.html
http://www.pastraiser.com/cpu/i8080/i8080_opcodes.html

P.P.S.
ещё подумалось, черезстрочную развёртку можно использовать (рисовать в спрайтах и на экране каждую 2ю или 3ю строку, или вообще использовать точки 2х2 или 4х4 в шахматном порядке (с дополнительным пропуском строк или без оных))


Top
   
PostPosted: 04 Jun 2012, 10:29 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
генерировать ведь можно много "странного"
Хорошая реализация скролла, но все равно скорости не хватает, даже в режиме ПК-02. Хотя уменьшение игрового экрана может чем-то помочь, но не в нашем случае. Кстати, выложу тут код, вдруг кому-то в лом будет качать.
Code:
BEGIN	EQU	8000h
	ORG	BEGIN-016h

	DB	"LVOV/2.0/"
	DB	0D0h
	DB	"XXXXXX"
	DW	BEGIN
	DW	BEGIN+END-START
	DW	BEGIN

START:	PUSH	H
	PUSH	D
	PUSH	B
	PUSH	PSW
	MVI	A, 0
	OUT	0C2h

AGAIN:	LXI	H, 4040h
	SPHL
	LXI	H, 4000h

CYCLE:
	POP	D	; 00
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 01
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 02
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 03
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 04
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 05
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 06
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 07
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 08
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 09
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 0A
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 0B
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 0C
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 0D
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 0E
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 0F
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 10
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 11
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 12
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 13
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 14
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 15
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 16
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 17
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 18
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 19
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 1A
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 1B
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 1C
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 1D
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 1E
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H
	POP	D	; 1F
	MOV	M, E
	INX	H
	MOV	M, D
	INX	H

	MOV	A, H
	ORA	A
	JP	CYCLE
;	CPI	7Eh
;	JNZ	CYCLE


	JMP	AGAIN

	MVI	A, 2
	OUT	0C2h
	POP	PSW
	POP	B
	POP	D
	POP	H
	RET

END:
	END
А что касается чересстрочной прорисовки, то это идея, но на "Львове" я такого припомнить не могу. Да и выглядеть это будет диковато, особенно на телеке. Это хорошее решение для векторной графики, если кто-то надумает Elite для "Львова" запилить. :wink: Я видел подобное решение на Спектруме, там такой прием позволил сделать заливку объектов. Нам заливка не грозит, а вот "проволочную" графику считать можно будет.

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
 Post subject: Re: Re:
PostPosted: 04 Jun 2012, 10:32 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Quote:
если взять игрушку Космос, то там хранятся по одному спрайту каждого монстра и таблицы удаления строк/столбцов - монстры всех размеров получаются автоматически. ещё интересен шрифт в попрыгунчике, сначала обычный растягивают масштабированием в Х раз, а потом накладывают апертурную фильтрацию (уголки всякие подрезают) - получается точёно и красиво.
А можно Вас попросить создать отдельную тему, где Вы попробовали бы рассказать об интересностях, которые встречали на "Львове"? К примеру, ни о Космосе, ни о Попрыгунчике я ничего подобного и вообразить не мог. :D

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 04 Jun 2012, 13:55 
Offline

Joined: 07 Dec 2010, 16:54
Posts: 227
Quote:
Хорошая реализация скролла, но все равно скорости не хватает, даже в режиме ПК-02.
там построчно, в игре надо скроллить сразу от 8 строк (и выше).
AGAIN: LXI H, 4040h

попробуй заменить на
AGAIN: LXI H, 4200h
Quote:
Хотя уменьшение игрового экрана может чем-то помочь, но не в нашем случае.
...skip...
А что касается чересстрочной прорисовки, то это идея, но на "Львове" я такого припомнить не могу. Да и выглядеть это будет диковато, особенно на телеке.
я никак не могу сейчас вспомнить демку, которую видел в начале 90-х на РС (то ли это был С64 в эмуляторе, то ли "tribute" этой машине) - смотрится очень красиво - "я гарантирую это" (c) лурк.
Тогда, кстати, фейковый труколор ещё так делали - сразу по несколько пикселов на цвет (ну, это помимо динамических методов игры с развёрткой и портами).

В общем, "дизеринг" бы точно помог, "суперпикселами" Х на Х да ещё и рандомной шахматкой... попробую тогда что-нибудь "набросать" в этом направлении ( хотя я и так уже много чего наобещал :-( ).
Quote:
Это хорошее решение для векторной графики, если кто-то надумает Elite для "Львова"
угу, в принципе даже на брезенхама укладывается (отрисовка векторов без умножений/делений)


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 115 posts ]  Go to page Previous 1 2 3 4 58 Next

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Limited