Разработка и ромхакинг > Ромхакинг и программирование
GINCS Studio
<< < (3/30) > >>
3DSchumacher:
GINCS Studio - бесплатная полнофункциональная среда разработки текстовых приключений для SEGA Megadrive/Genesis с использованием движка GINCS. Я написал эту программу для облегчения страданий при портировании The Longest Journey. Сначала мучался с Notepad++, затем написал свою кастомную подсветку синтаксиса к Visual Studio 10, но это все было не то, одни костыли. Потому решился замутить свою IDE под GINCS, с подсветкой и кейвордами ;)
Это первая версия программы, в ней присутствуют недоработки, возможны ошибки и т.д, но уже сейчас в ней можно заниматься созданием полноценных игр.

Особенности программы:


*     Создание нового пустого проекта со всей необходимой структурой и файлами
*     Загрузка существующего проекта целиком
*     Подсветка синтаксиса в скриптах
*     Создание новых скриптов с автоматическим добавлением их в проект
*     Удаление скриптов из проекта
*     Список использованных меток в текущем скрипте с быстрым переходом к метке по двойному клику на ней
*     Список использованных триггеров (не завершено, пока только отображение без сортировки и фильтрации/навигации)
*     Дерево всего проекта слева
*     Встроенный просмотрщик (двойной клик на изображении) и конвертер PCX файлов (использован сторонний Irfan View)
*     Моментальная компиляция и запуск проекта прямо в студии (использован сторонний эмулятор Kega Fusion)


Системные требования:


*     .NET Framework 4.0
*     Microsoft Windows XP SP3 (32-bit and 64-bit* editions), Microsoft Windows Vista SP2 (32-bit and 64-bit* editions), Windows 7 (32-bit and 64-bit* editions), Windows 8 (32-bit and 64-bit* editions)
*     10 Мб свободного места на диске.
*     Обязательное отсутствие пробелов в пути к папке с программой. Для тех, кто в танке, поясняю: это значит нельзя запускать с рабочего стола. Желательно копировать папку в корень диска (недоработка сборщика движка GINCS)
* - компиляция и запуск проекта в х64 системах пока невозможен, особенность GINCS. Возможно кто-то возьмется перекомпилировать сборщик под х64. Но вы всегда можете скомпилировать проект в виртуальной машине.


Скриншот:


Скачать можно тут: http://emulation.at.ua/publ/developing/sega_megadrive_genesis/gincs_studio/11-1-0-71
Размер: 3.5 Мб
lupus:
Ага, понятно. Короче, работаем пока с тем, что есть, какие-то плюшки возможно будут добавляться по мере допиливания тобой движка.
Добавлено позже:
3DSchumacher, отправил тебе свою наработку проекта, что-то затык у меня с организацией меню :( глянь плиз в лс.
Добавлено позже:
Вроде разобрался. Глянул твою демку, у тебя вместо "пуш эни кей" написано "дебаг меню", значит пока с этим никак.
Добавлено позже:
Мои первые наработки. Пока совсем мало, только до первой развилки сюжета, но...
https://dl.dropboxusercontent.com/u/57975554/gincs/SHG_demo.7z
Графику потом надо будет по новой прогнать, мне не везде нравится, как выглядит.
Добавлено позже:
Обновил демку, теперь там вся первая глава.
3DSchumacher:
lupus, классная демка, продолжай! Я тебе в личку ответил на твои вопросы. Короче двигло будет дорабатываться, это однозначно, так что пока пишем и не паримся, а как будут выходить обновления движка, так и будем править скрипты. Просто конкретные сроки и список изменений я сейчас назвать не могу. Я даже не знаю сколько времени готов на это выделить в ближайшие месяцы...

з.ы. ничо так народ оживился ваять квесты на сегу, я не ожидал... думал буду один такой странный ;)
lupus:
Перезалил патч, теперь доступно 3/18 глав за Гарри.
Для себя оргиназовал "debug menu" для быстрой навигации между главами, но в демке оно отключено.
3DSchumacher, ты упоминал, что при конвертации xnview устанавливаешь сжатие RLE, это как-то помогает выграть в размере? А то у меня только з главы, а ром уже под 700 кило получается. Надо как-то остальное будет впихивать, чтобы в 4 метра уместиться...
3DSchumacher:
lupus, гинкс конвертит картинки в совершенно другой формат и сам их сжимает, так что размер оригинальных картинок ничего не значит. RLE я ставлю чтоб pcx2bkg, входящий в состав гинкс, нормально читал эти файлики.

--- Цитата: lupus ---а ром уже под 700 кило получается. Надо как-то остальное будет впихивать, чтобы в 4 метра уместиться...
--- Конец цитаты ---
а сколько всего глав? Не впихнешь? У меня пролог и первая глава завесили 1.1 метра, и я вполне себе уверен что впихну оставшиеся 11 глав в 3 метра без проблем. Много графики юзается повторно. Локации, морды персонажей в диалогах и т.д.

Рекомендация по сжатию графики: там где можно обойтись без дизеринга - не юзай его. Тогда гинкс существенно ужмет картинку ;)
lupus:
Всего 18 глав за Гарри и около 10 за Сибил.
Дитеринг не юзал вроде.
Графика хоть повторно и используется, но её ещё дофигища...
3DSchumacher:

--- Цитата: lupus ---Дитеринг не юзал вроде.
--- Конец цитаты ---
у тебя даже лого конами с дизерингом. Сделай красный фон сплошным, без точек, выиграешь 1-2 килобайта. И так на всем, где это не портит визуальное качество картинки
Лого гинкса - это вапще пиксельный ад для компрессора :)

Добавлено позже:
эмоции на лицах персонажей в диалогах можно передавать "аватарками", а не полноэкранными изображениями ;)
Добавлено позже:
Сделал отображение картинок формата pcx под курсором мыши, при наведении на файл в дереве проекта. Думаю так будет намного лучше. Сторонний IrfanView можно выбрасывать, все равно каждый конвертит тем, что ему удобно и к чему он привык, а в самой студии достаточно только возможности быстрого просмотра, так-как при наличии огромного множества файликов в них начинаешь откровенно путаться
lupus:
Ага, спасибо за наводку. Теперь понял, что такое дизеринг. Прогоню ещё раз графику через фотошоп, без его использования, посмотрим, что мне это даст в килобайтах.
Ещё решил попробовать отбросить правую часть картинок, которая даёт чёрную рамку, там получается кусок 40х160 пикселей, тупо закрашенный чёрным. Какие-то байты на общем количестве картинок по идее выиграю.
Использовать аватары имхо в моём случае не вариант. Хочу максимально приближённо перенести, чтобы даже без оригинальной анимации смотрелось нормально.
Мини-превью - отличная идея, т.к. приходится часто подглядывать, какую картинку вставлять на нужной странице.
Ещё хотел попросить тебя поделиться твоим лого GINCS, оно сделано просто и со вкусом, должно мне тоже места сэкономить.
Нам бы кого-то шарящего в кодинге под MD в помощь, того гляди, прикрутили бы нормальный звуковой движок и компрессию данных, вот тогда бы вообще горя не знали.
Добавлено позже:
Да, блин, забыл ещё что:
я себе в фотошопе скрипт наваял, который быстро ресайзит полотно в нужные мне 320х160 и сохраняет как 16 цветный pcx, а потом каждый файл приходится в iview поднять до 24 бит, а затем в 256 цветов и пересохранить, задумался над тем, чтобы это как-то реализовать при помощи bat-ника. Когда для ознакомления качал xnview, там на сайте видел batch_converter, ты не пробовал его юзать?

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

--- Цитата: lupus ---Прогоню ещё раз графику через фотошоп, без его использования, посмотрим, что мне это даст в килобайтах.
--- Конец цитаты ---
Совсем без дизеринга не получится, если у тебя не картун стайл картинки. Я делаю так: Конверчу с floid steinberg дизерингом, потом открываю в редакторе, где от дизеринга можно избавится практически безболезненно - заполняю сплошным цветом. Оставляю его только там, где он реально необходим, затем опять копирую в XNView и повторяю операцию по конвертации к 16 цветам. Так как я не добавлял уникальных цветов, то при повторной конвертации визуально ничего не меняется, пересохраняю картинку и радуюсь отыгранным килобайтам ;)


--- Цитата: lupus ---Ещё решил попробовать отбросить правую часть картинок, которая даёт чёрную рамку, там получается кусок 40х160 пикселей, тупо закрашенный чёрным. Какие-то байты на общем количестве картинок по идее выиграю.
--- Конец цитаты ---
совсем мизерные, но выиграешь. Я с этим не парюсь, гинкс не глючит с полноэкранными изображениями 320х224, с остальными бывает выплевывает какие-то левые тайлы. В твоей демке кстати иногда это происходит. Так что советую делать картинки 320х224 с черной рамкой вокруг. Оно в любом случае отлично ужимается до нескольких байт ;)


--- Цитата: lupus ---Ещё хотел попросить тебя поделиться твоим лого GINCS, оно сделано просто и со вкусом, должно мне тоже места сэкономить.
--- Конец цитаты ---

прикрепил


--- Цитата: lupus ---Когда для ознакомления качал xnview, там на сайте видел batch_converter, ты не пробовал его юзать?
--- Конец цитаты ---
пакетный конвертер есть и в самом XNView, пользуюсь постоянно. Скачай лучше его целиком, будет тебе и пакетная конвертация и отличный просмотрщик с кучей настроек и эффектов. Там в меню Tools есть пакетный конвертер с возможностью сохранить скрипт в виде батника или скрипта в его нативном формате.


--- Цитата: lupus ---И по студии: сделай плиз, чтобы по кнопке запуска проекта перед этим автоматом сохранялись изменения в открытом скрипте. Или это уже сделано, просто у меня студия старая?
--- Конец цитаты ---

уже сделано, но эту студию еще не выкладывал, на выходных допилю и выложу


--- Цитата: lupus ---И ещё вспомнил, добавь плиз в статусную строку позицию курсора и количество выделенных символов, чтобы самому не считать, а то в строке помещиется всего 38 символов и, если при построении менюшек, строки сильно длинные, то получается ужасная конструкция с поломанной структурой.
--- Конец цитаты ---
окей. Заодно добавлю автоматический подсчет длинны пунктов меню с варнингом при превышении допустимой длинны еще на стадии ввода текста ;)


Добавлено позже:
кстати, в гинксе есть ограничение на длину метки. Максимум 16 символов. Остальное он отрезает, и может так произойти, что у тебя перестанет адекватно работать скрипт. Я это только вчера узнал, сам неожиданно попался. Если у тебя есть метка типа oh_shit_this_is_so_long_label1 и oh_shit_this_is_so_long_label2, то он обрежет обе до oh_shit_this_is_ и логика работы нарушится, хотя при компиляции никаких ошибок не будет видно. Пожалуй запилю еще и проверку длинны меток в редактор
lupus:
Не, метки у меня все короткие, я вообще стараюсь всё переменные, названия файлов и т.п. делать не более 8 символов. Так что с этим проблем быть не должно.

А что известно по родному звуковому движку? Я вчера погуглил, нашёл, что он в оригинале писался под нео-гео, судя по всему его на мд перенесли, т.к. проц один и тот же используется, но вот готовых треков под него я не нашёл. Родные играются, но как-то кривовато (наверное ты об этом говорил, когда упоминал, что звук в гинксе через одео место) да ещё и не вписываются тематически.
3DSchumacher:
lupus, ну звук можно конвертировать. Я брал миди файлик, конвертил его в фруктах в какой-то другой формат, с похожим на mvs расширением, затем еще какой-то сторонней прогой конвертил его в mvs. Получаешь файл без оригинальных инструментов, но со всей нужной структурой, заполнеными паттернами и т.д. Затем вручную проставляешь в mvs tracker нужные инструменты и сохраняешь. Но когда услышал что гинкс даже файлики из примера глючно воспроизводит, и после того как услышал совсем не похожее звучание на то, что я наваял в трекере, я забил на музыку до лучших времен :)
Ti_:

--- Цитата: 3DSchumacher от 11 Апрель 2013, 13:05:52 ---Рекомендация по сжатию графики: там где можно обойтись без дизеринга - не юзай его. Тогда гинкс существенно ужмет картинку ;)

--- Конец цитаты ---
А он сжимает?, И в примере и в роме lupusa тайлы то несжатые  :cool:
3DSchumacher:
Ti_, pcx2bkg конвертит  в несжатый bkg, а затем bkg конвертится в cbg из которого выбрасываются повторяющиеся тайлы. Такое вот примитивное, но сжатие
Добавлено позже:
простой пример из моего проекта:
2_ngal.bkg - 27кб
2_NGAL.CBG - 23кб
Ti_:

--- Цитата: 3DSchumacher от 11 Апрель 2013, 17:58:33 ---Такое вот примитивное, но сжатие

--- Конец цитаты ---
Скорее это использование карты тайлов, чем сжатие.  Если б не использовал карты, а жал нормальным пакером, было бы в 2раза больше места под картинки  :)
lupus:

--- Цитата: Ti_ от 11 Апрель 2013, 18:16:17 ---Скорее это использование карты тайлов, чем сжатие.  Если б не использовал карты, а жал нормальным пакером, было бы в 2раза больше места под картинки  :)

--- Конец цитаты ---
Ti_,  если ты поможешь нам с этим, мы только спасибо скажем. Ибо я вообще не шарю в программировании, а 3DSchumacher не особо разбирается в кодинге для MD.
Ti_:

--- Цитата: lupus от 11 Апрель 2013, 18:25:31 ---Ti_,  если ты поможешь нам с этим, мы только спасибо скажем. Ибо я вообще не шарю в программировании, а 3DSchumacher не особо разбирается в кодинге для MD.

--- Конец цитаты ---
Ну я тоже в нем не шарю, поэтому GINCS переделать не смогу.
lupus:
Ti_, жаль, очень жаль...
3DSchumacher, спасибо за совет с ресайзом в 320х224 и дитерингом, поигрался я с ним, добавил шума, картинки стали лучше и даже (!) уменьшился размер рома на выходе. Надо теперь прогнать всю графику через эту процедуру. Единственный отрицательный момент появился - теперь есть мерцания при смене графики, зато никакие тайлы не выпадают. Надеюсь у тебя получится это исправить в дальнейшем.

Добавлено позже:
Отресайзил и прогнал через фильтр всю графику трёх глав, размер рома на выходе получился на 70 кило меньше :)
Будем работать дальше.
Добавлено позже:
3DSchumacher, ты уже успел использовать триггеры?
Способен ли двиг обрабатывать несколько условий, например:
Если a=1, b=2, c=3, d=4, то выполняется условие Х, иначе, сброс всех триггеров и перезапуск цикла.
Хочу организовать что-то типа такой мини-игры, как в оригинале (4:50), возможно несколько упрощённой:
GBA:

--- Цитата: lupus от 11 Апрель 2013, 19:34:17 ---Единственный отрицательный момент появился - теперь есть мерцания при смене графики, зато никакие тайлы не выпадают. Надеюсь у тебя получится это исправить в дальнейшем.

--- Конец цитаты ---

По-моему вот тут это исправили.
lupus:
Были, видели. Пока воздержимся.
По ссылке выше - 4 главы за гарри. Посмотрел, как оно на экране псп выглядит - не понравилось. На ноуте выглядит гораздо лучше. Возможно в конце снова буду перерабатывать графику.  :lol:
3DSchumacher:

--- Цитата: Ti_ ---Скорее это использование карты тайлов, чем сжатие.  Если б не использовал карты, а жал нормальным пакером, было бы в 2раза больше места под картинки  :)
--- Конец цитаты ---
размер имейджа становится меньше, значит сжатие :)
А как оно происходит и каким методом - это уже детали, согласись.


--- Цитата: lupus ---отрицательный момент появился - теперь есть мерцания при смене графики, зато никакие тайлы не выпадают. Надеюсь у тебя получится это исправить в дальнейшем.
--- Конец цитаты ---

не отказывайся, GBA, как я понимаю, и есть админ псцд.ру. Так вот, можешь взять из его 0.53 только stub.bin, неприятные мерцания тайлов превратятся в более приятные очистки экрана. Ну еще можешь пользоваться командой #clearbkg, но тогда надо прописывать ее во всех скриптах, зачем...


--- Цитата: lupus ---3DSchumacher, ты уже успел использовать триггеры?
--- Конец цитаты ---
драсте, у меня вся первая глава на них построена, аж целых 38 штук уже задействовано. Как же еще я мог реализовать сбор предметов и их использование ;) . Да даже банальное описание локаций или комментарии Эйприл при посещении какой-то локации впервые, реализованы через триггеры. Чтобы она каждый раз не произносила длинные монологи. Это задолбет кого угодно

--- Цитата: lupus ---Если a=1, b=2, c=3, d=4, то выполняется условие Х, иначе, сброс всех триггеров и перезапуск цикла.
--- Конец цитаты ---



--- Код: ---:something
-
-
-
/i
#goto some_brainfuck

:some_brainfuck
#if fl0001 #if fl0002 #if fl0003 #if fl0004 #goto label_x
#clear fl0001
#clear fl0002
#clear fl0003
#clear fl0004
#goto something

:label_x
WIN
/i
--- Конец кода ---
Добавлено позже:

--- Цитата: lupus ---Посмотрел, как оно на экране псп выглядит - не понравилось. На ноуте выглядит гораздо лучше.
--- Конец цитаты ---

ты на пикодрайве тестил? Хотя какая разница, я и не уживлен что оно выглядит ужасно при разрешении 480х272. Тут же как не масштабируй, в любом случае не кратное увеличение, что ужасно
Добавлено позже:
GBA, может сразу соберешь RDC.EXE, APPLYGFS.EXE и MAKEGFS.EXE под вынь32? Ато я пока паскалевские исходники переделывал для того, чтоб скомпилились под винду и не глючили, потерял 2 дня разработки самой игры. Или ты не компилил исходники, а правил напрямую бинарник? Родина тебя не забудет, и окно Абаут в студии тоже ;)
Ti_:

--- Цитата: 3DSchumacher от 12 Апрель 2013, 10:17:46 ---размер имейджа становится меньше, значит сжатие :)
А как оно происходит и каким методом - это уже детали, согласись.

--- Конец цитаты ---
Размер несжатой картинки 320x160 - 25600 кб.   В среднем компрессоры сжимают на 50%. То есть до 12,5 Кб.
А тут BKG сам по себе 27 кб (25600 + 1600 карта тайлов), так что уменьшение там всего 2кб. 
Я не говорю что надо переделывать его, да и врядли получится, просто смотрю на вашу борьбу за единицы килобайт, об экономии автор гинкса не подумал.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

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