¿Necesito un motor de juego para hacer un juego de iPhone?

Tienes muchas opciones al hacer juegos.

El más popular es probablemente el motor de Unity.
También hay irreal.
Y algo llamado Cocos2d.
Apple también está convirtiendo SceneKit en una especie de motor de juego. Con otras API que manejan el juego, etc.

En estos casos, está utilizando la biblioteca de otra persona y está creando su contenido en la parte superior.

Pero si quieres ir a la vieja escuela, puedes escribir directamente el código que hace las cosas del motor.
Esto requiere

  • Entrada.
  • Simulación de entidad e IA
  • Representación.
  • Carga de activos

Si solo te importa hacer juegos, esas cosas son bastante aburridas. Pero si te gusta la ingeniería interesante, entonces escribir tu propio código es bastante bueno. Personalmente me distraí increíblemente escribiendo el código del motor y pasé cero horas haciendo el juego real. #mala idea

El renderizado es uno de los aspectos más desafiantes.
Los juegos tienen que representar una imagen completa en una fracción de segundo para generar una animación fluida. Por lo tanto, la representación de hardware es imprescindible.

Esto significa usar una API como OpenGL o Metal para manejar la GPU.

Los juegos en iOS se desarrollan utilizando OpenGL. Trabajar con OpenGL es una tarea intensiva. Necesita crear un contexto OpenGL, cargar datos de malla en los Buffers OpenGL. Debe lidiar con el lenguaje de sombreado GLSL para decirle a los sombreadores de vértices y fragmentos, que residen en la GPU, cómo renderizar sus objetos.

Renderizar un Sprite es un poco diferente a renderizar texto. Renderizar un objeto 3D es diferente a renderizar un Sprite. En resumen, es mucho trabajo poner en marcha estas operaciones. Sin mencionar si quieres tener efectos de Física y Detección de Colisión en tu juego.

Por eso existen los motores de juego. Se ocupan de toda la infraestructura subyacente de OpenGL por ti, para que puedas concentrarte en desarrollar el juego en sí.

Entonces, ¿necesitas un Game Engine para desarrollar un juego, la respuesta es No. Puedes ocuparte de toda la infraestructura de OpenGL tú mismo. Sin embargo, no creo que quieras ir por ese camino. Recomendaría usar un motor de juego en su lugar.

Un buen motor de juego para usar es Cocos2D.

Eso depende de qué tipo de juego estés construyendo.

Si el juego requiere física, detección de colisión, IA … es mejor que uses un motor de juego.

Si su mecánica de juego es simple y no requiere esas cosas, es completamente posible construirla con tecnología como HTML5 a través de un lienzo o HTML / CSS / JS (aunque una biblioteca gráfica, como Processing, definitivamente ayudaría).