2009-09-26 8 views
9

¡Hola comunidad de stackoverflow! Aprendí los conceptos básicos de C# (puedo escribir algunas aplicaciones de formulario) y ahora quiero aprender a escribir juegos de 2d. No sé por dónde empezar ¿Hay un motor que sea bueno para los juegos 2d? Después de aprender los conceptos básicos de 2d, querré escribir juegos simples que funcionen en windows y linux (eso sería genial, linux :)).Quiere aprender a escribir juegos 2d

Le pregunté a un amigo que está en la programación y me dijo que debería usar XNA con C# (pero eso solo funcionaría en Windows). Después de buscar en Google descubrí que OpenGL con C++ sería lo mejor para escribir juegos para Linux, ya que no hay DirectX/XNA. Y aún no he usado C++, eso tomaría un tiempo para aprender, nuevamente.

¿Hay algo que pueda sugerir? Tal vez otro motor? Acabo de instalar XNA y eché un vistazo al juego de demostración (Plataforma), ese código no es nada difícil. ¿XNA es bueno para los juegos 2d?

+1

Tome un vistazo a Tao, http://www.mono-project.com/Tao – Dykam

Respuesta

16

Tome un paso a la vez. Cuando está comenzando no necesita necesita su código para trabajar en todas las plataformas. No importa si usa OpenGL o DirectX, porque vas a tener las manos llenas creando un juego para ejecutar en una plataforma one con una API de gráficos.

En segundo lugar, no se preocupe demasiado por "motores". Usted no necesita un motor para hacer un juego, y, a menudo, será más problemas de lo que vale la pena. La obsesión con los "motores" es fundamentalmente una mala idea. Si se intenta obtener un componente de software única para apoyar a cada bit de funcionalidad que necesita para un juego, entonces no va a ser digno de usar para cualquier de ellos ..

Todo lo que necesita es:

  • un lenguaje de programación con el que se sienta cómodo. Parece que esto es C#, así que quédate con eso.
  • Alguna manera de poner gráficos en la pantalla. La biblioteca .NET puede hacer eso hasta cierto punto, pero alguna biblioteca de nivel superior probablemente lo hará más fácil. Puede usar XNA o SlimDX u otro envoltorio de Direct3D. O puede darle una oportunidad al SDL.NET. O puedes escribir el tuyo. Las capacidades que va a necesitar son bastante básicas y cada biblioteca de gráficos, 2d o 3d, le permitirá hacerlo.

Especialmente no necesita nada que sea "bueno para juegos en 2D". XNA es capaz de poner gráficos en la pantalla, por lo que hace lo que necesita. Si también entiende el código requerido para usarlo, entonces XNA es lo suficientemente bueno. No se moleste en tratar de encontrar el "mejor", o algo que tenga "increíble para juegos 2D" como un punto de venta.

+0

Añadir el Tao Framework para la fabricación de OpenGL y algunas otras API multiplataforma fresco a disposición a los lenguajes .NET, que casi trae multiplataforma de forma gratuita;) –

+0

Tao es agradable ... aquí está uno de los mejores tutoriales para XNA y viejo DirectX administrado para C# He encontrado: http://www.riemers.net/eng/Tutorials/ xnacsharp.php –

+2

Bueno, mi punto es que cross-platofrmness no importa *. ¿Es Tao más fácil de usar que otros marcos específicos de la plataforma? si es así, entonces * ese * es el motivo por el cual debería usarlo. Si no, entonces no debería usarlo sin importar cuántas plataformas se ejecuten. – jalf

4

Probablemente la plataforma más fácil y más accesible es Flash. Fácilmente distribuible y bastante rápido para aprender juegos (a juzgar por la gran cantidad de juegos flash disponibles en la web).

Estoy de acuerdo con jalf. No empieces a pensar en los motores. Los motores son una bestia compleja y considerando que tu experiencia de programación es pequeña, puede ser muy abrumadora muy rápidamente. Hay muchas cosas que entran en los juegos y los patrones de diseño que están involucrados en ellos tienden a ser muy diferentes de los de una aplicación típica. Y el tipo de cosas de OpenGL se vuelve muy complejo cuando empiezas a hablar sobre cosas como la detección de aciertos.

Otra dirección que podrías tomar es que en lugar de comenzar tu propio juego desde cero, podrías intentar hacer una modificación a algo como Half-Life 2 o Unreal. Eso te da una plataforma básica que puedes cambiar y ver cómo se comporta. Mientras tanto, estarías viendo el código de otras personas y viendo las complejidades del desarrollo del juego.

Aquí hay unos enlaces rápidos que obtuve de una búsqueda de Google con respecto a los juegos flash. Estoy seguro de que probablemente haya bastantes libros disponibles en línea también con respecto a la creación de un juego en flash y otros idiomas.

+0

¿Hay algunas herramientas buenas y gratuitas para esto (Flash) como Visual Studio Express para C#? Realmente me gustaría saberlo, ya que Adobe Flash CS parece un poco caro. –

+0

Hay Flash Develop y FDT –

2

Si usted está pensando en la búsqueda de un futuro en la programación de gráficos, escogería OpenGL por las siguientes razones:

  • OpenGL está implementado en Windows, Mac, Linux e incluso PlayStation 3. (extremadamente versa azulejo)
  • Una vez que se sienta cómodo con la programación en 2D, puede pasar a 3D y quedarse con OpenGL.
  • OpenGL es equally as fast en términos de rendimiento en comparación con DirectX.
  • C++ es parte de cada plan de estudios de nivel universitario. *
  • Creo que los empleadores respetan el conocimiento de C++ más que cualquier otro idioma.

La curva de aprendizaje puede ser mayor, pero su tiempo será bien empleado.

* Si su universidad no tiene C++ como parte de su plan de estudios de programación, usted es un valor atípico.

+0

¿No crees que debe tenerse en cuenta que el 99.99999% de todos los juegos de PC usan DirectX, no OpenGL? Y prácticamente ningún juego en PS3 lo usa, porque las envolturas OGL de Sony son una mierda y los desarrolladores generalmente trabajan directamente contra la GPU. – jalf

+0

http://en.wikipedia.org/wiki/List_of_OpenGL_programs –

+0

Disculpe, su punto es? Que durante la última década (la lista incluye el * original * Unreal, de 1998), se han realizado la friolera de 73 juegos que admiten OpenGL? (Tenga en cuenta que muchos de los que están en esa lista * también * son compatibles con DirectX). ¿Estás sugiriendo seriamente que esta lista constituye la mayoría de los juegos? ¿Que el desarrollador de juegos promedio usa OpenGL para el desarrollo de su PC? ¿Que OpenGL es a lo que deberías acudir si quieres "un futuro en la programación de gráficos"? – jalf

1

Desde mi experiencia es mucho mejor escribir la base de tu juego primero en una forma de aplicación simple (quizás basada en texto) y luego construir gráficos además de probar trozos y piezas de los tutoriales. De esa forma siempre tendrá un esqueleto funcional con el que pueda jugar y no se complique inmediatamente con todas las llamadas gráficas.

Otro punto es la motivación: si siempre tiene una aplicación en funcionamiento, es mucho más satisfactorio verla crecer y desarrollarse lentamente en lugar de sentirse frustrado por las constantes "obras/no hace transición" y esperando siempre los bits por venir juntos para formar algo remotamente completo.

En lo que respecta a los motores: DirectX y OpenGL actualmente son una especie de motores. Te permiten hacer un montón de trabajo primitivo muy fácilmente (obtener un modelo de 3ds Max y cargarlo en tu aplicación en 1-2 líneas de código), para un juego pequeño no necesitarás nada más.

También estoy de acuerdo con MunkiPhD: Flash sería una plataforma muy buena para un juego 2d. Es muy simple y te permite salirte con la aburrida programación gráfica. Sin embargo, la programación de ActionScript no está ni cerca de la programación "heavy-duty" con los lenguajes de la familia C y el desarrollador adecuado. plataformas. ActionScript me frustra cada vez que lo veo.

+0

No soy nuevo en programación, programo php durante 5 años e inicié Windows/Linux Prog. Hace medio año. Escribí algunos programas en Delphi (odio su sintaxis) y C#. Entonces no sería un problema escribir un juego. Pedí aquí para averiguar qué motor/marco/lo que debería usar. Sé que Flash no es difícil de codificar, pero quiero codificar en C# :) Gracias hasta ahora ... – CSharpBeginner

1

Si quieres concentrarte en los juegos 2D y seguir usando C# por ahora, y poder hacer que tus amigos jueguen tus juegos en Mac y PC, ¿habías pensado en usar Silverlight?

El uso de Silverlight evitaría algunos problemas, como la instalación.

Puede intentar crear algunos juegos en Silverlight y luego, después de mojarse los pies, estará en una mejor posición para decidir qué otras herramientas le gustaría aprender a continuación. Con la publicación reciente de Silverlight 3.0, en realidad hay una afluencia de personas que intenta ver hasta qué punto se puede impulsar para jugar, lo que puede ayudarlo a obtener respuestas a sus preguntas. Si se decide por esta ruta se puede publicar aquí o en sitios como Silverlight.net

Disclamer: No estoy seguro de cuál es el estado de Silverlight para Linux

4

Alguien mencionó Flash, que es una buena sugerencia, pero un poco caro. Si desea hacer algún desarrollo de Flash/AS3 de forma gratuita, le recomiendo jugar con Flixel. También necesitará FlashDevelop, que es un IDE agradable (también gratuito). El sitio de Flixel tiene muchos recursos buenos para comenzar.

+0

Flixel es genial, perfecto para juegos en 2D. Puede usar FlashDevelop, pero también FlexBuilder o incluso solo su editor de texto favorito como Emacs: simplemente use las herramientas de línea de comandos gratuitas de Flex SDK. Sin embargo, si usa el editor de texto + la línea de comando, tendrá que usar un sistema de compilación como Make, Ant o Rake. –

1

Flixel hace rock: puede obtener un juego 2D en funcionamiento con una cantidad mínima de código. Puede encontrar un tutorial detallado que lo guiará a través del proceso de creación de un juego de plataforma simple usando Flixel here.

alt text

Cuestiones relacionadas