tag:blogger.com,1999:blog-45746827072444791842024-02-07T20:09:08.334+01:00Hagamos VideojuegosBlog de desarrollo de videojuegos, tutoriales, opiniones, análisis técnicos de videojuegos...Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.comBlogger157125tag:blogger.com,1999:blog-4574682707244479184.post-19314275217240919912018-01-24T18:00:00.000+01:002018-01-24T18:00:15.990+01:00UnrealEngine para desarrolladores de Unity3D IV: De prefabs a clases de BlueprintsBien, como vimos anteriormente en estas pequeñas dosis de UnrealEngine desde Unity3D, vamos a ver como gestionar en UnrealEngine, lo que nosotros llamamos en Unity3D, <b>Prefabs</b>.<br>
<br>
En caso de no haber visto las entradas anteriores y no saber nada de UnrealEngine, recomiendo entrar en la nueva sección que he creado para UnrealEngine con las entradas anteriores donde hay explicaciones básicas sobre el IDE, GameObjects y componentes aplicados a UnrealEngine desde Unity3D:<br>
<br>
<a href="http://www.hagamosvideojuegos.com/p/unrealengine.html">Página de UnrealEngine</a><br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2VpWUf2b_FIPooKTCc8lpiShqDCZjrl6A_h73GRC4x7cv8AHIgGAdhP6KLDl4NAxjOb3nUf0DUIh1tUY3oFJgClylQwXnBa-f080_geVujrOx5R3gqL6OW3vT9G8JmvEBJ94sCKOpJUXF/s1600/unityUnreal.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="371" data-original-width="1000" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2VpWUf2b_FIPooKTCc8lpiShqDCZjrl6A_h73GRC4x7cv8AHIgGAdhP6KLDl4NAxjOb3nUf0DUIh1tUY3oFJgClylQwXnBa-f080_geVujrOx5R3gqL6OW3vT9G8JmvEBJ94sCKOpJUXF/s320/unityUnreal.jpg" width="320"></a></div>
<div>
</div><a href="http://www.hagamosvideojuegos.com/2018/01/unrealengine-para-desarrolladores-de_24.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-84442680229970325262018-01-17T18:00:00.000+01:002018-01-17T18:24:37.523+01:00Unity3D Plugin: UniRxEsta vez hablaré de otro plugin que, para mi, también es esencial, y si bien tiene una pequeña dificultad añadida al tener que cambiar el paradigma de programación, una vez te acostumbras, es mucho mas rápido e incluso mejora la eficiencia en muchos casos, <b>especialmente en los proyectos grandes</b>.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://d2ujflorbtfzji.cloudfront.net/key-image/409e7382-0cd2-4236-b9a0-dbffe049d122.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://d2ujflorbtfzji.cloudfront.net/key-image/409e7382-0cd2-4236-b9a0-dbffe049d122.jpg" data-original-height="420" data-original-width="800" height="210" width="400"></a></div>
Ahora bien, para empezar, comencemos en explicar en que consiste este plugin, que ventajas ofrece usarlo y algunos ejemplos de uso variados ya que es todo un framework completo, no <a href="http://www.hagamosvideojuegos.com/2018/01/unity3d-plugin-thread-ninja-multithread.html">una utilidad como el anterior</a>.<br>
<a href="http://www.hagamosvideojuegos.com/2018/01/unity3d-plugin-unirx.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com1tag:blogger.com,1999:blog-4574682707244479184.post-9430691027113247542018-01-11T18:00:00.000+01:002018-01-11T18:00:03.183+01:00UnrealEngine para desarrolladores de Unity3D III: ¿Donde están mis componentes?Vamos a continuar con las entradas donde, conociendo Unity3D, podrás aprender a usar UnrealEngine y ver mas en profundidad sus similitudes y diferencias, es importante conocer las entradas anteriores, en las cuales podremos ver:<br>
<ol>
<li><a href="http://www.hagamosvideojuegos.com/2016/01/unrealengine-para-desarrolladores-de.html">Comparando el IDE</a></li>
<li><a href="http://www.hagamosvideojuegos.com/2016/04/unrealengine-para-desarrolladores-de.html">De GameObject a Actor</a></li>
</ol>
Una vez recordadas las entradas anteriores, vamos a comenzar con nuestro siguiente apartado donde vamos a explicar como funcionan los componentes en UnrealEngine.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2VpWUf2b_FIPooKTCc8lpiShqDCZjrl6A_h73GRC4x7cv8AHIgGAdhP6KLDl4NAxjOb3nUf0DUIh1tUY3oFJgClylQwXnBa-f080_geVujrOx5R3gqL6OW3vT9G8JmvEBJ94sCKOpJUXF/s1600/unityUnreal.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="371" data-original-width="1000" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2VpWUf2b_FIPooKTCc8lpiShqDCZjrl6A_h73GRC4x7cv8AHIgGAdhP6KLDl4NAxjOb3nUf0DUIh1tUY3oFJgClylQwXnBa-f080_geVujrOx5R3gqL6OW3vT9G8JmvEBJ94sCKOpJUXF/s320/unityUnreal.jpg" width="320"></a></div>
<div>
</div><a href="http://www.hagamosvideojuegos.com/2018/01/unrealengine-para-desarrolladores-de.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-9092667821916409902018-01-01T16:00:00.000+01:002018-01-01T16:00:12.193+01:00¡Feliz año nuevo!Si bien un día como hoy, del año 2014, estrenamos esta web, a modo de pruebas,
a ver a donde llegaban mis conclusiones y experiencias, que luego
resultaron ser, mas que eso gracias a todas las perosnas que habéis
seguido este blog, tuvo un parón importante, a causa de tener mucho
trabajo y ciertas circustancias personales, que si bien, desde hace un
tiempo ha dejado de ser así, la falta de costumbre, sumada a falta de
inspiración, hicieron que esta web estuviese estancada, algo que, sin
dudas, intentaré enmendar con este propósito de año nuevo de volver a
llevar a esta web a buen puerto, con actividad mas constante, quizás no
tanto como al principio de entrada diaria, pero si con una actividad
razonable.<br />
<br />
Si bien mi intención, es volver a traer
tutoriales de Unity3D, Unreal Engine, y algunas anecdotas, invito a
todos los lectores a escribir sugerencias de tutoriales que, siempre que
pueda y tenga la capacidad para ello, intentaré hacerlos.<br />
<br />
Quizás
a modo de disculpa, decir que no siempre se tiene inspiración para
ello, suene mas a escusas, así que, en vez de disculparme por no haber
tenido actividad en la web, creo que es mejor enmendar el error y volver
a traer actividad a la web.<br />
<br />
Feliz año y espero que este año esté bien cargado de un buen trabajo dentro de esta web y que por supuesto, os sea de utilidad.Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-32047934634904413852016-04-21T12:00:00.000+02:002018-01-10T19:10:38.205+01:00UnrealEngine para desarrolladores de Unity3D II: De GameObject a Actor<div dir="ltr" id="docs-internal-guid-2069151a-2ae4-1dc2-8fd8-337d9480d79e" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Aquí la siguiente entrega de Unreal Engine, en esta aprenderemos las similitudes de los Actors en cuanto a los GameObjects de Unity3D.</span></div>
<div dir="ltr" id="docs-internal-guid-2069151a-2ae4-1dc2-8fd8-337d9480d79e" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<br></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">En primer lugar para empezar este tutorial, aconsejo echar un vistazo al tutorial previo en el cual explico las</span><a href="http://www.hagamosvideojuegos.com/2016/01/unrealengine-para-desarrolladores-de.html" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> </span><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">diferencias entre los dos entornos de desarrollo</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">.</span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ydqsDOgbXwgtukKCUqzMcRUtk4IpMV9OlEVDf1BirifkPtrIxkVaKCq3dLx65SgwnXJhf89gUf3rh7udeWrGZuezq_I1vZQ7KcriERiTVSl5A5kCO7B-TI2pK8qwXtxoZFFFBNqdX0yg/s1600/unityUnreal.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ydqsDOgbXwgtukKCUqzMcRUtk4IpMV9OlEVDf1BirifkPtrIxkVaKCq3dLx65SgwnXJhf89gUf3rh7udeWrGZuezq_I1vZQ7KcriERiTVSl5A5kCO7B-TI2pK8qwXtxoZFFFBNqdX0yg/s400/unityUnreal.jpg" width="400"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">¡De Unity3D a UnrealEngine!</td></tr>
</tbody></table>
<br>
<a href="http://www.hagamosvideojuegos.com/2016/04/unrealengine-para-desarrolladores-de.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com2tag:blogger.com,1999:blog-4574682707244479184.post-51610852964883049422016-01-26T12:00:00.000+01:002016-01-26T12:00:02.770+01:00UnrealEngine para desarrolladores de Unity3D: Comparando IDE<div dir="ltr" id="docs-internal-guid-572eadda-7af1-e614-938d-a7f9b7ddb3a7" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Al fín, después de bastante tiempo, voy a añadir una serie de tutoriales que tenía pendiente.</span></div>
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Vamos a ver, desde el punto de vista de alguien que está acostumbrado a Unity3D, la adaptación para UnrealEngine 4 de la manera menos agresiva posible y paso a paso.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ydqsDOgbXwgtukKCUqzMcRUtk4IpMV9OlEVDf1BirifkPtrIxkVaKCq3dLx65SgwnXJhf89gUf3rh7udeWrGZuezq_I1vZQ7KcriERiTVSl5A5kCO7B-TI2pK8qwXtxoZFFFBNqdX0yg/s1600/unityUnreal.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ydqsDOgbXwgtukKCUqzMcRUtk4IpMV9OlEVDf1BirifkPtrIxkVaKCq3dLx65SgwnXJhf89gUf3rh7udeWrGZuezq_I1vZQ7KcriERiTVSl5A5kCO7B-TI2pK8qwXtxoZFFFBNqdX0yg/s400/unityUnreal.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">¡De Unity3D a UnrealEngine!</td></tr>
</tbody></table>
<span id="docs-internal-guid-572eadda-7af2-2e32-e562-c4cb0c3cda92" style="background-color: transparent; color: black; font-family: "arial"; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Los motivos para dejar Unity3D atrás y dedicarse a usar UnrealEngine depende de cada uno, en mi caso no dejaré atrás Unity3D ya que creo que cada vez está haciendo una competencia más fuerte a UnrealEngine (como podréis ver en una entrada mas antigua, la cual recomiendo leer antes para valorar si realmente merece la pena el cambio o no</span>: <a href="http://www.hagamosvideojuegos.com/2015/03/unreal-engine-4-vs-unity3d-5.html">UnrealEngine VS Unity3D</a><br />
<br />
<span id="docs-internal-guid-572eadda-7af3-11e6-5c09-f2156fa73e8c" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Dicho esto, voy a desglosarlo en diferentes entradas.</span><br />
<span id="docs-internal-guid-572eadda-7af3-3bb0-a512-d7de72e0e876" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">En esta primera veremos la interfaz de UnrealEngine y a qué corresponde cada parte respecto a Unity3D. Como podremos ver más adelante, son bastante similares obviando que usen nombres diferentes y que, estéticamente, UnrealEngine mantenga una interfaz un poco más obsoleta, en mi humilde opinión.</span><br />
<br />
<span id="docs-internal-guid-572eadda-7af3-5d43-b516-11eceecf8637" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Para empezar vamos a ver las dos interfaces divididas por secciones, y los colores que representan su equivalente en ambos entornos.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://docs.unrealengine.com/latest/images/GettingStarted/FromUnity/image_1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="155" src="https://docs.unrealengine.com/latest/images/GettingStarted/FromUnity/image_1.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Ambos entornos divididos en secciones</td></tr>
</tbody></table>
<div dir="ltr" id="docs-internal-guid-572eadda-7af3-9172-0c9a-318225414b98" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Iremos parte por parte, en primer lugar y más visible, la parte </span><span style="background-color: transparent; color: purple; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">morada</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> que representa en Unity3D el </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">visor de escena</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> y en UnrealEngine </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">Viewport</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> para visualizar el nivel. Estos se controlan de manera diferente, ya que para moverte por el entorno en UnrealEngine necesitas usar las teclas WASD y en Unity3D se usan las flechas direccionales, pero fuera de esto, obviando atajos de teclado que son de uso más avanzado, lo demás podemos usarlo de manera bastante similar.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Al pulsar en un objeto podemos moverlo, rotarlo o escalarlo sobre sus ejes, y una ventaja respecto a Unity3D es la posibilidad de pulsar con el botón derecho en un objeto y poder ver las diferentes opciones para ese objeto, además de ser muchas más opciones de las que Unity3D ofrece normalmente.</span></div>
<br />
<br />
<span id="docs-internal-guid-572eadda-7af3-c643-370e-289c694838ba" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">En segundo lugar, en </span><span style="background-color: transparent; color: magenta; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">rosa</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">, el margen superior a la izquierda de Unity3D y en el caso de UnrealEngine dentro del Viewport, </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">las opciones del visor</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> y de edición de objetos. Una vez más, en el caso de las opciones del visor, es considerablemente más completo que Unity3D, ya que te permite ver de muchas mas formas el escenario, pudiendo observar cómo se aplican las luces, el antialising, etc... y cada una por separado.</span><br />
<br />
<div dir="ltr" id="docs-internal-guid-572eadda-7af3-ee3c-9e35-f479f9958d79" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Continuamos con la zona </span><span style="background-color: transparent; color: red; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">roja</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">, en la cual en Unity3D tenemos una </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">barra de herramientas</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> lo justo para poder probar en editor, play, pause y stop; en el caso de UnrealEngine, tenemos más herramientas, aunque muchas de estas se acceden desde la barra de tareas en Unity3D, Unity3D puede prescindir de algunos de estos botones ya que lo automatiza como el botón para compilar (en caso de que se quiera, puede no automatizarlo pero, sinceramente, no veo ninguna pega en ello) al contrario, creo que el simple hecho de que lo haga automáticamente, hace que no se me olvide dar a dicho botón, ya que no es necesario.</span></div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Por lo demás, he de decir que esta barra en UnrealEngine tiene demasiados botones, en Unity3D todas estas funcionalidades las tiene en la barra de herramientas.</span><br />
<br />
<span id="docs-internal-guid-572eadda-7af4-101c-b941-7a86fed895fe" style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Después podemos ver en </span><span style="background-color: transparent; color: blue; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">azul</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> la </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">jerarquía de objetos</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> en la escena/nivel en Unity3D y UnrealEngine respectivamente. Ambos tienen herramienta de búsqueda aunque la de Unity3D me parece más completa, ya que puedes buscar un componente y ver qué objetos lo tienen, o al menos en UnrealEngine no he visto como hacerlo. Como punto a favor de UnrealEngine, tenemos la opción de meter los objetos en carpetas, aunque en Unity3D podemos tener unos objetos dentro de otros, así que tampoco es una ventaja en toda regla.</span><br />
<br />
<div dir="ltr" id="docs-internal-guid-572eadda-7af4-46e0-605d-8965c6e93c7e" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Seguimos con el color </span><span style="background-color: transparent; color: #6aa84f; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">verde</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">, donde tenemos el </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">visor de proyecto</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> en Unity3D o visor de contenido en UnrealEngine. En este caso, de nuevo, Unity3D tiene un buscador bastante más práctico, y UnrealEngine tiene más opciones filtrando por código por un lado y el contenido por otro, aunque con los filtros y favoritos de Unity3D no sólo es sencillo, sino que además podremos personalizar nuestros propios filtros.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Por último, destacar en </span><span style="background-color: transparent; color: #f1c232; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">amarillo</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> el </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">inspector</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> de Unity3D y la pestaña de detalle en UnrealEngine. En este caso, están bastante empatados en funcionalidad, salvo que Unity3D da la opción de resetear los valores por defecto con una función que programemos nosotros a través del componente que queramos resetear, y en UnrealEngine nos permite resetear cada valor individualmente, pero en principio, a la hora de mostrar valores y personalizar este apartado, ambos son bastante similares.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Antes de terminar, remarcar en </span><span style="background-color: transparent; color: #666666; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline;">gris</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> una pestaña exclusiva de UnrealEngine, realmente la mayor similitud sería la pestaña </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline;">GameObject,</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> que podemos encontrar en la barra de tareas de Unity3D, de manera más visual en el caso de UnrealEngine. En este apartado podremos instanciar objetos básicos nuevos, luces, sonidos, partículas, etc…</span></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Hasta aquí la comparación de la interfaz, si hay conceptos erróneos por favor, avisadme y lo corregiré encantado, de momento estoy empezando con UnrealEngine y podría estar equivocado en algún punto.</span>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com1tag:blogger.com,1999:blog-4574682707244479184.post-83763567876663436582016-01-01T11:50:00.000+01:002016-01-02T02:56:24.983+01:00¡Feliz año nuevo! Para mi es un momento especial este día, no solo por felicitaros a todos los que me leéis, comentais e incluso aportais, si no también por ser el aniversario de esta página, siendo este mismo día de hace dos años el momento en el que me decidí a crear esta web y con la que, creo que una parte de mí ha crecido.<br>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU1es7bO9w8uA3oLffFTtbimq09UO-8C1u5TiqMk0HJRUvCDu02Je-F9Rv7G_rO9iMW2tCiDXqtPUr81Mp5NFlTfxsuGaDwyNK2DvpQ370PdxpmRz0iWupk8sVu4oWmxVX5MSiQja8ZEP9/s1600/HAPPY_NEW_YEAR_%252815977037938%2529.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU1es7bO9w8uA3oLffFTtbimq09UO-8C1u5TiqMk0HJRUvCDu02Je-F9Rv7G_rO9iMW2tCiDXqtPUr81Mp5NFlTfxsuGaDwyNK2DvpQ370PdxpmRz0iWupk8sVu4oWmxVX5MSiQja8ZEP9/s400/HAPPY_NEW_YEAR_%252815977037938%2529.jpg" width="400"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">¡Feliz año nuevo!</td></tr>
</tbody></table>
Hay muchas cosas que creo que este año han sido importantes para mi reflejadas aquí y me gustaría recapitularlas un poco como resumen del año.<br>
<br>
Las gamejams a las que he asistido, en las que precisamente las que he asistido este año han sido probablemente las que mas me han hecho aprender y que una vez mas, aconsejo participar a todo el que no lo haya hecho y quiera hacer videojuegos.<br>
<br>
Hay algunas de las entradas que parece que han sido bastante interesantes para los lectores de la web como por ejemplo en la que he hablado de las ventajas y desventajas entre Unreal Engine y Unity3D, el cual quizás haga alguna entrada donde haga una comparativa mas exaustiva entre estos y otros motores.<br>
<br>
Durante este año he tenido muchos comentarios de agradecimientos, creo que ahora me toca a mi agradeceros a todos los que me habéis agradecido mis aportaciones, los ánimos que me habeis dado han sido una gran motivación.<br>
<br>
También siento mucho el no haber podido hacer muchas cosas que tengo en mente para la web este año, pero espero que aun aplazando algunas ideas para este año, se puedan cumplir a lo largo de estos primeros meses del año.<br>
<br>
Antes de despedir esta breve entrada felicitando el año, me gustaría también pedir a los que leáis esto que si tenéis alguna idea para añadir a la web la pongáis en los comentarios, ¡Es vuestra oportunidad de aportar! <div><br></div><div>Dicho esto, ¡Feliz año a todos! ¡Feliz segundo aniversario www.hagamosvideojuegos.com!</div>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-40389779300423862015-12-16T12:00:00.000+01:002015-12-16T12:00:14.441+01:00Familiar Game Jam 5<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"></span><div dir="ltr" id="docs-internal-guid-72917a3a-a84e-15d8-44eb-a32bed8caa42" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Un
poco tarde, pero aquí van mis impresiones acerca de la quinta edición
de la Familiar Game Jam, aunque en mi caso, es la cuarta a la que
asisto.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">En
primer lugar, habría estado bien, como antaño, escribir al final del
día qué tal me fue en cada uno de ellos durante el evento, pero puesto
que tuve problemas de tiempo con el juego, ya que fuimos bastante
apurados, pues lo dejé para después de la Game Jam, aprovechando que el
viernes siguiente era la entrega de premios. Pero, una vez más, por
motivos personales, no pude realizar la entrada en el blog.</span></div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Finalmente, y después de tanto, aquí está, disculpad la demora.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv_5yVIS_dGJWk5bCIc0jtqqC6YRafym7lhKPnFzw6flFxxdkce_UZ0jixZCXVRtW6HsRKoWaXsQI24o9V1oZ0YGtlFeZTkS4X6V7UaWutsg94perTgRQVRK_DGNVyOFpJfWHqxNiucGWI/s1600/banner+dropbot.jpg"><img border="0" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhv_5yVIS_dGJWk5bCIc0jtqqC6YRafym7lhKPnFzw6flFxxdkce_UZ0jixZCXVRtW6HsRKoWaXsQI24o9V1oZ0YGtlFeZTkS4X6V7UaWutsg94perTgRQVRK_DGNVyOFpJfWHqxNiucGWI/s400/banner+dropbot.jpg" width="400" /></a></div>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"><br /></span>
<div dir="ltr" id="docs-internal-guid-72917a3a-a850-0aed-6aff-f4156fb1bd04" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Siento
mucho decir que tengo un pequeño sabor agridulce en esta ocasión,
aunque por supuesto, mucho más dulce que agrio. Agrio porque, en esta
edición, no cabíamos todos presencialmente -de hecho en el mismo día se
agotaron las plazas presenciales en Genera Games, donde se ha realizado
el evento- pero por suerte, en Aula Arcade nos acogieron a cuatro grupos
en total. Entre los cuales contaba el mío.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Por
una parte estoy muy contento de haber estado allí, pues lo cierto es
que al ser un aula orientada a la la tecnología, estaba preparada para
un evento como este y todo fue mejor de lo esperado, el ambiente igual
de bueno, el espacio bien organizado, etc.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Esa
pequeña sensación agria vino de no poder estar junto al resto de
equipos presenciales, daba igual el número, lo importante es que siempre
apetece poder estar con los demás amigos del sector, conocer caras
nuevas, hablar con los viejos conocidos, aprender de los demás... algo
que si bien pude hacer con una parte de los participantes, no con el
resto que estuvo en Genera Games, en definitiva, un pequeño mal sabor de
boca al no haber podido ser todos en un solo sitio, pero a su vez no
fue tan malo ya que, pasó de tener que participar online a participar
físicamente aun siendo en otro sitio. </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Lo
pasamos genial y pudimos compartir la experiencia con otros grupos, que
es lo que realmente importa, y por supuesto, lo valoro muy por encima
respecto a la parte más que negativa, menos positiva.</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> </span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Y
pasando a otro plano de la experiencia, decir que esta vez, quise hacer
un experimento personal, quise trabajar directamente con un game
designer codo con codo, aprender bien las funciones del mismo, cómo
llevarlas a cabo y, poder a su vez, tener la experiencia de trabajar con
alguien relativo a ese campo, ya que, a pesar de conocer el sector,
nunca antes había trabajado con alguien que hubiera estudiado esa
especialidad.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">La
experiencia ha resultado muy interesante, puesto que no sólo diseñó la
mecánica, sino que también se encargó de diseñar los niveles para el
juego, el cual sin duda alguna quedó bastante interesante (Para haber
sido realizado en 48 horas).</span></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgif9rbNKaOiJ4prKLuqcP-NZRzkiMMHkKw_isNDsJXYlka7x5rzlVIR8Tg9_H8oReyjxT2U03RS1-jWXr8iufr6IGfnJnovwqrCQG_HhOInasqSBmBmgyfHImF5pbclPcO-ZFpTvadGQoz/s1600/Dropbot.png" style="margin-left: auto; margin-right: auto;"><img border="0" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgif9rbNKaOiJ4prKLuqcP-NZRzkiMMHkKw_isNDsJXYlka7x5rzlVIR8Tg9_H8oReyjxT2U03RS1-jWXr8iufr6IGfnJnovwqrCQG_HhOInasqSBmBmgyfHImF5pbclPcO-ZFpTvadGQoz/s400/Dropbot.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Una pequeña captura del juego realizado en 48 horas</td></tr>
</tbody></table>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">En
principio íbamos a intentar hacer algo los dos solos, usando solo
objetos básicos en 3D y a ver qué se nos ocurría con el tema de la Game
Jam, pero finalmente, se nos unieron un programador más, con el cual sí
que he trabajado -pero no para hacer juegos y, ciertamente hacía más de
un año que no colaborábamos en ningún proyecto juntos- y una
ilustradora, que hasta ésta, su primera Game Jam, nunca había dibujado
para un videojuego y, sin duda, ha hecho muy buen trabajo como podréis
observar.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Todo
nuestro esfuerzo, más el del músico con el que estuvimos en contacto a
través de IRC, quedó plasmado en un juego que, en mi opinión, resultó
bastante interesante. La mecánica, originalmente, era algo que nuestro
game designer tenía en mente desde hacía mucho tiempo, nos encargamos de
adaptarla un poco a la temática y al gusto de todos, le dimos algunas
pinceladas al juego de manera que, aunque el game designer hizo su
función, todos pudimos aportar nuestro granito de arena.</span></div>
<br /><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Esta Game Jam trató el tema de la "</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Deconstrucción</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">"
en honor al equipo de Deconstructeam, el cual estuvo tanto
desarrollando como dando una charla previa a la Game Jam, la cual sin
duda, fue merecedora de hablar de ella, así que lo haré en un futuro
cercano.</span></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Finalmente,
durante el desarrollo, por desgracia dos de los equipos de los cuatro
que estuvimos en Aula Arcade no pudieron llegar a publicar, nosotros no
solo pudimos publicar nuestro juego, si no que, además, resultó gustar
bastante, tanto a nosotros como a los demás, tanto fue así que... una
imagen vale más que mil palabras:</span><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQVMitWxAAfXKuvZjCJf2lezD-J6nWA4lY88wvgZoysgBiIPXo6wvV9sJts5tO3UH4ZJRkHAJXFWzo24V74y3U4VVmOvSZYFihDhdXEimwQHlO5chdVDUjjkxpnXOIzXpkOq96p-2Td3y_/s1600/Premio.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQVMitWxAAfXKuvZjCJf2lezD-J6nWA4lY88wvgZoysgBiIPXo6wvV9sJts5tO3UH4ZJRkHAJXFWzo24V74y3U4VVmOvSZYFihDhdXEimwQHlO5chdVDUjjkxpnXOIzXpkOq96p-2Td3y_/s400/Premio.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">¡Premio al videojuego mas innovador!</td></tr>
</tbody></table>
<div dir="ltr" id="docs-internal-guid-72917a3a-a850-5f49-ddff-4252d8116be3" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Antes
de terminar, por supuesto quisiera dar las gracias a los jueces -si es
que llegan a ver esta entrada- a mi equipo, por haberlo hecho genial y,
por supuesto, a todos los que estuvieron en Aula Arcade, con los que
compartí aquellos tres días e hicieron el fin de semana bastante
entretenido y que espero que sigan con ganas de más para la próxima, y
por último, a GeekyJuegos que recientemente hicieron una reseña del
trabajo que presentamos.</span></div>
<br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">Aquí
tenéis el link al juego, el cual actualizamos anoche con las
correcciones de un par de pequeños bugs y portado a WebGL para no tener
que instalar nada para jugar, intentaremos añadir algunos niveles nuevos
más adelante.</span><br />
<br />
Juego: <a href="http://gamejolt.com/games/dropbot/104124">http://gamejolt.com/games/dropbot/104124</a><br />
Reseña al juego por GeekyJuegos: <a class="Xx" data-display="https://geekyjuegos.com/dropbot-una-experiencia-de-juego-innovadora-familiargamejam5/" data-sanitized="https://www.google.com/url?q=https%3A%2F%2Fgeekyjuegos.com%2Fdropbot-una-experiencia-de-juego-innovadora-familiargamejam5%2F&sa=D&sntz=1&usg=AFQjCNEDF7D44QcqhahOmx0mdl70cZ8SrA" dir="ltr" href="https://www.google.com/url?q=https%3A%2F%2Fgeekyjuegos.com%2Fdropbot-una-experiencia-de-juego-innovadora-familiargamejam5%2F&sa=D&sntz=1&usg=AFQjCNEDF7D44QcqhahOmx0mdl70cZ8SrA" rel="nofollow noreferrer" tabindex="-1" target="_blank">https://geekyjuegos.com/dropbot-una-experiencia-de-juego-innovadora-familiargamejam5/</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-40968963924340368922015-09-29T12:00:00.000+02:002015-09-29T12:00:00.503+02:00Preparar un proyecto de Unity3D para GitSi queremos trabajar en un proyecto varias personas, ya sea trastear con sus diferentes escenarios, configuraciones, código, imágenes, sonidos, etc... Lo ideal sería usar un repositorio para poder editar todos cosas a la vez pudiendo sincronizarse a través de la red, aquí veremos una buena configuración de Unity3D para cualquier tipo de repositorio y como usar uno de ellos, en este caso Git, que no solo es el mas popular a día de hoy si no que además, es el que yo mismo suelo usar tanto para trabajar como para, a partir de ahora, subir mis ejemplos como dije en la entrada anterior.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfmMtmegX7ewNpPpGeCTdv0xP2d1LM-ILW1kMO6IELPoTXeHgGGJkrcQ_13Dtj_WNAqHVRmCUa8SOuaplYdGp5t1GqQ1uZpL-vBUOr55-oDISLo9jDjofRVunIz5YTr7-tcVceTCcK7rJ1/s1600/unity_and_git.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Unity + Git" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfmMtmegX7ewNpPpGeCTdv0xP2d1LM-ILW1kMO6IELPoTXeHgGGJkrcQ_13Dtj_WNAqHVRmCUa8SOuaplYdGp5t1GqQ1uZpL-vBUOr55-oDISLo9jDjofRVunIz5YTr7-tcVceTCcK7rJ1/s400/unity_and_git.jpg" title="" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Sincronizando Unity3D y Git</td></tr>
</tbody></table>
En primer lugar pasaremos por la configuración de Unity3D que es lo más rápido y que por supuesto, una vez configurado, nos servirá para cualquier tipo de repositorio (CVS, GIT, SVN...), solo debemos de abrir Unity3D y en la barra de menú abrir <b>Edit > Project Settings > Editor</b> para que nos salga este menú el cual deberemos configurar.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://kleber-swf.com/blog/wp-content/uploads/2013/05/git-unity-editor.png?303149" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://kleber-swf.com/blog/wp-content/uploads/2013/05/git-unity-editor.png?303149" height="304" width="320" /></a></div>
Los valores borrosos no son necesarios para el repositorio, esos podemos dejarlos como estén o en todo caso, adaptarlos a nosotros, pero ese es otro tema que abarcar otro día, por último recordar que hay valores que se le añaden a esta configuración dependiendo de la plataforma para la que vayas a crear el juego, lo importante son estos dos parámetros.<br />
<br />
<b>Version Control Mode: </b>En este caso hay que usar la opción <b>Visible Meta Files</b> para que los archivos generados por Unity (Los que terminan en extensión .Meta) se puedan subir al servidor, esto es muy importante ya que ahí guardamos la configuración de los mismos y para que todos tengamos bien sincronizado todo, deberíamos subir <u><b>todos los '.meta' siempre</b></u> al servidor.<br />
<br />
<b>Asset Serialization: </b>Hay que especificar la opción <b>Force Text </b>para que tanto las escenas, como los prefabs se guarden en modo texto por lo cual podrían verse los cambios en GIT y a su vez, si fuese necesario, poder hacer "merge" en caso de conflicto entre el archivo que tenemos nosotros y el que hay en el servidor para crear un archivo que conserve nuestros cambios y los de servidor.<br />
<br />
Finalmente aconsejo, para ahorrar espacio innecesario en el repositorio, además de ser totalmente innecesario subirlo e incluso nos saldrán muchos archivos que cambiarán constantemente ya que son temporales durante la creación de la aplicación y para uso en memoria, no influyen en el estado del proyecto, aquí pondré el archivo <b>'.ignore'</b> que yo suelo usar para ignorar dichos archivos y no subirlos a nuestro servidor, este archivo debería estar en la raiz de nuestro proyecto.<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;"><code># =============== #
# Unity generated #
# =============== #
Temp/
Library/
# ===================================== #
# Visual Studio / MonoDevelop generated #
# ===================================== #
ExportedObj/
obj/
*.svd
*.userprefs
/*.csproj
*.pidb
*.suo
/*.sln
*.user
*.unityproj
*.booproj
# ============ #
# OS generated #
# ============ #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db</code><int><int></int></int></pre>
<br />
Con esto podremos evitar añadir los archivos temporales, de sistema y generados por Unity3D que no son necesarios para que, cuando otra persona se una al proyecto, o quieras volver a descargar el proyecto, te ahorres ese tiempo de espera, ya que Unity3D te los generará el solo, los tengas o no.<br />
<br />
Para la siguiente aprovecharé para explicar como configurar nuestro proyecto de GitHub además de explicar algunos conceptos básicos de como usar un repositorio para aquellos que no lo tengan muy claro. Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-89887745960639413762015-09-22T12:30:00.000+02:002015-09-22T12:30:01.139+02:00C# AntiHack! Evitando que hackeen tu juegoDespués de un verano y sindrome posvacacional vuelvo a la carga!<br />
<br />
Antes de comenzar con esta entrada aprovecho para decir que la mayoría del código que vaya haciendo lo iré colgando en GitHub, así se tendrá más fácil acceso al contenido, si bien estará comentado todo en inglés, no te preocupes, aquí lo explicaré en español y paso a paso.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5qG7yQrrJ3IlrsizZvSn25W3mB3Xrsmg7aTMNFlsqK9MAoovJiaCfisrkBedE4lWKYTQAYUaTZu7n8OymiNaw00YNO1DXK7D-hcB1myNNjmpp02oHOjJw_ai07ODYhH3SqWIAktPx9nRM/s1600/ram.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5qG7yQrrJ3IlrsizZvSn25W3mB3Xrsmg7aTMNFlsqK9MAoovJiaCfisrkBedE4lWKYTQAYUaTZu7n8OymiNaw00YNO1DXK7D-hcB1myNNjmpp02oHOjJw_ai07ODYhH3SqWIAktPx9nRM/s400/ram.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Una de las formas de hacking de videojuegos mas comunes, editar la memoria RAM</td></tr>
</tbody></table>
Como en este caso, la clase que he creado para encriptar variables en la memoria RAM.<br />
<br />
En primer lugar, <b>¿Para qué quiero encriptar las variables en memoria?</b><br />
<blockquote class="tr_bq">
Hay ciertos datos que nos gustaría que bajo ningún concepto pudiesen editar ya que, si por ejemplo tenemos un juego en el que puedes comprar monedas con dinero real, pues si acceden al valor en memoria del dinero y lo editan podrían tener dinero infinito con el cual podrían acceder a todo el contenido y los desarrolladores no ganarían el dinero por el esfuerzo de dicho desarrollo, y ese tipo de datos suele ser mucho más sensible, así como datos que se envíen a servidores en un MMORPG por ejemplo para evitar que los modifiquen e intenten añadir código malicioso o que les dé ventaja respecto a los demás y por supuesto pues los motivos internos de cada desarrollo.</blockquote>
<br />
Dicho esto, el código está en <a href="https://github.com/HagamosVideojuegos/CryptedData" target="_blank">mi cuenta de GitHub</a>, solo hay que descargar el archivo <a href="https://raw.githubusercontent.com/HagamosVideojuegos/CryptedData/master/CryptedData.cs">CryptedData.cs</a> y usarlo es muy sencillo, en un script que creemos nosotros añadimos esta línea:<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;">CryptedData<<b>int</b>><int> cryptedInt = new CryptedData<int><<b>int</b>>(<b>3</b>);</int></int></pre>
<br />
Creamos un objeto de tipo CryptedData diciendo de que tipo será el objeto o valor que nos va a retornar, ya podría ser un int, un string, un objeto de cualquier tipo de clase que nosotros necesitemos, en este caso un int de valor <b>3</b> por defecto ya que es el valor que le hemos pasado como parámetro.<br />
<br />
Dicho dato, evidentemente, debe de ser del mismo tipo que el que ponemos entre los símbolos de mayor y menor que (<b>< ></b>).<br />
<br />
Y para editarlo es tan sencillo como acceder a su valor de esta manera, ya sea para modificarlo o usarlo.<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;">cryptedInt.value = 10;</pre>
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;"><int><int>Debug.Log(cryptedInt.value);</int></int> </pre>
<br />
Y con esto tendremos bajo una seguridad compleja de descifrar aunque a la vez bastante rápida.<br />
<br />
He de remarcar que con el cifrado que he usado, los objetos pesarán el doble en memoria, ya que usará una clave de cifrado internamente del mismo tamaño que el objeto, así que hay que intentar no excederse y usarlo solo para lo imprescindible si no queremos saturar la memoria ram.<br />
<br />
En principio usar esta clase podría parecer que estamos usando variables normales y corrientes pero internamente lo está ocultando en la memoria ram, si quieres probarlo e incluso encontrar fallos de seguridad o mejorar el algoritmo, por supuesto puedes sentirte en plena libertad de aportar, a partir de ahora subiré todas las clases que vaya creando y considere interesantes a mi repositorio.<br />
<br />
Si quieres saber como funciona pues en otra ocasión destriparé la clase aquí paso a paso para ver el proceso, esta clase, si bien no tiene que ver con videojuegos directamente, si con la seguridad de los mismos, seguramente no será el último código que añada sobre seguridad aquí ya que es algo que también me apasiona.Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com6tag:blogger.com,1999:blog-4574682707244479184.post-26338330310457772162015-07-22T22:30:00.000+02:002015-07-22T22:47:08.295+02:00Unity3D IDE: Sustituir Monodevelop<div dir="ltr" id="docs-internal-guid-ea255e79-ac2b-f3de-d78c-2d2b9d8dd87d" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Hace tiempo ya que Monodevelop, el IDE que trae de serie Unity3D para la parte de desarrollo, no funciona todo lo bien que debería, al menos en OS X, donde yo trabajo ahora mismo, el debugger no siempre funciona correctamente dejando colgado Monodevelop, o a veces, cerrando Unity3D, además de ser un entorno lento en cargar respecto a otros más simples que cumplen con lo que prometen.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiAx8a7abFr7x9QzZbhsOKTSWx7ywA21A_5GmBBPfUMPCY17fubAoG8ZPRPH1YDKhcodMLC9IaANjAPvXkASPCpL9YPQ4rTDE9ZZiqxpgv-Ws2wFeaPT3eYI0aECRX6zuuTbygYgiHNpH3/s1600/UnityVS.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiAx8a7abFr7x9QzZbhsOKTSWx7ywA21A_5GmBBPfUMPCY17fubAoG8ZPRPH1YDKhcodMLC9IaANjAPvXkASPCpL9YPQ4rTDE9ZZiqxpgv-Ws2wFeaPT3eYI0aECRX6zuuTbygYgiHNpH3/s320/UnityVS.jpg" width="320" /></a></div>
<br /><div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Por supuesto, no toda la culpa la tiene Monodevelop ya que, Unity3D usa una versión bastante obsoleta, así que, para los que preferían otros IDE para desarrollar, aquí doy mi punto de vista y recomendación al respecto.</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">En primer lugar, si usas Windows, yo aconsejaría sin duda alguna </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Visual Studio</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">, ya que es un entorno de desarrollo sencillamente espectacular, muy completo, fácil de usar, buen debugger, y ahora tiene una versión gratuita que es más que suficiente para lo que necesitamos, sé que se puede configurar para poder usar el debugger, compilar y todas las cosas que podemos hacer a través de Monodevelop.</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">En cambio en OS X, tendríamos que buscar otra alternativa, una alternativa que está pisando fuerte, es </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Visual Studio Code</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">, un entorno muy minimalista con la esencia de Visual Studio, muy ligero y que sencillamente, a mi me ha resultado bastante cómodo de usar.</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Cabe destacar que no solo es para OS X, también es válida para Windows y también para Linux, que gracias a</span><a href="https://twitter.com/dotteri_catwolf" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> </span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: underline; vertical-align: baseline;">Oscar Triano García</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> me enteré de la gran noticia, Unity3D está empezando a crear su entorno de desarrollo para Linux el cual no dudaré en probar.</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Aún está un poco verde ya que este editor no lleva mucho tiempo, pero aquí mis conclusiones al respecto:</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">PRO</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">:</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Gratuito</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Rápido</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Reconoce las librerías de UnityEngine</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Sencillo y simple, solo lo justo y necesario</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Integración con GIT</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Debugger de fácil configuración</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Gestión de proyectos</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">División de la ventana en dos y hasta tres archivos</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">CONTRAS</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">:</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Echo en falta la posibilidad de instalar plugins de la nube desde el editor</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">De momento el debugger no funciona con Unity3D en OS X</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Puede que sustituyan en futuras versiones Monodevelop por Visual Studio Code, o al menos den soporte para integrarlo en Unity3D, ya que muchos desarrolladores lo están pidiendo aquí, al igual que hicieron en su momento con Visual Studio en Windows, incluso en OS X a través de una máquina virtual con Windows instalado puedes usar Visual Studio, pero personalmente lo veo muy poco práctico consumir una gran cantidad de recursos del hardware que podrían venir genial a Unity3D durante el desarrollo.</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">¿Cómo probar Visual Studio Code en Unity3D?</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Fácil, vamos a hacerlo con una serie de pasos muy sencillos para Windows, OS X y Linux ya que pronto esperamos ver una versión experimental según el blog oficial.</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">En primer lugar hay que descargar el instalador para nuestro sistema operativo de aquí:</span><a href="https://code.visualstudio.com/Download" style="text-decoration: none;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> </span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;">https://code.visualstudio.com/Download</span></a></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">El siguiente paso será instalar Mono, podemos instalar la última versión desde este enlace:</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<a href="http://www.mono-project.com/download/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline;">http://www.mono-project.com/download/</span></a></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">O bien si estamos en Linux (Debian/Ubuntu) a través de consola: </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">sudo apt-get install mono-complete</span></div>
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">O si estamos en OS X a través de consola*: </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">brew install mono</span></div>
<br />
<div dir="ltr" style="line-height: 1.656; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">*con brew instalado previamente</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Una vez hecho será tan sencillo como abrir nuestro proyecto de Unity3D y seleccionar:</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Preferences -> External tools -> External Script Editor</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Ahí seleccionaremos “Browse…” y buscamos nuestro Visual Studio Code y cada vez que habramos un archivo nos abrirá Visual Studio Code.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.microsoft.com/en-gb/developers/images/articles/content/625/05_set-visual-studio-code-as-the-default-ide-in-unity.jpg?v=0.0" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.microsoft.com/en-gb/developers/images/articles/content/625/05_set-visual-studio-code-as-the-default-ide-in-unity.jpg?v=0.0" height="267" width="320" /></a></div>
</div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Ahora para poder sincronizar el proyecto correctamente debemos pulsar dentro de Unity3D en:</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Assets -> Sync Monodevelop Project</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Y por último, al abrir Visual Studio Code, pulsamos en el icono de arriba a la izquierda que son los ficheros y abrimos la carpeta de nuestro proyecto de Unity3D.</span><br />
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://forum.unity3d.com/attachments/screenshot-2015-04-29-14-43-50-png.136782/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://forum.unity3d.com/attachments/screenshot-2015-04-29-14-43-50-png.136782/" /></a></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Nos saldrá una llama en la parte a abajo y nos dejará seleccionar un proyecto y seleccionaremos </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;">Assembly-CSharp.csproj</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> y listo, aunque de momento no podamos hacer debug, podemos abrir nuestros archivos, sincronizarlos con git, reconocerá las librerías de Unity3D y las demás librerías externas que vayamos a añadir.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://forum.unity3d.com/attachments/screenshot-2015-04-29-14-45-52-png.136785/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://forum.unity3d.com/attachments/screenshot-2015-04-29-14-45-52-png.136785/" height="126" width="320" /></a></div>
<br /></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Esta entrada ha llevado unas semanas de retraso a causa de investigar e intentar por todos los medios llegar a poder sacar el mayor partido posible a Visual Studio code e intentar hacer debug por desgracia sin éxito, siento la espera.</span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Para finalizar, un par de proyectos de github interesantes al respecto:</span><br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">https://github.com/kode80/VSCUnity Para poder editar shaders de Unity3D desde Visual Studio Code</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"> </span></div>
Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com3tag:blogger.com,1999:blog-4574682707244479184.post-39060765046237522112015-07-13T23:50:00.000+02:002015-07-14T00:04:34.230+02:00RIP Mr. Iwata<div dir="ltr" id="docs-internal-guid-ea255e79-8962-0d55-af7a-de38b3603f22" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Las personas que me conocen saben que no soy un gran simpatizante de Nintendo, es una empresa de videojuegos que en lo que a mi respecta, por varios motivos, no me agrada, desde la rivalidad que había entre los segueros y nintenderos de mi época que ciertamente influyó en mi, a ciertas prácticas de la empresa que, en lo que a mi respecta, no me gustaron nada, a pesar de todo no vengo aquí a criticar, si no a dar un pésame, a la família, a la compañía, a los fans y en ultima instancia y no por ello menos importante, a los videojuegos, ya que ha muerto alguien indudablemente importante en el sector.</span><br />
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRK9KTuq4JKJ0hyphenhyphengwfVESZo0KHrUOzRPiVoqbTnV_ycC-moKtTCkXms593mtrYYYNIZwoJXtyTvDMZnJQ9Qj3-s_Rn8WnVZcGG-mEAtVClmfbTSucCUdH8r7pp_GBFpGjs8exMIzLKJtHS/s1600/sonicmario.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRK9KTuq4JKJ0hyphenhyphengwfVESZo0KHrUOzRPiVoqbTnV_ycC-moKtTCkXms593mtrYYYNIZwoJXtyTvDMZnJQ9Qj3-s_Rn8WnVZcGG-mEAtVClmfbTSucCUdH8r7pp_GBFpGjs8exMIzLKJtHS/s320/sonicmario.jpg" width="320" /></a></div>
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">No obstante, pese a mi rechazo a la empresa, hay algo que sin duda hay que reconocer y es que es una de las grandes y que, el cuarto presidente fallecido ayer, día 11 de Julio de 2015, hizo grandes cosas no solo por Nintendo, también por los videojuegos en general, y que menos, que rendir un pequeño homenaje a alguien importante e incluso un buen modelo a seguir en varios aspectos.</span><br />
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">No solo se necesita saber programar, dibujar, modelar, hacer música o en definitiva, saber crear las piezas que forman un videojuego, también hay que saber que es lo que el público quiere, lo que a ti te gustaría jugar, no mirar en sacar juegos, hay que sacar buenos juegos, no en sacar nueva consola, hay que sacar una buena consola, y desde luego, ha marcado un antes y un después en muchas cosas, ya que supo dar al público algo nuevo, algo fresco y desde luego, lo que su público quería.</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Sin duda, si me quedo con algo de este señor, y que pienso que todos deberíamos coger esa misma idea para poder hacer bien nuestro trabajo como desarrolladores, es una frase bastante conocida de él que dice: </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">“En mi tarjeta de visita, soy un presidente de empresa. En mi mente soy programador. Pero de corazón soy jugador.”</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">No creo que pueda decir nada que no se haya dicho ya al respecto, dar el pésame a la familia ante todo, a la gente cercana a él y desde luego, a los videojuegos ya que, sin duda, este hombre, ha sido uno de los grandes y que forma parte de la historia de los videojuegos como una persona de las más importantes junto a los también fallecidos, Ralph Baer, Isao Okawa y Paco Menédez entre otros por desgracia tantos.</span></div>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Me gustaría antes de finalizar, dejar una pequeña reflexión al respecto, en la vida, como en los videojuegos, siempre habrá un final para todos, por triste que pueda ser, también damos paso a sangre nueva y con ello a la posibilidad de que renueven el mercado, las ideas, la tecnología y cualquier otro ámbito ya que jóvenes son los que deben seguir el legado, aprender de los errores y los aciertos de los que antes estuvieron ahí, este hombre ha sido un buen modelo a seguir y realmente aún podía haber dado mucho más a la industria, pero mirar atrás no podrá cambiar nada, así que solo podemos mirar hacia adelante, rendirle un pequeño homenaje y hacer lo que a este señor también le habría gustado, seguir desarrollando e innovando al respecto.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimonF2aaFsAojl7vdCxYU2Zayq0UJUxbWRoZXgXqsXlJLlLL7cFZwEcax5cVOrzr5B_DhWvFszNgOVqm4v1GM7IbzB9ASRMrZvTV_zZHQSeR3QaqJiPKqumBHKe1tQLf8px1ZnIGloAmB1/s1600/mediaasta.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimonF2aaFsAojl7vdCxYU2Zayq0UJUxbWRoZXgXqsXlJLlLL7cFZwEcax5cVOrzr5B_DhWvFszNgOVqm4v1GM7IbzB9ASRMrZvTV_zZHQSeR3QaqJiPKqumBHKe1tQLf8px1ZnIGloAmB1/s320/mediaasta.jpeg" width="320" /></a></div>
</div>
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Descansa en paz Mr. Iwata, terminaste tu partida, ahora nos toca a nosotros continuar.</span>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com1tag:blogger.com,1999:blog-4574682707244479184.post-68820015789418798102015-06-15T22:30:00.000+02:002015-06-15T22:30:00.535+02:00Unity3D Scripting: Modificación básica de inspectorAquí volvemos una vez más a aprender algo, esta vez muy práctico tanto para el programador, como, una vez desarrollada esta herramienta, para el dibujante, músico, diseñador de nivel, guionista...<br />
<br />
Vamos a ver como modificar la vista en el inspector de un script que hayamos creado de manera rápida y sencilla.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjINfoGlw82dAH2VzDQybssWy9XEPNqwvIGmPwl27czlZ6g8HNA3XSHcvh5B8u7e0p2JIzkpkJ0gw0z2JXb_jQ2CFi0ghAIDr-MWHwgPG6B7vdCYQY-4GtaAFPMOarZeTYlDYlVY1xEHG6Q/s1600/InspectorConfig.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Visualización de configuración de editor" border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjINfoGlw82dAH2VzDQybssWy9XEPNqwvIGmPwl27czlZ6g8HNA3XSHcvh5B8u7e0p2JIzkpkJ0gw0z2JXb_jQ2CFi0ghAIDr-MWHwgPG6B7vdCYQY-4GtaAFPMOarZeTYlDYlVY1xEHG6Q/s400/InspectorConfig.png" title="" width="400" /></a></div>En primer lugar, analicemos su utilidad, quizás esta sea una de las herramientas de Unity3D que lo hacen realmente una gran alternativa, ya que puede facilitar la edición de los parámetros de entrada sin apenas consumir tiempo de desarrollo, de hecho, todo lo contrario, lo agilizaría.<br />
<br />
Unity3D, ha facilitado mucho esta funcionalidad de manera que, en este primer contacto vamos a ver una forma sencilla de editar, valga la redundancia, el editor, es decir, los valores que veremos en el inspector, para verlos de una manera un poco más amigables para quien tenga que tratar con dicho componente más adelante.<br />
<br />
Vamos a crear un script sencillo, realmente no es necesaria una utilidad en concreto para este ejemplo, simplemente ver cómo podemos cambiar el aspecto del componente en el inspector:<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;">using UnityEngine;
[DisallowMultipleComponent]
public class InspectorEditExample : MonoBehaviour
{
[Range(-10, 10)]
public float Rotation;
[Header("Escala")]
[Range(.1f, 1)]
public float Scale;
[HideInInspector]
public Vector3 Position;
void Start()
{
Position = Vector3.one * Random.Range(0f, 1f);
transform.localPosition = Position;
}
void LateUpdate ()
{
transform.Rotate(Vector3.up * Rotation);
transform.localScale = Vector3.one * Scale;
}
}</pre><br />
Si asociamos este Script podremos ver la imagen mostrada arriba, Si nos fijamos apenas hemos tenido que hacer nada, ahora vamos a ver las posibilidades que tenemos si hacemos este tipo de edición:<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;">[DisallowMultipleComponent]
public class InspectorEditExample : MonoBehaviour</pre><br />
En primer lugar, como podemos ver en el script, al colocar estas etiquetas en las variables, han sido alteradas sus visualizaciones en el editor y a su vez, que tenemos etiquetas que afectan a la clase, como en este caso, que no nos permitirá añadir dos componentes iguales al mismo objeto para que no entren en conflicto entre sí.<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;">[Range(-10, 10)]
public float Rotation;
</pre><br />
Pasando a nuestra primera variable pública el parámetro <b>Range</b> podemos ver que pasa de poder insertarse un número, a tener una barra para desplazar entre el mínimo y el máximo que permitamos, siendo el número de la izquierda el mínimo y el número máximo el de la derecha, en caso de poner el número menor a la derecha y el mayor a la izquierda, la barra se usaría de manera invertida, moviéndola hacia la izquierda para los números más grandes y hacia la derecha para los números más pequeños.<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;">[Header("Escala")]
[Range(.1f, 1)]
public float Scale;</pre><br />
En la siguiente variable pública <b>Scale</b>, podemos ver que además podemos acumular estas etiquetas entre sí, siendo esta nueva etiqueta para poner un título encima de esta variable, así podremos dar una definición más concreta.<br />
<br />
<pre class="codeExampleCS" style="-webkit-text-stroke-width: 0px; background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px; border-top-left-radius: 5px; border-top-right-radius: 5px; border: 1px solid rgb(216, 216, 216); color: #222222; display: block; font-family: Verdana, Arial; font-size: 8pt; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 17px; margin: 0em 10px 1.5em; orphans: auto; padding: 7px; text-align: start; text-indent: 0px; text-transform: none; white-space: pre; widows: auto; word-spacing: 0px;">[HideInInspector]
public Vector3 Position;</pre><br />
Y por último podemos ver en el Script una variable pública que no está en el componente a la hora de visualizarlo en el editor ¿Qué utilidad puede tener esto? Fácil, que sólo queramos que se pueda ver y/o editar a través de otros componentes, y no llenar el componente en el editor de datos que quien vaya a tener que modificarlo en la escena no solo no le interesa, sino que puede inducir a error en caso de creer que hay que rellenarlo.<br />
<br />
Aquí tenemos una lista de las posibilidades que tenemos para editar la visualización del componente en el inspector a través de este método, que denominaremos "el método sencillo" ya que hay un método más complejo pero con una infinidad de posibilidades más, que veremos en otra ocasión.<br />
<ul class="exp"><li><a class="" href="http://docs.unity3d.com/ScriptReference/AddComponentMenu.html" id="">AddComponentMenu</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/AssemblyIsEditorAssembly.html" id="">AssemblyIsEditorAssembly</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/ColorUsageAttribute.html" id="">ColorUsageAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/ContextMenu.html" id="">ContextMenu</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/ContextMenuItemAttribute.html" id="">ContextMenuItemAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/CreateAssetMenuAttribute.html" id="">CreateAssetMenuAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/DisallowMultipleComponent.html" id="">DisallowMultipleComponent</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/ExecuteInEditMode.html" id="">ExecuteInEditMode</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/HeaderAttribute.html" id="">HeaderAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/HelpURLAttribute.html" id="">HelpURLAttribute</a></li>
<li><a class="current" href="http://docs.unity3d.com/ScriptReference/HideInInspector.html" id="current">HideInInspector</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/ImageEffectOpaque.html" id="">ImageEffectOpaque</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/ImageEffectTransformsToLDR.html" id="">ImageEffectTransformsToLDR</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/MultilineAttribute.html" id="">MultilineAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/NotConvertedAttribute.html" id="">NotConvertedAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/NotFlashValidatedAttribute.html" id="">NotFlashValidatedAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/NotRenamedAttribute.html" id="">NotRenamedAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/PropertyAttribute.html" id="">PropertyAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/RangeAttribute.html" id="">RangeAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/RequireComponent.html" id="">RequireComponent</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/RPC.html" id="">RPC</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/RuntimeInitializeOnLoadMethodAttribute.html" id="">RuntimeInitializeOnLoadMethodAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/SelectionBaseAttribute.html" id="">SelectionBaseAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/SerializeField.html" id="">SerializeField</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/SharedBetweenAnimatorsAttribute.html" id="">SharedBetweenAnimatorsAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/SpaceAttribute.html" id="">SpaceAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/TextAreaAttribute.html" id="">TextAreaAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/TooltipAttribute.html" id="">TooltipAttribute</a></li>
<li><a class="" href="http://docs.unity3d.com/ScriptReference/UnityAPICompatibilityVersionAttribute.html" id="">UnityAPICompatibilityVersionAttribute</a></li>
</ul>Toda esta lista tiene un enlace a la documentación oficial en la web de Unity para quien quiera investigar un poco al respecto.<br />
<br />
Espero que sirva de ayuda, y se entienda, la implementación y uso para estas pequeñas ediciones rápidas dentro de nuestro inspector.Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com2tag:blogger.com,1999:blog-4574682707244479184.post-80945339677398627842015-06-08T23:41:00.001+02:002019-07-02T07:37:21.361+02:00Como crear un documento de diseño de videojuegos (GDD)Quizás esto debería haber sido lo primero que debería haber puesto en esta web ya que, por aquí sin duda alguna, es por donde debríamos empezar cualquier videojuego, tenerlo por escrito, definirlo desde el principio, de la A a la Z, en que consistirá, que contendrá y como se jugará a nuestro juego, vamos a ver los puntos que al menos yo considero esenciales para nuestro GDD (Game Design Document) o documento de diseño de videojuegos, del cual por supuesto, podemos obviar que, algunos puntos en diversos juegos pueden ser irrelevantes o inexistentes al igual que, en otros pueden faltar diversos puntos.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimDN0_t-SWYhIDm5U6_QHmuXQZODKU__Rkre5JfFuNN53wnKllCV3jSvtbG8kvPdQxOkHz_E3e72yrAPAz8pHTkQiFaxG1AseN0DYFIZM7HGmGu64Yr3AlHpHiCT8VoEPQAqj-ANOUAuh7/s1600/game-design-document.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Game Design Document" border="0" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimDN0_t-SWYhIDm5U6_QHmuXQZODKU__Rkre5JfFuNN53wnKllCV3jSvtbG8kvPdQxOkHz_E3e72yrAPAz8pHTkQiFaxG1AseN0DYFIZM7HGmGu64Yr3AlHpHiCT8VoEPQAqj-ANOUAuh7/s400/game-design-document.jpg" title="" width="400" /></a></div>
<b>¿Como debemos expresar este documento?</b> <br />
<blockquote class="tr_bq">
En primer lugar debemos tener en cuenta algo muy importante, y es la forma de expresar el documento, un buen consejo que me dieron una vez es expresarlo como si de la contraportada de la caja del videojuego o del trailer se tratase, por ejemplo:<br />
<br />
Si queremos especificar que nuestro personaje podrá lanzar una bola de fuego, aunque podamos expresarlo tal que así: "<i>Al pulsar el botón de habilidad, se instanciará unas partículas de fuego y se hará 10 de daño al enemigo</i>", quizás con esta otra forma podríamos dar mas creatividad a la hora de hacerlo contando por supuesto que estamos dando mucha más información para que el artista/programador pueda hacer algo mucho mas parecido a lo que tienes en mente, tal que así:<br />
<br />
"<i>¡El protagonista lanzará bolas de fuego que harán arder al enemigo en llamas!</i>", Sí, puede sonar poco serio, pero desde luego la visión no es la misma, de manera que si bien no hemos especificado por ejemplo el daño, hay que recordar que realmente ese daño tendría que equilibrarse a medida que se crea el juego, no es nada recomendable dejar en manos del azar ese dato, azar tal como escribir un número en el documento sin haber probado si eso será mucho daño o por el contrario irrelevante.</blockquote>
<b>Identificar el "Core" del juego</b><br />
<blockquote class="tr_bq">
Para quien desconozca que es el "Core" podría decirse que es el núcleo del juego, la esencia, por ejemplo:<br />
<ul>
<li><i>Sonic the Hedgehog</i>: Llegar al final de cada fase lo antes posible. </li>
<li><i>Pokemon</i>: Coleccionar todos los Pokemon. </li>
<li><i>Street Fighter II</i>: Combatir con tus enemigos hasta derrotarlos. </li>
<li><i>...</i></li>
</ul>
Podríamos definir el núcleo de nuestro juego en una frase muy breve y sencilla aunque por supuesto, al igual que en los juegos anteriores, se podría decir mucho mas de ellos, lo cual nos llevaría a, una vez tengamos claro el núcleo, la base de en qué consistirá nuestro videojuego.<br />
<br />
Poder especificar que hará que sea divertido cumplir dicho objetivo del juego, por ejemplo en el caso de Sonic, en las fases podremos encontrar Loops, Saltadores, Cajas que al romperlas nos harán ir mas rápido y no dispondremos de mecánicas como puzzles que harían que la mecánica principal se perdiese ya que tendríamos que parar de correr para resolverlos... en definitiva, los elementos de nuestro juego que hacen en un todo que la mecánica básica sea entretenida y divertida teniendo en cuenta que elementos no podremos añadir para no romper nuestro core.</blockquote>
<b>Crear una lista de características</b><br />
<blockquote class="tr_bq">
Definir todas las características de nuestro juego que nos orientarán a todos en lo que tenemos que hacer, algunas de estas características dependerán del tipo de juego, así que aquí van las que al menos yo considero mas importantes:<br />
<ul>
<li><i>Género: </i>Plataformas, Lucha, FPS, Simulador, Arcade...</li>
<li><i>Ambientación: </i>Western, Cyberpunk, Sci-Fi, Medieval...</li>
<li><i>Público dirigido: </i>Juego para niños, para chicas, para jugadores casuales, para "Hardcore Gamers"...</li>
<li><i>Personajes: </i>¿Hay personajes? Si hay, protagonistas, antagonistas, "figurantes"</li>
<li><i>Diseños de niveles: Dibujos, esquemas, explicaciones de como serán los niveles</i></li>
<li><i>Interfaz: </i>Como será la interfaz de usuario, los menús, el flujo de pantallas...</li>
<li><i>Historia: </i>La trama del videojuego y el guión de la misma</li>
<li><i>Estilo: </i>3D, 2D, PixelArt, Realista, Cartoon...</li>
<li><i>Sonido: </i>Retro, realista, electrónico, clásico...</li>
<li><i>...</i></li>
</ul>
</blockquote>
Una vez tengamos todos estos apuntes, lo ideal sería esquematizarlo todo basándonos en un índice creado previamente, aquí dejo un índice de ejemplo para luego rellenar un documento en base al mismo:<br />
<blockquote class="tr_bq">
<ol>
<li>Introducción</li>
<ul>
<li>Concepto del juego</li>
<li>Características principales</li>
<li>Género</li>
<li>Publico dirigido</li>
<li>Alcance</li>
</ul>
<li>Mecánicas de juego</li>
<ul>
<li>Jugabilidad</li>
<li>Flujo de juego</li>
<ul>
<li>Diagrama de flujo</li>
<li>Introducción al juego</li>
<li>Jugando</li>
<li>Fin de partida</li>
</ul>
<li>Personajes</li>
<ul>
<li>Protagonista</li>
<li>Compañero del protagonista</li>
<li>Antagonista</li>
<li>...</li>
</ul>
<li>Control de jugador</li>
<ul>
<li>Interacción con el personaje</li>
<li>Interacción con el entorno</li>
<li>Interacción con la interfaz</li>
</ul>
<li>Interacción del entorno con el jugador</li>
</ul>
<li>Interfaz</li>
<ul>
<li>Diagrama de flujo de pantallas</li>
<li>Menú principal</li>
<li>Menú de pausa</li>
<li>Menú de guardado/cargar partida</li>
<li>Interfaz de usuario durante partida</li>
<li>Interfaz de fin de partida</li>
<li>Creditos</li>
</ul>
<li>Arte</li>
<ul>
<li>Estilo</li>
<li>Concepts</li>
<li>2D</li>
<li>3D</li>
</ul>
<li>Sonido</li>
<ul>
<li>Música</li>
<li>FX</li>
<li>Diálogos</li>
</ul>
</ol>
</blockquote>
Obviamente este índice no sirve para todos los tipos de juegos ya que si por ejemplo, hacemos un videojuego de naipes (Solitario, Poker, BlackJack...) no tendríamos personajes por ejemplo y esa parte del documento pues sobraría totalmente, así que también es bueno valorar el GDD y decidir por uno mismo de que parte prescindir y en el caso de ser necesario, añadir nuevas categorías. <br />
<br />
Para finalizar, dejo aquí un GDD creado por <a href="http://saltares.com/" target="_blank">Saltares</a> que puede ser muy buena referencia, en parte yo mismo lo he usado de referencia ya que me ha parecido muy buen GDD y podremos ver de hecho sin ir mas lejos, el videojuego creado a partir del mismo:<br />
<br />
<a href="https://github.com/saltares/sion-tower/tree/master/doc/gdd/gdd.pdf" target="_blank">GDD de Sion Tower</a><br />
<a href="http://saltares.com/blog/games/sion-tower/" target="_blank">Videojuego de Sion Tower</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com8tag:blogger.com,1999:blog-4574682707244479184.post-47013518987533114882015-06-04T16:03:00.000+02:002015-06-04T16:03:33.592+02:00¡Mañana DevCon en Sevilla!Que mejor para volver a darle actividad a esta web que anunciar las jornadas de desarrolladores y videojuegos indies de Sevilla se serán <b>mañana Viernes, 5 de Junio de 10:00 a 20:00</b> en el <b>Centro cívico las sirenas, La alameda, Sevilla</b>, a todo aquel que esté interesado en este tipo de eventos, aunque un poco tarde, aquí va toda la información al respecto.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnBhZhh2ctcJkHk6wIvXNDZoXrBI79o_glz_5P1nDu7VW_zNI-XNR51XLX6S8hXUoZANQt69GSdxVFe84-Zi7P-q0C_E4gmPSJUTxguuDWTrBcGNSfPhStrAJVwQWKBk19W6b7zDgJn1rs/s1600/devcon.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Cartel de la DevCon" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnBhZhh2ctcJkHk6wIvXNDZoXrBI79o_glz_5P1nDu7VW_zNI-XNR51XLX6S8hXUoZANQt69GSdxVFe84-Zi7P-q0C_E4gmPSJUTxguuDWTrBcGNSfPhStrAJVwQWKBk19W6b7zDgJn1rs/s400/devcon.png" title="" width="282" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">¡Más vale tarde que nunca!</td></tr>
</tbody></table>
En este evento vamos a poder ver algunas conferencias muy interesantes, de las cuales, no me gustaría perderme ninguna, aunque en mi caso, por causas de trabajo, no podré asistir hasta la tarde, así que las de la mañana no podré verlas y es una lástima porque realmente me gustarían mucho.<br />
<br />
Hoy mísmo han publicado el horario el cual será el siguiente:<br />
<br />
<table><tbody>
<tr style="background-color: #c5c5c5;"> <td>Hora</td> <td>Charla</td> <td>Ponente</td> <td>Sala</td></tr>
<tr> <td>9:30 a 10:00</td> <td>Mesa redonda de los invitados (Sólo participantes)</td> <td>----------</td> <td>Sala de juntas</td></tr>
<tr> <td>10:00 a 11:00</td> <td>Evento inaugural</td> <td>Alberto Espinal</td> <td>Salón de actos</td></tr>
<tr> <td>11:00 a 12:00</td> <td>Quiero empezar a desarrollar videojuegos</td> <td>Juan Carlos García</td> <td>Salón de actos</td></tr>
<tr> <td>12:00 a 13:00</td> <td>El secreto de la música de los videojuegos</td> <td>David Serrano</td> <td>Salón de actos</td></tr>
<tr> <td>13:00 a 14:00</td> <td>Lo que siempre quisiste saber sobre publicar en steam y nunca te atreviste a preguntar</td> <td>David Erosa</td> <td>Salón de actos</td></tr>
<tr> <td>14:00 a 15:00</td> <td>The last door + V-Art</td> <td>The Game Kitchen y V-Art</td> <td>Salón de actos o Sala sur</td></tr>
<tr> <td>17:00 a 18:00</td> <td>Desarrollo en plataformas móviles</td> <td>Alberto Moreno</td> <td>Sala de juntas</td></tr>
<tr> <td>18:00 a 19:00</td> <td>Diseña y desarrolla para la realidad virtual</td> <td>Fernando M. Sierra</td> <td>Sala de juntas</td></tr>
<tr> <td>19:00 a 20:00</td> <td>Crowdfunding, cómo lograr tu primera inversión</td> <td>Jose María Climent</td> <td>Sala de juntas</td></tr>
</tbody></table>
<br />
<b>La entrada a esta convención es totalmente gratuita</b>, Así que no hay escusa para no asistir, un día de aprendizaje bastante concentrado para desarrollar tus propios videjuegos, no todo lo que necesitas para hacer un videojuego es programar, componer y dibujar, aveces también viene muy bien los consejos de personas que están en el mundillo y que han pasado ya por donde tu vas a pasar.<br />
<br />
Web oficial: <a href="http://www.devcon.com.es/">http://www.devcon.com.es</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-72541381256147145432015-03-25T23:50:00.000+01:002015-03-26T00:20:09.457+01:00Mi experiencia personal en la FamiliarGameJam4 <div class="separator" style="clear: both; text-align: center;">
<a href="http://i.imgur.com/d0u5Awz.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://i.imgur.com/d0u5Awz.png" height="173" width="400"></a></div>
<br>
A pesar de que la última Familiar Game Jam fué hace aproximadamente seis meses y que hace un par de meses estuve en la Global Game Jam, realmente siempre hay ganas de repetir, de volver a aprender con gente diferente, de volver a ver al resto de participantes de ediciones anteriores y ponernos al día de lo que estamos haciendo cada uno, y sin dudas, ganas de volver a hacer un videojuego de principio a fin.<br>
<a href="http://www.hagamosvideojuegos.com/2015/03/mi-experiencia-personal-en-la.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com2tag:blogger.com,1999:blog-4574682707244479184.post-19874900286276107532015-03-19T23:50:00.000+01:002015-03-20T00:37:17.388+01:00Unreal Engine 4 VS Unity3D 5De un día para otro, además literalmente, ha salido Unreal Engine 4 de manera gratuita para todos y además la esperada versión 5 de Unity3D, ahora bien, ¿Cual es mejor? ¿Cual de los dos tiene mas potencial? ¿Cual es mas rápido a la hora de desarrollar? Vamos a analizar esto paso a paso.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://epicnerdstadium.com/wp-content/uploads/2014/10/unityvsudk4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://epicnerdstadium.com/wp-content/uploads/2014/10/unityvsudk4.png" height="225" width="400"></a></div>
<br>
<a href="http://www.hagamosvideojuegos.com/2015/03/unreal-engine-4-vs-unity3d-5.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com35tag:blogger.com,1999:blog-4574682707244479184.post-56240606489760207972015-03-02T23:50:00.000+01:002015-03-03T01:05:18.601+01:00Familiar Game Jam Vol 4<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img alt="alt text" src="http://gamejam.famfest.info/familiar4_logo.png" height="173" style="margin-left: auto; margin-right: auto;" width="400"></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br></td></tr>
</tbody></table>
Aunque llego tarde para comunicarlo, ya que hace unos días que está anunciado, la Familiar Game Jam vuelve a Sevilla, por supuesto no podía faltar una vez mas a un evento como este y por supuesto animo a participar a todos los que leéis mis entradas, hay algunas cosas bastante interesantes al respecto.<br>
<a href="http://www.hagamosvideojuegos.com/2015/03/familiar-game-jam-vol-4.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com1tag:blogger.com,1999:blog-4574682707244479184.post-18682343115825878462015-02-16T23:50:00.000+01:002018-01-01T22:38:52.720+01:00Unity3D Scripting: TweensHay una utilidad muy práctica en Unity3D que son las librerías de Tweens, no necesariamente necesitaríamos una librería, nosotros mismos podríamos ser capaces de hacer nuestros propios tweens para nuestro juego, una utilidad que si bien puede servir para muchísimas cosas en nuestros videojuegos, quizás resaltaría como mayor utilidad, la interfaz de nuestro videojuego.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://itween.pixelplacement.com/images/teaser1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://itween.pixelplacement.com/images/teaser1.png" height="166" width="320"></a></div>
<br>
<b>¿Que es un Tween?</b><br>
<a href="http://www.hagamosvideojuegos.com/2015/02/unity3d-scripting-tweens.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-28044763755582895162015-01-27T01:30:00.000+01:002015-01-30T23:45:02.393+01:00Mi participación en la GlobalGameJamEs difícil hablar sobre una Game Jam y no verle el lado positivo, al menos a mi, siempre, siempre, de la manera mas inesperada inclusive, acabas aprendiendo cosas, hay quien empieza por el principio, pero yo quiero hacer la vista atrás de manera secuencial, es decir, de final a principio.<br>
<br>
El final, el motivo por el que todos fuimos, para hacer nuestro propio videojuego, fue un éxito, algunos juegos con mas fallos, otros con menos, algunos mas ceñidos a la temática, otros menos, pero al fin y al cabo, todos pudimos terminar los juegos que en algunos casos, tuvimos bastantes abversidades al respecto, aquí la fotografía final de mi equipo, faltaba uno que no pudo asistir el domingo realmente, así que nos quedamos con un programador menos, lo cual el ritmo de trabajo fue menor.<br>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-xap1/t31.0-8/10865702_10153573763607738_6537391728145006725_o.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="266" src="https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-xap1/t31.0-8/10865702_10153573763607738_6537391728145006725_o.jpg" width="400"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">¡Aquí los creadores del SpaceODB!</td></tr>
</tbody></table>
<br>
<a href="http://www.hagamosvideojuegos.com/2015/01/mi-participacion-en-la-globalgamejam.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com5tag:blogger.com,1999:blog-4574682707244479184.post-21095937834510989412015-01-23T17:52:00.000+01:002015-01-23T17:52:15.198+01:00¡Global Game Jamming!<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.gamestribune.com/wp-content/uploads/2014/12/gj-750x348.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.gamestribune.com/wp-content/uploads/2014/12/gj-750x348.jpg" height="148" width="320" /></a></div>
<br />
<br />
Quería haber avisado antes de poder venir pero finalmente, aquí ya esperando a la temática de la Global Game Jam, desde la sede de Córdoba, intentaré mantener al corriente por twitter de las novedades por aquí y por supuesto enseñaré el juego en cuanto lo tengamos publicado.<br />
<br />
Este mensaje aunque breve, porque tengo que ponerme ahora al lío, quiero destacar que hablaré después del fin de semana de la experiencia ya que no solo es una Game Jam más, también han venido referentes del mundo de los videojuegos a este evento los cuales pienso exprimir todo lo posible todo el conocimiento que puedan aportar.<br />
<br />
Dejo aquí el enlace al evento que, realmente me habría gustado poner hace una semana pero no he podido dar ni una sola pasada por el blog por falta de tiempo, ojalá gracias a haber puesto aquí una entrada referente al evento, hubiese animado a mas gente a venir, ya obviamente es un poco tarde ya que empieza en 15 minutos, no volverá a pasar, ¡Lo prometo!<br />
<br />
<a href="http://www.gamejamodb.com/">http://www.gamejamodb.com/</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-14197865538689024022015-01-11T23:50:00.000+01:002015-01-30T23:45:43.663+01:00Unity3D Scripting: ExtensionesHace tiempo que no traía un tutorial de Unity3D, y este, aunque es muy corto y simple, creo que es muy práctico.<br>
<br>
Las extensiones sirven para poder, a través de una clase estática, crear métodos que se podrán llamar desde objetos ya creados de otras clases.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPVlEsftWlIYPcmB-hwC2MMea7_4rrJUaXIjpGsYEQBvSKLaVniigbrIbMJ4sWFLh8xs6m0hwIv8Wi7mdyw-Iw1iDx9UvwibXBNg6h0PbB2ruXJuqQINlTXU7mmJwum_UUVaUi1FfGn9kc/s1600/set.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPVlEsftWlIYPcmB-hwC2MMea7_4rrJUaXIjpGsYEQBvSKLaVniigbrIbMJ4sWFLh8xs6m0hwIv8Wi7mdyw-Iw1iDx9UvwibXBNg6h0PbB2ruXJuqQINlTXU7mmJwum_UUVaUi1FfGn9kc/s1600/set.png" height="105" width="400"></a></div>
<br>
Como podemos ver en la imagen están tres métodos que si intentamos usar en el transform.position o en definitiva en cualquier Vector3, no lo vamos a encontrar, en cambio es algo bastante práctico, y en este tutorial veremos como añadir, ya sea a un Vector3, o a un Transform, GameObject, o cualquier clase en definitiva, un método que se usará de manera externa. <br>
<br>
<a href="http://www.hagamosvideojuegos.com/2015/01/unity3d-scripting-extensiones.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0tag:blogger.com,1999:blog-4574682707244479184.post-57045090785108138482015-01-01T00:00:00.000+01:002015-01-01T00:00:03.165+01:00¡Feliz año nuevo!Quería despedir este año echando un breve vistazo a este año que dejamos atrás, para mi, llegar a este 31 de Diciembre ha supuesto muchas cosas en esta web.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.cookingideas.es/imagenes/2013/12/arboles-de-navidad-raros-21.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.cookingideas.es/imagenes/2013/12/arboles-de-navidad-raros-21.jpg" height="400" width="266" /></a></div>
<br />
En primer lugar, empecés el blog el día 1 de Enero de 2014, vease que, este año comienza con el aniversario de este blog, algo que me hace estar muy contento, por desgracia no pude llevar el mismo ritmo de vida con el que estuve todos los días subiendo entradas, además de ciertos problemas externos a la web, también empezaba a no poder pensar en tanto contenido de interés, ya que no todo son tutoriales, ni quiero dejar solamente tutoriales en esta web y, además de eso tampoco quería forzar contenido con el que realmente no estuviese contento.<br />
<br />
A pesar de no haber podido tener esta constancia que sin duda alguna he podido experimentar lo difícil que es que una sola persona llegue a tener de manera constante este contenido, y que sin duda fue mi propósito para este año, sin duda, creo que conseguí tener esa constancia tanto en esta web como en muchas otras cosas, y sin duda alguna esta web me ha cambiado en este año muchísimo el trasncurso del mismo.<br />
<br />
En primer lugar, he conseguido, poco a poco, poder expresarme un poco mas en la escritura, posiblemente una de mis mayores carencias, ya que como programador intento que mi código sea lo mas simple y corto posible, en la escritura quizás se me haya quedado esa parte que intento evitar escribiendo en cada una de las entradas que expongo aquí, incluso aveces creo que me he pasado de largo e intento resumirlo un poco porque en parte, también eso hace que sea mas sencilla la escritura.<br />
<br />
He conseguido cosas que desde luego no han sido menos importantes que mejorar en la escritura, a pesar de que sin duda me falta mucho por mejorar, si no todo lo contrario, he conseguido amistades relacionadas con el desarrollo de videojuegos, ciertas personas que no solo me han enseñado si no que me han ayudado a dar ciertos pasos que sin duda han marcado bastante el camino a seguir, ciertas personas con las que puedo considerar que he creado una buena amistad y que he apreciado sin duda tanto su ayuda como sus críticas constructivas para mejorar tanto esta web como yo como persona.<br />
<br />
Por último también decir que, quizás gracias a esta web o quizás no, pero creo que al menos influyó un poco, en cuestión de meses pude decir que he conseguido trabajar de lo que quería, desarrollando videojuegos en una empresa que sin duda he podido aprender más de lo que creía y que sin duda seguiré aprendiendo.<br />
<br />
Finalmente gustaría dar las gracias dando nombres y apellidos pero no obstante, no me gustaría caer en el grandísimo error que sería que me faltase una sola persona de todas las que me han ayudado que sin duda serían muchas, desde mi anterior trabajo al que tengo actualmente, pasando por personas que conocí buscando desarrollar en mi tiempo libre, que conocí en eventos de videojuegos que sin duda me dieron oportunidad de participar en muchas otras cosas y por supuesto, no por ello menos importante, todas y cada una de las personas que han visitado, compartido e incluso comentado o agradecido en mi web que sin duda ha sido un gran apoyo para seguir y posiblemente el mayor motivo a seguir, muchas grácias y espero que este año aporte tanto o mas essta web a mi persona como espero aportar yo a la misma.<br />
<br />
Dicho todo esto, ¡Feliz año nuevo! <br />
<br />
<br />Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com1tag:blogger.com,1999:blog-4574682707244479184.post-80003006073881793682014-12-16T23:50:00.000+01:002014-12-17T09:37:27.655+01:00Aprender C# orientado a Unity3DYa tenía ganas de volver a sacar algo relacionado con Unity3D y no estaba seguro de que y el usuario de Twitter <a href="https://twitter.com/Esteve_Segura" target="_blank">@Esteve_Segura</a> me ha dado una buena idea para una entrada a la vez que por supuesto, dar una contestación mas larga que los 140 caracteres de Twitter.<br>
<br>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://blog.gfx47.com/wp-content/uploads/2011/04/Unity3D_prog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://blog.gfx47.com/wp-content/uploads/2011/04/Unity3D_prog.jpg" height="216" width="320"></a></div>
<br>
Tenemos que partir de una base que al menos a mi, se me hace un poco extraña, tenemos un lenguaje orientado a objetos que dentro de Unity3D, entonces ¿Que hacemos? ¿Nos basamos en crear clases muy grandes con herencia y que una grande controle el juego? ¿O hacemos scripts pequeños con las líneas precisas para una pequeña función del software?<br>
<a name="more"></a>En mi experiencia personal, tras estar trasteando con Unity3D, trabajando y conocer a otras personas que se dedican a ello e intercambiar ideas, opiniones y sobretodo experiencia, he llegado a la conclusión de que hay que usar ambas cosas pero cada una estará enfocada a una parte del desarrollo.<br>
<br>
En primer lugar si, vamos a crear clases que llamaremos "Clases script" las cuales, a través de la herencia con "Monobehaviour" podemos usar ciertos métodos definidos por Unity3D que nos permitirán de manera muy sencilla digamos que llevar el control del juego y con pocas líneas de código, estos scripts serán solo para las cosas que interfieran directamente con la escena, es decir, un objeto que necesite de otros objetos para interactuar en la escena como por ejemplo una nave que dispara balas, esto será una "Clase script" la gestión de los disparos.<br>
<br>
Y ahora bien, ¿Entonces para qué queremos las clases orientadas a objetos normales? pues siguiendo el mismo ejemplo, podríamos tener una clase que nos gestionase las balas o en general, que nos gestionase la creación de objetos, en caso de no tener bastantes balas para disparar, que nos crease mas, y si hay bastantes que buscase una desactivada para poder usarla de nuevo.<br>
<br>
Otro ejemplo que quizás deje mas claro la diferencia sería por ejemplo una clase para leer y escribir en un JSON o XML para guardar datos de las partidas, tan sencillo como para poder guardar datos mas complejos que los que nos permite el playerprefs de Unity3D, y después llamar a esta clase o crear un objeto de esta clase para interaccionar con nuestras partidas guardadas, para cargarlas o salvarlas.<br>
<br>
Digamos que el código mas complejo y sobretodo el mas reutilizable como herramienta fuera de los métodos de Monobehaviour serían los que usaríamos como lenguaje orientado a objetos, y en caso de los scripts serían especialmente los que usan esta clase Monobehaviour que nos dá por defecto Unity3D al crear una nueva clase de c#.<br>
<br>
Si nos acostumbramos a trabajar con la programación por scripts de Unity3D debemos intentar volver a usar las clases como lo que son, y hay muchísima documentación para ello, de lo cual recomiendo el MSDN de microsoft el cual está en español e inglés además de traer numerosos ejemplos.<br>
<br>
Aquí dejaré algunos enlaces para aprender a programar con C# de manera general que por supuesto, si aprendemos a hacerlo como para lo que realmente está preparado C#, como lenguaje orientado a objetos para crear software genérico, usarlo dentro de Unity3D no nos supondrá ningún problema, pero por supuesto, ver que hay ciertas clases que podemos crear como pequeños recursos para la escena como si fuesen scripts nos agilizará nuestro proceso de creación además de tener ciertas cosas de manera mas descentralizadas para poder usarlas cada vez que te pueda ser necesario con tan solo arrastrar y soltar a los objetos de la escena.<br>
<br>
Finalmente dejaré aquí un par de enlaces que considero de alto interés para aprender C# en español:<br>
<br>
<a href="http://msdn.microsoft.com/es-es/library/z1zx9t92.aspx">http://msdn.microsoft.com/es-es/library/z1zx9t92.aspx</a><div><br>
<a href="http://dis.um.es/~bmoros/privado/bibliografia/LibroCsharp.pdf">http://dis.um.es/~bmoros/privado/bibliografia/LibroCsharp.pdf</a><br>
<br>
Quizás un buen debate sería el por qué elegir C# en vez de javascript o boo, que son otros lenguajes que trae Unity3D y sus buenos motivos tienen.<div><br></div><div>Edit: aprovecho para añadir un par de enlaces de interés dentro de esta misma web para saber, que métodos usar y para que sirven de la clase monobehaviour y buenas prácticas dentro de Unity3D.</div><div><br></div><div>http://www.hagamosvideojuegos.com/2014/02/unity3d-scripting-monobehaviour.html<br></div><div><br></div><div>http://www.hagamosvideojuegos.com/2014/02/unity3d-scripting-optimizacion-de.html<br></div><div><br></div><div>PD: Por último decir que salió hace un par de días la tercera entrega de mis tutoriales de Unity3D y hago un peqfspoiler de que en la siguiente nos pondremos a trastear código donde espero poder dejar algo más claro estos conceptos. </div></div>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com6tag:blogger.com,1999:blog-4574682707244479184.post-5198281992329294312014-11-26T22:57:00.000+01:002014-11-26T22:57:01.724+01:00M68K Assembly: Empezando por lo básicoDespués de empezar a leer teoría, asimilar conceptos y ganas de empezar a tocar la parte práctica, he comenzado a trastear con la parte mas básica de todas, mover registros dentro del microprocesador, que es lo que me trae aquí hoy, un pequeño tutorial de como mover registros en ensamblador y para qué se mueven.<br>
<br>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://upload.wikimedia.org/wikipedia/commons/a/a1/Sega-Mega-Drive-JP-Mk1-Console-Set.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://upload.wikimedia.org/wikipedia/commons/a/a1/Sega-Mega-Drive-JP-Mk1-Console-Set.jpg" height="200" width="400"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Un primer paso para hacer un videojuego para mi consola por excelencia</td></tr>
</tbody></table>
<br>
Es muy importante saber que, al fín y al cabo, la programación a alto nivel, enmascara u oculta esta tarea que en un proceso pequeño puede ser relativamente "sencillo" pero a la hora de hacer un videojuego o en definitiva, un software con algo de complejidad, puede ser todo un infierno trabajar con el, pero lo importante es que realmente, trabajamos con esto, y hoy voy a dar aquí el primer paso de teoría básica para entenderlo.<br>
<a href="http://www.hagamosvideojuegos.com/2014/11/m68k-assembly-empezando-por-lo-basico.html#more">Leer más »</a>Hagamos Videojuegoshttp://www.blogger.com/profile/09579580006784325596noreply@blogger.com0