On Github wsmind / ongamestart2013-slides
Console and Web convergence
Web & console legacy
Content creation pipelines
Improvement ideas
Wait! Who's this guy?
Engine developer
Casual on console!
Not only multiplayer gameplay
Leaderboards, achievements (e.g XBLA)
Analytics
Social!
XB1 attempt at always connected
Flash games
Facebook games
HTML5 ports of big engines (e.g Unreal, Unigine)
Model by Volumic @ Sketchfab
But why?
In line with Internet base principles
Not free, not used
Service-oriented
Hosting is cheap
F5 updates your software
Continuous integration/deployment
=> Lots of tests
Hard to be profitable from the start
Usually start small, then grow
Increased need for visible, immediate value
Side effect: encouraged accessibility and ergonomy
Most of web tools are code-based (html, css, js, etc.)
Realm of designer-coders
Few artists, in proportion
Nothing open source
Open source is forbidden
Expensive (e.g some devkits cost $20,000)
Certification process
Burn and forget (> 50% console market)
But you can update! Yeah, well...
Not all platforms (Wii)
Still heavy and expensive process
Side effect: bad code at end of production
You only got one try!
Developers only support production
Few of them compared to artists (~10%)
Most tools usable by artists (no code required)
Data-driven engines
Natural path for existing techs
Suited for cross-platform
Some shortcomings though (e.g threading)
Web ecosystem (tools)
Javascript faster to write than C++
Editor availability
Reuse cool idioms
Currently: automated build, but manual testing
Max release frequency: twice a day (closer to deadlines)
Could benefit from automated testing
Better reliability, possible faster releases
Need tools to allow artist-driven production (Flash anyone?)
Some techs have them
Interesting problem: communication with DCC tools
Adobe Generator (Photoshop CC) is a start
We're all making games, but in different ways
Sharing knowledge between technologies is valuable
Put the artists in charge!
Thanks
And some more particles!
(code! finally!)
#if defined(ANDROID) || defined(EMSCRIPTEN) GL_CHECK(glClearDepthf(depth)); #else GL_CHECK(glClearDepth(depth)); #endif
#ifdef EMSCRIPTEN emscripten_set_main_loop(em_main_loop, 0, 0); #else while (glfwGetWindowParam(GLFW_OPENED)) { application->update(); glfwSwapBuffers(); } #endif
Tool usability not uniform
Improve iteration times
Simple things: use URIs for everything