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.
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 ...Respuestas:
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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 .
fuente
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.
fuente
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.
fuente
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.
fuente
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).
fuente
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).
fuente
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.
fuente
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.
fuente
Hay una biblioteca de Haskell llamada Gloss , que tiene una interfaz muy simple y se ha utilizado para enseñar a los niños:
http://cdsmith.wordpress.com/2011/09/28/haskell-for-kids-week-7/
También se puede probar en línea:
http://dac4.designacourse.com:8000/anim
fuente
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.
fuente
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.
fuente
¡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.).
fuente
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
fuente
http://news.bbc.co.uk/2/hi/programmes/click_online/9658183.stm
El programa de la BBC Click mostró un sitio web donde puedes crear juegos basados en Flash sin necesidad de conocer un lenguaje de programación.
http://www.stencyl.com/
fuente