Jump to content
UnitySpain
juantrix

Practica principiantes

Recommended Posts

Este es el primer post que creo y espero no romper (mucho) ninguna regla.

Empecemos!!

Estoy aprendiendo a usar Unity para poder llegar a ser el mejor programador de la historia!!!...:134_spy:. Bueno talvez no tanto, pero con poder expresarme con libertad me alcanza :2_grimacing: .Entonces me propuse hacer 10 juegos sencillos como para un principiante. Tocando la parte visual un poco hasta tener algo que sintamos que esta terminado y lo mismo con el audio, programación, etc.

Entonces les propongo a todos aquellos que recién empiecen, o solo quieran participar, que intenten crear estos 10 juegos y los muestren en este foro para poder comparar y ver las distintas formas que hay de hacer las cosa. De esta forma aprender y conocer distintas técnicas, trucos, etc.

Yo en el momento que hice este post estaba por el 3º, espero haber avanzado :15_yum: .

Para tomarlo como terminado, cada juego tiene que tener las funciones básicas para su funcionamiento, mínimamente y luego se pueden explayar todo lo que quieran.

___________________________________________________________________________________________________________________________

La lista:

1º Pong

Breakout

3º Tetris

4º Snake

5º Pacman

6º R-Type

7º Mario

Super Cars

9º Carreras 3ª persona

10º plataforma 3ª persona

___________________________________________________________________________________________________________________________

Espero los aportes de todos y ya quiero ver esos juegos!!.

Edited by juantrix
no me cargo un emoji

Share this post


Link to post
Share on other sites
9 hours ago, juantrix said:

Entonces les propongo a todos aquellos que recién empiecen, o solo quieran participar, que intenten crear estos 10 juegos y los muestren en este foro para poder comparar y ver las distintas formas que hay de hacer las cosa. De esta forma aprender y conocer distintas técnicas, trucos, etc.

Esta interesante la propuesta, aunque no se si pretendés crearlos fielmente o usan las mismas técnicas, o si pretendés una versión similar o visualmente parecida, por ej un "juego estilo mario" y no un mario. Quizás un mario muchos lo interpreten como un sprite corriendo, comiendose unos hongos psicodelicos,  y saltando sobre cosas, bien pero eso no alcanza para nada, Mario tiene cosas unicas que hacen que cuando lo jugas sabés que es Mario y no otra cosa, cuantos lo van a hacer respetando por ej el salto positivo de una forma y el negativo más rápido el típico "cambio de gravedad"?, o la genial cámara que te espera pero cuando superás un umbral se adelanta más rápido? (dificil de explicar pero jugandolo se ve), o las colisiones exactas tipo tile (en esa epoca) vs los molestos rigidbodies en este tipo de juegos que usa todo el mundo?, dudo que alguien vaya a hacer todo esto, por eso no lo concideraría un Mario ni de cerca, pero sí un intento de Mario.

Lo mismo se aplica al resto, Pong no es una pelota y dos bloques con rebote infinito o un physics material slippery, Tetris tampoco son un rigidbodies cayendo del aire, osea hacer esos juegos teniendo en cuenta como se hicieron y los trucos que implementaron no se si es algo completamente principiante, pero sí se pueden crear imitaciones salgan como salgan y de ahí ir mejorandolas, eso sí que sería bueno de ver, entretenido y hasta didáctico.

Por que no arrancás vos y subís alguno, los tres primeros tenés?

Saludos

 

 

Share this post


Link to post
Share on other sites
1 hour ago, lightbug said:

Esta interesante la propuesta, aunque no se si pretendés crearlos fielmente o usan las mismas técnicas, o si pretendés una versión similar o visualmente parecida, por ej un "juego estilo mario" y no un mario. Quizás un mario muchos lo interpreten como un sprite corriendo, comiendose unos hongos psicodelicos,  y saltando sobre cosas, bien pero eso no alcanza para nada, Mario tiene cosas unicas que hacen que cuando lo jugas sabés que es Mario y no otra cosa, cuantos lo van a hacer respetando por ej el salto positivo de una forma y el negativo más rápido el típico "cambio de gravedad"?, o la genial cámara que te espera pero cuando superás un umbral se adelanta más rápido? (dificil de explicar pero jugandolo se ve), o las colisiones exactas tipo tile (en esa epoca) vs los molestos rigidbodies en este tipo de juegos que usa todo el mundo?, dudo que alguien vaya a hacer todo esto, por eso no lo concideraría un Mario ni de cerca, pero sí un intento de Mario.

Lo mismo se aplica al resto, Pong no es una pelota y dos bloques con rebote infinito o un physics material slippery, Tetris tampoco son un rigidbodies cayendo del aire, osea hacer esos juegos teniendo en cuenta como se hicieron y los trucos que implementaron no se si es algo completamente principiante, pero sí se pueden crear imitaciones salgan como salgan y de ahí ir mejorandolas, eso sí que sería bueno de ver, entretenido y hasta didáctico.

Por que no arrancás vos y subís alguno, los tres primeros tenés?

Saludos

 

 

Talvez no fui lo suficiente mente especifico pero con el tema de la forma de hacerlo, es usando lo que el motor unity te proporciona, o el que quiere hacerlo de la forma mas difícil que casi es lenguaje de bajo nivel también puede.Ningún aporte resta.

La idea principal es que llegue alguien que hizo el pong por ejemplo y luego mira los trabajos de los demás para ver como lo hicieron y talvez descubra una mejor forma de hacer algo en especifico que antes el había echo de otra forma menos óptima.

Y lo de los juegos de la lista cada uno hace lo que interpreta no hace falta que todos hagan lo mismo ya que una persona por ejemplo  argentina (como yo) no tiene el mismo punto de vista acerca de nintendo como un europeo ya que no fue muy explotada acá como otras compañías.

Y los tres juegos que hice los tendría que modificar un poco porque al principio los cambie para reírnos con unos amigos XD .

 

Share this post


Link to post
Share on other sites
1 hour ago, lightbug said:

Esta interesante la propuesta, aunque no se si pretendés crearlos fielmente o usan las mismas técnicas, o si pretendés una versión similar o visualmente parecida, por ej un "juego estilo mario" y no un mario. Quizás un mario muchos lo interpreten como un sprite corriendo, comiendose unos hongos psicodelicos,  y saltando sobre cosas, bien pero eso no alcanza para nada, Mario tiene cosas unicas que hacen que cuando lo jugas sabés que es Mario y no otra cosa, cuantos lo van a hacer respetando por ej el salto positivo de una forma y el negativo más rápido el típico "cambio de gravedad"?, o la genial cámara que te espera pero cuando superás un umbral se adelanta más rápido? (dificil de explicar pero jugandolo se ve), o las colisiones exactas tipo tile (en esa epoca) vs los molestos rigidbodies en este tipo de juegos que usa todo el mundo?, dudo que alguien vaya a hacer todo esto, por eso no lo concideraría un Mario ni de cerca, pero sí un intento de Mario.

Lo mismo se aplica al resto, Pong no es una pelota y dos bloques con rebote infinito o un physics material slippery, Tetris tampoco son un rigidbodies cayendo del aire, osea hacer esos juegos teniendo en cuenta como se hicieron y los trucos que implementaron no se si es algo completamente principiante, pero sí se pueden crear imitaciones salgan como salgan y de ahí ir mejorandolas, eso sí que sería bueno de ver, entretenido y hasta didáctico.

Por que no arrancás vos y subís alguno, los tres primeros tenés?

Saludos

 

 

Hace más de 10 Años intente armar un TETRIS diciendo .. es super SIMPLE, luego me di cuenta que se aplica matemática un "poco" compleja - Cuando logre programarlo lo hice en C# con XNA - Si bien en este proyecto solo se aplican reglas matemáticas estuve meses para terminar NO TENÍA NADA DE CONOCIMIENTO Estaba aprendiendo aún.

Cuando intente recrear Super Mario Bros de la NES. me encontré con un mundo de cosas SÚPER complejas, como la colisión por pixeles, las resoluciones, los tiles, las animaciones, el manejo de sprites sheet y sobre todo la optimización de cada parte - NUNCA logre un gran resultado, tenia miles de errores imposibles de solucionar, luego me di cuenta que algunos juegos se ponen aún más complejos --- por ejemplo Flintstone, con la opción de agarrarse de las cornisas, luego plataformas diagonales.

Luego llegó UNITY -  y esto arruinó toda la magia de la programación de Juegos, la gente no entiende que los componentes que trae UNITY no son para abusar, y no siempre se deben utilizar, tambien un error del motor es integrar todo al proyecto, debería ser modular -

Lo "GROSO" del motor es poder construir algo multiplataforma, la transparencia total con shaders, materiales, animaciones, etc, pero creo que para alguien que esta iniciando en este mundo es mejor una librería gráfica, donde se debe programar "cada pixel", las colisiones y todas sus mecánicas, entonces al pasar a un motor gráfico saben elegir correctamente cada componente -

Share this post


Link to post
Share on other sites

Tanto Tetris como Snake requieren conocimiento de Collections (matrices/tablas/lists o cómo lo queráis llamar), y saber recorrer bien las posiciones dentro de bucles. Por lo tanto, considero que deberían estar ubicados en una etapa mucho más posterior a un mata-mata o a un plataformas2D, y por supuesto estar juntos en la misma práctica.

Por otra parte, tanto Pong como Arkanoid/Breakout requieren comprender totalmente el concepto de Vector (posición , magnitud y dirección), para así poder calcular bien los rebotes. Es correcto que se aprendan a hacer juntos, en la misma etapa.

 

¿Quieres ser un buen programador de Videojuegos? Pues dominar las bases es un requisito imprescindible. De lo contrario te quedarás atascado siempre en un punto concreto del desarrollo, y te tocará hacer apaños o adaptar el código para conseguir un resultado parecido (que nunca igual), por lo que no "aprendes lo nuevo" y puedes acabar frustrado.

Recomiendo re-organizar la lista para aprender a programar videojuegos, con un temario que decidamos entre todos y no se base en Juegos ni Géneros, sinó en los conocimientos a dominar y que caracterizan principalmente a esos juegos.

Ejemplo:

  • Vectores (Vector2)
    • Pong
    • Breakount
    • Pang
  • Físicas (Velocidad, aceleración, Tiro parabólico, Impulso, Salto, Gravedad, Trayectorias)
    • Angry Birds
    • Flappy Bird
    • Fruit Ninja
    • Jetpack
    • Floor is Lava
  • Object Pool (Colliders/Triggers, Instanciado de Proyectiles, Sistema de Partículas)
    • R-Type
    • Darius
    • Ikaruga
  • Input (Controles, Colisiones & Raycasts, lógica y estados, Animaciones)
    • Super Mario Bros
    • Enter the Gungeon
    • Pacman
  • Matrices (Colecciones, Arrays/Listas, Bucles anidados, pilas)
    • Snake
    • Tetris
    • Columns
    • Puyo-Puyo
    • Candy Crush
    • 2048
  • Timers (Contadores, Sincronización, Parallax, Eventos, Combos, QuickTimeEvents)
    • JetPack Joyride
    • Guitar Hero
  • Transform/Vector3 (Cámaras, Follow & LookAt, Pivotes, Gimbal Lock, TimeLine & CineMachine)
    • Doom & Call of Duty
    • Fornite
    • Gears of War
    • Dark Souls
    • Uncharted
    • Super Mario Galaxy & Odyssey
  • Gestión de Datos (Inventory, Skill tree, Player Stats, Quests, Atributos, Patrones, File Parser/Serialización)
    • Final Fantasy
    • Diablo
    • Ogame
    • DayZ & PUBG

 

El temario no tiene ningún orden secuencial, ya que cada persona tiene facilidades o dificultades comprendiendo distintos temas. Eso sí, tened en cuenta que puede que alguno dependa de haber dominado otro conocimiento, previamente...

 

Share this post


Link to post
Share on other sites
hace 15 horas, pioj said:

Tanto Tetris como Snake requieren conocimiento de Collections (matrices/tablas/lists o cómo lo queráis llamar), y saber recorrer bien las posiciones dentro de bucles. Por lo tanto, considero que deberían estar ubicados en una etapa mucho más posterior a un mata-mata o a un plataformas2D, y por supuesto estar juntos en la misma práctica.

Por otra parte, tanto Pong como Arkanoid/Breakout requieren comprender totalmente el concepto de Vector (posición , magnitud y dirección), para así poder calcular bien los rebotes. Es correcto que se aprendan a hacer juntos, en la misma etapa.

 

¿Quieres ser un buen programador de Videojuegos? Pues dominar las bases es un requisito imprescindible. De lo contrario te quedarás atascado siempre en un punto concreto del desarrollo, y te tocará hacer apaños o adaptar el código para conseguir un resultado parecido (que nunca igual), por lo que no "aprendes lo nuevo" y puedes acabar frustrado.

Recomiendo re-organizar la lista para aprender a programar videojuegos, con un temario que decidamos entre todos y no se base en Juegos ni Géneros, sinó en los conocimientos a dominar y que caracterizan principalmente a esos juegos.

Ejemplo:

  • Vectores (Vector2)
    • Pong
    • Breakount
    • Pang
  • Físicas (Velocidad, aceleración, Tiro parabólico, Impulso, Salto, Gravedad, Trayectorias)
    • Angry Birds
    • Flappy Bird
    • Fruit Ninja
    • Jetpack
    • Floor is Lava
  • Object Pool (Colliders/Triggers, Instanciado de Proyectiles, Sistema de Partículas)
    • R-Type
    • Darius
    • Ikaruga
  • Input (Controles, Colisiones & Raycasts, lógica y estados, Animaciones)
    • Super Mario Bros
    • Enter the Gungeon
    • Pacman
  • Matrices (Colecciones, Arrays/Listas, Bucles anidados, pilas)
    • Snake
    • Tetris
    • Columns
    • Puyo-Puyo
    • Candy Crush
    • 2048
  • Timers (Contadores, Sincronización, Parallax, Eventos, Combos, QuickTimeEvents)
    • JetPack Joyride
    • Guitar Hero
  • Transform/Vector3 (Cámaras, Follow & LookAt, Pivotes, Gimbal Lock, TimeLine & CineMachine)
    • Doom & Call of Duty
    • Fornite
    • Gears of War
    • Dark Souls
    • Uncharted
    • Super Mario Galaxy & Odyssey
  • Gestión de Datos (Inventory, Skill tree, Player Stats, Quests, Atributos, Patrones, File Parser/Serialización)
    • Final Fantasy
    • Diablo
    • Ogame
    • DayZ & PUBG

 

El temario no tiene ningún orden secuencial, ya que cada persona tiene facilidades o dificultades comprendiendo distintos temas. Eso sí, tened en cuenta que puede que alguno dependa de haber dominado otro conocimiento, previamente...

 

Es excelente este aporte -

Observo en la facultad y tambien dentro del secundario la línea de aprendizaje de las personas, existen tipos de materias en los cuales no se obtiene el resultado, "LITERATURA", "DERECHO", Etc, a diferencia de matemáticas, física y sobre todos las materias relacionadas a la matemáticas que se percibe la disposición para aprender, este ejemplo tambien se aplica a la programación, antes de empezar a desarrollar Juegos se debe tener un nivel intermedio en programación, y con esto me refiero a entender cosas como estructuras, clases, herencias, trabajos, hilos, escritura y lectura de datos, trabajar con eventos, y múltiples cosas, y muchos de estos temas no tienen resultados, si no que son absolutamente teoría.

No creo que unity sea el mejor ambiente para aprender, no digo que no lo vas a hacer pero te llevará más tiempo por disponer de todas las funciones matemáticas más simples y uno salta conocimientos que luego serán necesarios, conozco personas que trabajan profesionalmente en el rubro y actualmente "no recuerdan" cómo se transforman grados a radianes y viceversa, esto puede parecer tonto, pero cuando se empieza a trabajar con funciones trigonométricas hacen la vida imposible - y esto es el primer ejemplo, existen varios como la magnitud de un vector, la suma, la resta .

Recomiendo aprender C# básico con tutoriales donde aprendas hacer cosas en consola, muchas veces la programación no necesita resultados inmediatos y mucho menos gráficos, con un simple OK! en una consola podemos ir resolviendo muchísimos problemas - 

Me gusta este aporte de @pioj por qué separar los temas por tipo, aunque un poco extremo por qué no veo lógico desarrollar un 'DIABLO' para aprender a abrir un archivos escribir bytes y cerrarlo, tambien hay que tener presente la plataforma y omitir siempre que se posible librerías externas, como ya dije, utilizar un IDE, un ENGINE 3D sirve como herramienta para facilitar la construcción de nuestros proyectos, pero no se debe abusar de las prestaciones, por ejemplo un MARIO BROS no requiere físicas, rigidbody, raycast, entonces lo lógico sería no utilizar  ninguna prestación del componente Physics de Unity - Lo mismo para componentes como Animator, etc ... 

También hay que ser consciente que en cualquier momento Unity3D puede dejar de existir, y si tenemos pensado desarrollar juegos el motor gráfico solo debe ser una herramienta y no un todo para nuestra meta -

Edited by francoe1

Share this post


Link to post
Share on other sites

Es mejor así la verdad.

yo tuve 3 años de programación en la escuela con el horrible visual basic y estuve todo ese tiempo haciendo programas administrativos, metodos de ordenamiento y esas cosas, talvez tome como ya sabido esos temas y me olvide de la gente que no toco un script en la vida.

Share this post


Link to post
Share on other sites

Como ya han dicho por aqui, si haces un tetris y pones unos rigidbodies cayendo no estas aprendiendo nada, y lo mismo con el resto de juegos, lease el mario por ejemplo.

O los haces a pelo sin usar las "tonterias" nuevas del motor o no aprendes lo basico, eso siempre y cuando se quiera aprender como programador para encontrar trabajo en la industria, si es por placer, pues a lo rapido, se ponen unos rigidbodies y a tirar millas.

Share this post


Link to post
Share on other sites
hace 7 horas, francoe1 said:

aunque un poco extremo por qué no veo lógico desarrollar un 'DIABLO' para aprender a abrir un archivos escribir bytes y cerrarlo

Bueno, no se trata de "hacer un DIABLO", o un juego de los complejos de esa lista. Yo me refiero a que tomes de referencia esa parte concreto de ese juego (o uno parecido o del estilo, he elegido esas referencias porque son famosas, nada más. Muchos iniciados apenas saben de géneros o términos...) y trates de replicarla de la forma más aproximada posible. Eso conlleva directamente a OBLIGARTE A BUSCAR Y ESTUDIAR los entresijos de cómo funciona, y por lo tanto, te ayuda a centrarte en lo que tienes que estudiar, y no en otras áreas comunes a otros videojuegos.

Por ejemplo, los micro-juegos o juegos de una sola mecánica tipo Pong ó Pacman se pueden llegar a replicar casi por completo. En otros casos, es más una cuestión de conseguir reproducir El Core de dicho juego de la lista.

"Si estás estudiando los Raycast con el ejemplo de un SuperMario, no te pongas a perder tiempo con el Photoshop pintando de colores los ladrillos, so melón..."

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...