Xenonauts \ еще не вышла, но есть альфа

Pakkuman Defence

Солдат СпН

Plant Cat: First Blossom

Alsmi

Переводы игр

Недавно вспоминал мегакривой перевод Dragon Age: Origins (была такая RPG) и узнал, что есть готовая подборка на эту тему.

Видео старое, наверное, уже все посмотрели, но тем не менее xD

One Night Stand - перевод демо-версии

4vbm_2fk.png

Во время конкурса WHAT?IF решил для разнообразия испробовать себя в роли переводчика игр. Выбор пал на демо-версию One Night Stand. Почему именно эта игра?

* Уже пройденная игра небольшого объема, с достаточно простой разговорной речью (на перевод ушло всего 3-4 дня).
* Отсутствие озвучки.
* Движок RenPy, игры к-го легко поддаются переводу.
* Скоро должна выйти в Стиме, так что в случае успешного перевода можно зафигачить перевод всей игры до релиза.

читать дальше >>

Переводим "Легенду о Дряньке".

loj.jpg

Тут такое дело — взялись переводить мою игру jRPG «Легенда о Дряньке» на английский язык.
В связи с этим очень нужна помощь с переводом. Сейчас у нас участвует только 3 с половиной человека, а текста в игре полным-полно, прям дыхание захватывает.

читать дальше >>

Домовой :: Русская версия

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

Записано в Воронежской губернии

читать дальше >>

Agoraphobia



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

читать дальше >>

Mermaid Swamp

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

читать дальше >>

Перевод Iji

Привет, ребята, с вами Кситилон, и сегодня мы попытаемся перевести игру

Это рабочий пост о переводе Iji на русский язык (точнее — как минимум второй попытке перевода, а скорее всего — уже третьей), в котором будет только служебная информация, никакого user/player-friendly контента. В комментариях можно обсуждать детали перевода, в посте всё будет строго по техническому ходу проекта.


http://gamin.me/taxonomy/term/2914/12062#comment-107993 — с этого началась движуха.

http://myothehedgefox.livejournal.com/ — журнал автора прошлых попыток перевода.

http://www.zoneofgames.ru/forum/index.php?showtopic=20348&st=0 — та же попытка перевода.

http://www.old-games.ru/forum/showthread.php?t=42889&page=0 — тоже она.

http://www.remar.se/daniel/iji.php — сайт-источник игры, где также есть переводы.


Задача будет достигнута, когда будет получена такая версия Iji, в которой весь отображаемый текст и спрайты-надписи с текстом — на русском языке.

У нас есть:

  • Исходник игры на ГМ5.3, открыто опубликованный автором в интернете на собственной странице.
  • Информация о том, что попытка перевода на русский уже была предпринята, причём при согласовании деталей перевода с автором. Отсюда можно заключить, что авторское разрешение на перевод на русский язык у нас уже есть.

У нас нет:

  • Лицензионного ГМ5.3 для перекомпиляции. Мы используем крякнутый, и не будем испытывать угрызений совести, так как наш проект некоммерческий, не разжигает межнациональной и прочей розни, и в общем всяко попадает под условия использования, известные как "fair use". Помимо того, GM5.3 это типичный пример abandonware, которое уже не купишь официально, при том что даже хотел бы.
  • Возможности просто перекомпилировать под ГМ8.1 — слетит внутренняя логика движка, после 5.3 Овермарс много раз менял движок коллизий, а также имена, параметры, и смысл вызываемых в этом исходнике функций.

Что можно сделать:

  • Взять уже откомпилированную игру и допатчить её до "русского состояния", скажем так. Писать кастомный экстрактор-импортер ресурсов с конвертацией спрайтов в PNG и обратно. Это совсем накладно. После выяснения проблем с длинами текстов это уже совсем неактуально, а делать перевод-огрызок в традициях старых пиратов-русефекаторов я не хочу.
  • Перекомпилировать игру под 5.3, если он появится. Тексты всё равно должны быть вставлены вручную, так как исходник написан совсем без расчёта на локализацию.
  • Портировать исходник на 8.1 либо другую версию ГМ с лицензией. Это потребует вмешательства в код игры, что довольно непросто. Вернёмся к этому варианту в крайнем случае, но пока таких обстоятельств не предвидится.

В абсолютно любом случае, неминуемо нужно будет:

  • Перерисовать спрайтовые шрифты и спрайтовые надписи.
  • Перевести сам текст.

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


In script scr_sabot line 191 pos 14: Unknown function or script: screen_gamma
In script scr_nukedraw line 8 pos 74: Wrong number of arguments to function or script.
In script scr_firekey line 786 pos 14: Unknown function or script: sprite_restore
In script scr_mainmenu line 209 pos 10: Unknown function or script: screen_gamma
In script scr_menutext line 204 pos 6: Unknown function or script: draw_text_sprite
In script scr_sabotcreate line 150 pos 2: Unknown function or script: sprite_restore
In script scr_sound line 33 pos 10: Unknown function or script: sound_frequency
In script scr_topmessage line 29 pos 6: Unknown function or script: draw_text_sprite
In script scr_herosabot line 230 pos 30: Wrong number of arguments to function or script.
In script scr_heromain line 59 pos 30: Wrong number of arguments to function or script.
In script scr_huddraw line 69 pos 51: Wrong number of arguments to function or script.
In script scr_sabotcreate4 line 196 pos 6: Unknown function or script: screen_gamma
In script scr_drawshape line 33 pos 6: Unknown function or script: draw_polygon_begin
In script scr_facecreate line 121 pos 6: Unknown function or script: screen_gamma
In script scr_loadingdestination line 5 pos 6: Unknown function or script: screen_gamma
In script scr_drawtime line 21 pos 10: Unknown function or script: draw_text_sprite
In script scr_zcir line 38 pos 14: Unknown function or script: screen_gamma
In script scr_seczmusicplay line 6 pos 10: Unknown function or script: sound_frequency
In script scr_drawunlocks line 46 pos 2: Unknown function or script: draw_text_sprite
In script scr_sabotcreate2 line 10 pos 10: Unknown function or script: sprite_restore
In script scr_sabotcreate3 line 4 pos 2: Unknown function or script: sprite_restore
In script scr_mainload line 7 pos 2: Unknown function or script: sprite_restore
In script scr_shreddersfx line 26 pos 10: Unknown function or script: sound_frequency
In script scr_loadcuts line 3 pos 2: Unknown function or script: sprite_restore
In script scr_loadmusic line 12 pos 60: Wrong number of arguments to function or script.
In script scr_proximaarrow line 51 pos 10: Unknown function or script: draw_polygon_begin
In script scr_voice line 402 pos 14: Unknown function or script: sound_frequency
In script scr_pausemenudraw line 14 pos 2: Unknown function or script: draw_text_sprite
In script scr_turretchargetell line 3 pos 10: Unknown function or script: sound_frequency
In script scr_cleardraw line 27 pos 10: Unknown function or script: screen_gamma

Оффсеты внутренних GM-ресурсов оригинального (официального) исходника Iji iji_16_6.gmd, 16 617 077 байт, изменён 15 января 2011 г., 14:01:34, взятого с сайта автора 16 февраля 2014 г., 20:34:18

0x006A39 snd_wea_imach (первый звук)
0x70D7DD spr_block (первый спрайт)
0x8DDBC6 bg_tile1 (первый фон)
0x995163 scr_knockdown (первый скрипт)
0xAD4F97 tim_getribbon (первый таймер?)
0xAEC3C7 obj_iji (первый объект)
0xC39FFA rom_main (первая комната)

До первого звука идут какие-то невнятные, возможно зашифрованные данные, а также название игры, автора, и годы работы над игрой.
После последней комнаты возможно идёт Game Information (которой здесь нет), и список всех ресурсов игры с их относительными оффсетами и/или идентификаторами (?).

Слово "первый" здесь означает "первый в файле". Идентификаторы этих "первых" ресурсов могут и не быть равны нулю, так как в ГМ идентификаторы ресурсов инкрементируются вне зависимости от уже удалённых.

Сигнатура, по которой можно искать ресурсы (но не всегда находить именно их) в исходнике ГМ5.3(а?):
0x90 01 00 00
Она может быть признаком либо начала, либо конца (не выяснено) соответствующей структуры данных. В некоторых случаях повторяется в пределах одного ресурса (либо есть ресурсы, которые невозможно идентифицировать через хекс-редактор).

Всего сигнатур в файле 3759. Хотя уникальность сигнатуры в 4 байта и достаточно высока, эта сигнатура используется внутри формата также для других целей, помимо разделения ресурсов — она разделяет ещё и события внутри объектов (возможно и ещё что-то). Кроме того, эти байты могут быть встречены в сыром потоке данных, не являясь метаданными вообще, но соответствуя четырёхбайтовому значению сигнатуры. Поэтому эта величина (3759) вмещает в себя количество всех ресурсов игры, сложенное с количеством событий в объектах, а также количеством неуточнённых разделителей, если таковые есть, и, наконец, с количеством "сырых" неактуальных совпадений с потоками данными ресурсов. В любом случае она преувеличена, и дальнейший анализ этого пока не нужен.

Кроме того, комнаты не разделяются этой сигнатурой. После первой комнаты более 20 этих сигнатур, но они там не имеют функции разделителя. Комнаты разделяются сигнатурой 0x08 02 00 00 16 00 00 00. Что-то неуточнённое внутри них (объекты?) разделяется сигнатурой 0x80 14 00 00, но не всегда. Пока что оставлю этот анализ.

Регулярное выражение для выцепления всех текстов с целью проверки их на влезание в диалоговое окно (три строки по 65 символов и четвёртая — 63 символа (на последних двух расположен элемент интерфейса)):

text[d+]="[^"]*"

И соответствующий приемлемый конструктор с экранированным литералом (дичь, правда?) для объекта BCL .NET (проверено в 2.0):

new global::System.Text.RegularExpressions.Regex("text\\[\\d+\\]=\"[^\"]*\"");

Вспомогательная программа IjiMessageBox для автоматической проверки:

https://dl.dropboxusercontent.com/u/75034586/Translations/Iji/IjiMessageBox.exe

Принимает на вход iji scripts.gml (экспортированные скрипты из исходника), и пишет результат проверки в Result.txt после нажатия кнопки Batch. Либо можно проверять выбранный текст прямо в окне. Или даже переводить прямо там. Поддерживаются два типа разбиения — автоматическое самим компонентом TextBox из WinForms, и моё написанное с нуля "правильное". Естественно, первым типом текст разбивается автоматически при вводе.


Что нужно исключить при фильтровании тупо-забранных-из-кавычек текстов:
scr_sound("...")

Что нужно обязательно забрать:
.textid="..."
.topmessage="..."
loc="..."

(список видимо ещё неполный, но я буду смотреть по остаткам от фильтрации scr_sound, а не забирать только то, что в белом списке)

Trilby's Notes

Около десяти лет назад, я в очередной раз попытался найти в интернете какой-нибудь новый хоррор, и наткнулся на "5 Days a Stranger". Так я, в одну секунду, открыл для себя серию про Трилби, Бена "Ятзи" Крошоу, движок Adventure Game Studio и то, что сейчас называют "инди". Хотя тогда, конечно, я этого слова не знал, и мысленно наклеил на папку с игрой ярлычок "любительский хоррор". Отдавая себе отчет, что при этом она разделывает под орех большую часть профессионально сделанных в этом жанре игр.

Этот пост посвещен третьей игре в серии, перевод которой я только что закончил. Начинать играть с третьей нежелательно, но в принципе, возможно. В отличие от первых двух частей, это не "Point-and-click-adventure", а квест со вводом с клавиатуры, как в ранних играх Сьерры. Она достаточно сильно отличается от остальных частей. Она считается лучшей среди них.

читать дальше >>

GWBW переведена на русский.

Следующий пост посвящён не большой но очень аккуратной и атмосферной игре GODS WILL BE WATCHING. А точнее её переводу на русский язык. 

Напомним: игра сделана за 2 дня для Ludum Dare 26.

15 августа 2013 года завершилась кампания по сбору средств на новую игру)
(было собрано больше 20,000 EUR)
http://www.indiegogo.com/projects/gods-will-be-watching
Примерная дата выпуска новой игры февраль 2014.


Текущий перевод появился благодаря помощи и правке человека под ником Mercury (Михаил Меркурьев), за что ему огромезное СПАСИБО. Человек фактически выполнил перевод заново и благодаря ему он больше не выглядит как моя первоначальная версия, с кучей корявых конструкций и ошибок. Программная часть, шрифты и изначальная инициатива multo_mane (multomane[@]mail.ru). Спасибо также моему отцу, Coauctor, woodroof и Ачика Бекчик за советы, предложения и исправление части ошибок и нескольких корявостей. А также zhynna благодаря которому я о ней Узнал и всем тем кто активно наблюдал и поддерживал нас. Мы очень рады вашей помощи и вниманию! -)





ИГРАТЬ:

RUSSIAN
ENGLISH

На Сайте автора можно найти и другие очень даже съедобные вещи. 
http://www.deconstructeam.com/en


читать дальше >>