TANK-1990
Версия 1.04
Добавлена TR-DOS версия от creator
Вид для печати
TANK-1990
Версия 1.04
Добавлена TR-DOS версия от creator
Делитесь исходниками)
Вот, правда я программист так себе, любитель)
Вложение 65461
http://zx-pk.ru/threads/26092-eshchj...ity-na-zx.html - как говорится, почувствуйте разницу :)
Лишь бы Epsilon не забыл, и всё-таки допилил свой tank 1990 , всё же поделка кружка юных пионеров это хорошо, но полноценный нормальный играбельный порт лучше ))
народ просит версию с "нормальным" управлением ;) :
https://www.worldofspectrum.org/foru...Comment_941962
А мне понравилась реализация. Если добавить AY, подправить графику и добавить спец.эфекты будет не хуже версии от Epsilon.
Я в шоке, пытался найти видео тех крутых танков, а нарвался на прохождение этой версии))) https://www.youtube.com/watch?v=DPd9x0cWn2w
Я его как бы.. сделал, но при одновременном управлении клавиатурой и кэмпстоном(при отсутствии второго) танк бесится. А выбор или то, или другое - не сделал. Возможно позже, так как с памятью проблема - кончается зараза. Придётся уровни в дополнительный банк перемещать и много чего переделывать.
Потому выложил без кэмпстона..
Немного допилил
(новая версия в шапке)
Добавлено управление кемпстон-джойстиком(тестировал бегло)
Добавлены уровни сложности
Добавлены звёздочки - теперь есть градации мощности танка
Добавил "бритьё" кустов :)
Dwa83, Заметил, что не хватает звукового эффекта когда твой танк убивают. И вообще, пауз в игре не хватает. Вот убивают наш штаб, нужно секундочку подождать, поиграть грустную музыку, и только потом очищать экран.
Игра выглядит и звучит как для 48К, так что немного жаль что она для 128К. Может есть какой-то шанс, упаковать звук, уровни, код и графику, чтобы всё влезло в 48К? :)
Уровни упакованы, звук почти не занимает места. Тут дело в том, что используются банки памяти 5 и 7 в роли теневого экрана, так что 48 не получится. Звуки и задержку сделать не проблема(хотя на AY ещё не делал)
- - - Добавлено - - -
звучит да, но не выглядит. До этого ведь 48 была) и она в итоге стала такой медленной(ввиду масок, восстановлений фонов, и теневого экрана, выводимого LDIR и т.д.), так что мне не жаль, что она 128 ))
:v2_dizzy_biggrin2::v2_dizzy_coder:
Добро пожаловать в лигу "писателей танчиков"! :)
На самом деле получилось очень культурно, у игры есть свой собственный шарм. Звук вылетающего снаряда напоминает выстрел "дезинтегратора" в моём любимом Quazatron'е. Так держать!
Выложил на виву, мало ли, кто-то захочет онлайн погамить :)
https://viva-games.ru/game/tank-1990-128k
P.S. Есть претензии только к музыке перед левелами, можно было бы немного убавить басы.
Друг то же про звук из квазатрона упомянул, когда услышал) раньше часто в него рубили)Цитата:
Звук вылетающего снаряда напоминает выстрел "дезинтегратора" в моём любимом Quazatron'е.
А так, я возможно под ay переделаю. Вообще я её ещё допиливаю до кондиции. Так что это не финальная версия пока что)
Epsilon, оффтоп-вопрос: как обстоят дела с написанием игры?
Epsilon, ясно. Желаю, скорейшего появления свободного времени на завершения задуманного! ;)
Epsilon, К тебе у меня вопрос по организации данных в памяти в игре батл сити. Где и в каких страницах и в страницах ли хранятся спрайты и уровни?
У меня пока так, обычный экран и страница-7 меняются как свапскрины. Вторая половина этих обеих страниц копии этих экранов без спрайтов(одинаковые), чтоб с них восстанавливать фон при любом подключенном экране быстро. Зачем я так сделал - ну просто сделал, теперь хочу оптимизировать код, чтоб влезла копия экрана с изображенеием уровня для восстановления в одном экземпляре в память до #C000(код программы с #8000 до #BFFF, а вторуючасть банок 5 и 7(больше чем половину) в обоих страницах занять полезным. Все уровни находятся в нулевой странице, теперь я её включаю только при распаковке и перекидке уровня в рабочую область. Раньше был один спрайт танка проскролленый по горизонтали для боковых движений(на лету медленнее будет, лучше сразу скрольнуть). Но потом подумал, зачем с ленты всё это записывать, можно ведь программно сделать. Итого, для каждого вида танка загружаю только спрайт, смотрящий вверх и влево(и маски). Вверх - просто отображаю вниз, а тот что влево - переворачиваю вправо и оба варианта с масками скроллирую на 1 пиксель 8 раз. Итак один спрайт с маской занимает теперь в развёрнутом виде в программе 2496 байт (!!)(а на ленте 160). Считаем - 1 наш танк + 3 вражеских разного вида - 9984 байт! Это вообще норм? + код программы должен поместиться в одну страницу. Или скролл делать на лету как раньше??? Но для этой игры важна скорость и динамичность.. Я теперь хочу удавить код, чтоб с ним в рабочей банке поместились 4 рабочих спрайта танков, распакованный уровень 624 байта(можно 312, если каждое значение в полубайт, но это уже сложности начинаются)(кстати его тоже можно убрать из этой страницы). Вобщем я разрываюсь, никогда ничего в такие жёсткие рамки загнанное не делал..
- - - Добавлено - - -
Понял, что не получится..
- - - Добавлено - - -
Похоже всё-таки сделаю 4 грейда нашего танка и один вид вражеского - в одну банку влезает, а музыка так и останется квазатронская с басами(ну можно ноту второго голоса(кто-нибудь слышит, что их два?) при басах сдвинуть немного по частоте или вообще другой подход слизать)
Организация почти такая же. Два экрана меняются для даблбуферинга, есть ещё копия без танков, только статика - оно используется для стирания танков и пуль. Сами уровни занимают 6.4к, хранятся в какой-то странице, это не суть важно, можно ещё поджать, если нужна будет память позарез. Для скорости и FPS 50 все танки хранятся в памяти (в страницах памяти), сдвинутые, с разными фазами гусениц. Они занимают 18 Кб. Масок в игре нет, потому как танки ездят в основном по чёрному полю, толку от масок мало. Вся графика выводится по OR с фоном. Я пытался делать разными способами, но отобразить сразу 6 танков, каждый с летящей пулей, 4 взрыва и два защитных поля вокруг танков игроков с FPS 50 удалось только так. Идеи уменьшать код не было, оно влезает в 128К и ещё остаётся где-то килобайт 5 на разные фишки. Основной код находится в единственной быстрой статической странице RAM 2 (т.е. 0x8000-0xbfff), а также частично в RAM 1 и RAM 3.
Версию для загрузки с кассеты делать не планировал, а с диска загружается достаточно быстро в уже сдвинутом виде. Нет смысла что-то генерировать на лету в ущерб качеству графики.
Мне пришлось, так как есть лёд, каноничность едрить. По ор, тоже не хотелось, хотя.. в 2 раза меньше памяти на танкоспрайты.. надо посмотреть как будет смотреться. Но вроде я изначально без масок пробовал и не понравилось танк + патрон(хотя тут можно проигнорировать, но нет), танк + лёд, танк + кусты, патрон + это же. Вроде.. было плохо. Такие штуки всегда были на виду и в первую очередь добавляли минуса, по сравнению с играми, где такого не было.
Решил попробовать вывести против себя все 20 танков сразу, экран обновлялся раз в три секунды))) Я не дождался, пока они штаб убьют. 4 танка, как у тебя ещё терпимо, но 6 и больше - как первая версия без даблбуфера.
Я решил защитное поле не делать спрайтом, потому как лень 768 на один эффект - жирно.
Мы с другом плакали тогда над нерабочим, чудесным образом попавшим к нам в руки дисководу на пятидюймовках. И проклинали изобретателя кассет, когда был безжалостно зажёван тобос, когда мы только-только начали понимать его круть)
И меня завораживали фишки в загрузчиках с кассеты)) Потому с дискетами на яче я не знаком)
Вобщем я свой предел понял, конечный вариант увидел, буду стремиться к нему, скоро доделаю) Основная цель такова, помнится кто-то говорил, помоему в теме с твоими танками, что взятие поверапов должно визуально отображаться, или что-то типа того, а это я уже сделал)
И ещё все ждут твою новоделку танков 1990(с кораблями и обязательно бритьём кустов). Тебе возможно и не понадобится( так как у тебя вроде сжатие уровней больше) но кину сюда свою поделку. После уровня пятого в танках на нес, у меня зарябило в глазах от переписи уровней цифрами, и мне стало интересно запилить программулину под мой способ сжатия. Формат такой. каждое число - 3 младших бита тип блока. Старшие, сдвинутые до нуля - количество повторений. Ноль - конец. Может кому и пригодится, так как я исходник тоже выложу.
Эх позже редактор уровней выложу, почему-то не релизится)
Хорошо, что ты делаешь свою собственную версию, не дерёшь фишки с уже существующих игр - это респект! Отлично, если будет версия с масками, с 48к звуком, с быстрой кассетной загрузкой - комьюнити оценит.
Свою версию 1990 тоже сделаю, постараюсь в следующем месяце, разгружусь только немного.
Уровни под 1990 мы всем форумом рисовали (точнее, правили), используя новомодный редактор Tiled, эти уровни уже в готовом виде где-то у меня лежат. Tiled сохраняет в XML или JSON и потом оттуда довольно просто перепаковать в любой нужный бинарный формат. И не надо городить свою тулзу для отрисовки карт. Кстати Tiled уже очень многие спектрумисты юзают, в частности, Ianna в нём полностью нарисована (и не только графика, но и триггеры тоже, это выглядит забавно).
https://e-wm.org/i/E20180621-092453.png
мне так интереснее, сам сделаешь - больше поймёшь)) и танки мои на самописном ассемблере написаны) тут на форуме в "разном" кидал) я упёртый велосипедодел-любитель)
- - - Добавлено - - -
я даже опенгл и директикс-подобное как-то пытался писать, с учителем матиматики советовался. Она мне сказала "так это матрицами делается". Я всё-таки свою херню допилил на виндовой графике, а потом узнал, то что я пилил - уже есть в директикс и опенгл. А у меня вся комната закидана листами а4 с формурами была, причём некоторые не на одном листе)):v2_lol:
Иногда результат не очевиден. Я начинал танчики делать с уверенностью, что они нафиг никому не нужны, и я делал просто потому, что нужны были мне. Это уже в процессе дела я узнал о том, что спектрум-то живее всех живых) потому у меня больше процесс, но, это всё увеличивается, если результат нравится не только тебе) подогревает)
даже не так. (хотя процесс - часть этого). У меня идея - поучить любимые платформы
сделаю танчики на zx, а потом хочу попробовать квазатрона на нес)
результат тут будет - самоудовлетворение, а процесс и так интересен)
- - - Добавлено - - -
у тебя буду консультироваться, когда параметры всяких стресс пластилов нужны будут и урон дизраптором)
У нас ковыряльщиков тут полфорума, по части посмотреть чё в коде внутри, можешь в принципе не только у меня спрашивать.
А квазатрон да, я его очень люблю. У меня была идея немного оживить эту игру в современном плане, сделать, чтобы всеми роботами управляли люди, например, поделить всех на две или три команды. То есть игровой процесс как на спектруме, а кайф совершенно иной :)
Но это ещё в будущем, у меня тут две игры висят незаконченные, как только появится время - буду допиливать.
Меня в квазатроне дико смущает дерганый познакоместый скролл. Ведь игра у нас монохромная, а значит скролл должен быть плавный попиксельный. А тут джыга-дрыга какая-то.
я за 1 спрайт в данном случае принимаю спрайты одного вида танка вместе с масками
первая фаза, танк вверх 2х2 - 32 байта
вторая фаза, гусеницы сдвинуты -32 байта
общая для фаз маска - 32 байта
первая фаза, танк влево 2х3(решил хранить с полоской для скрола) - 48 байт
вторая фаза - 48 байт
маска для них - 48 байт
Я ошибся. Не 160 байт(это раньше было без движения гусениц), а 240 байт
в развернутом виде
32 байта - вверх фаза 1
32 - вверх фаза 2
32 - вверх маска
32х3 - вниз
48х8 = 384 - спрайт влево
384 - влево фаза 2
384 - влево маска
348 - вправо 1
348 - вправо 2
348 - вправо маска
Итого 2496 байт
Reobne, а за что спасибо?)) Мне кажется нельзя людям понапрасну спасибы раздавать, только если реально что-то полезное для тебя сделал) И кстати про задержки я помню)
Обновил шапку с новой версией
Также, как говорил ранее, выложу исходники
Листинг самой игры
Вложение 65592
Пришлось всё-таки лишиться масок в угоду большего числа спрайтов..
Уровни и спрайты
Вложение 65591
Загрузчик
Вложение 65593
Загрузчик помещается после REM, запускается, копирует себя в другое место и принимает управление.
Пара замеченных косячков
1. Пол орла https://e-wm.org/i/E20180624-022652.png
2. После гибели гг осталась мигающая половинка (см справа на льду) https://e-wm.org/i/E20180624-023005.png
3. Был замечен косяк в спрайте тяжёлого танка, когда он едет вверх - при этом его задник мигает каким-то шумом. Сфоткать не успел.
4. После таблицы очков ничего не работает - игра виснет.
Увы я не сделал взрывы и остановку после подбития штаба. Потому так, а через пару секунд - гейм овер(если получится выудить лишней памяти, попробую что-то придумать)
Есть косяк, но не так часто проявляется(с патронами тоже иногда), если будет время попытаюсь устранить
Тоже косяк, так же редко проявляется, причины понять не могу, как будто память под рабочие спрайты чем то иногда портится, решил оставить
Мне кажется проблема в том, что игра ждет нажатия именно клавиши, а не джойстика, я об этом не подумал( Ты на джойстике играешь?