Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CocoonJS.pdf
Search
We Love JS
March 02, 2013
0
160
CocoonJS.pdf
We Love JS
March 02, 2013
Tweet
Share
More Decks by We Love JS
See All by We Love JS
TypeScript.pdf
welovejs
0
270
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Designing Experiences People Love
moore
136
23k
Optimizing for Happiness
mojombo
370
69k
How GitHub (no longer) Works
holman
304
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
6
1.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
125
32k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
187
16k
Building Better People: How to give real-time feedback that sticks.
wjessup
355
18k
Scaling GitHub
holman
457
140k
The Invisible Customer
myddelton
114
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
Being A Developer After 40
akosma
57
580k
Transcript
Los orígenes • Todo empezó con iOS • Nueva plataforma:
iOS • Nuevo lenguage: ObjC • Toolkit para gráficos: Cocos2D soporta ObjC :D
Los orígenes
Nuevas plataformas • Android entra en escena • Nueva plataforma
• Nuevo lenguaje: Java • Toolkit para gráficos?: Cocos2D soporta Java :)
Nuevas plataformas
Nuevas plataformas • Y el browser? • Java: Back to
90s • Flash: ActionScript → otro lenguaje más? :(
Multiplataform: Round 1 • Lo más rápido: Herramientas de autor
• Multiplatarforma • Lenguage único: • Unity: Javascript, C# • Shiva: Lua, C++ • Torque: TorqueScript
Multiplatform: Round 1 • Problemas: • Precios licencias • Tecnología
de terceros • Solución para el browser: Plugins • No soportado en todos los navegadores • Usuario no quiere instalar más plugins
Resultado • iBasket: • iOS: ObjC • Android: Java •
Web: Unity
Multiplatform: Round 2 • Hagámoslo nosotros!
Multiplatform: Round 2 • Framework Multiplataforma C++: Cocoon • Capa
abstracción plataforma • Tipos, ciclos de vida, acceso hardware, filesystem, ... • Lenguaje único: C++ • Arquitectura orientada a servicios: Biwinning! • IOS y Android... cualquier otro con NDK • Abstracción servicios plataforma
Multiplatform: Round 2
Multiplatform: Round 2 • Pero y el navegador?
Meanwhile... • Aparece HTML5. • Standard → Sounds great! •
Desarrollamos CAAT • Director escena: gestor escenas, jerarquía, input, resoluciones, input,... • Independencia render: canvas, CSS o WebGL • Open Source • http://www.ludei.com/tech/caat
Meanwhile... • Pero y HTML5 en los móviles? • Problemas
de rendimiento • API incompleta • Faltan servicios de plataforma: Store, multiplayer, Ads,..
Meanwhile...
Multiplatform: Final Round • Tenemos por un lado • Cocoon:
Framework Multiplataforma C++ • Orientado a servicios • Por otro lado • HTML5 • CAAT: Toolkit gráfico JS HTML5 • Un problema: Rendimiento
Multiplatform: Final Round • Cocoon + JSVM → CocoonJS!
Arquitectura
Objetivos • Rendimiento nativo del canvas → OpenGL • Acceso
a facilidades de Hardware: • Vibración • Geolocalización • Brújula • Acelerómetro • ...
Objetivos • Acceso a servicios de plataforma: • Publicidad •
Analíticas • Stores • Multiplayer • Notificaciones • Redes sociales • ...
Soportamos todo HTML5? • Lo más importante para desarrollo juegos:
• Canvas • Audio • Websockets • LocalStorage • XMLHttpRequest • Geolocalización • … • http://wiki.ludei.com/cocoonjs:featurelist
Desarrollo con CocoonJS • Orientado a aplicaciones Canvas HTML5 •
Cíñete al estándar • Conoce las limitaciones • Utiliza un motor si no quieres reinventar la rueda • CAAT • ConstructJS • ImpactJS
Desarrollo con CocoonJS • Si quieres usar servicios de plataforma
no estándar, utiliza las librerías de CocoonJS
Rendimiento - Texturas • Vale cualquier cosa? • Texturas tamaño
potencia de 2 • Empaquetar texturas • Menos cambios contexto OpenGL • Menos desperdicio memoria
Rendimiento - Memoria • La plataformas móviles no son el
desktop • Gestión inteligente memoria • Cuidado con el garbage collection • Optimiza tu código
Herramientas - Launcher • Herramienta de testeo de desarrollo •
Disponible para iOS y Android • Actualizada con las últimas novedades y demos
Herramientas - Launcher • Puedes subir tus desarrollos o probarlos
en remoto • Mocks para servicios no disponibles • Testea en el Launcher hasta que todo vaya bien
Herramientas - Cloud • Cuando el desarrollo esté listo, súbelo
al Cloud • Configuración de servicios • Compilación multiplataforma “One-Click” • Subes el código • Te llega un correo para descargar paquetes para: • AppStore: IPA • PlayStore: APK • Amazon AppStore: APK • Chrome Web Store: .zip • Firefox Marketplace: .zip
Y ahora? • Más Markets: • Windows Phone • Blackbery
• Unbuntu Phone • Nook • … • WebGL • Ampliar oferta de servicios