{"id":156,"date":"2017-12-06T09:30:22","date_gmt":"2017-12-06T09:30:22","guid":{"rendered":"http:\/\/keruanima.com\/?p=156"},"modified":"2022-08-08T09:36:09","modified_gmt":"2022-08-08T09:36:09","slug":"fingers-vs-zombies-historia-de-un-desarrollo-en-solitario","status":"publish","type":"post","link":"https:\/\/keruanima.com\/en\/mis-proyectos\/fingers-vs-zombies-historia-de-un-desarrollo-en-solitario\/","title":{"rendered":"Fingers vs Zombies, historia de un desarrollo en solitario."},"content":{"rendered":"<p>Hola, esta entrada quiere resumir mi experiencia en el reto que me autoimpuse de realizar un juego original para android en el menor tiempo posible.<\/p>\n<p><!--more--><\/p>\n<p>El objetivo inicial era realizar en una semana pero al final tuve que usar cerca de 3 semanas para acabarlo principalmente debido a cambios que quise introducir en la dificultad, implementac\u00edon de servicios que nunca me hab\u00eda encargado de implementar en el pasado y responsabilidades que me obligaron a dedicar menos tiempo al desarrollo ciertos d\u00edas.<\/p>\n<p>El juego es del <strong>genero casual<\/strong> por el simple hecho de que el objetivo no es otro que aguantar el mayor tiempo posible matando <strong>zombies<\/strong> evitando que estos lleguen a la caba\u00f1a de los supervivientes de un minimundo<strong> lowpoly<\/strong>.<\/p>\n<div class=\"sketchfab-embed-wrapper\">\n<p style=\"text-align: center;\">Esta escena representa el concepto visual que eleg\u00ed para el juego e incluye algunos de los modelos usados:<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" src=\"https:\/\/sketchfab.com\/models\/fe93e9c8a8204a7f94a5a345510a3d32\/embed\" width=\"720\" height=\"480\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<\/div>\n<p>La primera de las tareas fue el dise\u00f1o 3D, me puse a <strong>modelar<\/strong> todos los elementos que quer\u00eda usar en el juego, <strong>texturizarlos<\/strong> y, en el caso de los zombies, <strong>rigear<\/strong> y <strong>animar<\/strong>. Eleg\u00ed una est\u00e9tica Low-poly no solo porque me pierde su atractivo visual si no porque considero que es un estilo m\u00e1s asequible cuando el tiempo es un factor a tener en cuenta. Los zombies est\u00e1n inspirados en el <strong>estilo voxel<\/strong> de los zombies del minecraft pero con bordes menos marcados.<\/p>\n<p>Durante el modelado tuve muy en cuenta que la topolog\u00eda de los modelos estuviera optimizada para el juego, <strong>nada de tris o ngons<\/strong> y cuide el <strong>poly-count<\/strong> de cada modelo dado que quer\u00eda un juego fluido para tel\u00e9fonos m\u00f3viles android.<\/p>\n<p>Hecho el dise\u00f1o 3D me volvi a Unity donde me puse a trabajar en las l\u00f3gica del juego, al principio mi inexperiencia me hizo preguntarme si val\u00eda la pena mover el planeta en vez de la c\u00e1mara pero fue una posibilidad que descarte r\u00e1pido al ver que ello afectar\u00eda a los rigidbody que queria usar en los zombies, tuve que idearmelas para sacar un script que me permitiera mover la camara al rededor de todo el mundo simplemente deslizando el dedo sobre la pantalla, el resultado fue este:<\/p>\n<figure id=\"attachment_163\" aria-describedby=\"caption-attachment-163\" style=\"width: 720px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-163 size-full\" src=\"https:\/\/keruanima.com\/wp-content\/uploads\/2017\/11\/fingersvszombiesFinal_1-iloveimg-compressed.gif\" alt=\"\" width=\"720\" height=\"405\"><figcaption id=\"caption-attachment-163\" class=\"wp-caption-text\">Captura desde mi tel\u00e9fono Android en la fase de desarrollo.<\/figcaption><\/figure>\n<p>Para programar el movimiento de los zombies por el escenario cree unos spawn points y unas breadcrounts para que estos las siguieran, hay un n\u00ba limitado de caminos que pueden escoger y una vez escogen uno lo siguen hasta el final (la caba\u00f1a), al testear el juego una vez hab\u00eda implementado esto junto la muerte de los zombies al ser espachurrados me di cuenta de que no me interesaba dar tanta libertad al jugador para mover la c\u00e1mara al rededor de todo el planeta, la raz\u00f3n era que ser\u00eda muy sencillo situarse en una posici\u00f3n donde se vieran todos los caminos y acabar con todos los zombies sin esfuerzo. Me dio algo de pena tener que limitar esa caracter\u00edstica porque me gustaba el hecho de que se pudiera situar la c\u00e1mara en cualquier punto, pero una vez prob\u00e9 el juego con esa limitaci\u00f3n me di cuenta que era un acierto y el juego volv\u00eda a retar al jugador oblig\u00e1ndole a moverse constantemente.<\/p>\n<p>Mas adelante, gracias a los consejos de las personas que testearon el juego antes de que fuera publicado, decid\u00ed hacer algunos cambios como el que los enemigos fueran tuvieran un hitbox mas grande y el texto en los botones no confundiera al jugador.<\/p>\n<p>El resultado final es el siguiente:<\/p>\n<div class=\"lyte-wrapper\" title=\"fingers vs zombies\" style=\"width:1280px;max-width:100%;margin:5px auto;\"><div class=\"lyMe hidef\" id=\"WYL_2YIIKD6h4rQ\" itemprop=\"video\" itemscope itemtype=\"https:\/\/schema.org\/VideoObject\"><div><meta itemprop=\"thumbnailUrl\" content=\"https:\/\/i.ytimg.com\/vi\/2YIIKD6h4rQ\/maxresdefault.jpg\" \/><meta itemprop=\"embedURL\" content=\"https:\/\/www.youtube.com\/embed\/2YIIKD6h4rQ\" \/><meta itemprop=\"duration\" content=\"PT33S\" \/><meta itemprop=\"uploadDate\" content=\"2019-07-09T17:00:18Z\" \/><\/div><div id=\"lyte_2YIIKD6h4rQ\" data-src=\"https:\/\/i.ytimg.com\/vi\/2YIIKD6h4rQ\/maxresdefault.jpg\" class=\"pL\"><div class=\"tC\"><div class=\"tT\" itemprop=\"name\">fingers vs zombies<\/div><\/div><div class=\"play\"><\/div><div class=\"ctrl\"><div class=\"Lctrl\"><\/div><div class=\"Rctrl\"><\/div><\/div><\/div><noscript><a href=\"https:\/\/youtu.be\/2YIIKD6h4rQ\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i.ytimg.com\/vi\/2YIIKD6h4rQ\/0.jpg\" alt=\"fingers vs zombies\" width=\"1280\" height=\"700\" \/><br \/>Watch this video on YouTube<\/a><\/noscript><meta itemprop=\"description\" content=\"gameplay demostrativo del juego Fingers vs Zombies. nota: el sonido de este v\u00eddeo no corresponde con el audio original.\"><\/div><\/div><div class=\"lL\" style=\"max-width:100%;width:1280px;margin:5px auto;\"><\/div><\/p>\n<p>Para los anuncios decid\u00ed usar <strong>Unity Ads<\/strong> y para la tabla de puntuaciones <strong>Google Services<\/strong>, implementar estos servicios fue una experiencia enriquecedora de la que pude aprender bastante. Decid\u00ed que los anuncios premiaran al jugador cuando pulsaba el bot\u00f3n \u00ab<em>extra life<\/em>\u00bb ya que esta demostrado que tienen mejor aceptaci\u00f3n entre los usuarios.<\/p>\n<p>Al final el juego salio una vez implemente<strong> Unity analytics<\/strong> y decid\u00ed que ya era hora de ponerle punto y final a todo el tiempo que dedique a dar forma al proyecto. En el futuro puede que introduzca mas caracter\u00edsticas que quedaron en el tintero, pero eso ser\u00e1 otra historia.<\/p>\n<p>Esta experiencia me ha servido para ponerme a prueba y sobre todo para mejorar en mas de un campo. Mi conclusi\u00f3n es que el desarrollo de videojuegos implica a muchos roles y es <strong>dif\u00edcil<\/strong> poder centrarse en todos ellos, sigo enfatizando que mi rol principal esta ligado al <strong>design<\/strong> y no a la programaci\u00f3n y por ello es algo que tratare de trabajar y explotar mas, de todas formas siempre viene bien conocer otros roles, ayuda a facilitar y entender el trabajo que pueden llegar a realizar tus compa\u00f1eros de equipo y te permite ir mas all\u00e1 con mayor seguridad.<\/p>","protected":false},"excerpt":{"rendered":"<p>Hola, esta entrada quiere resumir mi experiencia en el reto que me autoimpuse de realizar un juego original para android en el menor tiempo posible.<\/p>","protected":false},"author":1,"featured_media":180,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6,45],"tags":[3,5,2,8,9],"class_list":["post-156","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mis-proyectos","category-videojuegos","tag-desarrollo","tag-lowpoly","tag-modelado-3d","tag-unity","tag-videojuegos"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/posts\/156","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/comments?post=156"}],"version-history":[{"count":0,"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/posts\/156\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/media\/180"}],"wp:attachment":[{"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/media?parent=156"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/categories?post=156"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/keruanima.com\/en\/wp-json\/wp\/v2\/tags?post=156"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}