2009-07-24 9 views
9

Estoy acostumbrado a desarrollar aplicaciones comerciales y de referencia. Ahora tengo que hacer un juego para iPhone. ¿Qué consejos puedes compartir para ayudarme con:¿Cuáles son los "errores" al desarrollar un juego de iPhone?

  1. entender el alcance del proyecto
  2. la definición de los entregables
  3. especificando el juego y otros parámetros
  4. estimar el esfuerzo de desarrollo
  5. probar la juego

Una gran pregunta, lo sé. ¡Gracias!

+1

El proceso de revisión de la tienda de aplicaciones –

+1

Si está pidiendo pistas y consejos, ¿debería ser Wiki de la comunidad? – Xetius

Respuesta

2

La principal diferencia entre las aplicaciones de negocios y los juegos, especialmente en dispositivos móviles, es la importancia del rendimiento. Una aplicación que coloca un formulario y espera la entrada del usuario probablemente no esté haciendo nada mientras tanto. Un bucle de juego, por otro lado, va todo el tiempo y probablemente lo haga mucho. Los programadores empresariales no están acostumbrados a pensar en estos términos, pero los juegos reducen la potencia de la batería y, créanlo o no, la forma en que implementen su juego tendrá un gran efecto sobre la rapidez con que se extrae esa batería.

Entonces, una pregunta es, ¿qué es este juego que "tienes que" desarrollar? Si es sudoku, no se preocupe. Si se trata de una batalla espacial en 3D en tiempo real, esa es otra historia.

Si sus aplicaciones comerciales estaban en el iPhone, probablemente haya utilizado el 100% de Objective-C. (Si estaba haciendo aplicaciones C# o Java en escritorios, entonces bienvenido a administrar su propia memoria). Hay quienes le dirán que la administración del tipo de tiempo de ejecución de Objective-C es demasiado lenta para juegos complejos. La gente ciertamente hace juegos OK usando Cocos2D y otros motores, pero nuevamente depende del juego. Hay desarrolladores profesionales que solo trabajarán con C++ o incluso directamente C.

36

Mi respuesta no está siguiendo la respuesta de la metodología de cascada que estabas buscando porque creo que necesitarás aprender la habilidad de la programación de juegos antes de poder planificarla, diseñarla, implementarla y probarla. La programación de juegos es MUY diferente a la programación comercial y a un campo completamente diferente en sí mismo.

Debido a su falta de experiencia en la programación de juegos, hay algunos conceptos que deberá aprender antes de poder programar un período de juego, y mucho menos uno en el iPhone.

Algunas de estas cosas dependerán de si está programando un juego 3D o eligiendo el estilo de plataforma 2D.

OpenGL ES La primera cosa que hay que aprender es la OpenGL ES programming language. Esto es básicamente una API 3D que te permite hacer dibujos de primitivas en 3D. Todavía necesitará usar esto si está codificando un juego en 2D, ya que es rápido debido al uso de la GPU para la aceleración. Hay algunos buenos tutoriales en Google con los que debe comenzar.

Vector Matemáticas Si usted está haciendo nada en 3D, que tendrá que aprender sobre matemáticas 3D vector, vectores se utilizan básicamente para todo en juegos, dirección de observación de la cámara, la posición de los caracteres, la velocidad, la detección de colisiones, etc. Los vectores 2D (x, y) menos el componente z todavía se necesitan para la programación de juegos en 2D.

Detección de colisiones ¿Cómo sé cuando mi pelota golpea la pared? La respuesta es detección de colisión. Hay muchas formas de detección de colisiones como una esfera a otra, AABB, OOBB, convexo Cascos, malla de triángulos, etc.

AI ¿Cómo puedo obtener el enemigo para atacar a mi personaje del jugador? La inteligencia artificial es otro gran campo esencial para dar NPC/Enemigos la capacidad de tomar decisiones inteligentes. La inteligencia artificial puede ser simple, como en el caso de las declaraciones else, pero por lo general requiere que las máquinas de estados finitos o la lógica difusa sean efectivas.

Pathfinding Si desea mover un personaje del punto A al punto B, evitando enemigos y obstáculos en movimiento, tendrá que utilizar un algoritmo de búsqueda de caminos. Una estrella (A *) es una de las más populares.

Scene Graph Si usted desea tener 10-20 + enemigos en pantalla a la vez, tendrá que codificar un escenario gráfico para administrar el dibujo dinámico, la lógica y la creación y eliminación de recursos. Si no sabes qué polimorfismo es necesario, debes saberlo ya que es esencial que los objetos de tu juego se adhieran y se vincule con el gráfico de escena.

Física posición, velocidad, aceleración, gravedad y los rayos están representados usando vectores y puede que tenga que poner al día su matemáticas física con el fin de codificar cualquier juego. Comience con la Segunda ley del movimiento de Newton F = MA (Fuerza = Masa * Aceleración). Un motor de física de código abierto como Bullet, ODE, Newton, Tokamak facilitará las cosas, lo que significa que no necesitará escribir estas reglas de física usted mismo.

Objetivo-C++ Esto es opcional, aunque se recomienda. Si no conoces C++, esto es esencialmente una mezcla de C++ y Objective-C. Tiendo a usar C++ para el motor de juego central y la programación debido a la velocidad de C++ y la disponibilidad de bibliotecas de terceros en C++.

sonido Si necesita el sonido que sólo puede seguir adelante y utilizar los marcos de audio simples que Apple proporciona, sin embargo audio posicional 3D va a requerir algo mejor. Recomiendo aprender el SDK de FMOD para iPhone. Como @Stowelly mencionó, FMOD requiere una licencia para la distribución comercial, pero hay otras que puede buscar que son libres de regalías.


utilizar un motor de juego Hay motores de juegos disponibles para el iPhone en el momento en que lo harán mucho más fácil para que usted pueda obtener un juego en marcha, en su caso, esto será más rápido a pesar de que se sigue Necesito aprender los conceptos que mencioné anteriormente.

Éstos son algunos motores de juego que conozco:

Unity3D Esto probablemente el más popular, que yo sepa. Unity es un motor de juegos para PC/Mac que le permite escribir código en la Mac y compilar para Windows/Linux/Mac OS X. Dudo que la construcción de iPhone sea compatible directamente con otras plataformas, me imagino que estaría restringido al iPhone si usted comenzó un nuevo proyecto. Sin embargo, este motor tiene un costo de implementación comercial de $ 199- $ 399.

Cocos2D Éste es un motor de juego 2D de código abierto que podría ser útil para una gran cantidad de juegos. Vale la pena echarle un vistazo. Alojado en el código de Google.

Éstos son algunos otros de revisar:

Ston3D for iPhone

OOlong Engine

SIO2Engine

iTGB for 2D Games

+2

Buena respuesta. No tengo idea de por qué se votó negativamente, aunque el OP no parece saber lo que quieren, aparte de "un juego de iPhone" – Xetius

+0

un consejo, si planeas publicar tu juego en la tienda de aplicaciones, el sdk de FMOD requerirá una licencia ..... pero en general, excelente información :) – Stowelly

+0

Usted menciona que hay Game Engines disponibles para el desarrollo de iPhone, ¿podría enumerar algunos que sepa o recomiende? - Gracias. – Shrill

Cuestiones relacionadas