Softtek Softtek
  • Our experience
  • Overview
  • Insights
  • Blog
  • Newsroom
  • Careers
  • Contact us
softtek Language Selector
ENGLISH
EUROPE / EN
ESPAÑOL
EUROPA / ES
PORTUGUÊS
中文(简体)
Search button
AI
APPROACH
INDUSTRIES
SERVICES & SOLUTIONS
TRANSCEND
Softtek GenAI
FRIDA AI for Software Engineering
Service Transformation
Portfolio Transformation
Digital Acceleration
Our Work
Agribusiness
Airlines
Automotive
Banking & Financial Services
Consumer Packaged Goods
Energy & Utilities
Fitness & Wellness
Gaming
Government & Public Sector
Higher Education
Healthcare
Industrial
Insurance
Media & Entertainment
Oil & Gas
Pharma & Beauty
Professional Sports
Restaurant & Hospitality
Retail
Technology
Telecommunications
Transportation & Logistics
Digital Solutions
Digital Optimization
Digital Sales
Data Masking Solution
IT Cost Optimization
Fan Engagement Ecosystem
Softtek Digital Enablers
DIEGO
blauLabs
Business OnDemand
Click2Sync Omnichannel
Automotive Digital Assistant
Guest Engagement
Socializer
Collaborative Commuting
Workplace Management
Application Services
Software Development
Quality Engineering
Application Management
Application Services
Cloud & DevOps
Cloud Services
IT Infrastructure
Digital Security
DevOps
Data & Automation
Data and AI
Intelligent Automation
Services Transformation
Core Modernization
Next-Gen IT Operations
Platform Services
AWS
SAP
Microsoft
Salesforce
ServiceNow
Atlassian
BlueYonder
Sustainability by Softtek
Softtek
Language selector
search button
AI
Softtek GenAI
FRIDA AI for Software Engineering
APPROACH
Service Transformation
Portfolio Transformation
Digital Acceleration
Our Work
INDUSTRIES
Agribusiness
Airlines
Automotive
Banking & Financial Services
Consumer Packaged Goods
Energy & Utilities
Fitness & Wellness
Gaming
Government & Public Sector
Higher Education
Healthcare
Industrial
Insurance
Media & Entertainment
Oil & Gas
Pharma & Beauty
Professional Sports
Restaurant & Hospitality
Retail
Technology
Telecommunications
Transportation & Logistics
SERVICES & SOLUTIONS
Digital Solutions
Digital Optimization
Digital Sales
Data Masking Solution
IT Cost Optimization
Fan Engagement Ecosystem
Softtek Digital Enablers
DIEGO
blauLabs
Business OnDemand
Click2Sync Omnichannel
Automotive Digital Assistant
Guest Engagement
Socializer
Collaborative Commuting
Workplace Management
Application Services
Software Development
Quality Engineering
Application Management
Application Services
Cloud & DevOps
Cloud Services
IT Infrastructure
Digital Security
DevOps
Data & Automation
Data and AI
Intelligent Automation
Services Transformation
Core Modernization
Next-Gen IT Operations
Platform Services
AWS
SAP
Microsoft
Salesforce
ServiceNow
Atlassian
BlueYonder
TRANSCEND
Sustainability by Softtek
Our experience
Overview
Insights
Blog
Newsroom
Careers
Contact us
Presencia Global
ENGLISH
EUROPE / EN
ESPAÑOL
EUROPA / ES
PORTUGUÊS
中文(简体)
Softtek Blog

Desarrollo de videojuegos para plataforma móvil

Autor
Author Miguel Ángel Gilpérez Alcázar
Publicado el:
may 16, 2017
Tiempo de lectura:
may 2017
|
SHARE
Share on LinkedIn
Share on X
Share on Facebook
SHARE
Share on LinkedIn
Share on X
Share on Facebook

mobileGames.jpg

Desarrollar un videojuego es una tarea multidisciplinar. Además de los conocimientos de propios de programación se necesitan conocimientos de diseño, edición gráfica, sonido, animación, etc. Esto hace que muchos programadores que empiezan un videojuego acaben por no terminarlo.

Android ofrece herramientas para la creación de aplicaciones, aunque éstas son muy diferentes a los videojuegos, En las aplicaciones normalmente hay un flujo por el cual el usuario va navegando por diferentes  páginas o menús eligiendo las opciones que desea. En los videojuegos hay mucha más acción: normalmente  constan de una pantalla por la cual el personaje va recorriendo el nivel, formado por diferentes capas de texturas, fondos y enemigos. En dichas pantallas hay corriendo innumerables hilos de ejecución, desde el propio hilo de pintado, el hilo maestro del juego, hasta los hilos de ejecución de los personajes del juego, además  hay que controlar multitud de eventos en tiempo real, desde que un personaje no se salga del área asignada hasta controlar cuando se ha matado al personaje, etc. Al mismo tiempo hay que manejar los sonidos y las propias animaciones de los personajes, en función de qué acción estén ejecutando o la dirección en que se estén moviendo.

Los frameworks de desarrollo de videojuegos, comúnmente llamados motores gráficos, facilitan enormemente la tarea de manejar todos esos eventos y ofrecen métodos para facilitar el vector de  movimiento, la velocidad, animaciones, etc. En este artículo nos vamos a centrar en los motores gráficos open source, ya que son completamente gratuitos y disponen de una activa y amplia comunidad que crea códigos de ejemplo y se ayuda mutuamente a través  los foros.

Motores gráficos open source:

En el mercado existen diferentes frameworks o motores gráficos de código abierto, como por ejemplo AndEngine (java), Cocos 2d (C++) o Libgdx (java). Todos ellos facilitan la tarea de programación de videojuegos al contar con cientos de rutinas para el manejo de los elementos propios de un videojuegos, y ofrecen, en algunos casos, editores de niveles y gráficos para evitar que tengamos que programar a mano la posición de las texturas.

Fragmentación de Android.

Uno de los problemas mas comunes cuando se desarrolla una aplicación móvil, es la fragmentación del sistema operativo. En el mundo de la movilidad conviven distintas versiones de Android e IOS, por lo que son frecuentes los problemas de compatibilidad entre marcas o entre versiones. En el caso de Android además cada fabricante tiene libertad para modificarlo a su gusto, lo que repercute en el funcionamiento de las apps.

Los motores gráficos ayudan en esa tarea implementando funciones propias para evitar que el programador tenga que llamar directamente al sistema operativo, y así ofrecer una capa de compatibilidad multidispositivo.

Multiplataforma.

Hoy en día existen diversas plataformas: IOs, Android, BlackBerry, etc. Algunos motores gráficos como Libgdx o Cocos2d, ofrecen compatibilidad multiplataforma, lo que supone una gran ventaja respecto a la programación directamente para el sistema operativo, que implica tener que volver a codificar nuestra aplicación para cada una de las plataformas. En su lugar, estos motores nos permiten seleccionar cualquier plataforma en el momento en que vayamos a compilar, logrando esta capacidad transcodificando nuestro código en un código de la plataforma a partir de meta modelos de programación.

Librerías externas

La comunidad es muy activa y está creando constantemente nuevas formas de expandir la funcionalidad de estos frameworks, por ejemplo añadiéndole compatibilidad con físicas o añadiendo la librería box2d, que permite controlar la física de objetos en sistema real simplemente seteando una serie de propiedades. Uno de los primeros videojuegos que hizo uso de esta librería fue el conocidísimo Angry Birds.

AngryBirds

Monetización e integración con redes sociales

Empresas como Google ofrecen, a través de servicios como AdMob, la posibilidad de integrar sus anuncios en nuestras aplicaciones a traves de APIs. Lo mismo ocurre si deseamos integrar funciones de redes sociales como Facebook o Twitter. 

Los motores gráficos simplifican hasta un nivel más la inclusión de dichas APIs en nuestras aplicaciones, ofreciendo funciones propias que encapsulan y facilitan las llamadas de APIs de terceros.

Velocidad de refresco

Los motores gráficos ofrecen una capa de abstracción con Open GL (API grafica 2D,3D), que nos abstrae de las complejidades de dicho framework. Si comenzamos el desarrollo de un videojuego directamente sobre Android, utilizando Canvas (una de las clases más comunes para pintar las texturas),  nos podemos encontrar con una desagradable sorpresa al ver que simplemente poniendo unas pocas texturas y sprites (personajes de juego) el rendimiento de nuestra pequeña aplicación puede, dependiendo del dispositivo, decaer gravemente.

Esto sucede porque Android no acelera estas texturas con la GPU , sino que es Java el encargando de hacerlo utilizando la CPU, en vez de hacerlo Open GL que si dispone de aceleración gráfica por parte de la GPU.

A partir de la actualización Androiod 4.0 Ice Cream Sandwich este problema fue parcialmente resuelto posibilitando la aceleración hardware para la clase Canvas, pero requiere  que el usuario previamente tenga que habilitarlo en el menú de su dispositivo.


Conclusiones

Ya hemos señalado las principales ventajas de crear un videojuego utilizando un motor gráfico. Al igual que  para los videojuegos, existen otros frameworks destinados a la creación de aplicaciones móviles tradicionales, como por ejemplo: PhoneGap, JQuery Movile, AppCelerator, etc.

En estos frameworks normalmente separan la vista del controlador: Por una parte, la vista se suele programar en HTML + JS + CSS, mientras que el controlador se suele programar en algún tipo de script: Javascript, LUA, etc, que será después interpretado y recodificado al lenguaje de la plataforma para la que se compila.

Por lo tanto siempre que se diseñe una aplicación móvil, tanto videojuego como aplicación tradicional, es recomendable la utilización de un framework que aporte al menos la capacidad de multiplataforma.

Related posts

El próximo nivel del Machine Learning y la IA es Vertex AI
sep 2, 2021
El próximo nivel del Machine Learning y la IA es Vertex AI
¿Serán las plataformas necesarias para mejorar el modelo de negocio?
sep 11, 2019
¿Serán las plataformas necesarias para mejorar el modelo de negocio?
Plataformas digitales: ¿constituyen un nuevo modelo de negocio?
abr 23, 2018
Plataformas digitales: ¿constituyen un nuevo modelo de negocio?

Let’s stay in touch!

Get Insights from our experts delivered right to your inbox!

Follow us:
Softtek LinkedIn
Softtek Twitter
Softtek Facebook
Softtek Instagram
Softtek Instagram
Follow us:
Softtek LinkedIn
Softtek Twitter
Softtek Facebook
Softtek Instagram
Softtek Instagram

© Valores Corporativos Softtek S.A. de C.V. 2025.
privacy notice
legal disclaimer
code of ethics
our policies
webmaster@softtek.com