{"id":1446,"date":"2024-11-05T20:59:57","date_gmt":"2024-11-05T20:59:57","guid":{"rendered":"https:\/\/ninquiet.com\/?p=1446"},"modified":"2024-11-05T20:59:57","modified_gmt":"2024-11-05T20:59:57","slug":"game-solo-en-la-sola-soledad","status":"publish","type":"post","link":"https:\/\/ninquiet.com\/index.php\/2024\/11\/05\/game-solo-en-la-sola-soledad\/","title":{"rendered":"Game: SOLO EN LA SOLA SOLEDAD"},"content":{"rendered":"\n<p>Repositorio:<\/p>\n\n\n\n<figure class=\"wp-block-embed\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/gitlab.com\/Ninquiet\/NinquietUOC-3D-PEC2\n<\/div><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/bj4n0sJ\/image-2024-04-28-181111738.png\" alt=\"Solo en la Soledad\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"video-\">Video:<\/h1>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Solo En la soledad Beta (prueba de concepto)\" width=\"800\" height=\"450\" src=\"https:\/\/www.youtube.com\/embed\/nOsg76Uqamw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"build-\">Build:<\/h1>\n\n\n\n<p>Puedes jugar el juego ac\u00e1:<br><a href=\"https:\/\/simmer.io\/@Ninquiet\/solo-en-la-sola-soledad-beta\">https:\/\/simmer.io\/@Ninquiet\/solo-en-la-sola-soledad-beta<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"resumen-\">Resumen:<\/h1>\n\n\n\n<p>Es un juego de plataformas, para moverte puedes usar WASD o las flechitas, para saltar usa la barra espaciadora, para entrar a men\u00fa pausa puedes usar la tecla Esc<\/p>\n\n\n\n<p>puedes acabar con enemigos saltandoles encima, pero si estos te tocan morir\u00e1s instantaneamente (est\u00e1 cread para en un futuro agregar un sistema de salud m\u00e1s complejo :3)<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"funcionamiento-\">Funcionamiento:<\/h1>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/ftZsgPb\/image-2024-04-28-181819327.png\" alt=\"Diagrama1\"\/><\/figure>\n\n\n\n<p>Lo he creado teniendo en cuenta que pueda ser escalable, entnces cree un state machine basico que funcionar\u00e1 para todos los personajes (cuento como persnajes a enemigos y al jugador), pero cada uno crear\u00e1 su propia implementaci\u00f3n, por ejemplo el jugador dicta el movimiento seg\u00fan el sistema de input (he usado el nuevo sistema de Input para esta implementacion), mientras que los enemigos dictan su movimiento por triggers que reconocen el jugador<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/PrgzRKx\/image-2024-04-28-181609388.png\" alt=\"Diagrama2\"\/><\/figure>\n\n\n\n<p>El State machine es gerarquico, as\u00ed que primero pasa entre estados Root, como: grounded, Jump, y Airborn, y estos estados al entrar asignan sub estados de segunda categor\u00eda segun las variables que hay en el contexto (el contecto es el state machine), estos sub estados pueden sub asignarse tambien su estados, por eso algunso sub estados a su vez se asignan el sub estado HorizontalMovment<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/1LsqpxW\/image-2024-04-28-182307948.png\" alt=\"Diagrama3\"\/><\/figure>\n\n\n\n<p>El resto del funcionamiento es muy simple, solo cada uno (jugador y enemigos) crean sus variantes del state machine base, y crean sus propias implementaciones, la idea era que tambien crearan sus propios sub estados y state factory, pero al final no fue necesario implementarlo (pero sigue estando ahi para poder escalar el proyecto en un futuro)<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/0pLBjbK\/image-2024-04-28-182755828.png\" alt=\"Diagrama4\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/RTcctgM\/image-2024-04-28-183052797.png\" alt=\"Diagrama4\"\/><\/figure>\n\n\n\n<p>Para la animaci\u00f3n cree una clase llamada &#8220;CharacterAnimationController.cs&#8221; la cual los estads del state machine tienen cntrol, y envian diferentes cambios para el animator, el animator usados sub estados, para controlar las acciones de cuando el personaje est\u00e1 en el aire o en el suelo, (para el enemigos us\u00e9 una copia de este mismo animator pero con animaciones del enemigo)<\/p>\n\n\n\n<p><img decoding=\"async\" src=\"https:\/\/i.ibb.co\/y5DNBY4\/image-2024-04-28-183516141.png\" alt=\"Diagrama5\"><br>Para el escenario he usado un tilemap donode cree un tile dinamico que he usado para todo el escenario.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"assets-usados-\">Assets usados:<\/h1>\n\n\n\n<p><a href=\"https:\/\/assetstore.unity.com\/packages\/tools\/animation\/dotween-hotween-v2-27676\">DoTween<\/a><br>Para hacer transiciones rapidamente.<\/p>\n\n\n\n<p><a>Cinemachine<\/a><br>Para hacer controlar el movimiento de la camara.<\/p>\n\n\n\n<p><a href=\"https:\/\/kenney.nl\/assets\/1-bit-platformer-pack\">Kenney 1bit Asset<\/a><br>He usado esta textura para crear todos los sprites usados.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Repositorio: Video: Build: Puedes jugar el juego ac\u00e1:https:\/\/simmer.io\/@Ninquiet\/solo-en-la-sola-soledad-beta Resumen: Es un juego de plataformas, para moverte puedes usar WASD o las flechitas, para saltar usa la barra espaciadora, para entrar a men\u00fa pausa puedes usar la tecla Esc puedes acabar con enemigos saltandoles encima, pero si estos te tocan morir\u00e1s instantaneamente (est\u00e1 cread para en [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1447,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-1446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-develop"],"_links":{"self":[{"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/posts\/1446"}],"collection":[{"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/comments?post=1446"}],"version-history":[{"count":1,"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/posts\/1446\/revisions"}],"predecessor-version":[{"id":1448,"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/posts\/1446\/revisions\/1448"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/media\/1447"}],"wp:attachment":[{"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/media?parent=1446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/categories?post=1446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ninquiet.com\/index.php\/wp-json\/wp\/v2\/tags?post=1446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}