Download presentation
Presentation is loading. Please wait.
1
Dynamic Updates for Videogames
Seamless and Transparent Integration of Content and Engine Update in Online and Connected Videogames by Thomas Bousquet & Edouard Kieffer
2
Motivations & Existings Products
However none of them provides transparent update of both content and code
3
Architecture & Technologies
Technologies : SOA Server (JBoss application) Back-end : Hibernate, Spring, XFire Front End : Flex Client JNotify, Webservice
4
Architecture: Back-End
5
Architecture: Client API
6
Dynamic Classes: How Do We Update?
7
Dynamic Classes: Three Suspects
"Automagically" Managed Leave the migration process to us! Migrate to new version using field reflection The dynamic class needs to implement an interface Custom Dynamic Class You control the migration process May also apply the automatic process beforehand The dynamic class needs to implement "ICustomMigration" Implicit Dynamic Class The most flexible implementation Doesn't need to conform to an interface Need only extend ImplicitDynamicClass ... But rather ugly for now
8
Dynamic Classes: Back – Client Interactions
Two channels Client may request through RMI Data push emulated by JMS On initial connection, client requests up- to-date report of dynamic classes If an administrator changes current class revisions, client notified through JMS
9
Content Update – Main Concept
10
Content Update – 1 Interface, 2 Classes
IupdatableResource Provide renewing method for considered resource New implementation for each 'type' of resource (texture, model, sound, XML file) ResourceListener Listen to a particular file Contains a list of registered IUpdatableResource New implementation for each 'type' of resource (texture, model, sound, XML file) UpdatableResource Manager Manage the listeners and act as a middleman for registering IUpdatableResource New class inheriting from this for each new application
11
Demonstration Time ! Proof of concept of the applicability of our framework to existing solution Java Monkey Engine AirCarrier showcase application What we will demonstrate Administration Interface Dynamic texture update Dynamic update of AI Manager Behavior
12
Evaluation Dynamic code : Dynamic content
constant overhead for calling dynamic : calls 6 to 8 times slower => only use on computationnaly intensive methods Dynamic content Disk access and content renewal creates 'acceptable' stutter.
13
Limitation of this demo & extension
With more time and/or a better architecture: Use AMF instead of web services for back / front communication Describe ressources used by object with XML file and listen to this files. Extend the existing resource manager to integrate smart cache management
14
What happened to C++ ? C++ is still the leading language for videogame application Too complicated for the scope of this project (lack of existing framework) Advantages : Function parameters as reference SWIG enables to automatically create wrapper for other languages ranging from Java to Python, Lisp and C#
15
Extensions - Code Features : Tools :
Plugin eclipse to enable traditionnal function call for dynamic code EJB 3.0 (abstraction of persistence)
16
Extensions – Content Features : Tools :
Intercept message containing data written from memory to disk to suppress disk access. Tools : Model Oriented Programming : provide tools to create implementation of IUpdatableResource and IresourceListener at once.
17
Conclusion Features : Tools :
Intercept message containing data written from memory to disk to suppress disk access. Tools : Model Oriented Programming : provide tools to create implementation of IUpdatableResource and IresourceListener at once.
18
Thanks for your attention
QUESTIONS ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.