¿Debo hacer un motor de juego para hacer juegos con C ++?

Si está ansioso por aprender los conceptos del motor del juego y cómo hacer un juego … no hay nada, pero primero construya su propio motor de juego 2D y luego actualícelo a una dimensión adicional, luego haga 3D.

Los cuatro conceptos básicos principales que debe cubrir: Motor de matemáticas , Motor de física , Motor de IA / Simulación , por último , pero no menos importante, Motor de renderizado (además Motor de secuencia de comandos). Busque en Internet, lea libros electrónicos o libros y descargue motores populares de juegos de código abierto y revise algunos códigos comprensibles y aprenda algunas técnicas de optimización y trucos, no trucos 🙂.

Necesita al menos un conocimiento inteligente pero aplicable sobre la orientación a objetos, la orientación de datos y los patrones de diseño tanto estructurales como de procedimiento.

Sí, si eres un estudiante rápido / profundo, entusiasta, creativo y altamente comprometido, en lugar de usar un motor de juego … construye un motor de juego de unidad simple usando C / C ++ con el uso de API / Bibliotecas requeridas (DirectX / Vulkan, etc.), e intenta construye un juego interesante además de eso. Luego avance a otro nivel, integre componentes y técnicas avanzadas.

Conclusión: Diseñe y desarrolle un motor de juego con creatividad. Dado que, para un juego 2D / 3D, el rendimiento del hardware es un factor crítico, si tiene un diseño y herramientas eficientes, lo que necesita a continuación es una mejor optimización (pedal al metal), por lo tanto, hoy en día prácticamente podemos lograrlo solo usando una mezcla de C / C ++ más lenguajes de ensamblaje .

PD: ( podría haberte dado una respuesta simple, pero anteriormente te he dado algunas bases para tu comodidad, lo siento por mi inglés profesional 😉 )

Enlaces de recursos útiles:
Libros y cosas

http://www.gameenginebook.com/

Desarrollo de motores de juego

Game Engine Black Book: Wolfenstein 3D

Página de libros de gráficos de representación en tiempo real

Programación de motor de juego 3D: te ayuda a construir el motor de juego de tus sueños.

NVIDIA GameWorks

Inicio | Game Dev | Software Intel®

Desarrollo de gráficos

Escribir un motor de juego en 2017

Aplicación de Windows y herramientas de desarrollo de juegos | Estudio visual

Building Blocks: desarrollo de juegos

Simulación física en tiempo real

Emscripten

CRYTEK / CRYENGINE

https://github.com/EpicGames/Unr…

Trucos de los gurús de programación de juegos en 3D

jagregory / abrash-black-book

No dejes que otros te desanimen de escribir un motor de juego. Si tu objetivo es ser bueno diseñando juegos y convertirlos lo más rápido posible, entonces, seguro, usa Unity o Unreal.

PERO si su objetivo es convertirse en un activo muy buscado y valioso para el mundo del desarrollo de juegos, aprender los entresijos de la arquitectura de la computadora tal como se aplica al programador, construir funciones únicas para sus necesidades, aprender más de lo que podría con Unity y, potencialmente, con una función o interfaz que le permita a Unity correr por su dinero, entonces debe escribir un motor.

La rueda nunca se inventará cuando se trata de software. Siempre habrá la oportunidad de hacer algo más limpio, más rápido, mejor. La unidad es excelente para ciertas cosas, pero también está muy hinchada. La mayoría de los desarrolladores de juegos pueden obtener más beneficios de algo aerodinámico y personalizado. Sí, es difícil, lleva tiempo, pero vale la pena al 100% si es algo que lo beneficiará. Aunque solo sea una experiencia de aprendizaje.

Y además, no lleva tanto tiempo como la mayoría de las personas te hacen creer. El hecho de que muchos estudios más pequeños elijan no seguir esta ruta, no significa que no sea práctico.

Si deberías.

Deje que comparta mi experiencia aquí, hice mi propio motor de juego C ++. No estaba apuntando a ningún juego en el tiempo, así que estaba pensando en crear mi propio motor desde cero, primero. Fue una de las mejores experiencias que tuve en mi vida, así que anímate. Pero nunca creé un juego con él. Mi motor de juego.

Utilicé muchos motores de juego en mi vida, desde Unreal hasta Construct2. En el tiempo que era un programador de juegos a tiempo completo que usaba Unity, tenía muchos flujos de motores para probar, quería arreglar esos flujos y crear una buena experiencia para un programador de C ++.

Con eso en mente, noté que no era tan bueno en C ++, descubrí la cantidad de trabajo que esos motores hicieron para resolver problemas pequeños y a veces molestos. Empecé a no dar por sentado ningún motor, solo para hacer una construcción portátil, vas a pasar largas horas.

Entonces, sí, debería dedicar al menos un mes a hacer un motor, tratar de alcanzar un prototipo y luego verifica cuánto tiempo va a dedicar a hacer el mismo prototipo utilizando una herramienta de código abierto como Godot para ejemplo.

He escrito mi propio motor de juego.

  • Tomó mucho tiempo.
  • Aprendí mucho sobre todo, desde la gestión de activos hasta la escritura de sombreadores.
  • Tuve varias visitas a los gráficos de escenas.
  • Tuve múltiples va en un patrón de diseño de modelo / componente.
  • Hice un trabajo terrible de una máquina de estado.
  • Usé campos de distancia firmada para hacer la mecánica de colisión en 3D.
  • Incluso tenía un sistema donde podía actualizar los recursos del juego, mientras el juego se estaba ejecutando.

Se puede decir cuán súper satisfecho estaba conmigo mismo … pero nunca envié un juego.

Si su objetivo es aprender, haga un motor.

Si su objetivo es hacer juegos, párese sobre los hombros de otros gigantes.

Muy probablemente no. Si te gusta hacer motores, anímate. Tu vida, tu hobby. Sin embargo, si quieres hacer juegos, usa un motor existente. Son mucho mejores, más rápidos, probados y están llenos de funciones.

Si crees que será más fácil hacer un juego con tu propio motor, estás loco. A veces, los equipos grandes, como los grandes, multimillonarios, en dólares, deciden hacer un motor. ¿Por qué? Tienen una característica específica en mente. Halo quería algo específico con la física o lo que sea. Entonces hicieron un motor. Tenían fondos para varios años de docenas de profesionales altamente remunerados y con experiencia.

Incluso entonces, los equipos suelen usar lo que está disponible. Unreal Engine 4 es * gratis * y se usa en muchos de los mejores juegos AAA, por ejemplo, el remake de FF7.

“¿Debo hacer un motor de juego para hacer juegos con C ++?”

No, no debes hacer tu propio motor de juego para hacer juegos.

Si quieres hacer juegos, utiliza un motor de juego bien establecido y probado.

Si quieres aprender sobre lo esencial de bajo nivel de cómo funcionan los motores de juego, crea un motor de juego.

Para las personas el 99.99% del tiempo si estás construyendo tu propio motor de juego estás haciendo algo mal. Encuentra un motor de juego existente que se adapte a tus necesidades y construye sobre él para hacer un juego increíble en lugar de pasar mucho tiempo reinventando la rueda y haciendo un juego correcto. Ya hay muchos motores de juegos C ++.

Lamentablemente, su propio motor (o el mío o el de cualquier otra persona) nunca será competitivo. Unity e Unreal trapearán el piso con todo lo que hagamos.

Ahora, si eres como yo y muchos otros que aman hacer motores de juegos como una forma de adquirir y aplicar conocimiento, entonces adelante. Realmente me encanta experimentar para descubrir cómo se ajusta exactamente cada pieza de la mejor manera [que puedo ver].

Últimamente incluso he considerado comenzar un proyecto grupal de este tipo. No me importa si alguna vez se acostumbra a hacer un juego … Solo me importa construir un motor adaptado a un género y sistema operativo en particular.

Haz lo que quieras hacer y disfruta haciéndolo.