Пока, как видно, получается что-то дельное писать раз в две недели, вместо запланированного раз в неделю. Но, на самом деле, Старбаунд очень интересный. К счастью, я его уже прошла 
Всем привет, решила поделиться прогрессом за прошедшие две недели! Для тех кто что-то в чём-то понимает я выкладываю , для тех кто не хочет читать, я . Ну а для тех, кто хочет знать больше, я пишу остальное.
Как можно сразу заметить, общий прогресс до релиза (кстати, я наконец-то определилась с обозначением версий клиента, но это не очень важно) продвинулся с 10% до 20%. В первую очередь это связано не с количеством написанного кода, а с тем фактом, что мне удалось решить несколько очень важных проблем.
Во-первых, я до конца продумала, как будет работать клиентская логика и как клиент будет работать с сетью. Часть из этого даже реализовано в коде, но там слишком много мелочей, которые нужно просто по порядку решать, поэтому к общей клиентской логике всего +10% от прошлого значения.
Во-вторых, сделана основа системы рендера чанков. Но пока её некуда встроить и тестировать, поэтому можно сказать, что она закончена всего на 30%. Тем не менее, проблема как это сделать была, и кажется я её решила.
Ну и была очень большая проблема, которую я долго не знала как решить (в основном из-за отсутствия опыта в этой сфере) — рендер шрифтов. За последние несколько дней я нашла решение этой проблемы и решила её, о чём хотела бы рассказать поподробнее. Если честно, я до сих пор не уверена в том, как именно гиганты игровой индустрии решают проблемы рендера шрифтов. По моему мнению есть два варианта: отображать векторный шрифт и отображать заранее подготовленный шрифт.
Первый вариант работает как у вас в браузере - шрифт масштабируется, может быть целая куча разных шрифтов и всё такое. Проблема лишь в том, что это ужасно тяжело и для каждого размера шрифта нужно рендерить его заново, повышая нагрузку на видеопамять (так как нам нужно сохранять больше текстур шрифтов в памяти). Ещё один минус - векторный шрифт можно отображать только в интерфейсе. Например, на табличке его отрендерить невозможно или требуется заранее сохранять текстуру с ним, и тогда получаются такие же минусы как у второго варианта.
Второй вариант - как в майнкрафте или сейчас на ГК. То есть мы заранее с помощью специальной программы делаем текстуру с нужными символами и отображаем их там где надо. Плюс здесь единственный - быстродействие, такие шрифты очень мало нагружают видеокарту, требуют фиксированное количество видеопамяти. Минусов огромное количество: нельзя масштабировать (даже при уменьшении очень портится качество); все символы, которые мы хотим отображать, должны быть заранее отрендерены в текстуру (поэтому ГК не может "отображать" символы кроме русского и английского языков); у нас есть только один шрифт, который мы заранее подготовили; при отображении на табличке мы получаем ужасно плохое качество. Зато очень просто и все это поддерживают. Этим способом мне предлагает рендерить шрифты jME (наш новый движок).
Есть ещё один способ, который я нашла на просторах интернета и решила им воспользоваться: альфа-тестирование. Вдаваться в технические подробности я не хочу, так как всё равно меня мало кто поймёт, но кому очень интересно . Я не уверена в том, как широко этот способ применяется, знаю лишь что с 2007 года он поддерживается движком Source и есть сторонняя реализация для Unity. Вкратце всё очень просто: мы берём плюсы первого и второго, и убираем все минусы! То есть мы получаем возможность масштабировать шрифт как нам нужно, но при этом эта операция совершенно не тяжелая! Единственное, что нам нужно - заранее подготовить текстуру для шрифта по весьма сложному алгоритму. Этот алгоритм я реализовала прямо в клиенте и подготавливать заранее шрифты не нужно, то есть можно отображать любой шрифт, какой захочется, клиент сам подготовит его!
— тестовый пример из нового клиента. Все варианты надписей (кроме Frames per second...) отрендерены из одной текстуры, размер текстуры 32х32 пикселя на одну букву. Здесь видно явные преимущества технологии: все варианты масштабирования выглядят приемлимо (особенно, меньше 100%. При этом можно улучшить качество подобрав другой шрифт или увеличив разрешение текстуры); можно выбрать любой шрифт; можно отображать даже греческие символы!
В общем говоря, решение третьей проблемы значительно сдвинуло меня в работе над интерфейсом, так как раньше я не знала, как это качественно решить. +5% к интерфейсу меню, +5% к интерфейсу в игре, +5% базовой части графики (так как проблема с рендером табличек тоже решена).
В сумме, за последние 2 недели я нашла решения для трёх проблем. Надеюсь, дальше пойдёт проще, так как по сути реальных проблем осталось очень мало (или я их не вижу), а значит нужно просто писать код. Больше кода! К счастью, Старбаунд и Ассассинс Крид я прошла

ПС: Делать такой проект с нуля без опыта в этой сфере УЖАСНО СЛОЖНО! Но обратного пути у меня нет: вперёд и только вперёд!