Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - 0nironauta

#1
Presentaciones / ¡Re saludos!
Mayo 15, 2019, 02:03:38 PM
¡Hola!
 
Ayer me enteré por @Ufita y Meri Palas que el foro seguía vivo y recordé que hace años que no entro. Así que me he pasado a saludar. Por suerte mi cuenta sigue existiendo :)
 
Desde la última vez que entré he hecho bastantes cosas! Espero poder sacar un poco de tiempo para actualizar y presentaros el proyecto en el que estoy trabajando ahora: Oniria Crimes.
 
¡Un saludo a todos!
#2
General (Antiguo) / Delicious Plancton
Noviembre 10, 2015, 06:57:38 AM
Delicious Plancton, desarrollado en sólo 48 horas, está online para votaciones. Se trata de nuestro juego para la Indie Speed Run. Es una indie online organizada por algunos peces gordos de la industria.Os dejo aquí lo que es el juego en sí, más el enlace para que lo probéis y, si os gusta, lo votéis. Si queréis echar una mano y lo difundís, pues se agradecería enormemente  
#3
Recientemente me he topado con el problema de controlar pendientes (cuestas, laderas, rampas) en un plataformas 2D. Hace tiempo me encargué de la programación de Fat Ninja Adventure. Eso fue antes de que saliese el 2D toolkit de Unity, por lo que tuve que programar todo el motor 2D :_(  En ese caso, no utilicé físicas para controlar al personaje 2D. Pero por fin he tenido o mejor dicho, he hecho un hueco para hacer un controlador de personaje 2D con físicas. Lo cual tiene sus propios problemas intrínsecos. Uno de ellos es el que nos ocupa.

Concretamente, el problema es que el personaje resbala por la pendiente, debido al cálculo de la gravedad y las fuerzas. Esto es algo que no aparece resuelto en el http://unity3d.com/es/learn/tutorials/modules/beginner/2d/2d-controllers" rel="external nofollow">video tutorial oficial de Unity -al menos hasta donde yo sé. He encontrado
" rel="external nofollow">soluciones matemáticas al problema, pero no me funcionan perfectamente en mi implementación. Además, debido a que en el curso del que soy profesor no tenemos mucho tiempo para extendernos con explicaciones matemáticas, siempre intento resolver este tipo de problemas sin fórmulas }   
Para la explicación, doy por supuesto que ya sabes cómo detectar que el personaje está en el suelo. 

1.- Puedes llamar a la función ComprobarPendiente al final de tu Update o FixedUpdate -dependerá de cómo tengas el código estructurado. La función necesita saber si el personaje está en el suelo, si el eje horizontal ha sido pulsado este frame y si se ha pulsado el salto. Son las 3 variables que aparecen en el primer IF

2.- Si el personaje está en el suelo, y no estamos pulsando ningún input, resbalará por la pendiente. Para prevenir esto, emitimos un Raycast hacia abajo, y comprobamos la normal del punto de impacto. De esta forma comprobamos si estamos en una pendiente. En caso afirmativo, congelamos todas las constraints del Rigidbody2D. Éste sería el "truco".

Esto evitará que el personaje se resbale pendiente abajo por culpa de la gravedad. Lo haremos sólo cuando el personaje está "Idle". También pondremos la velocidad a 0. Es posible que funcione modificando el atributo GravityModifier y ponerlo a 0.


3.- Si estás moviendo al personaje, o éste está en el aire, entonces descongelamos las constraints, aunque dejamos congelada la rotación.

No puedo predecir si esta técnica responderá bien para todos los casos, por eso la dejo aquí a debate. En mi caso al menos está funcionando como se desea. Hay un vídeo del funcionamiento en mi blog, por si queréis verlo.
#4

Buenas, seguramente a muchos de vosotros no os diga nada nuevo, pero para la gente que se está iniciando en la programación, es posible que no sepan cómo usar un debugger, así que creo que este tutorial le puede servir a los que empiezan.

 

He pensado que si alguien quiere añadir trucos o utilidades, o contar cómo depura él el código, podemos usar este hilo para ello. Un saludo.

 

http://unityvs.com/screen/vs.png" rel="external nofollow">
 
Para los que uséis Visual Studio con Unity, os puede interesar saber que se puede integrar el Debugger, al igual que se puede hacer con MonoDevelop.
 
En este tutorial voy a explicar cómo integrar y cómo usar el depurador de código, que puede ahorrar mucho tiempo cuando nos acostumbramos a usarlo.
 
Instalación
 
1.- Descargar e instalar https://visualstudiogallery.msdn.microsoft.com/20b80b8c-659b-45ef-96c1-437828fe7cf2" rel="external nofollow">Visual Studio Tools for Unity. La versión enlazada es la de 2013, pero cuando este artículo envejezca puede ser razonable instalar la más reciente (la versión 2015 no ha salido aún).
 
2.- En Unity -> Build Settings, marcar las casillas Development Build y Script Debugging. Por cierto, desde Unity 5 tenemos el Profiler gratuito. Es muy buena herramienta para medir el rendimiento de nuestro proyecto. Os aconsejo que lo probéis.
 

http://unityvs.com/screen/unity-target.png" rel="external nofollow">
 
3.- Importar el paquete Visual Studio Tools a Unity. Si no lo encontramos en el menú Assets -> Import Package, podemos localizarlo en la ruta:
C:\Program Files (x86)\Microsoft Visual Studio Tools for Unity\201X
El archivo tiene la extensión .unitypackage, por lo que podemos pinchar dos veces para importarlo a nuestro proyecto.
 
4.- Nos creará un menú para estas utilidades. Abrimos Visual Studio desde Unity.
 

http://unityvs.com/screen/open-vstu.png" rel="external nofollow">
 
 
Uso


1.- Colocar Breakpoints: Son puntos donde podemos detener la ejecución del programa. Elegimos cualquier línea de código (normalmente la que nos interesa. No usar declaraciones de funciones), pinchamos en el marco a la izquierda del número de línea, y veremos que aparece un punto rojo. Cuando el programa llegue a ese punto, se detendrá.

 

http://unityvs.com/screen/vs.png" rel="external nofollow">


 

 

2.- Cuando tenemos los breakpoints preparados, pulsamos el botón Attach to Unity o F5. También tenemos la opción en el menú DEBUG. Nos pedirá que seleccionemos la instancia de Unity que se está ejecutando. La seleccionamos y le damos a aceptar. Visual Studio pasará a modo DEBUGGER.

En MonoDevelop, sólo tenemos que pulsar PLAY. 

 

3.- Pulsar Play en Unity y probar el juego. Cuando el flujo llegue al breakpoint, Unity pasará a modo PAUSA (aunque no es como si hubiésemos pulsado el botón de pausa, sino que está detenida su ejecución desde Visual Studio).

 

4.- La siguiente imagen es del MonoDevelop, pero en Visual Studio es igual (bueno un poco más completo quizás). Una vez que el programa está detenido, podemos observar el contenido de las variables y los atributos en ese momento de la ejecución.

Con esta herramienta podemos comprobar fácilmente cuántas veces se entra en una función y en qué momento y qué valor tienen los atributos de las clases en un momento dado.

 

https://unity3d.com/sites/default/files/styles/original/public/learn/MDDebugging05.png?itok=URdYOxRv" rel="external nofollow">


 

5.- Una vez que estamos detenidos en un breakpoint podemos pulsar el botón continue para continuar con la ejecución normal. A parte, podemos detener la depuración en el menú DEBUG -> Stop.

 

6.- Breakpoints condicionales. Podemos hacer que el programa se detenga sólo cuando cierta variable tiene un valor. Para ello, fuera del modo DEBUG, pulsamos con el botón derecho en el breakpoint y vamos a sus propiedades. Esto nos permite aún más flexibilidad, ya que podemos controlar casos límite.

 

https://unity3d.com/sites/default/files/styles/original/public/learn/MDDebugging07.png?itok=8gKQYwbq" rel="external nofollow">


 

 

Espero que os sirva para depurar vuestros juegos este verano. Normalmente en proyectos pequeños no hace falta usar un debugger, pero cuando va creciendo llega un momento en el que vamos a tardar mucho menos encontrando errores de esta manera.

 

 
#5
General (Antiguo) / Colonial Space Wars
Abril 17, 2015, 02:21:50 PM
Buenas,
 
Quería presentaros el proyecto en el que llevo trabajando desde verano (por ahora en modo lone programmer). Se trata de la adaptación de un juego de mesa de estrategia llamado Colonial Space Wars, de Vedra Games.
 

 
El juego se está ampliando continuamente, por lo que el desarrollo seguramente no parará en bastante tiempo.

 
Las características del juego son las siguientes:
  • Saldrá para PC y más adelante para móvil. En español y después en inglés

  • Estrategia por turnos

  • No tendrá inteligencia artificial en un primer momento, se añadirá más adelante

  • Juego hotseat y online

  • 4 facciones con sus estilos propios de juego

  • Ejércitos configurables por el jugador

  • Imágenes de las unidades, con intención de añadir modelos 3D en un futuro

 

 
Por ahora ya tengo dos de las facciones con las unidades básicas: Unión de Terra y Hermandad Centauri. He remodelado toda la interfaz de usuario después de que saliese la nueva UI en la versión 4.6, lo que le ha dado un aspecto mucho más ligero y he podido animar las transciones entre los menús. También se puede echar una partida completa entre estas dos facciones (en hotseat) y se pueden crear listas de ejército.
 
Si os gustan los wargames, seguramente os gustará este juego. Uno de los puntos más interesantes es que no tiene azar (aunque existen modificaciones a las reglas para añadirlo). Es decir, que se parece al ajedrez en este sentido. Gana el mejor y no el que más suerte tiene
 

 
Aquí os dejo algunas imágenes del prototipo. Os dejo también la página de http://www.vedragames.com/" rel="external nofollow">Vedra Games por si queréis echar un vistazo más detallado al juego.
 
Si alguien está interesado en colaborar con el testeo, puede dejar un comentario en la http://ckolmos.blogspot.com.es/p/colonial-space-wars.html" rel="external nofollow">página del juego.
 
¡Un saludo!
#6
Timothy McHugh, de http://www.sonniss.com/" rel="external nofollow">Sonniss, ha publicado hace poco menos de una hora en http://www.reddit.com/r/gamedev/comments/2ynqyo/10gb_of_highquality_game_audio_free_download/" rel="external nofollow">Reddit un recurso muy valioso: 10 GB de audio para videojuegos, de forma totalmente gratuita.


Aquí tenéis el torrent: http://sonniss.com/GameAudioGDC.torrent" rel="external nofollow">http://sonniss.com/GameAudioGDC.torrent

http://www.sonniss.com/wp-content/plugins/pdfjs-viewer-shortcode/web/viewer.php?file=http://www.sonniss.com/wp-content/uploads/2015/03/Tracklist-GDC-GameAudio-Giveaway-Sheet1-1.pdf&download=true&print=true&openfile=false" rel="external nofollow">Aquí está la lista completa de archivos, con algunos ejemplos. Los que he podido escuchar son efectivamente de una calidad muy buena.
#7
General (Antiguo) / Fat Ninja Adventure
Julio 19, 2014, 07:34:25 PM
¡Hola!
 
Venía a mostraros un juego que por fin he acabado, después de 2 años de desarrollo. Se trata de Fat Ninja Adventure. Es un juego 2D de scroll lateral tipo runner. Los enemigos huyen de ti en vez de ***guirte. He sido el programador del juego y comencé el desarrollo antes de que existiese el motor 2D de Unity, así que tuve que realizar la programación de un motor propio.
 

 
Tuve una pequeña ayuda con los menús cuando el proyecto estaba avanzado, de un chico que estaba aprendiendo y afortunadamente ahora está colocado  Exceptuando esto, he tenido que programar la carga dinámica de niveles, el input de usuario, las animaciones 2D de los personajes (cambiando las texturas para animarlos) y el comportamiento de los enemigos.
 

 
Lo más difícil con diferencia fue la carga de los sprites en los niveles y los problemas de rendimiento asociados a una carga de assets tan grande. Costó mucho trabajo ajustarlo todo para que visualmente de un aspecto bien acabado y además reducir los tiempos de carga de los niveles.
 

 
El equipo que hemos sacado el proyecto adelante, en nuestro tiempo libre, hemos sido un game designer que se encargaba de coordinar y de hacer los niveles (y también el testeo), un ilustrador, un modelador 3D que ha hecho los personajes con cell shading, un músico y dos programadores. Aunque yo he llevado el 90% del peso del proyecto, pero el apoyo que tuve me vino muy bien en un momento de saturación máxima. Seguro que sabéis a lo que me refiero.
 
Cuando vi el motor 2D nuevo de Unity casi me suicido jajaja. Todas las horas que eché montando el sistema de carga de niveles se simplificaba muchísimo. Pero bueno, eso que me llevo aprendido, así que no me quejo mucho.
 
Espero que os guste el proyecto y si podéis que le echéis un vistazo. Lo hemos puesto gratis ya que lo hemos hecho por amor al arte. No sé si en un futuro pondremos publi o lo haremos de pago. Quizás si tiene muchas descargas, ya veremos.
 
Os dejo el enlace: https://itunes.apple.com/es/app/fat-ninja-adventure/id896450587?mt=8" rel="external nofollow">https://itunes.apple.com/es/app/fat-ninja-adventure/id896450587?mt=8
 
Un saludo!