Обращаюсь к тем, кто видел игру.
Чтобы вы хотели улучшить/исправить в том, что уже есть?
Вид для печати
Обращаюсь к тем, кто видел игру.
Чтобы вы хотели улучшить/исправить в том, что уже есть?
Ну самое главное - когда тыкаешь куда идти и попадаешь в непроходимый участок - герой не идет. Т.е. не двигается с места вообще. Пусть бы чапал себе до кудова может.
В остальном... Ну может чтоб быстрее бегал герой... Но это может посценарию не положено, может он еще ускоряться будет ? Т.е. это не критично.
А вот насчет пути - это надо.
axor, а цвет не хотите использовать или хотя бы яркость, например в прорисовке непроходимых мест?
Дык... Это ж переделка нужна... Не очень простая, между прочим.
Для яркости не надо особо переделывать, достаточно потом просто поверх накладывать
дело хозяйское
поскольку сами не догадались, просьба приаттачить эту демку.
Он идет. Просто почему-то иногда стопорит. Процедуру поиска пути писал не я сам. Я ее заказал. Видимо что-то с ней не так:( Это я уже замечал.Цитата:
Сообщение от Знахарь
Чтобы быстрее бегал можно. Но тогда будет не красиво, т.к. ноги мелькать будут как у машины колеса:)Цитата:
Сообщение от Знахарь
А зачем? Ведь деревья, стены и все остальное и так видно. И как заметил Знахарь, там переделывать дофига. В игрушке 512 спрайтов 2*2 без цвета, которые занимают 2 страницы ровно. Цвет займет еще много места и скорость "съест", которая и так не высока.Цитата:
Сообщение от diver
В игрухе еще будет анимация. Все будет красиво:) Во всяком случае я надеюсь.
Смотрите.Цитата:
Сообщение от random
Ноги мельтешить ? Так... Ну а если скорость анимации не менять, а увеличить смещениес предыдущей позиции на следующую ?
А путь и заедания - давай! Это единственный, хоть сколько нибудь стоящий рассмотрения баг. Всё остальное неважно.
Слишком большие рывки получаются. Сейчас и так перемещение идет на 2 пикселя при смене фазы. Хотя если честно, то на 3 и более я не пробовал:)Цитата:
Сообщение от Знахарь
Я думаю, что исправим.Цитата:
Сообщение от Знахарь
а что у тебя больше всего скорость ест?Цитата:
Сообщение от axor
если спрайты то ускорить можно, у тебя там есть куда ускорять :)
посмтрел дему... не понял, где тут дема. ходит бабулька по карте. все. чего это вообще такое будет хоть? может хоть какая-нить вразумительно-играбельная дема будет? и трассировка пути - полный писец :(
э-э-э, акын, это уже половина кода.Цитата:
Сообщение от Shadow Maker
можешь сделать круче? - тебе будут только рады.Цитата:
Сообщение от Shadow Maker
Лукер, ты сосбна чего выеживаешься? Сказал свое мнение - а ты на меня бочку катишь... Я не могу сделать лучше, потому что я не кодер. Но глючные трассировщики - уж лучше никак чем так. Учитывая что исходники ЧВ-1 открытые - можно было и оттуда цапнуть процедуру-то... При желании достаточном конечно. Это ты чтоли ее писал, эту трассировку? И хождение по карте... если ЭТО - половина кода... Ээээ... Я офигеваю. По мне так хождение по карте делается просто, а самые заморочки как раз с предметами, сюжетом и скриптами.
Shadow Maker, имхо: не можешь помочь - лучше молчи. 'лучше никак, чем так' - это то, к чему идёт ZX-сцена, и обязательно дойдёт. Чем больше таких высказываний, как твоё - тем раньше это случится.
Понятно, что пределу совершенства нет. Прошу сюда процу печати 2*2 знакоместа побыстрее моей. Без запрета прерываний.Цитата:
Сообщение от jerri
А можно твою увидеть здесь, в виде текста с нормальными метками?Цитата:
Сообщение от axor
Чего моему высказывание? 'лучше никак, чем так' - это ты придумал, я такого не говорил! Ребята, вы вообще с головой дружите, нет? По русски рассказал, что именно мне не нравится, что нужно доработать, что я не понимаю в чем состоит игра, по этой "деме"! ксор сам же просил чтобы сказали! Че за предъявы я не понимаю?Цитата:
Сообщение от Shiru
Это я сказал?Цитата:
Сообщение от Shadow Maker
Кто тут с головой не дружит?
Я сказал. Про трассировщик. Уж лучше вообще без трассировки, да, чем когда герой утыркивается у каждого столба. А ты принял на счет всей игры что ли? Если да, то зря.
Мужики. Чем спорить напишите мне процедуру поиска пути. Умную:)Цитата:
Сообщение от Shadow Maker
Говорить про открытость исходников "ЧВ" не стоит. Они не открыты, а выкинуты в сеть. Разобраться в них сможет только программист (Алко, например). Я же не программист, а по профессии и вовсе учитель физкультуры. Программировать учился самомстоятельно. У меня нет азов, которые дают в вузах и прграммировать для меня сложно, но интересно, почему и занимаюсь этим.
И вообще больше по существу! Что хотелось бы добавить в игру, сделать, например, на что-то похожим и т.д. и т.п. Нужны рац. предложения, а не упреки мол хреново ходит. То, что плохо ходит, это исправим:)
Axor, ну хочешь, я напишу тебе поиск пути. Давай в мыло тогда, опиши требования к нему - вход-выход, сколько памяти под буфера есть...
Заодно процедуру печати свою покажи, может чего посоветую.
Я ведь года два назад баловался, ещё до Gogin'ского марио сделал свой вариант вывода фона (один битплан, правда) с фреймовым скроллом. Так что может и твою процедуру смогу оптимизнуть хоть чуть-чуть.
по Медноноговски завтра кину листингЦитата:
Сообщение от axor
у тебя как спрайты хранятся по тайлам или 2*16?
axor, ты расскажи хоть в чем суть игры? Раза два уже спросил... А то карта, причем какая-то странная, пропорции в смысле уж больно непонятные... Ну ходит бабуля. Чего это будет хоть? А я бы с удовольствием чего-нить напредлагал, дык ничего ж нету и неясно че будет.
Не знаю как кто, а я протащился от графики - Сафрин бог :) - (упавшие заборы и вывеска "ясная поляна" - просто супер). Впринципе, можно как в ЧВ менять для разных карт цвет фона и всё будет рулить и без цвета на каждое знакоместо.
1) Ходит действительно весьма неторопливо, хотя, если частоту возникновения событий увеличить, то это деже плюс - можно на карту меньших размеров больше игры вместить. И если по мере прокачки Вера станет бегать быстрее, то это тоже будет плюсом - разнообразие.
2) С трассировкой пути - это чисто технический вопрос и вполне решаемый. Хотя мне не понятны отмазки типа, я сам учился программировать, а по специальности вообще учитель физкультуры. Я тоже учился программировать сам, и это не важно где, в университете, или дома. Было бы желание можно и в исходах ЧВ разобраться. Но если Shiru поможет с этим, я думаю все будет только хорошо.
3) Не сосвем хорошо сделан скроллер: когда вера пытается уйти за пределы экрана - карта за ней неприятно дёргается, лучше всего, чтобы карта скролировалась за ней визуально плавно.
Кстати, может быть я не совсем хорошо смотрел, но не совсем понятно, это что квест, РПГ или может быть hack'n'slash вроде Diablo? Хорошо бы, если бы квест с элементами РПГ или наоборот РПГ с элементами квестов :)
Вот как обещал
Код:
;быстрая процедура рисования тайлов 2*16
;через стек с включенными прерываниями
;структура буфера - как экран - для примера
;ограничения: рисование только по четной Y координате
;ALASM
;модифицирование перехвата прерывания
interrupt
di
ex de,hl ;get sprite_data
ex (sp),hl ;restore damaged sprite/get return adres
ld (int_0),hl ;store return adr
pop hl ;restore hl
ld (int_1),sp ;store stek_pointer
ex de,hl
ld sp,interrupt_stek_adress
call interrupt_control
ld sp,$
int_1 equ $-2
ei
jp $
int_0 equ $-2
;собственно рисование через стек
tile_draw
;hl-tile adress
;bc-buf_adress
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld (tile_0),sp
ld sp,hl
ld h,b,l,c
ld (hl),e
inc l
ld (hl),d
inc h
pop de
ld (hl),d
dec l
ld (hl),e
inc h
dup 2
pop de
ld (hl),e
inc l
ld (hl),d
inc h
pop de
ld (hl),d
dec l
ld (hl),e
inc h
edup
pop de
ld (hl),e
inc l
ld (hl),d
inc h
pop de
ld (hl),d
dec l
ld (hl),e
;переход из знакоместа в знакоместо
ld bc,-#700+#20
add hl,bc
dup 3
pop de
ld (hl),e
inc l
ld (hl),d
inc h
pop de
ld (hl),d
dec l
ld (hl),e
inc h
edup
pop de
ld (hl),e
inc l
ld (hl),d
inc h
pop de
ld (hl),d
dec l
ld (hl),e
ld sp,0
tile_0 equ $-2
;-----------------------
Я тоже раза три спросил про это... Все проигнорировали в дуст...Цитата:
Кстати, может быть я не совсем хорошо смотрел, но не совсем понятно, это что квест, РПГ или может быть hack'n'slash вроде Diablo? Хорошо бы, если бы квест с элементами РПГ или наоборот РПГ с элементами квестов
Вот мой вариант.Цитата:
Сообщение от jerri
Код:Начало работы в прерываниях.
;IM_2 Программа на вторых прерываниях
ORG IM2 ;#6060
EX (SP),HL
LD (adr_ret+1),HL
POP HL
LD (IM2_SP+1),SP
PUSH BC ;процедуры печати спрайтов
;должны оперировать с регистром BC (POP BC)
LD SP,IM2 ;может быть любым, только с умом!
PUSH IX,IY,HL,DE,BC,AF
EX AF,AF'
EXX
PUSH HL,DE,BC,AF
...
;Основная идея (формат) Д.Быстрова (Alone Coder)
;Реализация А. Шушкова (Xor)
;Печать идет через стек, но без запрета прерываний
;Печать спрайта 2*2 знакоместа на теневом экране
;DE-координаты в системе 2*2 знакоместа (D-Y, E-X)
;HL-номер спрайта (0-511)
BLOCK22 LD A,PG_SPR
CALL PAGE
LD (BL22SP+1),SP
LD BC,SPR ;Высчитываем адрес спрайта
ADD HL,HL ;HL=HL*32
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,BC
LD C,(HL) ;Делаем именно так, чтобы прерывание
;не испортило спрайт
INC HL ;поэтому в BC у нас
;уже есть первые 2 байта спрайта
LD B,(HL)
INC HL
LD SP,HL ;Теперь стек указывает на начало спрайта
SLA D ;Высчитываем адрес в теневом экране
;для печати спрайта
SLA E
LD HL,SHADSCR
ADD HL,DE
LD DE,#FF20
;Непосредственно сам вывод спрайта
LD (HL),C
INC L
LD (HL),B
INC H
POP BC
LD (HL),B
DEC L
LD (HL),C
ADD HL,DE
DUP 6
POP BC
LD (HL),C
INC L
LD (HL),B
INC H
POP BC
LD (HL),B
DEC L
LD (HL),C
ADD HL,DE
EDUP
POP BC
LD (HL),C
INC L
LD (HL),B
INC H
POP BC
LD (HL),B
DEC L
LD (HL),C
BL22SP LD SP,0
RET
Цель:Цитата:
Сообщение от Shadow Maker
-----
Победить злого колдуна Румбурака
Суть игры:
----------
Игра будет чем-то напоминать знаменитый сериал Dizzy. Т.е. герой будет ходить по игровому пространству, разговаривать с другими персонажами, собирать предметы, кому-то их отдавать, за это что-то получать и т.д. По ходу дела разгадывать загадки. Мир будет не совсем линейным, т.к. для героя здесь открыто все пространство, не как в Диззи, чтобы куда-то попасть нужно пройти десятки экранов. Хотя сама развязка сюжета практически линейна (т.е. все задачи нужно выполнять последовательно - одну за другой). С этим кстати (с продумыванием задач) были некоторые проблемы, в Диззи это проще.
В чем здесь схожесть с Dizzy? В том, что герой ходит, остальные персонажи статичны. Ругать не нужно. Это было задумано изначально. Было бы конечно здорово, если бы сделать всех персонажей подвижными. Но вы понимаете какая бы это была игра? Я пока сам не понимаю, поэтому потренируемся на кошках:)
Я не буду приводить полностью содержание сценария, т.к. потом будет не интересно играть в игру, когда она будет доделана. А я надеюсь, что вы захотите в нее поиграть. Сценарий до сих пор немного корректируется. Уже было три редакции и это опять же связано с впихиванием линейного сюжета в нелинейный (открытый) мир.
Действующие лица:
1. Колдунья Вера (она же главный герой)
2. Серый волк
3. Аленушка
4. Козленок (затем он же Братец Иванушка)
5. Старейшина Вео
6. Баффи
7. Кузнец
8. Библиотекарь
9. Скелеты
10. Летучие мыши
11. Бармен (из пивнушки «У Гарри»)
12. Румбурак
13. Провидец Лео
Кусок из начала сценария:
-------------------------
В одно прекрасное утро в домик колдуньи Веры кто-то постучался. Она слезла с печи, надела халат и открыла дверь. На пороге лежал конверт. Вскрыв его, Вера прочла:
«Помоги нам. Наша деревня гибнет под гнетом Румбурака»...
трезво, практически идентичноЦитата:
Сообщение от axor
только BC вместо DE :)
следующий момент
а как работает вывод спрайтов персонажей?
есть способ вывода через таблицу скролла
размер таблицы #e00
со стеком выглядит примерно так
но вообще меняется под любую ширину без проблемКод:
;это ветка для спрайта шириной 1 байт со скролом
;hl - адрес в буфере
;sp - спрайт
exx
ld h,'scroll
exx
ld a,(hl)
exx
pop de
ld l,e
or (hl)
ld l,d
xor (hl)
exx
ld (hl),a
inc l
; вот сюда встраиваются дополнительные элементы под любую ширину
ld a,(hl)
exx
inc h
ld l,e
or (hl)
ld l,d
xor (hl)
dec h
exx
ld (hl),a
dec l
; ветка без скрола
ld a,(hl)
pop de
or e
xor d
ld (hl),a
Тааак! В конце концов занялись, чем следует!
Значит добавлю и я:
Чтоб еще ускорить то, что есть - надо не так и много в итоге. Я тоже долго искал, считал и вот что вышло:
Можно брать любую процедуру печати 1 2х2 знакоместа и мучать, но особый прирост (до 35%) дает более хитрый подход :) Надо
1. Сделать 2-4 процедуры печати с вбитой в них графикой. Выкупать самые используемые тайлики и печатать их этими самыми процедурами. Напр земля, стена, и еще 2 чего-нить.
2. Сделать процедуру печати 2х одинаковых тайлов подряд и при выводе, соответственно проверять последующий тайл после текущего и если = то...
Тут выигрыш тоже хорош.
В сумме прирост до 40%
Вот чем закончились мои изыскания печати игрового поля, Axor. Ты тогда написал забить - я забил :) только не буквально :)
Про атрибуты:
А если добавить атрибуты, то выходит еще -40% от скорости вывода графики. :(
У меня 512 спрайтов 2*2 так что наверно способ с включением в процедуру печати графики не пойдет.Цитата:
Сообщение от Знахарь
Нет. Все 512 не надо вбивать. Только 2-4 самых частых
Только тогда скорость вывода плавает. Но из-за того, что везде на карте есть скажем земля / стены и мнооого повторов по 2 то до минимальной скорость не опустится.
По поводу атрибутов: Не нужно заморачиваться и выводить их вместе с растром. Можно вообще хранить их в отдельной странице от растра (2 кб в отдельной страничке на все спрайты - не плохой вариант) и, либо перед перерисовкой карты, либо после её всё перекрашивать соответственно новому положению карты в эти атрибуты.
2Axor:
Хорошо, если удастся в первой части сделать достаточно гибкий движок, можно ли расчитывать на нечто большее нежели диззи с движком ЧВ? Конечно статичные персонажи в любой игре присутствуют и по сути ничем не отличаются от рубильников, но даже в таком квесте хотелось бы экшэна. Вон в Mist есть и движущиеся и статичные персонажи. Можно сделать и здесь.
Обработку движения можно сделать эвристически: то есть в определённом радиусе (да прямо в том радиусе, в котором можно скролировать карту + чуть побольше, чтобы не возникало ощущение оживания персонажей), они общитываются точно, а за пределами - нет и их положение общитывается гораздо реже как функция от времени.
Например, скорее всего персонажей, которые будут подобно главному герою перемещаться по всей карте не будет, а будут некоторые персонажи, обитающие в определённом ариале и их нахождение в определённом месте можно вообще случайным образом расставлять при приближении к этому ариалу главного героя.
Так, расчитывать-то можно мне кажется на все что угодно, прикрутить автоходилку туды-сюды мне кажется не особо трудная задача, но сейчас пока пусть хоть что задумали сделают.
В общем axor я у тебя игру закажу, как сделаете.
Можно-то можно. Только кто теперь все раскрасит?:) Спрайты рисовались без атрибутов и красить их теперь - значит перерисовать все. Да и тем более главный герой все равно будет на цветах конфликтовать.Цитата:
Сообщение от Corpsegrinder
Именно в этой игре все будет примерно так, как я рассказал чуть выше. Есть другая идея (и сценарий) сделалать на этом (ну почти на этом) движке прикольную игруху, с юмором и прочее. Дело за малым. Время с моей стороны и графика со стороны художника.Цитата:
Сообщение от Corpsegrinder
Я думаю, что я возьмусь за новую игруху. Но... после этой.
К сведению. Кирилл Каган заканчивает в этом году университет. И я думаю, что вскоре от него заполучить новую графику будет крайне сложно:(
Сделать-то можно много чего. Но я пока не буду. Для меня и эта игра является новинкой в плане программирования. Нужны эксперименты, идеи, навыки. Правда, как я выяснил, когда все продумано до мелочей, программируется очень легко. Не хватает только времени.Цитата:
Сообщение от Corpsegrinder
Спектрумисты! Давайте мне зарплату и я уйду с работы и буду трудиться только для Спектрума:)
Мдя... Посмотрел.
Графичка на высоте (хотя или цветную или хотя бы попонятней не помешало бы)
Но вот скорость.... Коматоз.
И поиск пути. Лучше б его не было.
Вот.