{"id":783,"date":"2026-01-24T09:00:53","date_gmt":"2026-01-24T09:00:53","guid":{"rendered":"https:\/\/salvador.mata.com.mx\/blog\/?p=783"},"modified":"2026-01-22T17:07:18","modified_gmt":"2026-01-22T17:07:18","slug":"probando-blenderplayer-para-android-una-experiencia-experimental","status":"publish","type":"post","link":"https:\/\/salvador.mata.com.mx\/blog\/2026\/01\/24\/probando-blenderplayer-para-android-una-experiencia-experimental\/","title":{"rendered":"\ud83d\udcf1\ud83c\udfae Probando BlenderPlayer para Android: una experiencia experimental"},"content":{"rendered":"<p data-start=\"280\" data-end=\"527\">Este fue mi <strong data-start=\"291\" data-end=\"375\">humilde <\/strong>test con el viejo y descontinuado<strong data-start=\"291\" data-end=\"375\"> BlenderPlayer para Android<\/strong> \ud83e\udd16\u2699\ufe0f.<br data-start=\"381\" data-end=\"384\" \/>Durante mucho tiempo no tuve oportunidad de probarlo, principalmente porque <strong data-start=\"460\" data-end=\"524\">no contaba con un dispositivo Android con soporte 3D decente<\/strong>.<\/p>\n<p data-start=\"529\" data-end=\"972\">Ten\u00eda \u00fanicamente un <strong data-start=\"549\" data-end=\"572\">mini PC con Android<\/strong>, pero no era suficiente para este tipo de pruebas.<br data-start=\"623\" data-end=\"626\" \/>As\u00ed que esta vez decid\u00ed optar por una <strong data-start=\"664\" data-end=\"684\">tablet econ\u00f3mica<\/strong> que encontr\u00e9 en una tienda: una <strong data-start=\"717\" data-end=\"733\">Lenovo A1000<\/strong> \ud83d\udcf2.<br data-start=\"737\" data-end=\"740\" \/>No es un gran dispositivo, pero tiene <strong data-start=\"778\" data-end=\"824\">todo lo necesario para hacer estas pruebas<\/strong>, y adem\u00e1s corre de forma bastante decente algunos juegos como <strong data-start=\"887\" data-end=\"909\">Dead Trigger 1 y 2<\/strong>, entre otros\u2026 en pocas palabras: <strong data-start=\"943\" data-end=\"968\">cumple con el trabajo<\/strong> \ud83d\udc4d.<\/p>\n<hr data-start=\"974\" data-end=\"977\" \/>\n<p data-start=\"979\" data-end=\"1017\">\ud83e\uddea <strong data-start=\"982\" data-end=\"1017\">Primer test: soporte de shaders<\/strong><\/p>\n<p data-start=\"1019\" data-end=\"1194\">Mi primera prueba estuvo enfocada en algo clave: <strong data-start=\"1068\" data-end=\"1095\">la capacidad de shaders<\/strong> \ud83c\udfa8\u2728.<br data-start=\"1100\" data-end=\"1103\" \/>Nunca lo hab\u00eda probado antes en Android, as\u00ed que era una de mis principales preocupaciones.<\/p>\n<p data-start=\"1196\" data-end=\"1304\">El resultado fue <strong data-start=\"1213\" data-end=\"1235\">bastante aceptable<\/strong>.<br data-start=\"1236\" data-end=\"1239\" \/>Utilic\u00e9 mi modelo de la <strong data-start=\"1263\" data-end=\"1277\">Guillotina<\/strong>, ejecutando el player con:<\/p>\n<ul data-start=\"1305\" data-end=\"1379\">\n<li data-start=\"1305\" data-end=\"1324\">\n<p data-start=\"1307\" data-end=\"1324\">\ud83d\uddfa\ufe0f Mapas Diffuse<\/p>\n<\/li>\n<li data-start=\"1325\" data-end=\"1337\">\n<p data-start=\"1327\" data-end=\"1337\">\u2728 Specular<\/p>\n<\/li>\n<li data-start=\"1338\" data-end=\"1379\">\n<p data-start=\"1340\" data-end=\"1379\">\ud83e\uddf1 Normal maps<br data-start=\"1354\" data-end=\"1357\" \/>todos a <strong data-start=\"1365\" data-end=\"1378\">1024\u00d71024<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1381\" data-end=\"1506\">Funcion\u00f3 bien, pero al final decid\u00ed <strong data-start=\"1417\" data-end=\"1473\">reducir la resoluci\u00f3n y el bit depth de las texturas<\/strong> para mejorar el rendimiento \u26a1\ud83d\udcc9.<\/p>\n<p style=\"text-align: center;\" data-start=\"1508\" data-end=\"1542\"><img decoding=\"async\" src=\"https:\/\/mataii.wordpress.com\/wp-content\/uploads\/2013\/11\/shader_test_.jpg\" \/><\/p>\n<hr data-start=\"1544\" data-end=\"1547\" \/>\n<p data-start=\"1549\" data-end=\"1582\">\ud83e\udde0 <strong data-start=\"1552\" data-end=\"1582\">Segundo test: Logic Bricks<\/strong><\/p>\n<p data-start=\"1584\" data-end=\"1707\">La siguiente prueba fue para responder una pregunta importante:<br data-start=\"1647\" data-end=\"1650\" \/>\ud83d\udc49 <strong data-start=\"1653\" data-end=\"1707\">\u00bfQu\u00e9 Logic Bricks est\u00e1n implementados y cu\u00e1les no?<\/strong><\/p>\n<p data-start=\"1709\" data-end=\"1912\">A\u00fan no tengo una respuesta definitiva \ud83e\udd14, pero por lo que pude observar, <strong data-start=\"1782\" data-end=\"1823\">hay bastantes Logic Bricks soportados<\/strong>, especialmente si se comparan con la <strong data-start=\"1861\" data-end=\"1911\">primera versi\u00f3n del BlenderPlayer para Android<\/strong>.<\/p>\n<p data-start=\"1914\" data-end=\"2048\">Definitivamente pudiera hacer falta una <strong data-start=\"1945\" data-end=\"1970\">revisi\u00f3n m\u00e1s profunda<\/strong> para obtener conclusiones claras, pero en su momento la primera impresi\u00f3n es positiva \ud83e\udde9\u2714\ufe0f.<\/p>\n<hr data-start=\"2080\" data-end=\"2083\" \/>\n<p data-start=\"2085\" data-end=\"2128\">\ud83c\udfae <strong data-start=\"2088\" data-end=\"2128\">Controles en pantalla y limitaciones<\/strong><\/p>\n<p data-start=\"2130\" data-end=\"2265\">En cuanto a los ejercicios pr\u00e1cticos, mi <strong data-start=\"2171\" data-end=\"2232\">primer objetivo fue crear controles virtuales en pantalla<\/strong> \ud83d\udd79\ufe0f.<br data-start=\"2237\" data-end=\"2240\" \/>Y s\u00ed\u2026 <strong data-start=\"2246\" data-end=\"2261\">funcionaron<\/strong> \ud83d\udc4d.<\/p>\n<p style=\"text-align: center;\" data-start=\"2130\" data-end=\"2265\"><img decoding=\"async\" src=\"https:\/\/mataii.wordpress.com\/wp-content\/uploads\/2013\/11\/testing_controls.jpg\" \/><\/p>\n<p data-start=\"2267\" data-end=\"2502\">Sin embargo, hay un detalle importante:<\/p>\n<p style=\"text-align: center;\" data-start=\"2267\" data-end=\"2502\"><img decoding=\"async\" src=\"https:\/\/mataii.wordpress.com\/wp-content\/uploads\/2013\/11\/control_test_.jpg\" \/><\/p>\n<p data-start=\"2267\" data-end=\"2502\"><br data-start=\"2306\" data-end=\"2309\" \/>Como el sistema sigue usando <strong data-start=\"2338\" data-end=\"2366\">input de teclado y mouse<\/strong>, parece que <strong data-start=\"2379\" data-end=\"2416\">el multi-touch no est\u00e1 habilitado<\/strong> \ud83d\ude15.<br data-start=\"2420\" data-end=\"2423\" \/>As\u00ed que no, <strong data-start=\"2435\" data-end=\"2474\">no hay soporte real para multitouch<\/strong> hasta donde pude comprobar, y por esa razon desarroll\u00e9 un metodo con logic brics para poder simular el multitouch.<\/p>\n<p data-start=\"2504\" data-end=\"2512\">Tal vez:<\/p>\n<ul data-start=\"2513\" data-end=\"2586\">\n<li data-start=\"2513\" data-end=\"2548\">\n<p data-start=\"2515\" data-end=\"2548\">Se necesitaba un m\u00e9todo diferente<\/p>\n<\/li>\n<li data-start=\"2549\" data-end=\"2586\">\n<p data-start=\"2551\" data-end=\"2586\">O simplemente <strong data-start=\"2565\" data-end=\"2586\">no est\u00e9 soportado<\/strong><\/p>\n<\/li>\n<\/ul>\n<p data-start=\"2588\" data-end=\"2794\">La verdad es que tendr\u00eda que leer m\u00e1s al respecto \ud83d\udcda, pero considerando que <strong data-start=\"2664\" data-end=\"2694\">el proyecto fue abandonado<\/strong>, no creo que <strong data-start=\"2719\" data-end=\"2762\">valga la pena invertir demasiado tiempo<\/strong> en eso.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/1Hule8QkyF0?si=8lAJaPoUy0M18ubm&amp;controls=0\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><span style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" data-mce-type=\"bookmark\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" src=\"https:\/\/mataii.wordpress.com\/wp-content\/uploads\/2013\/11\/blender_controls_tablet.jpg\" \/><\/p>\n<hr data-start=\"2840\" data-end=\"2843\" \/>\n<p data-start=\"2845\" data-end=\"2862\">\ud83c\udfaf <strong data-start=\"2848\" data-end=\"2862\">Conclusi\u00f3n<\/strong><\/p>\n<p data-start=\"2864\" data-end=\"3083\">A pesar de todas estas limitaciones, s\u00e9 que <strong data-start=\"2908\" data-end=\"2952\">existi\u00f3 por ah\u00ed un demo jugable (Pinball)<\/strong> que luce bastante bien \ud83c\udfaf, lo cual demuestra que <strong data-start=\"3002\" data-end=\"3082\">BlenderPlayer para Android s\u00ed fu\u00e9 capaz de ejecutar experiencias interesantes<\/strong>.<\/p>\n<p data-start=\"3085\" data-end=\"3273\">No es perfecto, no fue moderno y definitivamente est\u00e1 descontinuado\u2026<br data-start=\"3152\" data-end=\"3155\" \/>pero aun as\u00ed, creo que <strong data-start=\"3178\" data-end=\"3237\">era una herramienta usable para experimentar y aprender<\/strong>, especialmente en su momento \ud83d\udd70\ufe0f\ud83e\udde0.<\/p>\n<p data-start=\"3275\" data-end=\"3465\">\ud83c\udfa5 A continuaci\u00f3n dejo algunos <strong data-start=\"3306\" data-end=\"3351\">videos corriendo mis pruebas en la tablet<\/strong>.<br data-start=\"3352\" data-end=\"3355\" \/>No hay nada demasiado elaborado, pero creo que <strong data-start=\"3398\" data-end=\"3427\">vale la pena documentarlo<\/strong> como referencia y curiosidad t\u00e9cnica.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" title=\"Modelviewer, test with blenderplayer for Android\" src=\"https:\/\/www.youtube.com\/embed\/r54HVefBWpY\" width=\"612\" height=\"345\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" title=\"First person test, doom style\" src=\"https:\/\/www.youtube.com\/embed\/3L6In1uIBvU\" width=\"612\" height=\"345\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<hr \/>\n<h2 data-start=\"232\" data-end=\"258\">\ud83e\udde0 Lecciones aprendidas<\/h2>\n<p data-start=\"260\" data-end=\"474\">Despu\u00e9s de realizar estas pruebas con <strong data-start=\"298\" data-end=\"328\">BlenderPlayer para Android<\/strong>, hay varios puntos importantes que vale la pena destacar, especialmente para quien llegue a este post con curiosidad t\u00e9cnica o inter\u00e9s hist\u00f3rico:<\/p>\n<p data-start=\"476\" data-end=\"646\">\ud83d\udd39 <strong data-start=\"479\" data-end=\"533\">El soporte de shaders era funcional, pero limitado<\/strong><br data-start=\"533\" data-end=\"536\" \/>Aunque fue posible utilizar materiales con mapas Diffuse, Specular y Normal, el rendimiento depend\u00eda mucho de:<\/p>\n<ul data-start=\"647\" data-end=\"752\">\n<li data-start=\"647\" data-end=\"671\">\n<p data-start=\"649\" data-end=\"671\">Resoluci\u00f3n de texturas<\/p>\n<\/li>\n<li data-start=\"672\" data-end=\"683\">\n<p data-start=\"674\" data-end=\"683\">Bit depth<\/p>\n<\/li>\n<li data-start=\"684\" data-end=\"752\">\n<p data-start=\"686\" data-end=\"752\">Complejidad del shader<br data-start=\"708\" data-end=\"711\" \/>Optimizar era obligatorio, no opcional \u26a1.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"754\" data-end=\"1037\">\ud83d\udd39 <strong data-start=\"757\" data-end=\"809\">Logic Bricks: mejor de lo esperado para su \u00e9poca<\/strong><br data-start=\"809\" data-end=\"812\" \/>En comparaci\u00f3n con las primeras versiones del BlenderPlayer, el soporte de <strong data-start=\"887\" data-end=\"903\">Logic Bricks<\/strong> era bastante decente.<br data-start=\"925\" data-end=\"928\" \/>Sin embargo, sin documentaci\u00f3n clara, era necesario <strong data-start=\"980\" data-end=\"1009\">probar por ensayo y error<\/strong> qu\u00e9 funcionaba y qu\u00e9 no \ud83e\udde9.<\/p>\n<p data-start=\"1039\" data-end=\"1189\">\ud83d\udd39 <strong data-start=\"1042\" data-end=\"1105\">El sistema de input no estaba pensado para m\u00f3viles modernos<\/strong><br data-start=\"1105\" data-end=\"1108\" \/>El uso de teclado y mouse emulados hac\u00eda posible crear controles virtuales, pero:<\/p>\n<ul data-start=\"1190\" data-end=\"1351\">\n<li data-start=\"1190\" data-end=\"1218\">\n<p data-start=\"1192\" data-end=\"1218\">\u274c No hab\u00eda multitouch real<\/p>\n<\/li>\n<li data-start=\"1219\" data-end=\"1351\">\n<p data-start=\"1221\" data-end=\"1351\">\u274c La experiencia no era ideal para dispositivos t\u00e1ctiles<br data-start=\"1277\" data-end=\"1280\" \/>Esto limitaba seriamente el tipo de juegos que pod\u00edan desarrollarse \ud83d\udcf1.<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1353\" data-end=\"1559\">\ud83d\udd39 <strong data-start=\"1356\" data-end=\"1399\">Proyecto abandonado = camino sin futuro<\/strong><br data-start=\"1399\" data-end=\"1402\" \/>Al tratarse de un proyecto <strong data-start=\"1429\" data-end=\"1446\">descontinuado<\/strong>, cualquier investigaci\u00f3n adicional implica invertir tiempo en una tecnolog\u00eda sin evoluci\u00f3n ni soporte oficial \u23f3.<\/p>\n<hr data-start=\"1561\" data-end=\"1564\" \/>\n<h2 data-start=\"1566\" data-end=\"1611\">\u26a0\ufe0f Nota importante<\/h2>\n<p data-start=\"1613\" data-end=\"1664\">Es importante aclarar algo para evitar confusiones:<\/p>\n<p data-start=\"1666\" data-end=\"1752\">\ud83d\udeab <strong data-start=\"1669\" data-end=\"1751\">BlenderPlayer para Android es completamente incompatible con Range Game Engine<\/strong>.<\/p>\n<p data-start=\"1754\" data-end=\"1942\">Debido a todas las <strong data-start=\"1773\" data-end=\"1820\">mejoras, cambios internos y actualizaciones<\/strong> que ha tenido <strong data-start=\"1835\" data-end=\"1844\">Range<\/strong> a lo largo de los a\u00f1os, esta aplicaci\u00f3n <strong data-start=\"1885\" data-end=\"1941\">no puede ejecutar <\/strong>archivos <strong data-start=\"1885\" data-end=\"1941\">.range<\/strong>.<\/p>\n<p data-start=\"1944\" data-end=\"2006\">\ud83d\udc49 Para que BlenderPlayer para Android funcione, es necesario:<\/p>\n<ul data-start=\"2007\" data-end=\"2106\">\n<li data-start=\"2007\" data-end=\"2047\">\n<p data-start=\"2009\" data-end=\"2047\">Usar <strong data-start=\"2014\" data-end=\"2047\">versiones antiguas de Blender<\/strong><\/p>\n<\/li>\n<li data-start=\"2048\" data-end=\"2071\">\n<p data-start=\"2050\" data-end=\"2071\">Con <strong data-start=\"2054\" data-end=\"2071\">BGE integrado<\/strong><\/p>\n<\/li>\n<li data-start=\"2072\" data-end=\"2106\">\n<p data-start=\"2074\" data-end=\"2106\">Aproximadamente del a\u00f1o <strong data-start=\"2098\" data-end=\"2106\">2013<\/strong><\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"2213\" data-end=\"2216\" \/>\n<h2 data-start=\"173\" data-end=\"198\">\ud83e\udde9 Conclusi\u00f3n personal<\/h2>\n<p data-start=\"200\" data-end=\"506\">Mirando este experimento con algo de distancia, <strong data-start=\"248\" data-end=\"278\">BlenderPlayer para Android<\/strong> representa una de esas ideas que llegaron <strong data-start=\"321\" data-end=\"343\">antes de su tiempo<\/strong>.<br data-start=\"344\" data-end=\"347\" \/>No era perfecto, ten\u00eda muchas limitaciones y depend\u00eda de hardware y flujos de trabajo que hoy se sienten completamente obsoletos\u2026 pero aun as\u00ed, <strong data-start=\"491\" data-end=\"505\">funcionaba<\/strong>.<\/p>\n<p data-start=\"508\" data-end=\"838\">Para m\u00ed, este tipo de pruebas siempre han sido m\u00e1s que \u201cver si algo corre o no\u201d. Son una forma de <strong data-start=\"606\" data-end=\"659\">entender hasta d\u00f3nde puede llegar una herramienta<\/strong>, cu\u00e1les son sus l\u00edmites reales y qu\u00e9 decisiones t\u00e9cnicas se tomaron en su momento.<br data-start=\"742\" data-end=\"745\" \/>Aunque hoy no tenga un uso pr\u00e1ctico, este test fue una experiencia valiosa de aprendizaje \ud83e\udde0.<\/p>\n<p data-start=\"840\" data-end=\"1146\">Con todo lo que ha evolucionado <strong data-start=\"872\" data-end=\"893\">Range Game Engine<\/strong> a lo largo de los a\u00f1os, queda claro que <strong data-start=\"934\" data-end=\"994\">no tiene sentido mirar atr\u00e1s con intenci\u00f3n de producci\u00f3n<\/strong>, pero s\u00ed con <strong data-start=\"1008\" data-end=\"1040\">curiosidad y respeto t\u00e9cnico<\/strong>.<br data-start=\"1041\" data-end=\"1044\" \/>Mucho de lo que hoy damos por sentado en motores modernos se construy\u00f3 a partir de intentos como este.<\/p>\n<p data-start=\"1148\" data-end=\"1358\">Al final, este post no busca recomendar el uso de BlenderPlayer para Android, sino <strong data-start=\"1231\" data-end=\"1255\">documentar una etapa<\/strong>, dejar registro de lo que se intent\u00f3 y c\u00f3mo se resolv\u00edan ciertos problemas en su contexto hist\u00f3rico \u23f3.<\/p>\n<p data-start=\"1360\" data-end=\"1464\" data-is-last-node=\"\" data-is-only-node=\"\">Y como siempre, experimentar, probar y equivocarse sigue siendo una de las mejores formas de aprender \ud83d\ude80<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este fue mi humilde test con el viejo y descontinuado BlenderPlayer para Android \ud83e\udd16\u2699\ufe0f.Durante mucho tiempo no tuve oportunidad de probarlo, principalmente porque no contaba con un dispositivo Android con soporte 3D decente. Ten\u00eda \u00fanicamente un mini PC con Android, pero no era suficiente para este tipo de pruebas.As\u00ed que esta vez decid\u00ed optar por [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":787,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-783","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"jetpack_featured_media_url":"https:\/\/salvador.mata.com.mx\/blog\/wp-content\/uploads\/2026\/01\/BP4Android.gif","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts\/783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=783"}],"version-history":[{"count":5,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts\/783\/revisions"}],"predecessor-version":[{"id":789,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/posts\/783\/revisions\/789"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/media\/787"}],"wp:attachment":[{"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=783"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=783"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salvador.mata.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}