2009-11-27 30 views
6

¿Qué lenguaje de programación/lenguajes usan para producir juegos como Dragon Age Origins de Bioware y algunos otros juegos tridimensionales como Call of Duty?programación de juegos 3-d

Si quisiera hacer la programación para juegos en 3D, ¿por dónde empiezo? ¿Hay incluso simples tutoriales para esto? Me gustaría hacer 3-d la programación de juegos para juegos de PC :)

+8

Solo ten en cuenta que esos juegos son producidos por un equipo dedicado de profesionales durante un período de 1 a 2 años cada uno, por lo que es dudoso que puedas hacer algo similar. No es imposible, sin embargo, ¡así que nunca te rindas! – RCIX

+5

@RCIX: debe reformular eso: "es dudoso que pueda hacer algo similar POR USTED MISMO". Juegos como Diablo o mods como Counter-Strike fueron creados por grupos de personas altamente motivados. Si consigues que algunas personas de ideas afines trabajen en algo, eres (en mi opinión) más propenso a hacer algo. Todavía puedes hacer algo increíble trabajando solo, ¡pero creo que es más divertido trabajar con otros! – Pwninstein

+4

RCIX y Pwninstein son excelentes puntos. Call of Duty: Modern Warfare 2 se hizo cargo de más de cien personas durante casi 2 años, y comenzaron con el motor Modern Warfare que ya funcionaba. Dragon Age estaba en desarrollo desde 2004. Téngalo en cuenta al comenzar y no se compare con ellos, ya que incluso hacer un clon 2D Tetris es un logro digno. – Drakonite

Respuesta

6

No quiero ser desalentador, pero tampoco quiero mentir. Crear incluso el juego 2D más simple es una gran hazaña. Aquí hay algunas cosas que probablemente tenga que aprender, si va a codificar un juego por su cuenta:

  • Conceptos y técnicas generales utilizados en gráficos por computadora.
  • Programación de red (si corresponde)
  • Programación de audio y teoría del procesamiento de señal digital.
  • ramas de álgebra lineal, trigonometría y geometría en matemáticas
  • conceptos AI como lógica difusa, máquinas de estados finitos o redes neuronales.

Sin mencionar que necesita una sólida formación en programación. La mayoría de los desarrolladores de juegos más grandes usan C++, que es una opción decente cuando el rendimiento es esencial. Pero un tamaño no sirve para todos. Te recomiendo que veas C++, Python y Java y descubras cuál te gusta usar.

Ahora, esto podría ser una decepción, pero debe decirse. Si recién estás comenzando con la programación, no vas a hacer un juego 3D durante mucho tiempo. Aprendí C++ en 2002 y todavía aprendo nuevas formas de usar el lenguaje de programación. Hay muchos libros llamados . Enséñese el lenguaje de programación X en las semanas Y. No creas la mentira. No hay forma de que uno pueda aprender algo tan complejo dentro de ese intervalo de tiempo. Lo que trato de decir es: ¡no tengas prisa! La paciencia lo es todo, y no existe el almuerzo gratis.

Y cuando finalmente tenga el conocimiento para hacer un juego, comience de manera simple. Incluso la codificación de un clon Nethack que utiliza gráficos ascii art le brinda una nueva experiencia en la que puede extenderse. Y tus primeros juegos deberían ser 2D. Trabajar en dos dimensiones es mucho más simple, y muchas de las matemáticas involucradas se extienden muy bien a tres dimensiones cuando estás listo para avanzar más.

6

C++ es un sólido comienzo.

Game Institute tiene cursos decente (de pago). Esto de ninguna manera es trivial. Comience con lo básico (programación orientada a objetos, animación 3D, enhebrado, etc.) y obtendrá un lugar.

Recuerde divertirse. Hace que aprender sea más fácil.

+6

C++ no es la mejor manera de empezar desde cero con los gráficos. Sugeriría un lenguaje administrado y luego iré a C++. Sí, estoy de acuerdo, C++ dará la velocidad necesaria, pero no es la más fácil de comenzar. – monksy

+1

No estoy de acuerdo. C++ es realmente un comienzo muy sólido si quieres aprender a codificar. El OP no, él quiere crear un juego. Bastante imágenes y sonido en movimiento. El interés en la programación es solo un efecto secundario, porque así es como se crean los juegos. Lo que el OP necesita es algo rápido y simple para aumentar su confianza. Después de su primer juego en un lenguaje "simple y administrado", puede optar por recrearlo "de verdad". – Mizipzor

+0

steven y mizipzor son excelentes puntos, incluso en desacuerdo. C++ es un lugar difícil para empezar, pero es el núcleo. La relación facilidad/potencia no mejorará con otros idiomas, en mi humilde opinión. Si Ygam se emociona al crear su primer 'Hola mundo', leyendo la primera entrada de un personaje desde la consola, haciendo un primer botón, haga clic en hacer algo, ¡todavía hay esperanza para él! – MPelletier

6

La mayoría de los juegos principales están escritos en C++. Esto no significa que tenga que usar C++. Para juegos indy también puedes considerar C# con XNA si estás más familiarizado con eso (o quieres jugar tus creaciones eventuales en tu xbox 360 con relativa facilidad). XNA también tiene el beneficio de ser libre.

GarageGames también hace una serie relativamente respetada de motores de juegos (que no son gratuitos, pero son muy asequibles en comparación con la mayoría), incluido uno que agrega las capacidades estándar a XNA para que no tenga que escribirlo todo desde cero.

El consejo de MPelletier es bueno, sin embargo. El desarrollo del juego es muy complejo, e incluso un juego simple es una gran empresa. Obtenga una buena idea de lo básico primero, y le sugiero que empiece con juegos en 2-D.

+1

Quizás estoy malentendido, pero C++ también es gratuito. – GManNickG

2

C++ es el lenguaje estándar, pero ningún proyecto grande usa solo un idioma. El personal superior utilizará el ensamblaje en algunos lugares, los programadores de gráficos a menudo usarán el lenguaje de sombreado apropiado para el sistema. Quien esté trabajando en herramientas o en el sistema de compilación generalmente usará lenguajes de scripting como Python, Perl, Bash/Batch scripting u otros. Los programadores de juegos también suelen utilizar un lenguaje de scripting en el juego que puede ir desde estándares como Lua, Python o UnrealScript, hasta lenguajes de scripts creados para ese motor.

Game Institute - Tengo sentimientos encontrados acerca de este lugar ... Ofrecen un plan de estudios especializado que tiene un tiempo difícil encontrar en otro lugar; sin embargo, un amigo me mostró algunas pruebas de este lugar que tenían respuestas que, en el mejor de los casos, estaban desactualizadas o, en el peor de los casos, estaban mal. No sugeriría contra ellos, pero tenga la mente abierta después.

Gamedev.net - el sitio web de la programación de juegos amature. Gran comunidad, toneladas de artículos. Ellos tienen algunas buenas publicaciones en los foros sobre cómo comenzar. Incluso como profesional sigo visitando este sitio. Se necesitan

idiomas
+0

Gamedev tiene muy buenos artículos sobre lo esencial. – gath

0

orientado a objetos con las bibliotecas potentes gráficos para desarrollar este tipo de juegos.

Esos juegos se puede hacer con:

  1. C++: DirectX (con VC++), OpenGL, SDL
  2. C#: DirectX, OpenGL C# fijaciones (no recomendaría este)
  3. Java: Java 3D (que tiene enlaces con OpenGL), JOGL (Java OpenGL)

Si usted está interesado en aprender acerca de gráficos 3D y C++ tomar a look at this.

2

Si quieres ir a la ruta administrada, probar el XNA Game Studio de Microsoft. Creo que es un buen lugar para comenzar, y es posible que no te desanimes (como yo) con algunas de las tecnologías más potentes y complicadas, como la programación pura de DirectX o OpenGL con C++/WIN32. Muchas de esas cosas se abstraen para que puedas concentrarte en crear algo realmente. Diablos, incluso podrías hacer algo que pueda terminar en Xbox Live. Es gratis comenzar a desarrollar y seguramente habrá muchos recursos para comenzar.

2

Eche un vistazo a irrlicht. Es un motor de juego muy bueno, es fácil de usar y lo mejor de todo es gratis. El motor está en C++, pero recuerdo que también vi un contenedor .net.

Probablemente no es un motor tan poderoso como los utilizados por Call of Duty, etc. Pero suponiendo que solo está comenzando el desarrollo del juego, nunca necesitará tales características avanzadas. Puedes construir juegos muy decentes usando irrlicht. El sitio también tiene algunos tutoriales y una comunidad activa.

1

Existen algunos excelentes marcos de programación de juegos en C++ para que pueda comenzar. DarkGDK es genial, lo he usado y le cuesta un poco hacer un juego en C++.

2

Eche un vistazo a Unreal Development Kit. El mismo motor que se utilizó para potenciar Unreal Tournament y Gears of War está disponible de forma gratuita para desarrolladores independientes y se encarga del trabajo verdaderamente agotador en la creación de un juego.

Es una gran manera de aprender la terminología y los conceptos, mientras te ajusta gradualmente al reino del desarrollo de software a través del scripting. Una vez que se sienta cómodo con la forma en que se usa la geometría, las texturas, los efectos de partículas y la iluminación, entonces aventúrese en el territorio de XNA. En el caso de UDK y XNA, encontrarás comunidades excelentes y docenas de tutoriales disponibles.

+0

+1, quiero evitar los detalles de la programación de juegos de matemáticas y física ... – gath

3

¿Puedo sugerir un enfoque diferente? Voy a suponer que los gráficos 3D no son esenciales. Creo que si recién estás comenzando, ir directamente a la representación 3D puede ser un poco complejo. 2D es mucho más simple.

para ello, siga estos sencillos pasos, esperar que dure aproximadamente dos horas o así:

  1. Descargar (e instalar) Python
  2. Descargar (e instalar) PyGame
  3. Descargar (e instalar) Notepad++, que va a utilizar esto para escribir el código, guardarlo con la extensión .py (no .txt)
  4. cabeza a la Line By Line Chimp Tutorial (gran tutorial!)

Después de haber leído y experimentado eso, debería ser capaz de crear algo propio con un nivel de complejidad de, digamos, Tetris. Creé un asteroids clone.

No dude en volver aquí en Stackoverflow para pedir ayuda si tiene algún problema. He ayudado a algunos amigos a través de ese tutorial que quería "probar la programación del juego" y debería poder ayudarte con cualquier cosa que puedas evitar.

¡Ahora se vuelven locos en el teclado! Antes de que te des cuenta, ¡habrás creado Dragon Age 2!

1

Normalmente, los juegos profesionales se desarrollan principalmente en C++. Sin embargo, a menos que seas un veterano desarrollador de C++, te recomendaría elegir un idioma con el que estés más familiarizado mientras aprendes los matices del desarrollo del juego. De lo contrario, puedes enfrentarte a la sintaxis y naturaleza general de C++ más que a los detalles conceptuales relacionados con el juego programación. C# y XNA, o incluso el Managed Direct X ahora desaparecido, es una gran manera de comenzar, como algunos ya han mencionado. Una gran cantidad de información que cubre el desarrollo de juegos en C# está disponible en la web y en versión impresa, y existe un gran número de comunidades para brindarle apoyo mientras aprende, así que aproveche de ellas.

También tenga en cuenta que, si bien XNA es un marco de desarrollo de juegos más completo, hay muchas otras bibliotecas disponibles, como Ogre, OpenGL e Irrlicht, que cubren todo, desde el audio hasta la física.

Trate de obtener una comprensión de los fundamentos del juego y acumular su experiencia a través de proyectos cada vez más complejos. Esto no quiere decir que sea imposible asumir un proyecto grande como el primero, pero en mi experiencia los proyectos más pequeños tienden a completarse con más regularidad. Cada juego que termines generará tu confianza, experiencia y conjunto de habilidades.

Recomiendo retirar http://www.GameDev.net, los recursos son invaluables. Riemers.net también contiene algunos excelentes tutoriales sobre XNA y Direct X.

Finalmente, trate de no desanimarse por la vastedad de comprensión que requiere el desarrollo del juego. Las cosas pueden parecer abrumadoras cuando comienzas en el campo, pero trata de tener en cuenta que incluso los gurús de la industria comenzaron sin conocimiento en algún momento. Con persistencia, pasión y paciencia dominarás las habilidades necesarias para crear juegos realmente divertidos.

Buena suerte.

0

Prueba a mirar juegos de código abierto. This game acaba de ser de código abierto recientemente y es bastante avanzado. Ya emplea una gran física, efectos visuales y escenas de corte, por lo que esta podría ser una gran oportunidad de aprendizaje.

Cuestiones relacionadas