Lo pregunté anteriormente en este hilo en stackoverflow.com. Uno de los primeros comentarios me redirigió aquí a gamedev.stackexchange.com, así que estoy volviendo a publicar aquí.
Al buscar preguntas relacionadas, encontré una serie de preguntas muy específicas, pero me temo que los detalles me han resultado infructuosos y después de 4 horas en Google no estoy más cerca de lo que comencé, así que sentí que podría llegar a una comunidad. en orden.
Primero, mi objetivo: nunca antes había hecho un juego, aunque había confundido la posibilidad varias veces. Finalmente decidí sentarme y comenzar a aprender a codificar juegos, usar motores de juegos, etc. Todo para que algún día (con suerte pronto) pueda hacer juegos funcionales (aunque simples). Puedo comenzar a agregar complejidad más tarde, por ahora me alegraría tener una cámara controlada por teclado moviéndose en un mundo 3D sin interacción más allá de eso.
Mi experiencia: he trabajado en VARIOS lenguajes de programación que van desde PHP a C ++ a Java a ASM. No le temo a los desafíos que surgen al aprender la nueva sintaxis o las limitaciones inherentes a un nuevo idioma. Sin embargo, toda mi experiencia de programación pasada ha sido estrictamente no gráfica y, por lo general, con poca o extremadamente simple interacción durante la ejecución. He creado algoritmos amplios y brillantes para resolver problemas lógicos y matemáticos, así como problemas gráficos. Sin embargo, en todos los casos, la entrada se definió en un archivo, se pasó de un formulario HTML o se escribió en la consola. La interacción en tiempo real con el usuario es algo con lo que no tengo experiencia.
Mi pregunta: ¿por dónde debería comenzar tratando de hacer juegos? Mejor aún, ¿por dónde debería comenzar tratando de crear un entorno 3D navegable por teclado? Al buscar en línea, he encontrado varios recursos vinculados a motores de juegos, motores de gráficos y motores de física. Aquí hay un breve resumen de mis experiencias con algunos motores que probé:
SDK de Unreal: los videos del tutorial asumen que ya tienes un conocimiento profundo de modelado 3D, motores gráficos, animaciones, etc. La página "Getting Started" no ofrece una explicación formal del desarrollo del juego, pero salta sobre cómo Unreal puede optimizar los procesos. Ya estás familiarizado con. Después de descargar el SDK y ejecutarlo para ver si las herramientas eran tan intuitivas como afirmaban, me saludaron con unos 60 botones y un vacío en blanco para mi modelado 3D. Al hacer clic en "agregar volumen" (para intentar agregar un cubo básico) me encontré con un menú de 30 opciones. En pánico, cerré el editor.
Crystal Space: el sitio web parecía bastante informativo, explicando que Crystal Space era solo para gráficos y el software complementario, CEL, proporcionaba lógica de entidad para hacer juegos. Se proporcionó un juego de demostración, que fue construido usando "CELStart", su herramienta simple para personas sin conocimientos de programación de juegos. Lancé el juego para ver lo que podría crear. Se congeló varias veces, los menús tenían errores, había miles de fallas gráficas, los enemigos no respondían al daño y cuando cerré el juego se bloqueó. Se rindió en ese motor.
IrrLicht: El tutorial asume que tengo Visual Studio 6.0 (tengo Visual Studio 2010). Siguiendo sus instrucciones, no pude importar correctamente la biblioteca a Visual Studio y no pude llamar a ninguna de las funciones que seguían usando. Copiar manualmente archivos de encabezado, archivos de clase y archivos DLL en la carpeta de mi proyecto; el proyecto no se compiló correctamente.
Claramente, no he tenido un buen comienzo y voy en círculos. ¿Alguien me puede apuntar en la dirección correcta? ¿Debería comenzar descargando un programa como Blender y aprender el modelado 3D, o debería aprender a usar un motor gráfico? ¿Debería buscar un motor de juego con todo incluido, o es mejor intentar codificar mi propia lógica de juego? Si alguien realmente ha hecho sus propios juegos, preferiría saber cómo comenzaron.
Además, tomar clases en mi escuela no es una opción. No se ofrece nada