Мой ответ не соответствует ответу методологии водопада, который вы искали, потому что я думаю, вам нужно будет изучить навыки программирования игр, прежде чем вы сможете планировать, проектировать, внедрять и тестировать его. Игровое программирование ОЧЕНЬ отличается от бизнес-программирования и от целой другой области как таковой.
Из-за того, что у вас нет опыта в программировании игр, вам нужно будет изучить несколько концепций, прежде чем вы сможете программировать игровой период, не говоря уже об одном на iPhone.
Некоторые из этих вещей будут зависеть от того, программируете ли вы 3D-игру или придерживаетесь стиля 2D-платформы.
OpenGL ES Первое, что вам нужно будет изучить, - это язык программирования OpenGL ES. По сути, это 3D API, который позволяет рисовать трехмерные примитивы. Вам все равно нужно будет использовать это, если вы кодируете 2D-игру, поскольку это быстро из-за использования графического процессора для ускорения. В Google есть несколько хороших руководств, с которых вам следует начать.
Векторная математика. Если вы занимаетесь трехмерной математикой, вам нужно будет изучить трехмерную векторную математику, векторы в основном используются для всего в играх, направления взгляда камеры, положения персонажей, скорости, обнаружения столкновений и т. д. 2D-векторы (x, y) без компонента z по-прежнему необходимы для программирования 2D-игр.
Обнаружение столкновения Как я узнаю, когда мой мяч ударяется о стену? Ответ - обнаружение столкновений. Существует множество форм обнаружения столкновений, таких как Sphere to Sphere, AABB, OOBB, выпуклая оболочка, треугольная сетка и т. д.
AI Как заставить врага атаковать моего персонажа? Искусственный интеллект - еще одна важная область, позволяющая неигровым персонажам / врагам принимать разумные решения. ИИ может быть простым, например, с операторами if else, но для его эффективности обычно требуются конечные автоматы или нечеткая логика.
Поиск пути. Если вы хотите переместить персонажа из точки A в точку B, избегая врагов и движущихся препятствий, вам необходимо использовать алгоритм поиска пути. Звезда (А *) - одна из самых популярных.
График сцены Если вы хотите, чтобы на экране одновременно отображалось 10-20 + врагов, вам нужно будет закодировать граф сцены для управления динамическим отрисовкой, логикой, а также созданием и удалением ресурсов. Если вы не знаете, что такое полиморфизм, вам необходимо знать его, так как это важно для ваших игровых объектов, и он связан с графом сцены.
Физика. Положение, скорость, ускорение, гравитация и лучи - все они представлены с помощью векторов, и вам может потребоваться освежить свои знания математической физики, чтобы закодировать любую игру. Начнем со Второго закона движения Ньютона F = MA (Сила = Масса * Ускорение). Физический движок с открытым исходным кодом, такой как Bullet, ODE, Newton, Tokamak, упростит задачу, а это значит, что вам не нужно будет писать эти правила физики самостоятельно.
Objective-C ++ Это необязательно, но рекомендуется. Если вы не знаете C ++, это, по сути, смесь C ++ и Objective-C. Я предпочитаю использовать C ++ для основного игрового движка и программирования из-за скорости C ++ и доступности сторонних библиотек на C ++.
Звук. Если вам нужен звук, вы можете просто пойти дальше и использовать простые аудиофреймы, которые предоставляет Apple, однако для трехмерного позиционного звука потребуется что-то получше. Я бы порекомендовал изучить FMOD SDK для iPhone. Как упоминал @Stowelly, FMOD требует лицензии на коммерческое распространение, но есть и другие, которые не требуют лицензионных отчислений.
Используйте игровой движок. В настоящее время для iPhone доступны игровые движки, которые значительно упростят вам запуск игры. В вашем случае это будет быстрее, хотя вам все равно придется учиться. концепции, о которых я упоминал выше.
Вот некоторые известные мне игровые движки:
Unity3D Это, вероятно, самый популярный из известных мне. Unity - это игровой движок для ПК / Mac, который позволяет вам писать код на Mac и компилировать для Windows / Linux / Mac OS X. Я сомневаюсь, что корпус iPhone совместим напрямую с другими платформами, я предполагаю, что вы будете ограничены iPhone, если вы начали новый проект. Однако коммерческое развертывание этого движка стоит от 199 до 399 долларов.
Cocos2D. Это движок для 2D-игр с открытым исходным кодом, который может быть полезен для многих игр. Стоит взглянуть. Размещено в коде Google.
Вот еще несколько вариантов, на которые стоит обратить внимание:
Ston3D для iPhone
OOlong Engine
SIO2Engine
iTGB для 2D-игр
person
Community
schedule
24.07.2009