Разработка и ромхакинг > Ромхакинг и программирование
[SMD] хакинг Dune: The Battle for Arrakis
<< < (422/447) > >>
Spektr:
Всем привет, хочу вертолет беспилотник, маленький, 8 на 8 пикселей будет достаточно. проблема в том, что у него не крутятся лопасти если делать его спрайты как трайк, но если делать его как солдиера или трупера, лопасти будут вращаться за счет изменения картинки как при ходьбе юнита (каждый шаг - изменение положения лопастей), но.... но он не будет лететь по диагонали, так как у человечка нет конкретно такого спрайта, есть только спрайт вправо  - он заменяет положение юнита при передвижении по диагонали. как тут выкрутиться?
SeregaZ:
предлагаю пока-что перекурить :) следите за новостями.

предложил бы орнитоптёр для изменения. другое дело как себя поведет юнит с поведением того-же трайка, но с графикой орнитоптера... и будет ли там анимация, когда юнит будет стоять на месте - большой вопрос :) лови товарища Ti в дискорде, привязывай его к стулу и пытай. на выходных он бывает туда заходит.
Spektr:

--- Цитата: SeregaZ от 17 Сентябрь 2018, 15:03:30 ---предлагаю пока-что перекурить :) следите за новостями.

предложил бы орнитоптёр для изменения. другое дело как себя поведет юнит с поведением того-же трайка, но с графикой орнитоптера... и будет ли там анимация, когда юнит будет стоять на месте - большой вопрос :) лови товарища Ti в дискорде, привязывай его к стулу и пытай. на выходных он бывает туда заходит.

--- Конец цитаты ---
про орнитоптера - хорошая мысль, спасибо! надо , правда, алгоритм его движения изучить, спрайты его изучить. попробую поэкскрементировать
SeregaZ:
ну, насколько я помню, в данной сборке орнитоптер оптимизированный - разрезанный на части. это в новой версии он будет не оптимизированный, цельным изображением. так его редактировать гораздо проще. но, повторюсь, сожрет всю оптимизацию.
Spektr:
поставил в дуе 6 номер и тип спрайта орнитоптера вместо quad, собрал ром, включил и был поражен, потрясающе выглядит, как дракон, ей богу. нет даже круче дракона. но когда сбили настоящих топтеров всех, махать юнит перестал, потом купил еще топтеров и снова замахал, потом их сбили махать опять перестал. печалька.

Добавлено позже:

--- Цитата: SeregaZ от 17 Сентябрь 2018, 16:48:03 ---ну, насколько я помню, в данной сборке орнитоптер оптимизированный - разрезанный на части. это в новой версии он будет не оптимизированный, цельным изображением. так его редактировать гораздо проще. но, повторюсь, сожрет всю оптимизацию.

--- Конец цитаты ---
посмотрел спрайты, в r81b у него диагональные цельные три штуки(с раскрытыми крыльями, с полураскрытыми, с закрытыми), ну и вперед кода смотрит туловище и по крылу в трех положениях, кода вправо смотрит, туловище да три крыла. вобщем если подумать, можно ченить придумать. а по оптимизации - юнит будет вместо саботера, товар штучный короче)
SeregaZ:
а я сижу и плачу :) уже дошел до финала. импорт большого изображения есть, экспорт из редактора в игру есть, оптимизация после экспорта тоже есть... но тут случился мегаэпический облом :)

рассказываю: в карте тайлов значение состоит из двух байтов. то есть 16 бит. 1 бит - приоритет (то есть когда два изображения на заднем фоне - одно лежит поверх второго. вот этот бит за это отвечает), потом не точно - палитра 2 бита, и зеркала 2 бита. в итоге под номер тайла остается 11 бит. а 11 бит это %11111111111 или $7FF или 2047 тайлов. на одном экране может быть 64х28 тайлов = 1792. то есть если не делать никакой оптимизации изображения, то один экран худо бедно потянет. но у меня, ***, 4 экрана есть в трех местах. в итоге, когда я делаю экспорт (а это две разные операции экспорт и потом оптимизация экспорта), все естественно что плывет к чертовой бабушке. потому как 4 экрана это = 1792 * 4 = 7168. что несколько больше, чем 2047. так что я в расстройстве.

на ум приходит лепить костыль. делать 3 байтовые карты, вместо двух байтовых. научить редактор читать и 2 байтовую и 3 байтовую карту. сам экспорт делать во временную карту 3 байтовую, после измерять количество тайлов, сколько этот экран занял. если окажется что количество меньше 2047 - оставлять без оптимизации, и просто пересохранять 3 байтовую в 2 байтовую карту. если больше 2047, то делать оптимизацию, проверять сколько тайлов это дело занимает, если укладывается в 2047, то хорошо. если нет - ругаться пользователю, чтобы он изменил изображение на менее ресурсоемкое.

Добавлено позже:
еще причем не 2047, а меньше. так как на экране могут быть моргающие тайлы. типа как в диалоге на заводе наверху красные полоски и кнопки моргают. их ведь тоже надо где-то хранить.
Spektr:

--- Цитата: SeregaZ от 17 Сентябрь 2018, 19:49:55 ---а я сижу и плачу :) уже дошел до финала. импорт большого изображения есть, экспорт из редактора в игру есть, оптимизация после экспорта тоже есть... но тут случился мегаэпический облом :)

рассказываю: ......
 так что я в расстройстве.

на ум приходит лепить костыль. делать 3 байтовые карты, вместо двух байтовых. научить редактор читать и 2 байтовую и 3 байтовую карту. сам экспорт делать во временную карту 3 байтовую, после измерять количество тайлов, сколько этот экран занял. если окажется что количество меньше 2047 - оставлять без оптимизации, и просто пересохранять 3 байтовую в 2 байтовую карту. если больше 2047, то делать оптимизацию, проверять сколько тайлов это дело занимает, если укладывается в 2047, то хорошо. если нет - ругаться пользователю, чтобы он изменил изображение на менее ресурсоемкое.

Добавлено позже:
еще причем не 2047, а меньше. так как на экране могут быть моргающие тайлы. типа как в диалоге на заводе наверху красные полоски и кнопки моргают. их ведь тоже надо где-то хранить.

--- Конец цитаты ---
нужна смена обстановки, отдых.тебя что в подвале заперли и не отпустят пока не сделаешь)? с удовольствием надо делать, с мотивацией, с вдохновением, отдохнувшим.
SeregaZ:
сменил сменил... вчера с дачи приехал. теперь спина отваливается. вобщем думаю во временную папку сначала будет скидывать результаты работы, потом оптимизировать, считать количество тайлов и ругаться если много. если не много, то тут будет два варианта - без оптимизации сразу впуливать в сборку игры, как например гербы сжимать не нужно. потому как с гербами предусматривается, что их можно будет править в YY-CHR. а если их оптимизировать, то все. их потом нельзя будет править, так как тайлы там будут перемешаны. а второй с оптимизацией.

ну и еще вопросы с анимацией на экранах завода и старпорта остались.
SeregaZ:
вобщем порнография получается... во временной папке создается куча временных файлов. в памяти бы все эти операции проводить... но работает :) анимацию ток подправить и лимиты тайлов каждому экрану выставить. и в принципе готово.

на редактор графики юнитов нет сил :)

и хостинг у меня стухнет через полтора месяца. нужен новый. кто какие бесплатные с php используют? хостинг нужен чтоб там размещать лист базы GEMS, чтобы редактор скачивал этот лист и потом показывал. после уже сами архивы скачиваются с эмуленда. вот думаю может сам лист тоже каким-то образом забубенить чтоб тоже с эмуленда скачивался. надо правда думать как постоянную ссылку лепить.
SeregaZ:
Spektr:

--- Цитата: SeregaZ от 22 Сентябрь 2018, 19:47:19 ---
--- Конец цитаты ---
хорошая программа. мне такая очень нужна сейчас. хочу вместо заставки с космолетами и арракисом, много текста вставить, ну и там картинку поменять. так как новичок, потрачу много времени на изучение, а тут прям все готово, бери и редактируй. могу денежку на карту сбербанк скинуть или на телефон положить. сколько будет стоить скачать прогу?
SeregaZ:
эм... вот я лох... все бесплатно делаю :) карты сбербанка нет, я из Казахстана. телефоном не пользуюсь :) так что увы. весь вопрос в том, когда это все доделаем. с экранами сейчас почти все готово, но есть два затыка. о первом я частично в видео упоминаю, там где корабли записываются в место, где тайлы экрана лежат. что на момент полета кораблей может портить графику планеты. поэтому корабли чуть чуть вниз надо бы опустить, и тем самым общий лимит тайлов для этих четырех экранов можно увеличить. второй момент это экраны - там где на заводе что-то заказываешь и на старпорте. там есть анимированная графика. после моих оптимизаций и выкидывания тайлов, которые по мнению редактора на экране не участвуют, эта самая анимация сыплется. если с заводом еще худо бедно понятно, там как бы статичная анимация. то есть в одном и том-же месте скачет. то со старпортом там трындец :) во первых там приоритет слоя играет роль - это я не знал и поэтому переключение приоритета не делал. теперь понятно что надо делать, хотя это и как бы единичный случай где это надо - экран старпорта. (говорила мама - перед тем как садится за проект: сядь и все распланируй. так нет же делаю через ж, и каждый раз когда всплывает новый нюанс все приходится переделывать с начала :)) а во вторых графика там передвигающаяся по экрану, а не в одном месте установленная.

так что не знаю... озадачил товарища Тая.

корабли, кстати, можно отключить будет в новой сборке :) Тай сделал. а я так давно хотел эту опцию. типа если события на Земле происходит. то какая тут высадка? высадки там быть не должно :)
Spektr:

--- Цитата: SeregaZ от 24 Сентябрь 2018, 16:28:31 ---эм... вот я лох... все бесплатно делаю :) карты сбербанка нет, я из Казахстана. телефоном не пользуюсь :) так что увы. весь вопрос в том, когда это все доделаем. с экранами сейчас почти все готово, но есть два затыка. о первом я частично в видео упоминаю, там где корабли записываются в место, где тайлы экрана лежат. что на момент полета кораблей может портить ..................
так что не знаю... озадачил товарища Тая.
.........
корабли, кстати, можно отключить будет в новой сборке :) Тай сделал. а я так давно хотел эту опцию. типа если события на Земле происходит. то какая тут высадка? высадки там быть не должно :)

--- Конец цитаты ---
Нас таких новичков походу много, но мне лично пришлось долго учиться, а время - это деньги. Проще заплатить за автоматизированную прогу, экономящую время, нервы, силы. и разработчик рад будет и пользователь. мне редактировать пришлось, используя старые проги и старую сборку. знания по крупицам получать с видео, не все из них на доступном языке. потом разбираться в каждом файле сборки, читать там каждое слово, вникать во все. "барьер входа" высоковат. можно обучение пройти платное, как в универе на заочке. там тебе тупо дают учебники и задания ну и там курсачи с рефератами. а тут можно сборник сделать с обучающими видео, картинками, прогами, ссылками, чатами и поддержкой. потому, что самому вывозить тяжело, я уже десяток раз хотел заднюю скорость включить и не заниматься больше этим ... творчеством. но сейчас все юниты готовы, пару миссий сделано, сюжет уже имеет четкую нить смысла, и более менее продуман, здания готовы. все тормозит заставка и мои запои). ах да, надо еще с 81b как-то перейти на 81c (DUE 0.6h на 81c у меня не работает), а лучше на 81d. так как в 81b у меня транспорт не может нормально доставить юниты на ремонт, возьмут и выбросят тупо куда-нить, а еще когда музыку включаешь не родную, звуки отзыва юнита в конце неприятные, как будто хрип колонки.
SeregaZ:
хм... проблем со звуками быть не должно. но не исключено, что где-то что-то я мог напортачить :) ведь толком не тестировалось...

Добавлено позже:
а! стоять! :) ежели ты мелодию с сэмплами пихаешь в качестве мелодии боя - то да. например там барабаны были как сэмплы в мелодии. то такой барабан будет ругаться с пехотой. слуша..туц.... туц туц... выполн...туц... туц... туц... надо там сэмплы менять на FM барабаны. тогда такого "перехвата" звука не будет. GEMS просто не умеет два сэмпла вместе склеивать. поэтому если это гимн дома, что играет при разговоре с ментатом, если это победа или поражение, если это мелодия интро, оутро - там можно с сэмплами мелодии. для боевых - нельзя - да и само количество каналов должно быть минимальным - в идеале 5. 4 для FM и 1 для PSG и причем только тоновый 1, не трогая шумовой, оставляя возможности игре использовать спецэффекты шипение и пердение, взрывы, писки, визги... так что тут не все так однозначно, я сам дочь Френка Клепакки и тут никто не хочет писать музыку для GEMS :)))
Ibrohi)v(:
Razor, Здраствуйте, есть чит коды на вашу игру Dune?
не могу пройти последний уровень за коррино :neznayu:
SeregaZ:
артмани пробывал?
Ibrohi)v(:
я с андроида играю, эмулятор md emu
SeregaZ:
а сохранения там есть? совместимы ли эти сохранения с каким-то другим PC-шным эмулятором? я к чему... на компьютере взломал себе бабло, сохранился. файл сохранения на телефон. на телефоне загрузился - играешь :)))
SeregaZ:
итак время идет, а мой долгострой все так и не выходит :) затык, значится, имеется с редактором графики и конфигов юнитов. как известно мой беспросветный гений инженерной мысли запланировал стописятдве функции для этого редактора. но совсем недавно товарищ Ti_ меня несколько расстроил. планы все мои полетели в тартарары :)

рассказываю. причем наверное начну издалека. ну как всегда вобщем стописятдве тонны текста. и объясню наверное на примере окна ментатов, так как более наглядно.

так вот, кто-нибудь задавался вопросом, почему графика ментатов состоит из 3 файлов? это несколько неудобная, но вынужденная мера. дело в том, что на приставке эта самая память для графики не идет цельным блоком. она разбита на несколько сегментов из-за некоторых обязательных частей, а именно размещения карты тайлов изображения. или даже двух карт. помимо карт еще там какая-то неведомая мне фигня тоже лежит, как объяснял товарищ Ti_, а я его как всегда не слушал, то это:

--- Цитата ---ну кроме карт там ещё spr-ram  и ещё  hscroll в каком-то 'тайле'
--- Конец цитаты ---
по итогу эти "обязательные" места берут и портят всю малину. если бы в нормальном случае как начал сначала памяти писать свою графику так и пиши, то здесь надо начал сначала, дошел до карты, перепрыгнул в конец карты, пишешь дальше. дошел до этих неведомых spr-ram и hscroll - перепрыгнул в их конец, опять пишешь, потом вторая карта опять тебе мешает - её тоже надо перепрыгивать...



(информация на картинке не точная, но примерно верно :) и для иллюстрации проблемы пойдет)

поэтому, что память так разрезана и приходится разрезать ментата на три части.


теперь значится юниты - они в основном располагаются в первом большом блоке. но там-же и земля, и заводы. и не все юниты влезли. кериол переехал в самый низ, потом графика пули пехотинской тоже внизу, а она типа вроде тоже как имеет отношение к юнитной графике.

момент номер второй - сама эта графика вручную скурпулезно скомпонована, чтобы уместится в этом маленьком общем лимите тайлов. тут наверное стоит объяснить на примере кериола. этот самый кериол, хоть и большой - 4х4 тайла, и имеет 3 положения - 0 градусов (мордой вверх), 45 - по диагонали, и 90 - повернут боком. в теории это должно быть 3 положения * 4х4 тайла = 48 тайлов. но создатели Дюны знали способ сэкономить :) взяли 0 градусную графику и разрезали её на пополам. то-же самое и с 90 градусным. в итоге вместо 16 тайлов они стали занимать по 8. тут пришел шеф, всех похвалил, но сказал что этого мало. они покумекали, и увидели пустой тайл под номером 8 в 0 градусной графике. тогда... что можно сделать? совместить этот пустой тайл с пустым тайлом в следующем изображении :)



и таким вот образом было спасено еще несколько тайлов. и это хорошо.

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

итак, что сделано уже сегодня - я изначально запланировал момент, что можно добавлять спрайт, слой, или еще одну картинку к изображению. типа как хеви танк - состоит из кузова - один слой, и башни - второй слой. предполагалось что пользователь мог бы добавить и третий и пятый и так далее кнопкой add. дальше была запланирована возможность изменять фармфактор юнита. скажем это был одиночный пехотинец - 1х1 тайл, 8х8 пикселов. тыркаешь изменение размера и делаешь скажем 2х2 (16х16 пикселов) и рисуешь толстого пехотинца. и игра должна была все это дело сожрать. красота же? красота! но хер там. во первых существующие юниты уже итак в притык и изменение размеров поведет увеличение количества используемых тайлов - то есть тупо некуда будет вписывать новую графику. только если разве что у какого-то другого юнита отобрать тайлы. другой момент с этим связанный - это разные юниты, использующие одну и ту-же графику. например трайк и ордосовский трайк. графика одна, юниты разные. изменив размер с 2х2 на 3х3 скажем обычному трайку, ордосовский трайк тоже должен будет изменен автоматически. иначе из-за него посыплется графика. дальше есть еще один костыль - орнитоптёр - раньше была оптимизация. орнитоптёр жрал мало тайлов, но редактировать его было не реально. черт ногу сломит там найти концы с точки зрения редактора. товарищ Ti_ его переиначил на более простой вариант. теперь он жрет дофига тайлов, но редактировать проще. проще то проще, но я то думал что каждый кадр можно по своему резать и типа чтоб они могли иметь разные количество записей. но оказалось что второй и третий кадр анимации должен повторять конфиг первого. опять мне пришлось закатать губу, которую я раскатал на три километра. еще один момент, который я запланировал - возможность использование в одном юните графику другого юнита - специальный переключатель адреса графики был на окне редактора. но опять таки эпический облом из-за этих всех ограничений.

в итоге, пришлось эти функции поотрубать. а во вторых - пришлось добавить графу "реальное количество тайлов графики". иначе если через редактор редактировать тот-же кериол, где он обрезан вместо 8 тайлов имеет 7 - редактор при редактировании запишет 8 и как итог вся графика поплывет к черту. то есть в итоге возможности редактирования гораздо меньше, но редактор будет вписываться в существующие размеры, не нарушая структуру игры. это решение мне не нравится - я хотел большего!  :'(

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



однако что можно было бы сделать, и правда не ясно возможно ли такое по техническим причинам:
1. если перенести обязательные части, то есть карты и те скролы как там они неведомые хрени - на самый верх, тогда сегментов графики будет уже не три, а два. сам большой сегмент увеличиться еще немного, а значит тогда все юниты смогут влезать в один блок и редактору будет куда проще это дело редактировать.



2. вариант. перенести в эти обрезки, во 2 и 3 блоки графики - землю. ведь графика земли подразумевается что статична. а графика юнитов и заводов - может изменятся, то есть был юнит 2х2 - пользователь захотел 3х3 сделал. завод был 3х3 - пользователь захотел и сделал 1х1. будучи в едином блоке проще изменять эти размеры и следить чтоб графика не поплыла.

3. вариант. дичайший :) делать редактор юнитов не как редактор юнитов, а на подобии моего конструктора экранов, то есть делать полный экспорт информации из папок редактора в игру, то есть информация в редакторе будет более полная. но докучи тогда в конфиге юнита нужен будет еще один параметр в конце:

--- Цитата ---carry_spr_cfg1:
      dc.w   1
      dc.w   $20,   $20,   $FFF0,      spr2x4,      crr_t1|HVMirr,         $FFF0, 7 ; клеит из двух половинок
      dc.w   $20,   $20,   $FFF0,      spr2x4,      crr_t1|VMirr,         $0, 7
--- Конец цитаты ---
то есть указание реального количества тайлов. 2х4 - как бы подразумевает, что тайлов должно быть 8. но ведь в реальности там тайлов 7. восьмой тайл это первый тайл последующего изображения. однако ежели несмотря на 2х4 игра вместо 8 тайлов будет на самом деле загружать 7 - тогда той самой ручной оптимизации и подгонки изображений пустыми тайлами друг к другу будет не нужно. это во первых. а во вторых таких пустых тайлов среди всей кучи техники встречается несколько раз и таким методом можно будет полностью отказаться от пустых тайлов, сэкономив еще больше для новой техники.
Ti_:
Всё почти так, только наоборот.
В оригинале нет таких способов оптимизации, и более того, там ещё и все кадры у одного вида юнита одинакового размера.
Всё это было сделано мной в хаке, чтобы получить пустые тайлы для добавления графики для новых юнитов.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии