Europython 2006 – Games and Entertainment LLG Python – Geometric Computing in Python for Next Generation Games M. Jé Jérémie Farret – CTO –
[email protected] Dr JeanJean-Fran Franç çois Rotg Rotgé é – CSO – jean
[email protected] July 2006 LLG/EUP/JFA/2006-003 rev 1.0
LLG Python Geometric Computing in Python for New Generation Gaming • New questions in terms of architecture, design and development. Parallel processing hardware Storage capabilities Online gaming Mobile devices
• Proposing original, Python based solutions Unifying volumic data representation and processing for real time applications
• Client side
Newcoming Challenges Parallel Processing and Multicore Hardware
Multicore everywhere! • High-end GPU • Mainstream CPU • NextGen Gaming Consoles
Long lost expertise… • Rough implementation problems • The difficulty to port some applications
As many problems as there are applications • Physics, geometry (AI), graphics… • The interoperability problem
• Server side
Newcoming Challenges Parallel Processing and Multicore Hardware
Once upon a time… • Precalculated sequences • Preprocessing
A shift towards real time © MMOGCHARTS.COM
• Massively Multiplayer Online Games • Hyperlarge / Hypercomplex scenes • Dual applications, Defence and Civil
June 2006 - Past 13 million registered users
• Client side
Newcoming Challenges Storage Capabilities
From cartridges and floppies to DVDs and Blu-rays and on… Ever expanding costs • Difficulty to rationalize production risks • A shift towards episode based sequels (Half Life 2 and others)
How to create such an amount of content? • Video is not enough • GTA 3 fits 17 square miles (44 km2) on a single DVD • Tomorrow, design and produce up to 500 km2 on Blu-ray?
Up to 50 gigabytes of data in early 2007
Newcoming Challenges Online Gaming
• Server side User Modifications • Maps, graphics etc…
The MMOG problematics :
Collaborative content Second Life
• Collaborative environments • Maintenance problems : How to patch your greens? World of Warcraft (Almost) Weekly Patches
• Through the looking glass
Reduced memory Reduced CPU power Weak floating point capabilities Networked devices
• A difficult equation
Heterogeneous offer How to make the best of capabilities and overcome limitations? Market still very much unstable
Newcoming Challenges Mobile Gaming
Where do we come from
• Montreal University – 1991 to 1995 Desargues Project • Arithmetics of Forms - Joining topology, arithmetics and lambda calculus • Implementation based on functional programming Scheme • Parallel Computing – Developments on Archipel Transputer Systems
Thesis • Dr J. F. Rotgé - “L’Arithmétique des Formes - Une introduction à la logique de l’espace” – July 1997
Where do we come from
• Arithmetic of Forms Unifying Topology, Arithmetic and lambda calculus
• Projective Geometry and Unconditional Programming Introducing a superset of Euclidian and other conventional geometric systems Eliminating geometric special cases, i.e. testing and conditions Generalizing homogenous coordinates : Integer based, No loss of precision
Where do we come from
• SGDL Systems – 1995 to 2005 Applying research results and Arithmetics of Forms to industrial applications Focus on Applications / Proofs of concept for hyperlarge scenes Scheme based implementation for mainstream systems
Who we are
• Parallel Geometry – 2006 Focus on High Performance Computing and Hypercomplex Simulation Applications • Systems Architecture • Software Optimization
Python based implementation targeted at various hardware environments • Supercomputing • Parallel Systems and Multicore Architecture • Embedded Systems
LLG Python Environment From Polygons to Polynomials Polynomials Polynomials
Implicit Implicit Surfaces Surfaces Polyhedrons Polyhedrons Parametric Parametric Surfaces Surfaces Subdivision Subdivision Surfaces Surfaces
Polygons Polygons
LLG Python Environment From Polygons to Polynomials
Geometry
Graphics Polynomial
Physics Computing Systems
LLG Python Environment Content Creation LLG Python Client environment
Conversion Tools Web Based Editor Visualization / Results Display
Versioning System
Medusa Web Based Authoring Environment
LLG Python server environment Atlantis Optimization Processing
Spongia Physics
Unda Rendering
Chiroptera / Orca Navigation
Parallel Computing Environment
Applications Hyperlarge / Hypercomplex environments
60th D-Day celebration Mulberry Harbor
Applications Physics Simulation
LLG LLGPython Python SMP2 Simulation System Training and haptics
International Space Station data
• Parallel access and computing • Physics simulation / Collision detection Polygonal data Embedded Rendering System
Robotic data
Panoscope System 360o Immersive Visualization
Applications Non Determinist Gaming
Schuiten & Peeters – La chambre des Mystères Angoulêmes Comics Festival