¿Un lenguaje de desarrollo de juegos gratuito? [cerrado]

19

Entonces, estoy tratando de enseñarle a mi primo mucho más joven un poco sobre programación. Mi pensamiento inicial fue algo así como Scratch o Alice , pero había algunas desventajas en eso.

  • Todos parecen estar realmente interesados ​​en la programación de juegos y el desarrollo de videojuegos (porque a todos les encantan los videojuegos, y en lo que respecta a los videojuegos, jugar el tuyo puede ser lo más gratificante), pero ni Alice ni Scratch parecen satisfacer el juego desarrollo

  • Alice y Scratch parecen demasiado infantiles, aunque estoy seguro de que a mi primo le encantaría meterse en él, creo que rápidamente lo aburriría

  • Quiero un lenguaje que pueda usarse para desarrollar cosas realmente geniales que impresionen a sus amigos. Recuerdo haber escrito BASIC en el día e invitar a todos mis amigos y mostrar mi creación, y siento que Alice y Scratch simplemente no apelan de la misma manera

  • Quiero un idioma que requiera que mi primo escriba código. Ahora, esto no es solo porque creo que escribir código es una buena preparación para otros lenguajes de programación, sino porque le da la oportunidad de practicar realmente la escritura y tal vez acostumbrarse a algunos de los caracteres un poco más esotéricos en el teclado

Ahora, por eso no quiero elegir a Alice o Scratch.

Tampoco quiero elegir un lenguaje como C o Java, o incluso Python o Ruby para el caso. Mi primo ya me ha impartido que le gusta jugar videojuegos y quiere hacer el suyo, y que le gusta usar computadoras. En mi opinión, incluso un lenguaje simple como Python o Ruby simplemente toma demasiado tiempo para construir cosas geniales. Idealmente, se sentaría, pasaría alrededor de un día o dos (o tal vez hasta una semana, pero con suerte menos que eso) y tendría un juego bidimensional que funcione. No digo que no puedas hacerlo en Python o Ruby, pero solo digo que sería difícil para un programador por primera vez. Además, no quiero molestarlo con todas las cosas de informática, ya que eso puede venir más tarde. Solo quiero ayudarlo a crear la chispa y luego dejar que continúe con el resto del fuego.

He visto idiomas como Lua, y aunque parece común en la programación de juegos, no estoy seguro de si es la mejor opción, pero si ustedes piensan lo contrario, háganmelo saber.

También he visto un lenguaje como Blitz y parece realmente prometedor (además, lo probé hace unos años, y fue realmente bastante agradable). La desventaja es que tengo que pagar, algo en lo que definitivamente estoy en contra.

He mirado SmallBasic , lo que parece prometedor y lo seguiré viendo. Pero no he hecho mucho (de hecho, estoy ejecutando el instalador mientras escribo esto, por lo que informaré mis pensamientos al respecto en breve).

ACTUALIZACIÓN: probé rápidamente a SmallBasic y parece intrigante, pero también parece bastante diferente en comparación con otros idiomas, eso no es algo malo, pero es algo inusual. Fuera de las cosas que he visto, Blitz sigue siendo mi favorito, pero me niego a ir allí debido al costo.

Pero básicamente, ¿qué piensan ustedes de lo que he dicho hasta ahora, y los idiomas que he visto y conocen otras buenas alternativas?


ACTUALIZACIÓN: Esto es lo que he elegido hacer ...

Me he dado cuenta de que aunque me encantaría ayudar a mi primo, no puedo estar con él todo el tiempo, y no puedo ayudarlo cada vez que necesita ayuda. Entonces, quería elegir algo que tenga una buena documentación, una buena comunidad y un buen libro que pueda seguir.

De todos modos, he elegido Python y Pygame. Python es un lenguaje con el que estoy bastante familiarizado, además sé que hay una comunidad bastante buena (y bastante grande) alrededor de Python. Además, sé que la documentación de Python es bastante completa y fácil de navegar. Pygame también tiene una excelente documentación y un conjunto de tutoriales. También le pido que use / siga Invent Your Own Computer Games con Python , que parece un libro muy bueno, le compré una copia impresa como regalo de Navidad, además sé que su monitor no es enorme, y lo haría sea ​​inconveniente para cambiar constantemente entre el texto y el editor.

¡Creo que debería ir bien!

EDITAR: No quiero implicar que mi elección sea final o que sea correcta. Solo creo que es la mejor opción para esta situación. Creo que cada persona que busca enseñar a alguien más joven debe explorar la selección y encontrar la mejor solución para la persona individual, considerando cosas como la edad, el nivel de habilidad y el interés.

Bob
fuente
15
1 I want a language that can be used to develop really cool stuff that will impress his friends.Esa sigue siendo mi principal motivación para la programación, después de 25 años en que ...
Yannis
2
+1 Por saber dónde parar al enseñar a alguien más joven. Sin aburrida informática, solo los buenos resultados. "crea la chispa y luego deja que continúe con el resto del fuego".
Andy Hunt
1
@Bob He estado trabajando como desarrollador web durante más de una década, pero solo recientemente participé en algo que la gente realmente usa directamente. He estado haciendo cosas profundas durante demasiado tiempo. Aunque mi respuesta oficial es que mi motivación es mi profundo amor por la resolución de problemas, bla, bla, bla, el año pasado fue el primero en mi vida profesional que tuve la oportunidad de escuchar de personas al azar que realmente están usando lo que estoy construyendo. , y les ayudó de alguna manera. ¡El sentimiento es asombroso! Esperamos que sus hallazgos primo de programación tan emocionante como lo hacemos ...
Yannis
1
@MahmoudHossam definitivamente te lo haré saber
Bob

Respuestas:

12

Parece que nadie ha tirado Python + Pygame . Dependiendo de la edad / madurez de sus primos, ciertamente abre la posibilidad de muchas cosas interesantes. Eso es ciertamente lo suficientemente básico como para comenzar, pero con su enorme biblioteca estándar, realmente no puede aburrirse con Python.

Wayne Werner
fuente
19

Creo que el equivalente moderno de BASIC es Javascript. Dele una página HTML simple que tenga una secuencia de comandos incrustada que cree un lienzo y dibuje una forma en él, señale algunos tutoriales y vea qué sucede. Cambio rápido (guarde sus cambios y actualice la página) y soporte de depuración decente.

TMN
fuente
Una ventaja adicional es que él también puede compartir instantáneamente con amigos
bunglestink
Los juegos HTML5 son un tema candente para la industria de los juegos móviles, debido a su portabilidad (¿futura?) / Independencia de la plataforma. Otro es WebGL, que creo que es menos común. Nuevos kits de herramientas para ellos aparecen diariamente.
mctylr
Esta es una idea interesante, y creo que el desarrollo web es definitivamente una buena habilidad. Tendré que pensarlo, pero parece interesante.
Bob
55
No estoy completamente de acuerdo. Javascript es bastante más difícil de aprender que Basic es / era (no es que yo sepa Basic, mente), y si desea combinarlo con una página web, también debe aprender sobre HTML y tecnologías web. Un comienzo más simple (creo) estaría en Javascript del lado del servidor, por ejemplo, combinándolo con NodeJS como un entorno de ejecución ligero u otro intérprete JS de línea de comandos.
Cthulhu
+1 para JavaScript: sí, la parte HTML (5) es un aprendizaje adicional, pero nuevamente, HTML es bastante simple: recuerdo haber aprendido a hacer un botón HTML y presumir cuando estaba aprendiendo GWBasic :)
yati sagade
12

No es un lenguaje de programación explícito para juegos, pero se pueden hacer efectos gráficos muy geniales usando un código bastante pequeño con el procesamiento . Además, es gratis y relativamente fácil de aprender. En mi humilde opinión, un lenguaje ideal para aprender los conceptos básicos de la programación, especialmente porque los tutoriales enseñan muchos de los conceptos básicos como variables, matrices, operaciones matemáticas, etc.

Sorcy
fuente
Creo que un punto clave es la disponibilidad de tutoriales. Aprendí a programar con una copia de los 101 juegos de computadora básicos de Dave Ahl , y la clave (para mí) fue ver el código y la salida de muestra juntos. Me resultó mucho más fácil trabajar hacia atrás desde la salida para descubrir cómo se hizo algo que decir "haz esto y mira lo que sucede".
TMN
11

No he jugado con él en un año o dos, pero usar C # con XNA podría ser un buen lugar para comenzar. Por lo que recuerdo, comenzar con esto es bastante fácil. Aunque ese vínculo es probablemente más para ti que para él.

Andy Hunt
fuente
1
De hecho, tengo experiencia de primera mano tanto con C # como con XNA (trabajé con C # en un trabajo anterior). Creo que es una gran recomendación, pero no estoy seguro de si es demasiado avanzada para él. Es posible que pueda hacerlo, pero la mayoría de los niños quieren resultados reales con un esfuerzo mínimo y "sobrecarga de aprendizaje".
Bob
Dado que es una biblioteca .NET, supongo que también está disponible para su uso en VB, lo que reduciría la 'sobrecarga de aprendizaje' de C # por algunos.
Andy Hunt
3
@AndyBursh cuando me vi obligado a aprender VB, me dio dolores de cabeza hasta que paré. Nunca lo he tocado desde entonces.
codesparkle
@codesparkle Estoy completamente de acuerdo, VB como lenguaje es molesto como el infierno. Sin embargo, es bastante fácil leer y escribir cosas simples, por lo que a menudo es un buen lenguaje introductorio. Lamentablemente, el lenguaje tiene algunas idiosincrasias terribles, como el horrible código que tienes que escribir para transmitir de A a B.
Andy Hunt
XNA es un poco avanzado para empezar. Lo hice, hasta que encontré Unity, que usa el mismo lenguaje pero tiene un enfoque mucho más visual, con resultados mucho más rápidos. @AndyBursh: No está disponible para VB.NET, solo C # .NET
Simon Verbeke
11

Prueba Greenfoot ,

Imagen http://www.greenfoot.org/images/screenshot.png?1310995619

Está basado en Java y existen todos estos totoriales para usarlo en Youtube .

greenfoot proporciona un buen enfoque de arriba hacia abajo destinado a un principiante.

vea esta respuesta de stackoverflow , lo que noté allí fue "Los niños, de hecho, son los que aprenden más rápido y lo hacen por coincidencia de patrones, extrapolación, interpolación, etc."

Entonces, después de usar Java en Greenfoot por un tiempo, los conceptos posteriores serán más fáciles de entender solo porque se siente familiar.

Siamore
fuente
Greenfoot parece un proyecto bastante bueno. No soy un gran admirador de Java como primer idioma, pero Greenfoot en realidad lo hace lo suficientemente simple para los programadores jóvenes. Todavía estoy jugando con eso, pero creo que podría ser el indicado.
Bob
@bob Cualquier cosa que te haga escribir código y resolver problemas interesantes rápidamente debería ser una buena opción.
Siamore
Esto parece un proyecto realmente genial
KallDrexx
La " respuesta de stackoverflow " a la que hace referencia se ha eliminado y el enlace ya no funciona, ¿le importaría actualizar la respuesta?
mosquito
4

Suena como un caso típico de modificación . Muchos juegos son muy flexibles y extensibles, desde el viejo Quake I (con su lenguaje QuakeC) hasta TES IV Oblivion, o docenas de títulos que se pueden extender con Lua.

Otra opción es Second Life : es un mundo muy flexible donde uno puede construir juegos, simulaciones, demostraciones, cualquier otra cosa con un lenguaje de script agradable y limpio .

SK-logic
fuente
Estaría de acuerdo en su mayor parte, pero creo que él quiere crear sus propios juegos. Creo que esto es más un caso por caso, pero a mi primo y sus amigos no les gustan los juegos que se prestan muy bien a la modificación ... Además, creo que la mitad de la diversión es construir algo (principalmente) desde cero. Decir "oye (papá o amigo) mira este juego que hice solo" es diferente a decir "oye mira, hice un mod para este juego que apenas juego"
Bob
Lo que estoy tratando de decir es que los niños quieren enorgullecerse de su trabajo, construir cosas desde cero y construir cosas fácilmente que produzcan resultados geniales. Creo que la modificación del juego podría estar mejor orientada para los adolescentes.
Bob
@Bob, con Second Life puedes crear tus propios juegos, utilizando la mayor cantidad de funcionalidades ya disponibles que quieras. Es solo una plataforma. Y es gratis. Y algunas de las modificaciones del juego son juegos completamente nuevos, con casi nada en común con su plataforma subyacente.
SK-logic
@Bob, en cuanto a construir algo completamente desde cero, una elección de idioma debería ser lo último a considerar. Una plataforma y bibliotecas serían más importantes. Sugeriría XNA en este caso (con una opción de cualquiera de los lenguajes .NET además).
SK-logic
Muy bien, la idea de Second Life en realidad suena bastante genial. Definitivamente lo echaré un vistazo. ¡Gracias por la sugerencia! Como antiguo desarrollador de .NET, definitivamente lo consideré, pero no quiero elegir algo demasiado complejo para un público más joven. Pero definitivamente lo investigaré.
Bob
4

Actualmente soy un ávido usuario de Game Maker . - Si bien la versión completa no es gratuita ($ 40), la versión gratuita es suficiente para probar los conceptos básicos del diseño del juego. Tiene suficiente "contenido" para que alguien nuevo se mantenga ocupado durante unos años. Si tuviera que colocarlo en algún lugar, lo colocaría en algún lugar entre modding e idiomas como python.

Tiene varios métodos de escritura. Puede usar "iconos de arrastrar y soltar" y un "lenguaje de script" mucho más avanzado (GML). Nunca entiendo por qué la gente desea "escribir código" tanto: veo arrastrar y soltar solo como una forma de visualizar el código.

Otra ventaja de gamemaker, y la razón por la que después de aprender otros idiomas, y 10 años de experiencia me adhiero a gamemaker, es que ayuda a organizar un juego: tiene varios recursos, un sistema de eventos, etc.
No es la herramienta ideal para crear el próximo mundo de warcraft, sin embargo, para impresionar a otros, es más importante crear ALGO.

Realmente no puedo recomendar otras opciones, ya que personalmente estoy contento con Gamemaker y hoy en día estoy más interesado en aprender idiomas de uso general.

paul23
fuente
+1 Descubrí Game Maker en la escuela secundaria y me divertí mucho con él. Si bien no hay una gran cantidad de codificación requerida, puede facilitar su acceso ya que lo expone a variables y puede establecer fórmulas para cambiar esas variables cuando suceden ciertos eventos. Solo los eventos de colisión incorporados permiten un montón de juegos creativos. Los juegos de plantillas incorporados permiten modificaciones útiles. He hecho juegos de desplazamiento lateral primitivos, top-down, un juego de tipo block breaker ... muy divertido.
joshuahedlund
3

En lo que miles de personas están desarrollando juegos es en Flash. El paquete de desarrollo Flash "oficial" de Adobe cuesta dinero, pero hay alternativas gratuitas; FlashDevelop me tomó menos de una hora para encontrar, descargar, ejecutar y poner en marcha un flash "Hello World". La biblioteca Flixel proporciona buenas funciones de soporte para juegos, incluyendo física, partículas, fácil creación de niveles para plataformas, tiene muchas muestras y es fácil de configurar.

mjfgates
fuente
2

FWIW, compré mi primo " Land of LISP " para este mismo propósito. El libro está ilustrado con dibujos animados y se trata de crear juegos en LISP. Sin embargo, mi primo solo quería crear juegos basados ​​en texto, pero creo que el libro le dará una buena introducción a la programación.

CamelBlues
fuente
He leído Land of Lisp y es un libro genial, pero no sé si Lisp es siempre el mejor punto de partida para los jóvenes. La sintaxis se compone principalmente de paréntesis que parecería simple, pero creo que se vuelve confuso bastante rápido, especialmente cuando eres un niño.
Bob
Para los juegos basados ​​en texto, debe presentar a su primo a Inform o TADS
user16764
@ user16764 Gracias por la sugerencia, ¡creo que será una excelente forma de modelar sus ideas!
Bob
2

El idioma con el que comencé fue Dark Basic Pro . Me alejé un poco rápido porque el desarrollo del juego no es mi taza de té, pero era un lenguaje poderoso. No lo he jugado en muchos años, así que no estoy seguro de lo bueno que es ahora (lo usé por última vez cuando DirectX 9 era nuevo y de vanguardia). Pero le permite comenzar rápidamente a codificar y crear gráficos 3D sofisticados con solo un poco de código (y también, es código puro).

Earlz
fuente
Dark Basic parece bastante ordenado, y parece similar en su objetivo a Blitz, pero aún tiene que pagar por ello.
Bob
2

Una de las partes más difíciles del desarrollo de juegos, aunque es menos frecuente en el desarrollo de juegos en 2D, es crear gráficos. Entonces, suponiendo que su primo no necesite lidiar con la creación de evaluaciones artísticas, o sea muy bueno en el arte 2D, entonces creo que el objetivo es alcanzable.

Te sugiero que uses Python junto con Pygame para comenzar. Sé que tenías reservas sobre Python, pero escúchame. Python es un lenguaje muy simple. Yo diría que la falta de mecanografía estricta lo convierte en una opción mucho mejor que algo como C # para empezar.

Los lenguajes basados ​​en prototipos son geniales y algunas personas los encuentran muy fáciles de aprender, sin embargo, no creo que las personas realmente entiendan los conceptos de cómo funcionan los objetos en lenguajes basados ​​en prototipos tan fácilmente como pueden asimilar el paradigma de clase / objeto.

Pygame también tiene numerosos ejemplos de que su primo y usted podrían ir a aprender los conceptos básicos, y es, en muchos sentidos, un marco muy simple, que no le oculta tanto como para hacer que tenga que aprender mucho del marco para hacerlo más complicado. cosas.

Quizás después de un juego escrito en pygame, puede pasar a escribir juegos que también se integran con un motor de física 2d como box2d, que tiene excelentes enlaces de python.

En cuanto a enseñarle a su primo python, me desviaría de lograr que primero aprenda el idioma, tal vez un curso intensivo en las ideas de clase / objeto. Luego, una sintaxis básica del lenguaje, antes de arrojarlo al fondo y hacer que busque la sintaxis y / o las bibliotecas cuando necesite algo.

Finalmente, otra cosa buena de Python es que puedes pasar fácilmente a los motores de juegos en 3D mientras mantienes tus habilidades con motores como panda3d o incluso unit (Boo es muy similar a Python).

Varun Madiath
fuente
2

Lua y LÖVE . Lua es uno de los idiomas más simples disponibles. El marco LÖVE está optimizado para juegos 2D. También tiene un backend OpenGL, con el rendimiento y otros beneficios que eso trae.

user16764
fuente
1

Es posible que desee probar el kit de desarrollo irreal ( características ). Puede ser un poco difícil aprender sobre la interfaz. Pero lo mejor de esto es que también tiene un motor visual de secuencias de comandos, por lo que no necesita poder programar para hacer algo. Luego puede hacer algo y programar pequeñas partes de él mismo. Un inconveniente podría ser que usa su propio lenguaje de secuencias de comandos.

Otro motor que realmente me gusta es Unity3D ( Características ). Unity no tiene programación visual, pero usa dos lenguajes comunes: C # y JavaScript. También es compatible con un dialecto de Python llamado Boo. Estos tres pueden interactuar. Unity también viene con muchos guiones terminados.

Simon Verbeke
fuente
Si el objetivo es su propio juego con gráficos en 3D, este es el mejor enfoque de la OMI. Muchos / la mayoría de los principales juegos de herramientas del juego tienen versiones gratuitas (algunos requieren que tengas una versión registrada de su juego principal). La mayoría se extiende desde la modificación hasta la creación de entornos de juego completamente nuevos. Varios (no todos): Playground , Havok y Value Source . Hay muchos más que no puedo pensar en este momento.
mctylr
Unity y Unreal son geniales, pero creo que la edad objetivo comienza en la adolescencia, que es un poco demasiado vieja.
Bob
@Bob: No creo que hayas mencionado ninguna edad, así que no estaba seguro de qué proponer :)
Simon Verbeke
0

Sé que está buscando idiomas gratuitos y hay algunos buenos consejos de otros carteles. Dado que le preocupa obtener resultados interesantes, rápido y dado que Blitz parece el tipo de cosas que le gustaría, a excepción del costo, me gustaría sugerirle Phrogram . Esto solía ser KPL (que era gratis). No es gratis, pero es más barato que Blitz y tiene muchas de las mismas características que creo que lo hacen muy adecuado para usar como lenguaje de enseñanza, especialmente para adolescentes.

Puede hacer algunas cosas bastante sofisticadas con Phrogram y hay una comunidad bastante bien establecida de usuarios de Phrogram y KPL que han publicado mucho código para aprender.

Joel Brown
fuente
Phogram se ve genial, y no estoy realmente en contra de pagar, pero preferiría las opciones gratuitas. Haré la prueba y veré cómo se compara con DarkBasic y Blitz.
Bob
0

Muchas buenas sugerencias aquí, solo daré un saludo a RoboCode . Hay muchos ejemplos para ajustar, y puede estar en funcionamiento en solo unos minutos. Le dará el sabor de la programación, pero no es probable que aprenda los detalles de escribir un programa desde cero. También está basado en Java, por lo que vale.

TMN
fuente
0

¡No puedo entender cómo nadie habla de Games Factory! Este es uno de los mejores recursos para construir rápidamente un juego de computadora, sin un conocimiento de programación.
http://www.clickteam.com/website/usa/downloads/index/7
Consiste en el editor del guión gráfico, con marcos. Pones diferentes objetos que pueden ser controlados de varias maneras por el jugador (movimiento de la plataforma, 8 direcciones, etc.)
El aspecto más importante es el editor de eventos: es una matriz enorme, que utilizas para definir lo que sucede desde reglas definidas (Me gusta: el objeto (1) se movió al final de la pantalla, la ubicación del objeto es> 100, etc.).

Andrey Rubshtein
fuente
0

Ve con Unity3D ...

no hay que tener miedo de codificar en él ... y hay muchas cosas en las que no necesita codificar ... las muestras harán feliz a su primo.

también hay algunos videos ... agradables de ver walkerboystudio.com/html/unity_training_ free .html

Serdar Buyuktemiz
fuente