<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Starco Studios</title>
	<atom:link href="http://www.starcostudios.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.starcostudios.com/blog</link>
	<description>La comunidad Starco</description>
	<lastBuildDate>Sun, 09 Dec 2012 09:02:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sony apuesta por Android con su Developer Program para PlayStation Suite</title>
		<link>http://www.starcostudios.com/blog/2012/05/sony-apuesta-por-android-con-su-developer-program-para-playstation-suite/</link>
		<comments>http://www.starcostudios.com/blog/2012/05/sony-apuesta-por-android-con-su-developer-program-para-playstation-suite/#comments</comments>
		<pubDate>Thu, 10 May 2012 15:26:16 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[Tecnología Movil]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=550</guid>
		<description><![CDATA[Sony da un paso adelante en su estrategia de integración entre su línea de desarrollo portatil y su vertiente del sector móvil, el elegido será en primer lugar Android. Qué quiere decir eso amigos, que podremos trabajar el desarrollo de un título que será válido tanto para la PlayStaton Vita, como para un móvil Xperia [...]]]></description>
			<content:encoded><![CDATA[<p>Sony da un paso adelante en su estrategia de integración entre su línea de desarrollo portatil y su vertiente del sector móvil, el elegido será en primer lugar Android. Qué quiere decir eso amigos, que podremos trabajar el desarrollo de un título que será válido tanto para la PlayStaton Vita, como para un móvil Xperia o cualquier otro dispositivo que vaya alimentado por Android.</p>
<p>La noticia implica no solo que podremos disfrutar de la potencia de C# en nuestros desarrollos o de las estructuras propias de PlayStation para su portable sino que además tendremos acceso a los diferentes mercados tanto la PlayStation Store o el de Google Play. Con ello aumentamos el impacto de nuestro título.</p>
<p>El Developer Program ofrece acceso gratuito al PlayStation Suite Studio y a PlayStation Suite UI Composer. Con los que podemos empezar a trabajar y a simular los diferentes bloques de código que vayamos generando. La ventaja es que podremos compilar tanto en el mismo equipo con en un dispositivo Android. Los ejemplos que se ofrecen con la solución llegan a ser juegos completos, no simples llamadas a las APIs de modo que podremos usarlos como referencia directa en nuestros propios sistemas.</p>
<p>El coste una vez se cierre esta beta será de 99$ al año sin embargo la experiencia y la oportunidad que brinda la capacidad de aprovechar esta iniciativa de Sony tanto desde el punto de vista del ingeniero como  del productor es tremenda.</p>
<p>Parece una buena oportunidad para anticiparse al futuro, verdad?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2012/05/sony-apuesta-por-android-con-su-developer-program-para-playstation-suite/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dopando el desarrollo de juegos para Android</title>
		<link>http://www.starcostudios.com/blog/2012/02/dopando-el-desarrollo-de-juegos-para-android/</link>
		<comments>http://www.starcostudios.com/blog/2012/02/dopando-el-desarrollo-de-juegos-para-android/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 10:35:57 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Game Dev]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=542</guid>
		<description><![CDATA[Os presento un par de herramientas que os servirán de gran ayuda en el desarrollo de juegos para Android en el que os sea necesario trabajar la física:
- Andengine
- jBox2D   
Con ellos podeis realizar desde sencillas simulaciones hasta juegos completos donde no queda nada interfaz por trabajar: acelerómetro, screen touch, vibración, sonido&#8230; Echadle [...]]]></description>
			<content:encoded><![CDATA[<p>Os presento un par de herramientas que os servirán de gran ayuda en el desarrollo de juegos para Android en el que os sea necesario trabajar la física:</p>
<p>- <a href="http://www.andengine.org/">Andengine</a><br />
- <a href="https://jbox2d.svn.sourceforge.net/">jBox2D</a>   </p>
<p>Con ellos podeis realizar desde sencillas simulaciones hasta juegos completos donde no queda nada interfaz por trabajar: acelerómetro, screen touch, vibración, sonido&#8230; Echadle un vistazo a &#8216;Balls of Steel&#8217;, un contundente juego para Android que pondrá a prueba tu capacidad de controlar la gravedad.</p>
<p>https://market.android.com/details?id=com.starcostudios.ballsofsteel</p>
<p>Una buena forma de empezar son los ejemplos de <a href="http://code.google.com/p/andengineexamples/">AndEngine</a>&#8230; a disfrutarlo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2012/02/dopando-el-desarrollo-de-juegos-para-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>And the Oscar goes to&#8230; iRanger! Realidad Aumentada para la protección del Medio Ambiente</title>
		<link>http://www.starcostudios.com/blog/2011/05/and-the-oscar-goes-to-iranger-realidad-aumentada-para-la-proteccion-del-medio-ambiente/</link>
		<comments>http://www.starcostudios.com/blog/2011/05/and-the-oscar-goes-to-iranger-realidad-aumentada-para-la-proteccion-del-medio-ambiente/#comments</comments>
		<pubDate>Wed, 18 May 2011 18:12:56 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Emprendeduría]]></category>
		<category><![CDATA[Tecnología Movil]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=500</guid>
		<description><![CDATA[El iRanger es una herramienta orientada a crear una red de jugadores capaces de sincronizarse en tiempo real y sobre la posición determinada a través de la geolocalización y la realidad aumentada  con la finalidad de proteger y defender al medio ambiente.  
Con la tecnología que disponemos actualmente y la orientación social podemos [...]]]></description>
			<content:encoded><![CDATA[<p>El iRanger es una herramienta orientada a crear una red de jugadores capaces de sincronizarse en tiempo real y sobre la posición determinada a través de la geolocalización y la realidad aumentada  con la finalidad de proteger y defender al medio ambiente.  </p>
<p>Con la tecnología que disponemos actualmente y la orientación social podemos crear un<br />
entramado de ciudadanos conectados que cooperan para la manutención y protección de<br />
bosques, lagos, parques naturales y demás entidades naturales que se ven afectadas por la<br />
acumulación de residuos, riesgos de incendios o por diferentes amenazas que afectan<br />
directamente y que dan lugar a zonas con un alto valor ecológico contaminadas, incendiadas o<br />
afectadas por numerosos factores de peligro.</p>
<p>A través de la aplicación se podrá mediante la realidad aumentada determinar los lugares en los<br />
que se encuentra una amenaza o detectarlos y marcarlos mediante geolocalización. Podremos<br />
actuar en consecuencia o ayudar a mejorar el estado de la amenaza. Si somos profesionales<br />
estaremos muy atentos a las novedades y a la comunidad activa de iRanges que actuan en la<br />
zona.</p>
<p>Mediante iRanger 3 agentes diferentes harán uso de la tecnología: rangers, guardianes y<br />
profesionales. Los primeros son los encargados de detectar y marcar las zonas con residuos, las<br />
acumulaciones de maleza, la caza no autorizada &#8230; etc. Los segundos, los guardianes, se<br />
encargan de constribuir a la mejora del estado ya sea actuando en una zona con residuos<br />
mediante su retirada o trabajando de forma activa en mejorar cualquiera de las incidencias o<br />
alertas. Finalmente los profesionales son los que trabajan dia a dia y utilizan esta información<br />
como soporte.</p>
<p>El proyecto pretende servir de plataforma social y de herramienta de protección al mismo tiempo<br />
por lo que dispone de un amplio grupo de funcionalidades dedicadas a la comunicación entre sus<br />
usuarios. Por otro lado debe extraer el máximo partido a las posibilidades de la realidad<br />
aumentada y a la geolocalización por lo que tiene que mostrarse especialmente útil en este<br />
aspecto. Distinguimos entre la funcionalidad orientada a establecer redes sociales y la orientada a<br />
dotar de funcionalidad de protección y monitorización a la herramienta.</p>
<p>>>> Funcionalidad de protección.<br />
– Marcación de puntos geográficos en los que existe una incidencia.<br />
– Fotografiado y comunicación con el servidor para adjuntar fotografías de la<br />
zona.<br />
– Exploración del terreno con Realidad Aumentada (superposición de elementos<br />
informativos sobre la información recibida de la cámara del móvil).<br />
– Historial de las actividades de la zona y comunidades activas (usuarios que han<br />
participado, iniciativas llevadas a cabo, estadísticas interesantes como el<br />
volumen aproximado de residuos retirados o proporción de bosque<br />
protegida&#8230;etc).<br />
– Apartado exclusivo para profesionales con la información detallada de los<br />
elementos más importantes (historiales, tasas, informes de estado&#8230;etc).</p>
<p>>>> Funcionalidad de comunicación y promoción<br />
– Comunicación con los usuarios cercanos via bluetooth y 3G.<br />
– Exploración a través de realidad aumentada del entorno para determinar la<br />
posición de usuarios en la zona (que deseen estar localizables).<br />
– Web para la promoción y expansión de la idea con datos y referencias.<br />
– Comunidad de usuarios en facebook y twitter.</p>
<p>>>>Tipos de usuarios.</p>
<p>Para darle un mayor grado de interés a la aplicación podemos utilizarla en 3 modalidades, como:<br />
Ranger, Guardián o Profesional. Cualquier usuario puede trabajar en modalidad de Ranger o<br />
Guardián y solo los profesionales acreditados pueden disponer de una versión profesional. Se<br />
busca hacer más interesante la tarea de protección del medio ambiente e incluso convertirla en un<br />
juego para motivar la expansión.</p>
<p>Los Rangers exploran el terreno marcando y fotografiando las zonas con<br />
conlfictos (residuos, caza indiscriminada, riesgo de incendio por exceso<br />
de maleza o cualquier otro motivo, deforestación, riesgos de<br />
vertidos&#8230;etc), gracias a ellos se dispone de todo un tejido de información<br />
muy difícil de llevarse a cabo.</p>
<p>Por otro lado los Guardianes trabajan de forma activa para la eliminación<br />
de las incidencias o de las amenazas. Un Guardián explora mediante la<br />
Realidad Aumentada y la geolocalización la zona en la que se encuentra.<br />
Puede incluso haberla explorado desde su casa a través de la web de la<br />
iniciativa. Observa las fotos de la zona y actúa en consecuencia y en<br />
base a sus posibilidades. Elimina algunos residuos, actualiza el estado de<br />
la zona con nuevos grados de contaminación, acumula los residuos en<br />
una zona concreta para facilitar las labores de los guardas<br />
forestales&#8230;etc.</p>
<p>Finalmente los Profesionales son todos aquellos que dedican su labor<br />
diaria a la protección del medio ambiente y a la prevención de incidentes<br />
en una determinada zona. Estos acceden a un gran volumen de<br />
información adicional, más compleja de comprender pero muy útil para<br />
evaluar la evolución de la zona. Historiales de contaminación, regresiones<br />
lineales para establecer estrategias de protección, mapas de influencia o<br />
heat maps de las zonas más contaminadas&#8230;etc. Esto les supone una<br />
fuente de información de valor incalculable ya que gracias a Rangers y<br />
Guardianes pueden multiplicar su efectividad.</p>
<p>>>> Incidencias<br />
Hemos visto que en función de nuestro perfil de usuario o de la forma en la que salimos ese dia<br />
podemos llevar a cabo unas funciones u otras. Tomamos fotos de la zona y damos mandamos<br />
una incidencia. Nos ponemos en contacto con compañeros u organizamos una salida de iRangers<br />
a través de la web. Solventamos parte de una incidencia y la actualizamos para que todos puedan<br />
saberlo. Incluso exploramos la zona para ver cuantos iRangers defienden el lugar.<br />
Ahora es tiempo de ver qué tipo de incidencias vamos a manejar, la información que se va a<br />
mostrar y cómo le facilitamos a los usuarios la tarea de explorar, analizar y solventar los riesgos e<br />
incidencias del bosque. Aqui es donde la aplicación presenta un punto importante ya que de la<br />
sencillez y usabilidad de esta funcionalidad depende en gran parte el éxito de toda la iniciativa. Se<br />
crea de forma que pueda ser útil y dar respuesta a problemas globales y del mismo modo no deje<br />
de ser extremadamente sencilla. Adicionalmente para ayudar a los Rangers a subir información y<br />
a los Guardianes a actualizarla se facilitará una sencilla explicación de las categorías y de los<br />
grados de cada una de ellas.</p>
<p>– Residuos: (ligeros, medios, pesados, líquidos&#8230;etc)<br />
– Maleza: (alto riesgo, medio, riesgo moderado&#8230;)<br />
– Deforestación: (rápida, progresiva, eventual&#8230;)<br />
– Vertidos:(concentración alta, media, baja&#8230;)<br />
– Contaminación:( acústica, líquida, olor&#8230;)<br />
– Amenazas a la vida animal: (trampas, intoxicación&#8230; )<br />
– Caza no autorizada: (eventual, habitual, caso asilado&#8230;)<br />
– Alerta: (fuego, animal herido, persona incapacitada, alud&#8230;)</p>
<p>>>>Tecnología involucrada.</p>
<p>En el desarrollo del proyecto intervienen una serie de componentes que hacen que se aproveche<br />
al máximo la tecnología actual tanto en materia móvil como en materia de conectividad.</p>
<p>– SO. Android/Iphone.<br />
– Realidad Aumentada a través de la Layar Service Architecture.<br />
– Geolocalización a traves de GPS y Google maps.<br />
– Conectividad a través de 3G, wifi y bluetooth.<br />
– Servidor bajo entorno LAMP</p>
<p>El hecho de trabajar sobre elementos que se encuentran soportados bajo potentes comunidades<br />
de desarrollo prevee actualizaciones y compatibilidades futuras así como nuevas funcionalidades<br />
derivadas del trabajo en sintonía con las comunidades de desarrolladores.</p>
<p>>>> Impacto ambiental</p>
<p>Una correcta promoción del proyecto dará lugar a un impacto extremadamente importante sobre la<br />
calidad de conservación de nuestros parajes naturales y sobre la fauna y flora de la zona ya que<br />
mediante la detección de riesgos y la colaboración de los ciudadanos, los profesionales de la<br />
conservación podrán trabajar cada vez con más eficiencia y velocidad y sobre todo con una<br />
realimentación de información hasta ahora nunca vista.</p>
<p>El impacto se materializa en parajes más limpios, riesgos más controlados, caza no autorizada<br />
mucho más difícil de llevar a cabo sin ser sancionado, profesionales de la materia con mucha más<br />
información de su entorno y con toda una comunidad de amantes de la naturaleza con una<br />
herramienta más para además de disfrutar de la naturaleza ayudar a preservarla.</p>
<p>>>> Beneficios sociales</p>
<p>Se traducen principalmente en los orientados a cada tipo de usuario: Rangers, Guardianes y<br />
Profesionales.</p>
<p>Los Rangers disponen no solo de una herramienta con la que orientarse y marcar puntos con<br />
incidencias sino de una forma de conectar y comunicarse con las diferentes personas que<br />
frecuentan los lugares naturales por los que ellos se mueven. De este modo no solo se aporta una<br />
forma de contribuir sino una forma de crear comunidades de individuos con intereses y hobbies<br />
similares, lo que aporta un valor añadido a la labor de contribuir a la preservación del medio<br />
ambiente.</p>
<p>Los Guardianes tienen una forma de acceder rápidamente a las zonas con mayor carga de<br />
residuos o mayores incidencias y mediante los mecanismos sociales del sistema pueden<br />
organizar actividades conjuntas para magnificar el impacto de sus acciones y hacerlas más<br />
amenas.</p>
<p>Los Profesionales disponen por un lado de una multiplicación exponencial de ojos y manos<br />
amigas y por otro lado de información que en muchos casos les sería muy dificil recopilar,<br />
añmacenar y acceder. Mediante sus dispositivos móviles no solo pueden determinar el grado de<br />
contaminación sino que pueden actuar en consecuencia. Por otro lado mediante las herramientas<br />
orientadas a la web que acceden a la información introducida por Ranges y Guardianes pueden<br />
fijar estísticas y proyecciones para el futuro pudiendo organizar mejor sus efectivos y recursos en<br />
evitar problemas o controlar incidencias.</p>
<p>Como resultado, la iniciativa ha ganado el primer premio de Ideas Sostenibles de la Universidad Politécnica de Cataluña, un muy buen impulso para la construcción del proyecto por lo que no queda más que agradecer la labor de la organización y dedicar el proyecto, como se comentó durante la presentación, a sus principales promotores: Pedro Sánchez y Catalina Méndez. </p>
<p>> <a href="http://www.univers.upc.edu/ideesambientals">La web del Univers de la Universidad Politécnica de Cataluña</a>. </p>
<p>En definitiva, hoy en día mas que nunca los ingenieros y apasionados por las nuevas tecnologías debemos enfocarnos a la búsqueda y desarrollo de aplicaciones orientadas a utilizar toda la potencia que las grandes compañías nos ponen al alcance de la mano con la finalidad de obtener soluciones capaces de concienciar a la sociedad, sincronizarla y permitir la obtención de herramientas útiles para la protección del medio ambiente que en última instancia es el primer responsable de que dispongamos de los  recursos necesarios para crear esa tecnología.   </p>
<p>Si eres desarrollador o interesado en la protección del medio mediante esta herramienta, ponte en contacto: starco@starcostudios.com Tu contribución puede ser determinante para el éxito de la iniciativa. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2011/05/and-the-oscar-goes-to-iranger-realidad-aumentada-para-la-proteccion-del-medio-ambiente/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>El Hack de Kinect &#8230; OpenKinect</title>
		<link>http://www.starcostudios.com/blog/2011/03/el-hack-de-kinect-openkinect/</link>
		<comments>http://www.starcostudios.com/blog/2011/03/el-hack-de-kinect-openkinect/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 20:33:48 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Vision por Computador]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=492</guid>
		<description><![CDATA[Como parte de la linea de desarrollo en Visión por Computador estamos muy al tanto de los avances en la materia. Hoy os traemos un breve post con un interesantisimo video acerca de cómo trabajar con el sistema de Microsoft Kinect. Los drivers open source ya han sido liberados. Como se puede apreciar, las posibilidades [...]]]></description>
			<content:encoded><![CDATA[<p>Como parte de la linea de desarrollo en Visión por Computador estamos muy al tanto de los avances en la materia. Hoy os traemos un breve post con un interesantisimo video acerca de cómo trabajar con el sistema de Microsoft Kinect. Los drivers open source ya han sido liberados. Como se puede apreciar, las posibilidades son infinitas. Eso es lo que por aquí llamamos un buen juguete!</p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/03/PSFK-Kinect-Hack-Fixit-Teardown-A.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/03/PSFK-Kinect-Hack-Fixit-Teardown-A.jpg" alt="PSFK-Kinect-Hack-Fixit-Teardown-A" title="PSFK-Kinect-Hack-Fixit-Teardown-A" width="525" height="393" class="aligncenter size-full wp-image-496" /></a></p>
<p><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/1-yR5ozxw4E" frameborder="0" allowfullscreen></iframe></p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/03/Tech.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/03/Tech.jpg" alt="Tech" title="Tech" width="500" height="283" class="aligncenter size-full wp-image-494" /></a></p>
<p>Ahora falta por ver el contra-ataque de Microsoft. En cualquier caso a los afortunados que han podido trabajar y trabajan con ello que les quiten lo bailado! Y gracias a ellos Microsoft puede valorar la posibilidad de liberar su código viendo las grandes posibilidades que ofrece ;P Está claro que como empresa tienen que proteger su inversión, sin embargo, tambien esta muy claro que los Samurais Informáticos estaban deseando echarle el guante y empezar a trabajar de modo que la guerra queda abierta. </p>
<p>Hasta la próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2011/03/el-hack-de-kinect-openkinect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Los cimientos del OpenCV en Android</title>
		<link>http://www.starcostudios.com/blog/2011/03/los-cimientos-del-opencv-en-android/</link>
		<comments>http://www.starcostudios.com/blog/2011/03/los-cimientos-del-opencv-en-android/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 17:43:09 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Tecnología Movil]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=476</guid>
		<description><![CDATA[Lo que vamos a hacer aqui, queridos Samurais Informáticos, va a ser montar los cimientos de una
aplicación para Android completamente operativa y equipada con la librería openCV. Con ella vamos
a poder usar, procesar y modificar algoritmos orientados tanto a la adquisición de imágenes como
a su pre, pro y post-proceso. Podremos trabajar con elementos de segmentación, [...]]]></description>
			<content:encoded><![CDATA[<p>Lo que vamos a hacer aqui, queridos Samurais Informáticos, va a ser montar los cimientos de una<br />
aplicación para Android completamente operativa y equipada con la librería openCV. Con ella vamos<br />
a poder usar, procesar y modificar algoritmos orientados tanto a la adquisición de imágenes como<br />
a su pre, pro y post-proceso. Podremos trabajar con elementos de segmentación, detección de contornos, cálculos de etiquetado, tracking o incluso reconocimiento facial. Una de las características que la hacen especialmente interesante es su apartado dedicado exclusivamente al reconocimiento de patrones por lo que puede ser utilizada tanto en aplicaciones exclusivamente orientadas al proceso de imágenes como a cualquier otra que requiera del uso de algoritmos englobados en la disciplinas del machine learning. </p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/03/iVision_Lite_Iron_Man_HUD.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/03/iVision_Lite_Iron_Man_HUD.jpg" alt="Iron Man Vision HUD" title="Iron Man Vision HUD" width="480" height="320" class="aligncenter size-full wp-image-477" /></a></p>
<p><a href="http://">>>>1. Intro al OpenCV</a></p>
<p>Antes de empezar con el artículo, para poner en materia al interesado que no controla en detalle<br />
la materia, haremos una pequeña referencia al tema principal, La Librería de visión por computador open source openCV. Como su propio nombre indica se trata de un grupo de funciones orientadas a la resolución de problemas típicos de la visión por computador y con una comunidad detrás muy importante de profesionales de la visión que se encarga de mantenerla actualizada. </p>
<p>Un ejemplo de lo que podemos hacer con ella es el del video siguiente donde se usan algoritmos de<br />
Fast Object Tracking. </p>
<p><iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/bWl33urh2w8" frameborder="0" allowfullscreen></iframe></p>
<p>- <a href="http://opencv.willowgarage.com/wiki/Welcome?action=AttachFile&#038;do=view&#038;target=opencv_cheatsheet.pdf">una chuleta o Cheat sheet</a><br />
- <a href="http://www.amazon.com/Learning-OpenCV-Computer-Vision-Library/dp/0596516134">Un muy buen libro de open CV: O&#8217;Reilly, Learning OpenCV Computer Vision Library de Gary Bradski y Adrian Kaehler</a>.</p>
<p><a href="http://">>>>2. OpenCV y Android<br />
</a></p>
<p>¿Para que vamos a querer utilizar openCV en Android? Principalmente para sacarle partido a la<br />
gran sinergia de elementos que suelen formar el móvil: camara, acceso a internet, pantallas de<br />
gran calidad y procesadores cada vez más potentes. Con estos ingredientes la aplicación de<br />
técnicas de visión por computador se hace casi una obligación. Nuestro principal interés será como de costumbre aplicar este conocimiento al desarrollo de aplicaciones de entretenimiento.  </p>
<p>- Reconocimiento de objetos: vehículos.<br />
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/imDz2aFMvQc?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/imDz2aFMvQc?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>-Reconocimiento de caras o facial recognition.<br />
<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/lLTW2xXIPKE?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/lLTW2xXIPKE?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>&#8211; La realidad aumentada no nos la dejamos por el camino, es uno de los motivos principales por los que tocaremos estos temas y sobre el que nos especializaremos en posteriores artículos. De momento y para ir abriendo el apetito, una pequeña referencia.</p>
<p>-Vista de la aplicación de Realidad aumentada.<br />
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/yu-u4xyn0_k?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/yu-u4xyn0_k?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p><a href="http://"><br />
>>>>>3. Manos a la obra.</a></p>
<p>Trabajaremos con el entorno de java y la SDK de Android. Para los que no esteis familiarizados con ella pasaros por <a href="http://developer.android.com/index.html">aqui</a> y echadle un vistazo, en breve tendreis el entorno en marcha. </p>
<p>Una vez listo el entorno, la funcionalidad en la que nos vamos a enfocar será la siguiente:<br />
- Adquisición de la información. (Cámara e Imagen)<br />
- Proceso de los datos. (Aplicación de funciones predefinidas de openCV)<br />
- Muestreo de la información en pantalla.</p>
<p>Con ello tendremos en marcha un proyecto que cubre los cimientos de cualquier aplicación que requiera el uso de la librería open CV.</p>
<p><a href="http://">>>>3.1 El código fuente de ejemplo.</a></p>
<p>>La base sobre la que trabajaremos la podeis obtener aqui: <a href='http://www.starcostudios.com/blog/wp-content/uploads/2011/03/testOpenCV.rar'>Test Android OpenCV</a><br />
>El .apk siempre viene bien. <a href='http://www.starcostudios.com/blog/wp-content/uploads/2011/03/testOpenCV.apk'>testOpenCV</a>.</p>
<p><a href="http://">>>>3.2 Elementos principales.</a></p>
<p>Cargaremos la librería y definiremos las estructuras principales mediante:</p>
<blockquote><p><code>package com.starcostudios.opencv;</p>
<p>public class OpenCV {<br />
	static{<br />
		System.loadLibrary("opencv");<br />
	}<br />
	public native boolean setSourceImage(int[] pixels, int width, int height);<br />
	public native byte[] getSourceImage();<br />
}</code>
</p></blockquote>
<p>Montamos el sistema de menus. Podremos o bien hacer la foto o bien seleccionarla de la galería y aplicarle los cambios con la funciones de la librería openCV.</p>
<blockquote><p>
<code>	@Override<br />
	public boolean onCreateOptionsMenu(Menu menu) {<br />
		super.onCreateOptionsMenu(menu);<br />
		menu.add(0, CAMERA_ID, 0, "Camera");<br />
		menu.add(0, GALLERY_ID, 0, "Gallery");<br />
		return true;<br />
	}</code>
</p></blockquote>
<p>Procesamos la reacción del sistema al escoger una opción u otra.</p>
<blockquote><p>
<code><br />
	@Override<br />
	public boolean onMenuItemSelected(int featureId, MenuItem item) {<br />
		switch (item.getItemId()) {<br />
		case CAMERA_ID:<br />
			Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);<br />
			long timeTaken = System.currentTimeMillis();<br />
			mCurrentImagePath = IMAGE_DIRECTORY + "/"<br />
					+ Utility.createName(timeTaken) + ".jpg";<br />
			Log.i(TAG, mCurrentImagePath);<br />
			cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,<br />
					Uri.fromFile(new File(mCurrentImagePath)));<br />
			startActivityForResult(cameraIntent, ACTIVITY_SELECT_CAMERA);<br />
			return true;<br />
		case GALLERY_ID:<br />
			Intent galleryIntent = new Intent(Intent.ACTION_PICK,<br />
					Images.Media.INTERNAL_CONTENT_URI);<br />
			startActivityForResult(galleryIntent, ACTIVITY_SELECT_IMAGE);<br />
			return true;<br />
		}</p>
<p>		return super.onMenuItemSelected(featureId, item);<br />
	}</code></p></blockquote>
<p>Finalmente nos enfocamos en la aplicación de las funciones sobre la imagen seleccionada:</p>
<blockquote><p>			try {<br />
				Uri currImageURI = data.getData();<br />
				String[] proj = { Images.Media.DATA, Images.Media.ORIENTATION };<br />
				Cursor cursor = managedQuery(currImageURI, proj, null, null,<br />
						null);<br />
				int columnIndex = cursor.getColumnIndex(proj[0]);<br />
				cursor.moveToFirst();<br />
				mCurrentImagePath = cursor.getString(columnIndex);<br />
				Bitmap bitmap = BitmapFactory.decodeFile(mCurrentImagePath);<br />
				Log.i(TAG, mCurrentImagePath);<br />
				int width = bitmap.getWidth();<br />
				int height = bitmap.getHeight();<br />
				int[] pixels = new int[width * height];<br />
				bitmap.getPixels(pixels, 0, width, 0, 0, width, height);<br />
				opencv.setSourceImage(pixels, width, height);<br />
				long start = System.currentTimeMillis();<br />
				opencv.extractSURFFeature();<br />
				long end = System.currentTimeMillis();<br />
				byte[] imageData = opencv.getSourceImage();<br />
				long elapse = end &#8211; start;<br />
				Toast.makeText(this, &#8220;&#8221; + elapse + &#8221; ms is used to extract features.&#8221;,<br />
						Toast.LENGTH_LONG).show();<br />
				bitmap = BitmapFactory.decodeByteArray(imageData, 0,<br />
						imageData.length);<br />
				mImageView.setImageBitmap(bitmap);<br />
			} catch (Exception e) {<br />
			}
</p></blockquote>
<p>Es importante tener en cuenta las estructuras que intervienen en el proceso ya que al pasar por diferentes mecanismos nos debemos ajustar a las estructuras de datos que se utilizan en cada estado del proceso.</p>
<p>En resumen, hemos sentado las bases del uso de OpenCV en Android pudiendo utilizar todas las funciones de la librería con lo que tenemos la capacidad de aplicar los últimos algoritmos en materia de Visión por Computador<br />
para nuestras aplicaciones con Android. Posteriormente veremos como pasar por las diferentes fases propias de las aplicación de visión por computador pre, pro y postproceso. </p>
<p>Hasta la próxima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2011/03/los-cimientos-del-opencv-en-android/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mobile World Congress 2012 en Barcelona</title>
		<link>http://www.starcostudios.com/blog/2011/02/mobile-world-congress-2012-en-barcelona/</link>
		<comments>http://www.starcostudios.com/blog/2011/02/mobile-world-congress-2012-en-barcelona/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 20:27:31 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Emprendeduría]]></category>
		<category><![CDATA[Tecnología Movil]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=465</guid>
		<description><![CDATA[La edición del Mobile World Congress 2011 ha cerrado sus puertas siendo todo un éxito tanto
para la propia industria como para las empresas locales que han podido entrar en contacto
con los grandes referentes y moverse por el entorno. 

Como resumen Nokia y Microsoft intentan impulsar la presencia en el sector, Sony presenta XPlay, Telefónica quiere [...]]]></description>
			<content:encoded><![CDATA[<p>La edición del Mobile World Congress 2011 ha cerrado sus puertas siendo todo un éxito tanto<br />
para la propia industria como para las empresas locales que han podido entrar en contacto<br />
con los grandes referentes y moverse por el entorno. </p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/mwc_2.png"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/mwc_2.png" alt="Mobile World Congress 2012" title="Mobile World Congress 2012" width="704" height="326" class="aligncenter size-full wp-image-466" /></a></p>
<p>Como resumen Nokia y Microsoft intentan impulsar la presencia en el sector, Sony presenta XPlay, Telefónica quiere cobrar a Google por el uso de sus lineas,<br />
Apple ausente, la Xoom de Motorola y la Galaxy Tab de Samsung, Google presenta Android 3.0 Honeycomb y Starco lanza el iZen Temple! &#8230;todo un lujo! </p>
<p>Uno de los grandes HTC presentó un avance de las novedades e innovaciones que se llevarán a cabo durante este año próximo.  </p>
<p><iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/e1espj8Hj_c" frameborder="0" allowfullscreen></iframe></p>
<p>Especialmente interesante para nosotros el Xperia Play que presentó el propio Kaz Hirai con el<br />
que se pretende crear una nueva generación de dispositivos orientados tanto al entretenimiento<br />
como a mantener la funcionalidad y capacidad que ofrecen actualmente los smartphones.</p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/PlayStation-Phone-Arriving-Next-Month.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/PlayStation-Phone-Arriving-Next-Month.jpg" alt="PlayStation XPlay" title="PlayStation XPlay" width="560" height="541" class="aligncenter size-full wp-image-469" /></a></p>
<p><iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/eNeQbVF0F2A" frameborder="0" allowfullscreen></iframe></p>
<p>Por otro lado se presentó oficialmente el Android 3.0 Honeycomb con nuevas delicias tanto para desarrolladores como para usuarios.  Echadle un vistazo a la<br />
demo oficial. </p>
<p><iframe title="YouTube video player" width="640" height="390" src="http://www.youtube.com/embed/DAXm0-HA8O8" frameborder="0" allowfullscreen></iframe></p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/standandroid.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/standandroid.jpg" alt="Stand Android 3.0" title="Stand Android 3.0" width="650" height="437" class="aligncenter size-full wp-image-472" /></a></p>
<p>Por otro lado y al mismo nivel que las anteriores referencias, Starco Studios consolida su presencia en el ecosistema de aplicaciones para Android con aplicaciones<br />
como el <a href="http://es.appbrain.com/app/izen-temple/com.starcostudios.zenmusic">iZen Temple</a> o la demo de <a href="http://www.aewar.com">Alter Ego</a> que revolucionará la forma en la que<br />
establecemos nuevas amistades a través del bluetooth del móvil y los juegos sociales www.aewar.com.</p>
<p>Desde Starco animamos a todos los profesionales del sector que todavia no forman parte<br />
de esta reunión global a que esten presentes en la próxima edición del 2012 ya que la experiencia, los contactos y el aprendizaje que se adquiren bien vale el alto coste de la entrada.</p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/51327860_011300096-1.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/02/51327860_011300096-1.jpg" alt="Mobile World Congress" title="Mobile World Congress" width="512" height="288" class="aligncenter size-full wp-image-471" /></a></p>
<p>Nos vemos en el MWC 2012, esperamos que en Barcelona! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2011/02/mobile-world-congress-2012-en-barcelona/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La Japan TechWorking Day, conociendo los motores del pais del Sol Naciente.</title>
		<link>http://www.starcostudios.com/blog/2011/01/la-japan-techworking-day-conociendo-los-motores-del-pais-del-sol-naciente/</link>
		<comments>http://www.starcostudios.com/blog/2011/01/la-japan-techworking-day-conociendo-los-motores-del-pais-del-sol-naciente/#comments</comments>
		<pubDate>Sun, 09 Jan 2011 22:38:37 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Emprendeduría]]></category>
		<category><![CDATA[Tecnologia Informática IT]]></category>
		<category><![CDATA[Tecnología Movil]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=462</guid>
		<description><![CDATA[Recientemente el equipo de Starco ha asistido a la Japan Techworking, un evento organizado por la gente de Barcelona Activa en el que empresas locales han podido ponerse en contacto y establecer relaciones con empresas y directivos japoneses del ámbito de las tecnologías de la información y la comunicación.
En primer lugar se celebró una presentación [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente el equipo de Starco ha asistido a la Japan Techworking, un evento organizado por la gente de <a href="http://www.barcelonactiva.cat/barcelonactiva/cat/">Barcelona Activa</a> en el que empresas locales han podido ponerse en contacto y establecer relaciones con empresas y directivos japoneses del ámbito de las tecnologías de la información y la comunicación.</p>
<p>En primer lugar se celebró una presentación donde los participantes pudieron ver en detalle los productos que actualmente ofrecen estas empresas y donde se pudo apreciar el nivel de desarrollo tecnológico del que disponen. La reunión tuvo lugar en la Sala Archimboldi y dió lugar a una dinámica de networking muy interesante y amena. Uno de los vídeos del evento con la intervención de nuestro CMS Victor Siguenza.    </p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/-DeSzJYhol4?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-DeSzJYhol4?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p>En segundo lugar lugar una rueda de reuniones con las empresas del sector más acordes con nuestra linea de desarrollo entre las que se cuentan <a href="http://www.gracenote.com/">Sony Gracenote</a>, <a href="http://omron.es/">Omron Software</a>, NewForestar o <a href="http://phyzios-studio.net/">Phyzios</a>. Algunas de las personalidades vinculadas al evento son Takeyi Ogura, Atsushi Hoshino o Eiji Miki. El lugar escogido, la Cámara de Comercio de Barcelona, ha sido una excelente elección que le ha dado al evento un valor añadido. En ella hemos presentado los proyectos de <a href="http://www.monstamarket.com/">MontaMarket </a>y <a href="http://www.aewar.com/">Alter Ego</a> con muy buena aceptación.</p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2011/01/Puente.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2011/01/Puente-300x77.jpg" alt="Puente" title="Puente" width="300" height="77" class="aligncenter size-medium wp-image-463" /></a></p>
<p>Las primeras impresiones de la cultura Japonesa en los negocios TIC, como ya nos podiamos hacer una idea de len base a los clichés que la envuelven, es que se trata de una cultura muy rigurosa,<br />
con profesionales extremadamente comprometidos con los objetivos de sus empresas y con mucha capacidad de trabajo. A nivel técnico las empresas han presentado unos productos muy evolucionados y con algunas características que estan por llegar al resto de los mercados. Si tienes que trabajar con equipos o empresas japonesas ten muy en cuenta que se espera de ti el mismo nivel de educación y profesionalidad que ellos ofrece, de otro modo será muy difícil colaborar o llevar a buen puerto cualquier tipo de proyecto.</p>
<p>En resumen, muy buen trabajo por parte del equipo de <a href="http://www.barcelonactiva.cat/barcelonactiva/cat/">Barcelona Activa</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2011/01/la-japan-techworking-day-conociendo-los-motores-del-pais-del-sol-naciente/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>General Grievous Bot y Google AI Challenge Planet Wars</title>
		<link>http://www.starcostudios.com/blog/2010/11/general-grievous-bot-y-google-ai-challenge-planet-wars/</link>
		<comments>http://www.starcostudios.com/blog/2010/11/general-grievous-bot-y-google-ai-challenge-planet-wars/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 15:33:54 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[Inteligencia Artificial]]></category>
		<category><![CDATA[Tactica y Estrategia]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=455</guid>
		<description><![CDATA[Estamos de acuerdo que aunque técnicamente el General Grievous es un cyborg, nosotros lo vamos
a tratar como un Droide convencional y vamos a delegar sus funciones relacionadas con el Arte
de la Guerra a un cooprocesador sinergético acoplado a sus capacidades cognitivas naturales. De
esta forma justificamos el título y nos quedamos tan anchos. Nuestra función será [...]]]></description>
			<content:encoded><![CDATA[<p>Estamos de acuerdo que aunque técnicamente el General Grievous es un cyborg, nosotros lo vamos<br />
a tratar como un Droide convencional y vamos a delegar sus funciones relacionadas con el Arte<br />
de la Guerra a un cooprocesador sinergético acoplado a sus capacidades cognitivas naturales. De<br />
esta forma justificamos el título y nos quedamos tan anchos. Nuestra función será iniciar la<br />
creación de este procesador sinergético que ayude a Grievous a conquistar las Galaxias de Planet<br />
Wars.</p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/Episode_3_General_Grievous_Lightsabers.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/Episode_3_General_Grievous_Lightsabers-300x168.jpg" alt="General Grievous" title="General Grievous" width="300" height="168" class="aligncenter size-medium wp-image-456" /></a></p>
<p>Para introducir lo que hemos comentado más en detalle en otros artículos, Google AI Challenge Planet<br />
Wars es una iniciativa creada para competir a nivel global con aficcionados, profesionales e investigadores<br />
en materia de inteligencia artificial aplicada al entretenimiento. Se trata de gestionar las naves de<br />
batalla para conquistar las diferentes Galaxias. En ellas encontraremos un oponente neutral y un bot<br />
enemigo creado por otro adversario. Lo que vamos a hacer aqui es introducirnos en este torneo y crear<br />
un primer bot medianamente competente.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/O0uxXZY-t-s?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/O0uxXZY-t-s?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p><a href="http://">>>>1. El entorno</a></p>
<p>Primero echadle mano a la <a href="http://ai-contest.com/quickstart.php">quick-start guide</a> y muy pronto estareis dandole<br />
caña al BOT. Descargaremos el <a href="http://ai-contest.com/starter_packages.php">kit de inicio</a> en el lenguaje de programación que creamos conveniente. Basaremos este artículo en el <a href="http://ai-contest.com/starter_packages/java_starter_package.zip">kit de inicio</a> de java. Si trabajais con Windows el procedimiento<br />
es el de siempre: descargar la SDK de Java, actualizar la variable de entorno PATH y compilar los archivos.<br />
Vereis más detalles en el <a href="http://ai-contest.com/starting_your_own.php">tutorial de creación</a> de vuestro propio bot.</p>
<p>Copiado en el directorio raiz el único archivo que tenemos que modificar es MyBot.java. En el encontraremos una<br />
estrategia sencilla que cubre todo lo que necesitamos para empezar a trabajar. Lo principal a identificar es el<br />
bucle de trabajo que se ejecuta a cada turno.</p>
<blockquote><p>
public static void DoTurn(PlanetWars pw) {</p>
<p>}
</p></blockquote>
<p>En el interior podemos crear estrategias tan elaboradas como creamos necesario, sin embargo, en cualquier caso todos<br />
los procesos de cálculo irán enfocados a decidir el origen y el destino de nuestras flotas así como el número de<br />
unidades que vamos a enviar. Determinar el planeta desde el que vamos a enviar la flota se haría de esta forma:</p>
<blockquote><p>Planet source = null;<br />
double sourceScore = Double.MIN_VALUE;<br />
	for (Planet p : pw.MyPlanets()) {<br />
	    double score = (double)p.NumShips();<br />
	    if (score > sourceScore) {<br />
		sourceScore = score;<br />
		source = p;<br />
	    }<br />
}</p></blockquote>
<p>Como se puede apreciar recorremos todos nuestros planetas y buscamos el que más naves de batalla contiene. Una vez<br />
hecho esto disponemos de la fuente desde la que se enviarán los planetas. A continuación buscamos el destino de nuestra<br />
flota, en este caso el planeta más debil.</p>
<blockquote><p>Planet dest = null;<br />
	double destScore = Double.MIN_VALUE;<br />
	for (Planet p : pw.NotMyPlanets()) {<br />
	    double score = 1.0 / (1 + p.NumShips());<br />
	    if (score > destScore) {<br />
		destScore = score;<br />
		dest = p;<br />
	    }<br />
}
</p></blockquote>
<p>Como podeis ver el hecho de que escojamos un planeta u otro depende de la puntuación que le demos y esto lo decidimos en la<br />
variable &#8217;score&#8217;. Cuanto menor sea el número de naves de batalla mayor será la puntuación. Finalmente tramitamos la orden al<br />
capitán del escuadrón.</p>
<blockquote><p>
if (source != null &#038;&#038; dest != null) {<br />
	    int numShips = source.NumShips() / 2;<br />
	    pw.IssueOrder(source, dest, numShips);<br />
}
    </p></blockquote>
<p>Con esto hemos comprendido el funcionamiento de la base mínima del coprocesador sinergético del General Grievous. Hecho esto<br />
tendremos que tener muchas más cosas en cuenta. Veremos que detalles tenemos que empezar a valorar más adelante. Con la inteligencia<br />
artificial que hemos programado no conquistaremos ni el planeta Kashyyyk de los wookies pero de momento ya nos vale para ir poniendonos<br />
al dia. </p>
<p><a href="http://">>>>2. Simulando la batalla<br />
</a><br />
Para ver nuestros progresos de forma directa sin tener que subir al servidor el paquete podemos dos cosas, o bien picarlo contra<br />
el mismo:</p>
<p>java -Duser.language=en -Duser.region=US  -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt &#8220;java -Duser.language=en -Duser.region=US MyBot&#8221; &#8220;java -Duser.language=en -Duser.region=US MyBot&#8221; | java -jar tools/ShowGame.jar</p>
<p>O bien picarlo contra otro bot, en este caso uno aleatorio de entre los que nos vienen con el paquete inicial:</p>
<p>java -Duser.language=en -Duser.region=US  -jar tools/PlayGame.jar maps/map7.txt 1000 1000 log.txt &#8220;java -Duser.language=en -Duser.region=US MyBot&#8221; &#8220;java -Duser.language=en -Duser.region=US -jar example_bots/RandomBot.jar&#8221; | java -jar tools/ShowGame.jar</p>
<p>El desempeño no será representativo hasta que no lo veais compitiendo contra otros bots más elaborados de forma online. En cualquier<br />
caso ya no por el hecho de competir y divertirse sino porque representa una forma excelente de ver como encara el resto de ingenieros<br />
la solución al problema. Ya os puedo avanzar que será una cuestión matemática y de anticipación.</p>
<p><a href="http://"><br />
>>>3. Subiendo el bot al concurso<br />
</a><br />
Una vez dados de alta podemos hacer la primera prueba con el bot de ejemplo. Cogemos la carpeta completa que hemos descargado, la comprimimos<br />
en zip y la enviamos a través del formulario de la web. En breve empezará a competir y podremos iniciar la modificación de la IA para conseguir<br />
mejores resultados.</p>
<p>Ejemplos de batalla que podremos ver son los siguientes:</p>
<p>> <a href="http://ai-contest.com/visualizer.php?game_id=7692225">Batalla I</a><br />
> <a href="http://ai-contest.com/visualizer.php?game_id=7704200">Batalla II</a></p>
<p>Ya veis que cada uno aplica su estrategia, lo ideal es buscar la anticipación y el equilibrio entre el ataque y la defensa. Ya veremos más detalles<br />
sin embargo lo que vamos a tratar aqui es puramente orientado a daros un punto de vista completo del concurso y no a describiros las mejores prácticas<br />
ya que sería una mala forma de enseñar. Lo interesante es plantar las bases para que vosotros mismos seais los que vais descubriendo cómo encarar el<br />
concurso y cómo ampliar la potencia ofensiva o defender con mayor eficacia. El parametrizado es un tema importante a tener en cuenta de cara a hacer<br />
sencillas las optimizaciones. </p>
<p><a href="http://"><br />
4. Resultados<br />
</a><br />
El resultado de una primera distribución de las estrategias más básicas y aplicando varios ajustes a los parámetros es el que veis a continuación, la<br />
cosa no va mal del todo. </p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/media.png"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/media-300x145.png" alt="media" title="media" width="300" height="145" class="aligncenter size-medium wp-image-457" /></a></p>
<p>Ahora toca aplicar los preceptos del maestro Sun Tzu en el Arte de la Guerra y ponernos las pilas como Samurais Informáticos de primera categoría. </p>
<p>En próximos artículos plantearemos algunas estrategias sencillas para ir haciendo estómago y orientar un poco a donde van los tiros. De cualquier forma<br />
es un jugete muy interesante que da muchas alegrías ademas de quebraderos de cabeza. Poco a poco vamos teniendo un general en condiciones. </p>
<p>A disfrutarlo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2010/11/general-grievous-bot-y-google-ai-challenge-planet-wars/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Montando la Artillería para el Google AI Challenge Planet Wars</title>
		<link>http://www.starcostudios.com/blog/2010/11/montando-la-artilleria-para-el-google-ai-challenge-planet-wars/</link>
		<comments>http://www.starcostudios.com/blog/2010/11/montando-la-artilleria-para-el-google-ai-challenge-planet-wars/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 17:55:34 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Inteligencia Artificial]]></category>
		<category><![CDATA[Tactica y Estrategia]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=449</guid>
		<description><![CDATA[Hola muchachos. De nuevo estamos en medio de una iniciativa perfecta para poner en práctica las habilidades en materia de
algoritmia e inteligencia artificial, se trata de la Google AI Challenge. El objetivo es el de crear un bot para Planet Wars, un juego
que en el que la finalidad es la de conquistar los planetas del [...]]]></description>
			<content:encoded><![CDATA[<p>Hola muchachos. De nuevo estamos en medio de una iniciativa perfecta para poner en práctica las habilidades en materia de<br />
algoritmia e inteligencia artificial, se trata de la Google AI Challenge. El objetivo es el de crear un bot para Planet Wars, un juego<br />
que en el que la finalidad es la de conquistar los planetas del enemigo mediante ataques coordinados de nuestras naves de batalla.<br />
Se trata de un juego de acción en estado puro donde podemos definir un gran número de estrategias. Un ejemplo de juego es el<br />
programa original Galcon en el que se puede apreciar el funcionamiento básico.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/Ap56sfIpJc4?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Ap56sfIpJc4?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>Como podeis ver, se trata en definitiva de construir una entidad artificial que controle la gestión de una flota interplanetaria de forma automática<br />
permitiendo atacar, defender y asediar al enemigo de la forma más precisa posible. Pongamosle que os vais a encargar de las funciones básicas del<br />
General Grievous, colonizar y defender.</p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/grievous.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/grievous-300x225.jpg" alt="General Grievous" title="General Grievous" width="300" height="225" class="aligncenter size-medium wp-image-450" /></a></p>
<p>La página principal del evento es <a href="http://ai-contest.com/problem_description.php">AI-Contest</a>, echadle un vistazo.<br />
<strong><br />
1. Elementos principales del juego<br />
</strong><br />
Tenemos a nuestra disposición una serie de características y elementos a tener en cuenta que harán el problema extremadamente interesante. </p>
<p>> Lista de planetas<br />
> Lista de flotas</p>
<p>Por cada planeta:</p>
<p>> Coordenadas de cada planeta (x, y)<br />
> Dueño del planeta<br />
> Número de naves de batalla<br />
> Tasa de crecimiento</p>
<p>Los planetas neutrales tienen como identificador el 0. Los propios el 1 y los enemigos el 2. A cada turno se incrementan las naves de batalla<br />
acorde con la tasa de crecimiento del planeta. </p>
<p>-Respecto a las Flotas:</p>
<p>Cuando enviamos flotas a diferentes planetas pueden ocurrir varias cosas. Por un lado si el planeta es nuestro, el número de naves de batalla será<br />
incrementado en tantos como unidades enviemos. Por otro lado si el planeta es enemigo, por cada una de nuestras naves de batalla eliminaremos a<br />
una del enemigo. Si el resultado es la eliminación completa de la flota enemiga, quedando almenos una de nuestras naves, el planeta será nuestro.<br />
De otro modo el planeta seguirá en manos del oponente. </p>
<p>Un ejemplo de juego aplicado directamente sobre la plataforma del concurso es el que vemos a continuación:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/O0uxXZY-t-s?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/O0uxXZY-t-s?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>El resultado es claramente una victoria para el jugador que concentra sus fuerzas en colonizar los planetas del oponente dejando prácticamente de lado los neutrales. Adicionalmente se adelanta a los planetas que<br />
el oponente tiene previsto colonizar.<br />
<strong><br />
2. El código.<br />
</strong><br />
El código del bot base es extremadamente sencillo, a partir de ahi podemos complicarlo tanto como queramos respetando la limitación de un segundo máximo de proceso por cada turno. Disponemos de diferentes lenguajes sobre los que trabajar, escogemos Java ya que tenemos en mente la utilidad de esta herramienta para Android. Un pequeño ejemplo es el siguiente:</p>
<blockquote><p><code>import java.util.*;</p>
<p>public class BullyBot {<br />
    public static void DoTurn(PlanetWars pw) {<br />
	// (1) If we current have a fleet in flight, just do nothing.<br />
	if (pw.MyFleets().size() >= 1) {<br />
	    return;<br />
	}<br />
	// (2) Find my strongest planet.<br />
	Planet source = null;<br />
	double sourceScore = Double.MIN_VALUE;<br />
	for (Planet p : pw.MyPlanets()) {<br />
	    double score = (double)p.NumShips();<br />
	    if (score > sourceScore) {<br />
		sourceScore = score;<br />
		source = p;<br />
	    }<br />
	}<br />
	// (3) Find the weakest enemy or neutral planet.<br />
	Planet dest = null;<br />
	double destScore = Double.MIN_VALUE;<br />
	for (Planet p : pw.NotMyPlanets()) {<br />
	    double score = 1.0 / (1 + p.NumShips());<br />
	    if (score > destScore) {<br />
		destScore = score;<br />
		dest = p;<br />
	    }<br />
	}<br />
	// (4) Send half the ships from my strongest planet to the weakest<br />
	// planet that I do not own.<br />
	if (source != null &#038;&#038; dest != null) {<br />
	    int numShips = source.NumShips() / 2;<br />
	    pw.IssueOrder(source, dest, numShips);<br />
	}<br />
    }</p>
<p>    public static void main(String[] args) {<br />
	String line = "";<br />
	String message = "";<br />
	int c;<br />
	try {<br />
	    while ((c = System.in.read()) >= 0) {<br />
		switch (c) {<br />
		case '\n':<br />
		    if (line.equals("go")) {<br />
			PlanetWars pw = new PlanetWars(message);<br />
			DoTurn(pw);<br />
		        pw.FinishTurn();<br />
			message = "";<br />
		    } else {<br />
			message += line + "\n";<br />
		    }<br />
		    line = "";<br />
		    break;<br />
		default:<br />
		    line += (char)c;<br />
		    break;<br />
		}<br />
	    }<br />
	} catch (Exception e) {<br />
	    // Owned.<br />
	}<br />
    }<br />
}</p>
<p></code>
</p></blockquote>
<p>Como podeis observar tanto la claridad del código como la de las estructuras de datos utilizadas es muy buena y nos permite ponernos en materia<br />
de forma muy rápida. Es una forma de abordar y prácticar problemas de IA aplicada al entretenimiento muy recomendable. Tanto los que inician su<br />
andadura como aquellos que ya llevan tiempo metidos en el ajo, el Google AI Challenge es una opción perfectamente válida.</p>
<p><strong><br />
-3. Visualización de la batalla<br />
</strong><br />
Una de las ventajas de Planet Wars es que podemos visualizar el desempeño de nuestro Bot de forma visual, dándonos una gran ventaja a la hora de evaluar su funcionamiento. Un ejemplo de juego es la<br />
batalla entre boksimacko y george donde se puede apreciar que el algoritmo ganador utiliza una estrategia agresiva de colonización sobre los planetas que el oponente intenta poseer o posee. </p>
<p>http://ai-contest.com/visualizer.php?game_id=6612786</p>
<p><strong>-4. Herramientas de monitorizado<br />
</strong><br />
Para los Samurais Informáticos os presento una herramienta generada expresamente para verificar el desempeño de los algoritmos utilizados para cada bot. Os puede dar alguna pista de las variables<br />
a monitorizar y de las estrategias más fructíferas.</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/-FEKqi7FZx4?fs=1&amp;hl=es_ES"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-FEKqi7FZx4?fs=1&amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>De momento hasta aqui llegamos. En el futuro veremos más en detalle el código y las diferentes estrategias que podemos utilizar a nivel conceptual. En lo referente a algoritmia profundizaremos en los algoritmos que pueden producir un mejor desempeño. Si alguno de vosotros se anima mucha suerte! </p>
<p>Hasta pronto</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2010/11/montando-la-artilleria-para-el-google-ai-challenge-planet-wars/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Peter Molyneux en Barcelona</title>
		<link>http://www.starcostudios.com/blog/2010/11/peter-molyneux-en-barcelona/</link>
		<comments>http://www.starcostudios.com/blog/2010/11/peter-molyneux-en-barcelona/#comments</comments>
		<pubDate>Sat, 06 Nov 2010 17:01:38 +0000</pubDate>
		<dc:creator>Sergio Sanchez Mendez</dc:creator>
				<category><![CDATA[Arte 3D]]></category>
		<category><![CDATA[Emprendeduría]]></category>

		<guid isPermaLink="false">http://www.starcostudios.com/blog/?p=445</guid>
		<description><![CDATA[Aprovechando la presentación de su nuevo proyecto, Fable 3, Peter Molyneux visitó la ciudad y nos dedicó unos minutos. El fundador de Bulfrog y Lionhead Studios se encargó de hacer las delicias de los aficcionados al juego y de los seguidores de su obra. Starco Studios estuvo allí, teniendo en cuenta la gran cantidad de [...]]]></description>
			<content:encoded><![CDATA[<p>Aprovechando la presentación de su nuevo proyecto, Fable 3, Peter Molyneux visitó la ciudad y nos dedicó unos minutos. El fundador de Bulfrog y Lionhead Studios se encargó de hacer las delicias de los aficcionados al juego y de los seguidores de su obra. Starco Studios estuvo allí, teniendo en cuenta la gran cantidad de análisis realizados al producto estrella desde el punto de vista de la IA, Black And White, era más que una obligación. Una de las fotos del evento por parte del GameMaster Albert F.</p>
<p><a href="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/molyneux01b.jpg"><img src="http://www.starcostudios.com/blog/wp-content/uploads/2010/11/molyneux01b.jpg" alt="Peter Molyneux Starco Studios" title="Peter Molyneux Starco Studios" width="639" height="376" class="aligncenter size-full wp-image-447" /></a></p>
<p>El resultado, un rato muy entretenido y una gran cantidad de fans dispuestos a conseguir un autógrafo del gurú de los videojuegos.</p>
<p>Welcome to Barcelona, Peter!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.starcostudios.com/blog/2010/11/peter-molyneux-en-barcelona/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
