Как начать разработку игр на C с использованием Android NDK?

О Unity игрового движка: Да его не оптимизирован другие играх двигателей , но опять же это зависит и его постоянно развивается и становится все лучше и лучше, но у НУ нужно оптимизировали игры для андроид устройств , потому что есть тонны андроида производителей и несколько GPU, так что вы нужно применить несколько текстурных компрессий . Обвинение в единстве или любом игровом движке ради этого вам не поможет. Я использую Unity уже 5 лет, мы разработали и портировали несколько игр в Unity для Android версии 2.1 до последней версии, они прекрасно работают.

Начало разработки игр для Android C Книга для справки.

Да, вам нужно изучить openGL Введение в OpenGL для программистов игр

Если вы программист приложений для Android, который задумывается о разработке игр, скорее всего, вы планируете писать код на Java. Если вы ветеран разработки игр, который думает о переносе игр на Android, скорее всего, вы предпочитаете делать все на C .

Нативный код — это то, что нужно, если ваша игра должна работать как можно быстрее. Мы только что выпустили четвертую редакцию нашего Native Development Kit для Android, которая включает ряд улучшений, которые особенно полезны для разработчиков игр. Используя NDK, вы можете скомпилировать свой код в общую библиотеку, обернуть его в тонкую оболочку Java для управления событиями ввода и жизненного цикла и выполнять всю тяжелую работу в C с помощью обычных API OpenGL ES. Начиная с версии 4, вы также можете рисовать непосредственно в пиксельные буферы растрового изображения Java из собственного кода, что должно быть быстрее, чем загрузка растровых изображений, поскольку GL-текстуры каждый кадр для 2D-игр, которые хотят создавать свои собственные композиции. Версия 4 также (наконец-то!) Включает поддержку gdb для отладки вашего собственного кода на устройстве.

Вы должны знать, что при использовании NDK у вас нет доступа к API-интерфейсам Android Framework. Например, невозможно воспроизвести аудио из C (хотя мы объявили в Google I / O о своем намерении поддерживать OpenSL ES в будущем). Некоторые разработчики используют AudioTrack API для совместного использования прямого буфера с нативным кодом, который смешивает и генерирует поток PCM на лету, а многие вызывают из C интерфейс Java SoundPool . Просто имейте в виду, что для этого типа работы необходим переход через JNI обратно в код Java.


Пожалуйста, просмотрите следующую статистику:

На этом изображении показан наиболее распространенный SDK, установленный на телефонах и планшетах Android, используемых пользователями AppBrain SDK по состоянию на 19 января 2016 года.

Это ясно показывает, что диапазон целевых устройств (устройства низкого уровня, предполагающие, что устройства низкого уровня работают на более старых версиях Android) в мире на сегодняшний день составляет всего 7%. Так что я не вижу твоей идеи перехода от игровых движков, таких как Unity, Unreal и игровые фреймворки, так как Cocosx в любом случае выгоден.

Следующие вещи, которые вам в любом случае понадобятся для начала:

  • Свободно владеет C . В настоящее время большая часть разработки игр (для ПК и игровых приставок) ведется на C , так что вам лучше освоить язык. Знание синтаксиса и компиляция «Hello world» не достаточно хороши. Класс в колледже не собирается сокращать это также. Я предлагаю сразу же поразить книги.
  • Основная трехмерная линейная алгебра. Как программист начального уровня, вы, скорее всего, поначалу будете интенсивно работать над высокоуровневым игровым кодом. Чтобы делать вещи эффективно, вам нужно хорошее понимание основ трехмерной линейной алгебры.
  • Убедитесь, что вы знаете свои точечные и перекрестные произведения, как их рассчитать, но, самое главное, что они представляют и когда вы должны их использовать. Вам должно быть удобно работать с относительными системами координат и матрицами как преобразованиями (мне все равно, если вы знаете формулу для матрицы вращения, просто знаете, как ее использовать).
  • Расчет, если объект в мире находится в пределах определенного расстояния от игрока и в пределах определенного угла его направления прицеливания, должен быть близок ко второй природе.
  • Просмотрите свои книги по линейной алгебре из колледжа или Google » Математика для 3D-программирования игр и компьютерной графики «

Это оно! Это все, что вам действительно нужно, чтобы начать. Если вы читаете это онлайн, то я предполагаю, что у вас также есть хороший, быстрый компьютер, модем и некоторая форма онлайн-общения. Я надеюсь, что этот ответ поможет вам. Конечно, есть еще один элемент, который я не обсуждал, это талант. Вы должны быть хорошим программистом, обладающим творческими навыками решения проблем. Я полагаю, вы думаете, что у вас это есть, потому что иначе вы бы все равно не читали.

# ХБК : «Удачи и начинай писать код приключений сегодня!»

0

Ура! Вы первые нашли эту информацию, сделайте доброе дело, поделитесь ей в: