Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Practica principiantes

Iniciado por juantrix, Julio 11, 2018, 05:10:44 PM

Tema anterior - Siguiente tema
Julio 11, 2018, 05:10:44 PM Ultima modificación: Julio 11, 2018, 05:11:52 PM por juantrix
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!!!... .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  .
 
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
 
2º 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!!.

Cita de: juantrix date=1531321844Entonces 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
 
 
 
 

Cita de: lightbug date=1531344321Esta 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 .
 
 

Cita de: lightbug date=1531344321Esta 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 -

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...
 
 

Julio 13, 2018, 02:47:38 AM #5 Ultima modificación: Julio 13, 2018, 02:49:25 AM por francoe1
Cita de: pioj date=1531385953Tanto 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 -

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.

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.

Cita de: francoe1 date=1531442858aunque 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..."

Etiquetas: