Четверг, 28 Марта 2024, 17:47

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Форум игроделов » Ваши проекты » Проекты в разработке » ATOM Limited Demo (C++, OpenGL, GLSL)
ATOM Limited Demo
AkyltistДата: Среда, 01 Декабря 2010, 05:08 | Сообщение # 41
заслуженный участник
Сейчас нет на сайте
Quote
Поэтому я планирую сделать собственный бинарный формат для хранения текста

1. Свой собственный формат тоже придется считывать и собственно подгонять под ANSI, но вероятнее всего бинарные данные будут соответствовать символьным данным клавиатуры стандарта (128) так что возникает вопрос о каком текстовом редакторе идет речь, тот который юникод все равно будет сохранять в ANSI? А зачем?

Code
int WideCharToMultiByte(
   UINT CodePage,  
   DWORD dwFlags,  
   LPCWSTR lpWideCharStr,  
   int cchWideChar,  
   LPSTR lpMultiByteStr,  
   int cbMultiByte,  
   LPCSTR lpDefaultChar,  
   LPBOOL lpUsedDefaultChar  
);

Code
int MultiByteToWideChar(
   UINT CodePage,
   DWORD dwFlags,
   LPCSTR lpMultiByteStr,
   int cbMultiByte,
   LPWSTR lpWideCharStr,
   int cchWideChar
);

Допустим есть юникод строка или ее надо загрузить из файла и после вывести на рендер, так почему бы не конвертнуть ее в нужный чарсет при загрузке или установке и уже внутри движка работать с обычным ANSI???

WXZRWДата: Среда, 01 Декабря 2010, 15:42 | Сообщение # 42
Thousand faces conspiration
Сейчас нет на сайте
Quote (Akyltist)
1. Свой собственный формат тоже придется считывать и собственно подгонять под ANSI, но вероятнее всего бинарные данные будут соответствовать символьным данным клавиатуры стандарта (128) так что возникает вопрос о каком текстовом редакторе идет речь, тот который юникод все равно будет сохранять в ANSI? А зачем?

Свой формат позволит установить контроль за поддержкой языков, так как ввод будет допустим только для одобренных разработчиком (то есть мною) кодировок и соответственно, языков. Это даст гарантию что текст будет возможно вывести на всех машинах одинаково, поскольку юникод тысячи символов, что значит что потребуется при использовании юникода конвертация в поддерживаемый чарсет. Что самое главное, это даст мне больше контроля над поддержкой языков в движке, образно говоря, в движок будет зашит набор поддерживаемых чарсетов, вместо юникода будет своя кодировка, которая будет для движка нативная, конвертацию в формат движка я обеспечу прямо из АНСИ формата, спецсимволы будут заноситься в виде ХТМЛ кодов, для чего также в конверторе будет список поддерживаемых спецсимволов - вобщем, будет возможно сделать локализацию для определенных языков. Впрочем, я уверен, что для России достаточно будет русского, в крайнем случае - я всегда смогу добавить и другие языки, тогда пользователям потребуется лишь обновить версию движка, уверен - это не проблема, Интернет есть у многих.

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

DevelДата: Среда, 01 Декабря 2010, 18:22 | Сообщение # 43
частый гость
Сейчас нет на сайте
Похоже для начала надо как следует разобраться - что такое ANSI строка и Wide строка. smile А уже потом придумывать формат для хранения строк. Скорее нужен не формат, а правильный виевер для анси строки (а она по сути уже бинарная), бинарная строка может хранить и wide текст, все зависит от того, как воспринимает данные твоя программа.
WXZRWДата: Среда, 01 Декабря 2010, 21:08 | Сообщение # 44
Thousand faces conspiration
Сейчас нет на сайте
Quote (Devel)
Скорее нужен не формат, а правильный виевер для анси строки (а она по сути уже бинарная), бинарная строка может хранить и wide текст, все зависит от того, как воспринимает данные твоя программа.

Я может быть по-русски не очень точно сказал, но с анси строкой проблем нет. Ни с чтением из файла TXT, ни с отображением. Вопрос в том что текстура шрифта может содержать 256 символов, то есть таблица 16*16, это значит что в CreateFont сейчас можно подать ANSI_CHARSET, BALTIC_CHARSET, и RUSSIAN_CHARSET. Это то что мною одобрено сейчас на мое личное усмотрение и протестировано. Я могу без проблем сохранить в Ноутпаде TXT файл в кодировке ANSI набрав туда текст по-русски, который правильно отображается в Ноутпаде, так как у меня поставлена сейчас русская локаль в Винде. Этот текст читается и выводится на экран без проблем, при указании RUSSIAN_CHARSET при генерации шрифта движком.

Что касается Unicode wide string (wchar_t), могу сказать - я с Юникодом не работал. Возможно позднее я обращусь за консалтингом на американские или западные форумы и этот вопрос будет решен.

Поэтому сейчас локализованный текст будет храниться либо в TXT файле в кодировке ANSI, либо я сделаю свой формат.

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

Для того чтобы разработчику не требовалось ставить локаль в Винде и в принципе даже раскладку языка - предполагается что локализуемый текст будет набираться в стороннем редакторе и храниться в Юникоде, после чего переводиться в ANSI и HTML код национальных символов (то есть те символы, которые не находятся на интервале от 32 до 127 в ANSI), после чего движком будет читаться и парситься либо такой вот TXT/HTML, либо
данный текст и коды будут сконвертированы в формат движка в виде который будет соответствовать таблице 16*16 = 256, то есть в виде например char. То есть Юникод и wide char (wchar_t) использоваться движком в ближайшее время не будет вообще, поскольку я предпочту работать над другими частями, хотя бы ИИ, чем разбираться с Юникодом.

WXZRWДата: Четверг, 02 Декабря 2010, 15:43 | Сообщение # 45
Thousand faces conspiration
Сейчас нет на сайте
Дополнительно еще обдумал все это дело с локализацией, и поскольку некоторые источники утверждают что при создании шрифта автоматически средствами WINAPI (то есть через CreateFont), один и тот же чарсет может быть разным на разных машинах и разных версиях Винды, решил добавить возможность генерировать шрифт в текстуру с помощью утилиты, которую я позже сделаю (не проблема, все нужное уже есть), то есть для локализуемого текста будет возможно загружать заранее подготовленные шрифты из текстур, в таком случае локализованный текст будет корректно отображаться везде. Что касается автоматической генерации, то эта возможность была предусмотрена на тот случай, если в папке движка были удалены и текстуры, и ТТФ файлы шрифтов, для того чтобы могла работать консоль и ГУИ на английском языке, при любых обстоятельствах, так как при всех чарсетах интервал с английским алфавитом от 32 до 127 зарезервирован - то есть, будет работать везде.

Локализованный текст на данный момент будет грузиться из ТХТ файла в кодировке ANSI, при этом локализатор должен будет сам поставить нужную локаль в Винде, перезагрузить после этого ПК, также, если нужно - добавить раскладку на нужном языке, сгенерировать с помощью утилиты требуемый ему шрифт, то есть решать все эти проблемы самостоятельно. Либо может быть есть редакторы, которые умеют сохранять текст не на английском в ANSI независимо от локали, но Ноутпад так не умеет. То есть все будет в принципе по обычному пути, как это сделано во многих других движках.

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

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

WXZRWДата: Пятница, 10 Декабря 2010, 18:31 | Сообщение # 46
Thousand faces conspiration
Сейчас нет на сайте
Открыл сайт для временного использования, как резервный источник информации из первого поста данной темы. Не содержит ничего нового, просто копия первого поста этой темы. Будет обновляться по мере продвижения работ, но все же обновления сайта маловероятны, по одной простой причине - лень или отсутствие времени.

Сайт сделан на скорую руку и выглядит абсолютно никаким. Нормальный сайт будет делаться позднее, на платных хостинге и домене.

Линк : http://atom.ueuo.com/

WXZRWДата: Четверг, 23 Декабря 2010, 14:22 | Сообщение # 47
Thousand faces conspiration
Сейчас нет на сайте
В связи с тем, что название темы иногда вводило посетителей в заблуждение, относительно предоставления публике движка ATOM engine, данная тема была переименована и перенесена. Это обусловлено тем что я предполагал предоставление только и только демо-версии шутера, делающегося на моем собственном движке ATOM engine, который предназначен для внутреннего использования и не предоставляется.

Я назвал раньше эту тему ATOM engine, поскольку у самого проекта шутера наименования нет. Я не предполагал что это может привести к заблуждениям, и также думал что нахождение темы в разделе "Разработка движков" обусловлено наличием факта разработки своего движка независимо от того, поставляется он для публики или нет.

Я сожалею о том что данное недоразумение имело место быть, но в данный момент ситуация исправлена. Первый пост будет обновлен.

Форум игроделов » Ваши проекты » Проекты в разработке » ATOM Limited Demo (C++, OpenGL, GLSL)
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг