¿Cuál es una buena plataforma de partida para un programador de juegos para adolescentes? [cerrado]

32

Mi hijo (15) ha decidido que quiere seguir una carrera como programador de juegos. He dicho que debería comenzar ahora con un juego simple. Todavía no tiene experiencia en programación, pero yo soy un programador (aplicaciones de negocios, no juegos), así que puedo enseñarle programación, pero ¿cuál sería una buena plataforma para comenzar? Inicialmente estoy buscando algo que pueda proporcionar resultados rápidos, para mantener su entusiasmo.

¿Qué sugieres?

gkrogers
fuente
13
¿Cerrado? ¡Tienes que estar bromeando! Hice esta pregunta el año anterior, ha tenido al menos 19 votos a favor, sus respuestas con votos han tenido al menos 86 votos a favor, 5 personas la han marcado como favorita. Y las respuestas involucran hechos, referencias o experiencia específica. Finalmente, ha sido increíblemente útil para mí y, sugeriría, también a otras personas. ¿Cómo hago para apelar esta decisión?
gkrogers
1
Puede hacer una publicación al respecto en meta si realmente lo desea. meta.gamedev.stackexchange.com
Tetrad

Respuestas:

30

XNA es una buena solución para un programador bastante seguro. Sería un buen objetivo apuntar en el futuro.

El Unreal Development Kit es una forma de obtener resultados mucho más rápida y fácilmente, y podría ser un buen lugar para comenzar. Los comentarios han indicado que el UDK es en realidad una alternativa bastante mala , por lo que no puedo recomendarlo.

La unidad es una alternativa, se ejecutará en teléfonos que es algo que UDK no puede hacer (que yo sepa). Entonces, si está interesado en programar juegos para teléfonos, ¿quizás la unidad sería mejor?

Martín
fuente
44
Estoy de acuerdo con ésto. La unidad es una alternativa al UDK, aunque creo que es un poco más difícil de entender. Vea si puede lograr que se meta con UnrealScript (el lenguaje de programación del Unreal Development Kit). Sin embargo, XNA es definitivamente el primer lenguaje de programación de juegos desde cero que debería usar; es el más fácil (relativamente hablando; no para principiantes absolutos) y me encanta para la creación de prototipos porque puedes comenzar a dibujar cosas en la pantalla con bastante rapidez.
Ricket
2
+1 para la sugerencia de XNA. Si se esfuerza por aprenderlo bien y tiene buenas ideas, puede ganar dinero gastando dinero vendiendo juegos para el Zune / WP7 / XBOX 360.
2
Unity funciona en el iPhone y en el navegador, por lo que es una buena forma de distribuir el juego para que las personas lo prueben y acostumbrarse a ser criticado desde el principio
Chris S
44
Evitar UDK. Puede ser muy poderoso, pero también es un gran dolor. Está lleno de "problemas" y restricciones indocumentadas.
Peter Ølsted
44
También tengo 15 años, aprendí primero pascal a 10, luego C, luego C ++. Intenté programar algunos juegos en C ++ y allegro a 12+, sin mucho éxito, pude hacer muchas cosas, pero no pude pensar cómo construir un juego completo. Eso me mantuvo despierto. Con XNA, las cosas fueron mucho más fáciles y, además, el fácil manejo de errores de las excepciones de C # mostradas en el momento de la depuración ayuda mucho a saber dónde está haciendo algo mal. por supuesto, otros lenguajes también lo tienen, pero creo que Visual C # tiene la mejor herramienta de depuración.
Gustavo Maciel
20

También tengo 15 años, así que supongo que eso podría ayudar. :PAGS

Recientemente comencé a aprender Python (he estado haciendo C ++ durante un año más o menos), y me resulta mucho más fácil aprender que C ++. Hay muchas menos trampas, y necesitas poco código para obtener algo en la pantalla; lo que encuentro hace que quieras continuar.

Y hay envoltorios como Pygame y Pyglet sobre SDL / OpenGL para el lado de los gráficos.

Antes de que empiece a hacer juegos simples, le aconsejaría aprender un idioma durante al menos un par de meses. (Por supuesto, los juegos basados ​​en texto como adivinar el número y el ahorcado son buenos ejercicios durante este tiempo)

El pato comunista
fuente
99
Python y Pygame fueron un soplo de aire fresco para mí después de escribir juegos en C durante muchos años. Pensé que podría hacer lo mismo en aproximadamente el 10% del tiempo en Python debido al aspecto de nivel superior de todo.
dash-tom-bang
Lo sé, me siento igual (y he estado haciendo C ++ durante un año).
El pato comunista
+1. Tengo que decir que, a pesar de estar un poco familiarizado con Python, es mi primera recomendación para los programadores principiantes. ¡Ahora solo necesitamos un robot pitón! También buenas sugerencias para, por ejemplo, ahorcado. =)
leander
Amigo, debes aprender un lenguaje .net (me gusta C #, F # no tanto, vb.net está bien. Boo no es compatible con los estudios visuales :(). Los lenguajes son menos propensos a errores que C ++ y obtienes excepciones cuando haces algo mal (algo muy bueno. C ++ debería hacer más de eso). Y puedes aprender cómo usar la pila de llamadas, ver variables, puntos de interrupción (¿supongo que los puntos de interrupción funcionan en un IDE de Python?) y podrás depurar rápidamente Lo cual es genial cuando escribes código de principiante inestable.
13

Una respuesta poco ortodoxa aquí:

Starcraft II Galaxy Editor.

Puedes hacer casi cualquier juego dentro de Starcraft 2.

También enseña la mayoría de las construcciones de programación como bucles y sentencias if de forma centrada en la GUI.

Una vez que tenga confianza en lo básico, puede tenerle cosas de guiones.

Si es bueno en eso y lo encuentra interesante, le encantará la programación adecuada del juego.

Fabricante de clavos
fuente
3
Estaba a punto de sugerir Warcraft III. Comenzar en un lenguaje de script simple es realmente una buena manera de hacerlo. Tanto Warcraft III como Starcraft II tienen una GUI que puede usar para sentirse cómodo, y una función para ver el código como script sin formato, para ver el funcionamiento interno.
William Mariager
2
Buen camino . Comenzar con CUALQUIER editor de niveles es la mejor manera de hacerlo. Puede omitir todos los andamios y dificultades y pasar directamente a la parte interesante de tejer un escenario y diseñar un nivel.
bobobobo
Con mucho, una de las mejores respuestas que he visto para este tipo de preguntas, comencé a hacer el juego primero cuando era muy pequeño con MS powerpoint a través de hipervínculos y jugaba un juego llamado "el club robot"; que en su juego te enseña muchos de los conceptos básicos de programación giantbomb.com/the-robot-club/3030-29776
Jim Jones
10

Dividiría aproximadamente las herramientas de desarrollo de juegos en tres amplias categorías:

  1. Fácil de aprender y usar, pero limitado. Game Maker, Game Salad, RPG Maker, Adventure Game Studio entran en esta categoría.
  2. Potente, pero con una curva de aprendizaje empinada. C ++ y otros lenguajes de programación "hardcore" encajan aquí.
  3. Lenguajes intermedios, generalmente lenguajes de secuencias de comandos como Lua, Python y ActionScript, que dividen la diferencia al exigirle que realmente escriba un código pero que se encargue de los detalles más oscuros como la administración de memoria para usted.

Para las personas sin experiencia en programación, generalmente les aconsejo que comiencen en la primera categoría, solo para comenzar a hacer ALGO. Cuando se sienten cómodos con una herramienta de autor determinada pero realmente sienten que las limitaciones superan los beneficios, es hora de aprender algo en la siguiente categoría.

Ian Schreiber
fuente
9

Sé que esto me saldrá un poco, pero al crecer realmente disfruté de P-Robots . Hay un objetivo realmente simple (vencer a los otros robots), una API simple y un corto período de tiempo entre los cambios en el código y ver los resultados. Se divide en inteligencia artificial, patrones de diseño e incluso estructura de código a mayor escala (algunos de estos robots pueden hacerse bastante grandes, ¿y qué hay de compartir código entre robots?). Si puede encontrar algo similar pero más nuevo, sería una buena manera de obtener la parte de "programación inicial". Sugerencias:

Una vez hecho esto, considera optar por un juego de disparos de desplazamiento en 2D, un juego de plataformas o un juego de "estilo arcade" similar, puedes usar SDL o XNA o lo que sea más familiar. Incluso conseguir un clon de pong en funcionamiento no es del todo trivial. Esto le da un pequeño eco de lo que es construir algo "molido".

Después de esto, explore: un mod para un juego 3D existente (un nuevo objeto, o un bot, o algo) para dar una pequeña idea de los motores más grandes.

Las claves, por lo que he visto, parecen ser:

  • iteración rápida: la capacidad de ver resultados rápidamente
  • prototipos: muchos pequeños experimentos para obtener una amplia experiencia y confianza (bueno, ¿cómo haríamos un juego de mármol? ¿Qué tal los invasores del espacio? etc.)
  • exploración: aprender a amar mirando cómo se construyen los juegos de otras personas, retocándolos, etc.
leander
fuente
2
+1 para tormentas mentales, pero usaría ROBOCODE ( robocode.sourceforge.net ) en lugar de P-Robots.
Callum Rogers
@Callum: brillante, actualizará la respuesta =)
leander
Usaría LegoMindstorms con NXC
Joe the Person
6

Mi consejo es hacer juegos basados ​​en la web. ¿Por qué? Bueno, antes que nada, JavaScript es un lenguaje hermoso que le enseñará todos los conceptos básicos de programación y de hecho puedes hacer un gran juego competente y multiplataforma con él. También lo calificará para muchas más cosas además de simplemente hacer juegos ... Si, por alguna razón, no le gustaría que su hijo entrara en el desarrollo web, entonces sugiero usar Python, con un módulo llamado PyGame. También tengo experiencia con eso, y soy increíble. Lo que no sugiero es comenzar con C / C ++, eso es lo que hice y es horrible y podría dejarlo desmotivado para programar por completo.

En otra nota, probablemente eres un padre increíble, ¡felicidades!

jcora
fuente
1
Buenas sugerencias Dicho esto, comencé con C (no es que hubiera alternativas reales en ese entonces) y realmente no fue tan doloroso; por supuesto, esa no es una razón para usarlo ahora que hay idiomas de nivel superior.
o0 '.
1
¡Gracias! Además, no comencé con los juegos, y mi punto era que él, después de aprender un lenguaje de nivel superior, comprenderá mejor el concepto general de programación y no tendrá su motivación agotada. Y, por supuesto, estaba exagerando un poco allí;)
jcora el
1
A esa edad, poder compartir mis creaciones fácilmente con amigos fue un motivador. Los juegos web se comparten más fácilmente. Publica su URL en Facebook y pide a sus amigos que lo prueben. Actionscript / Flash o Javascript / HTML5 son probablemente sus mejores apuestas para poder compartir fácilmente, con Java o Unity en segundo lugar.
amitp
5

Mindstorms Roboter son realmente geniales. Conseguimos algunos NXT en la escuela, y la semana pasada comenzamos a programar cosas como seguir una línea y esas cosas. Puede obtener resultados fácilmente.

También encontré www.3dgamestudio.de hace un tiempo. No me metí más en eso, pero fue realmente interesante. Puedes programar con lite-C que es:

Lite-C es un lenguaje de programación para aplicaciones multimedia y juegos de computadora, que utiliza un subconjunto de sintaxis del lenguaje de programación C con algunos elementos del lenguaje de programación C ++

En el http://tutorial.3dgamestudio.net/ entras en él. Y también hay un editor de nivel, modelo y terreno.

PD: Tengo 16 años y comencé con un amigo que programaba un sitio web y personalizaba un servidor de juegos programado. Entonces esto también podría ser interesante para él.

Melzon
fuente
+1 Documentación muy fácil de cómo, parece muy fácil de tratar.
Prix
4

No puedo sugerir esto lo suficiente, pero construye sus propios niveles para su juego favorito .

Para alguien de ese nivel de edad / habilidad, deben comenzar construyendo niveles en su motor de juego favorito .

Muchos juegos geniales vienen con un editor de niveles que permite muchos grados de libertad.

RPG : serie de herramientas electrónicas NWN 2 de Obsidian , rollos de Elder

RTS : el editor de niveles de Warcraft III es un fantástico editor de RTS e incluso se separó de su propio juego ( liga de leyendas y héroes de newerth ).

FPS : Hammer for Half-Life 2. Counterstrike fue originalmente un mod de Half-Life.

Haga clic aquí . Crear niveles para tu juego favorito es probablemente el mejor lugar para comenzar.

bobobobo
fuente
3

Aunque toda la información aquí es útil, quería mencionar que el Desafío STEM (una competencia nacional de juegos promovida por la Casa Blanca y la ESA) tiene algunas sugerencias sobre las plataformas http://www.stemchallenge.org/about/Default.aspx

Gamestar Mechanic, Gamemaker, Kodu, Scratch, PBS KIDS Stream listo para aprender

Tengo la sensación de que hay recursos comunitarios sobre estas plataformas específicamente en lo que se refiere a STEM.

Vea también este excelente tutorial sobre python y pygame (que también es un libro en línea) http://inventwithpython.com/chapters/ aquí está el PDF de la secuela del libro específicamente sobre pygame http://inventwithpython.com/blog/making -juegos-con-python-pygame /

Aquí hay otro artículo del NYT http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1 & scp = 1 & adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw

Actualización: aquí hay una discusión sobre slashdot http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games

programador idiota
fuente
2

Game Maker es una excelente opción para personas sin experiencia en programación. Tiene una versión gratuita y una versión paga relativamente barata. Le permite crear juegos rápidamente con una interfaz de arrastrar y soltar, pero incluye soporte para secuencias de comandos más avanzadas.

Gregory Avery-Weir
fuente
55
No voy a rechazar esto, pero GameMaker y Visual Basic son herramientas que enseñan una sintaxis incorrecta (VB) y GameMaker no es realmente demasiado bueno. Por un lado, no tienes acceso a buenos IDE como VS, la creación de juegos de arrastrar y soltar realmente no enseña nada.
Joe the Person
1
No estoy seguro de por qué mencionas VB; Game Maker está basado en C aproximadamente. En cualquier caso, Game Maker es una buena manera de progresar desde no saber nada hasta comprender el tipo de pensamiento necesario para el desarrollo del juego. Respondiendo a eventos, manteniendo un ciclo de juego, usando las relaciones entre recursos gráficos y código, llevando un proyecto desde la idea hasta la publicación; Estas son todas las cosas que puede aprender con el desarrollo de arrastrar y soltar. Estoy de acuerdo en que GML es un lenguaje limitado, pero el sistema en su conjunto es un buen punto de partida.
Gregory Avery-Weir
1
Menciono VisualBasic debido a DarkBASIC, que es otra herramienta de programación horrible.
Joe the Person
Game Maker es definitivamente una buena forma de enseñanza orientada a resultados. No es necesario aprender física ni renderizar. Solo use las funciones integradas. Y el cambio a C ++ es fácil, ya que puedes comenzar haciendo dlls y usarlos en Game Maker, y más tarde, deshacerte de Game Maker por completo.
William Mariager
Nunca, nunca sugieras GameMaker a alguien mayor de once años ... Si tiene quince años, también podría pensar en la programación.
jcora
2

Como Martin mencionó, el UDK es probablemente la forma más rápida de hacer que algo funcione, ya que viene con tantas cosas prefabricadas como IA, modelos y también una gran cantidad de libros. Tiene un editor de mapas muy bueno, y el lenguaje es Java-esque (y similar a un script ECMA).

Una alternativa podría ser intentar hacer juegos en Flash o Silverlight: comience con juegos 2D simples. Cualquier género de juegos que le guste dicta el juego de herramientas.

Chris S
fuente
1
¡No! No UDK! Es: con errores, lento, propenso a errores, complejo, etc. Vaya con Unity en su lugar.
Joe the Person
@ firedude67 UDK con errores, propenso a errores? broma?
Quazi Irfan
bueno, en mi experiencia, se retrasó increíblemente, todo lo que construí dio BSOD, y no pude encontrar ninguna documentación útil. Ni siquiera se ejecutaron los proyectos de ejemplo.
Joe la persona
1
Nunca encontré UDK con errores, pero NO lo recomiendo para un programador de juegos. Un artista, sí, pero un programador, no. La 'documentación' es una broma, y ​​para encontrar qué clases tiene que subclasificar, debe abrir la clase principal, ya que han decidido no darle una referencia de API. Además, se necesita mucho trabajo para crear diferentes tipos de juegos, ya que es un motor FPS en el fondo.
DMan
1

Viniendo de un niño de 14 años, este consejo puede ser útil. Creo que la mejor manera de elegir una plataforma es la plataforma más adecuada para ese propósito. He hecho esta publicación muchas veces antes.

Desde Reddit -

Elija un idioma que se adapte a su propósito. A la mayoría de los jugadores no les importa en qué idioma está programado el juego. Les importa si pueden jugarlo o no. Les importa si funciona rápido en su computadora. Les importa si el juego no tiene un tamaño de 10 gb. No les importa si es un exe o jar.

Mira juegos como Minecraft. Claro está escrito en Java, un lenguaje que tiene una cuota de mercado extremadamente pequeña en la industria de desarrollo de juegos. Sin embargo, ¿les importa a los consumidores? No. Se preocupan por la funcionalidad.

Sin embargo, como su hijo no tiene experiencia en programación, le sugiero que aprenda un lenguaje que sea rápido de codificar, como Python, o que use una plataforma existente, como XNA. Personalmente, amo Slick2D con Java, pero creo que esa es mi preferencia ...

liamzebedee
fuente
0

Me presentaron la programación a una edad temprana (menor de 15 años), y mi papá decidió usar VB (1.0). Hicimos una versión retorcida de pong usando un objeto temporizador y un dibujo GDI. Me gustó eso porque comenzamos con un lienzo en blanco y pudimos aprender los conceptos básicos de las estructuras de programación al intentar hacer algo divertido.

Hoy, creo que elegiría XNA y elegiría un juego 2D simple. C # y XNA son bastante sencillos y te dejan mucho espacio para crecer, y son gratuitos.

John McDonald
fuente
-4

Si solo quiere hacer juegos, entonces debe usar XNA, Unreal, Unity, etc. Si quiere ser un programador de juegos, primero debe aprender C / C ++ y OpenGL / SDL o D3D.

XNA, Unreal, Unity, etc. son geniales para hacer juegos, pero son muy malos para hacer demasiado por ti. Estoy seguro de que la gente no estará de acuerdo conmigo en esto, pero estos básicamente te convierten en un programador perezoso y cuando llegue el momento de aprender cosas como los puntos en C ++, será más difícil porque elegiste primero las opciones más fáciles.

Peronally, nunca sugiero usar otro C / C ++ como primer lenguaje para aprender si quieres ser un programador de juegos. La razón principal es que incluso si vas y aprendes C # / XNA, si realmente te conviertes en un desarrollador de juegos, tendrás que conocer C o C ++ en algún momento porque nadie te contratará de otra manera. Entonces, si se toman en serio la profesión, solo retrasarás el aprendizaje de lo que se espera de ti.

Dispositivo desconocido
fuente
10
Para cuando un joven de 15 años esté listo para ser empleado profesionalmente (dentro de ocho años), no veo ninguna razón para suponer que todos usarán C ++. Hace ocho años, C ++ recién comenzaba a usarse en los juegos y obtenía su primer estándar realmente práctico, y la mayoría de todos estaban enviando con C. Ocho años antes, C ++ estaba en un estado ridículamente malo para el desarrollo del juego y el orden del día. fue C y asm. Dentro de ocho años, la mayoría de la programación de juegos probablemente se parecerá más a XNA que al C ++ 03 que tiene ahora. (cont.)
8
El elemento clave es convertirse en un buen programador , que es independiente de cualquier lenguaje individual. Para los nuevos programadores, C # los motivará más rápidamente. Volverán y aprenderán las cosas más detalladas si quieren ser buenos, pero debes engancharlos el tiempo suficiente para llegar a esa etapa.
55
Los detalles importantes en la programación de juegos son SIMD, no SSE; líneas de caché, no el diseño estándar de C ++; hashing, no std :: unordered_map; polimorfismo, no funciones virtuales. Esas últimas cosas son minuciosas , y son incidentales, no fundamentales. Cuando conoces lo primero, lo último tiende a seguir trivialmente.
2
Comenzar con C ++ es una mala idea, en general. Es un lenguaje difícil, y más que nada.
El pato comunista el
44
Empecé C ++ a los 15, y aunque estoy feliz donde estoy ahora, empezando con algo más fácil probablemente habría sido mucho menos doloroso, y me ha permitido centrarme en dev juego real, en lugar de punteros y de segmentación ...
Riley Adams