How data rule the world Kristoffer Benjaminsson CTO.

Slides:



Advertisements
Similar presentations
Visualizing maps on the web. What is a Map? A map is a drawing that is the representation, on a certain scale, of a terrain.
Advertisements

Google Fusion Tables API Inneke Ponet. Google Fusion Tables: Store, share, query and visualize data. API to run SQL-like queries applications that use.
Technical BI Project Lifecycle
Google Maps API. Today’s Objectives Get Google Maps working: desktop + mobile Get clustering data complete, data onto a map.
Page 1 More information at; gaddsoftware.comgaddsoftware.com.
Chapter 3 Database Management
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
Lines and Polygons Peterson. Simple Line function initialize() { var myLatLng = new google.maps.LatLng(5, -170); var myOptions = { zoom: 2, center: myLatLng,
1 Lecture 13: Database Heterogeneity Debriefing Project Phase 2.
Multiple Tiers in Action
Point Mashups Peterson. Icons Info Marker Random Points.
BI AND REPORTING USING PROJECT SERVER AND SHAREPOINT Marc Soester Managing Director IPMO Pty Ltd SESSION CODE: OFS311 (c) 2011 Microsoft. All rights reserved.
11 Using the Google Maps API. 2 Objectives You will be able to Use the Google Maps API to display a map of any location on an HTML page. Programatically.
SharePoint is only an application so it has to run on top of Windows Server Windows 2008 R2 SP1 or Windows 2012 Standard, Enterprise, or Data Center Still.
Application for Internet Radio Directory 19/06/2012 Industrial Project (234313) Kickoff Meeting Supervisors : Oren Somekh, Nadav Golbandi Students : Moran.
Software Applications and Data Management for Healthcare.
Phil Brewster  One of the first steps – identify the proper data types  Decide how data (in columns) should be stored and used.
Reducing the Cost and Complexity of Server Management with Microsoft Operations Manager.
Impromptu Data Extraction and Analysis Data Mining and Analytics Framework for VLSI Designs Sandeep P
Database Management System Lecture 2 Introduction to Database management.
Cross Platform Mobile Backend with Mobile Services James
Session ID Presented by: Tom Jamate, University of Massachusetts, Amherst April 8, 2013 Session ID 2521 Going Beyond the Address Push-Pin Extending.
CrowdLogger as a Community Platform for Searcher Behavior Experiments Henry Feild Center for Intelligent Information Retrieval University of Massachusetts.
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Module 11 : Backup and Restore Jong S. Bok
Set 11: Mashups (emphasis on Google tools) IT452 Advanced Web and Internet Systems.
Programming Games Recap on Google Maps. Creating elements. Dynamic creation of elements (multiple video elements). Geolocation. Classwork/Homework: Catch-up.
BIT 286: Web Applications Lecture 04 : Thursday, January 15, 2015 ASP.Net MVC - Models.
Planning and Tracking Projects with VSTS 2010 By Ahmed Nasr 1.
Programming games Examples: Audio example. Google Maps api. Classwork: show more complex video. Classwork/Homework: Find place (lat and long) for basic.
Google Maps API. Static Maps send an HTTP GET request receive an image (PNG, GIF, JPEG) no javascript needed encode params in URL example:
JavaScript Programming B.Ramamurthy 6/113/2014B. Ramamurthy CSE6511.
M1G Introduction to Database Development 6. Building Applications.
Programming Games Google Map API examples. CSS. Classwork/homework: Catch up. Upload work. Show your [more] complex Google Maps API example. Plan your.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Tutorial 30 – Bookstore Application: Client Tier Examining.
Architectures Classic Client/Server Architecture Classic Web Architecture N-tier (multi-tier) Architecture FEN Databaser og Modellering.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Introduction to ADO Y.-H. Chen International College Ming-Chuan University Fall, 2004.
(VPD) Virtual Private Database Technique Hessah Hassan Al_kaoud.
Intro – Part 2 Introduction to Database Management: Ch 1 & 2.
Programming Games Reprise: storage, datatypes. Geolocation/Google API example. Work session Homework: [Catch up. Upload work. Post proposal.] Work on your.
6.1 © 2010 by Prentice Hall 6 Chapter Foundations of Business Intelligence: Databases and Information Management.
Developer TECH REFRESH 15 Junho 2015 #pttechrefres h Understand your end-users and your app with Application Insights.
Next Back MAP 3-1 Management Information Systems for the Information Age Copyright 2002 The McGraw-Hill Companies, Inc. All rights reserved Chapter 3 Data.
Location Aware Information System (LAIS) Neftali Alverio Bryan Halter Jeff Cardillo Brian Reed Advisor: Prof. Tilman Wolf.
Building Dashboards SharePoint and Business Intelligence.
 Architectural overview  Main APIs. getGames.php getGroupsLocations.php getGroupsScores.php getMessage.php getStreet.php getTime.php login.php sendMessage.php.
Creating Interfaces Show form validation examples, Hangman. HTML5 with Google Maps API. Add in localStorage. Design pitfalls. Homework: Make proposal for.
Static Locations, Dynamic Content.
16 Map Layer Mashups Mapping in the Cloud Peterson.
Final Fantasy ½: IOC Overview Team Q CSE 403 Winter ‘03 I’ve got something special for you.
Web based Documentation Distribution Tools: MSAccess database (DSN) DreamWeaver Ultradev Microsoft Image Composer Clicking on the document will open an.
Google Analytics Graham Triggs Head of Repository Systems, Symplectic.
Generating XML Data from a Database Eugenia Fernandez IUPUI.
Jacksonville SQL Saturday May 9, 2015 Introduction to Power BI.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
Industry case study: Data Eric Brumer 2/19/2014. Agenda Belltower Books Belltower Books Trucking: backend & frontend Google maps & javascript.
Creating Databases Example using Google Maps API + file creation. Dollar sign problem. Classwork/Homework: [catch up]. Work on final project.
Google Maps API. Contents: 1. Google Maps API Key 2. Create a Basic Google Map 3. Google Maps Overlays 4. Google Maps Events 5. Google Maps Controls 6.
1 Bus Tracker A Google Maps Application. 22 Objectives You will be able to Add an icon to a map created with the Google Maps API. Use Ajax techniques.
Google Maps API v3: Built First for Mobile Susannah Raub Google June 24, 2010.
Creating Databases Example using Google Maps API + file creation. Dollar sign problem. Classwork/Homework: [catch up]. Work on final project.
Google APIs and Facebook API
Web Services application that operates over a network
Outline Introduction Standards Project General Idea
MapMaker Easy fast web-based map creation
Microsoft Ignite /22/2018 3:27 PM BRK2121
The Online Smith Family Recipe Program
Introduction to Ms-Access Submitted By- Navjot Kaur Mahi
Presentation transcript:

How data rule the world Kristoffer Benjaminsson CTO

Easy? Easy is a studio within EA Games that do free to play games Originates from DICE 3 live titles – Battlefield Heroes – Battleforge – Lord of Ultima

Trailer

Telemetry - Wikipedia ” Telemetry (synonymous with telematics) is a technology that allows remote measurement and reporting of information. The word is derived from Greek roots tele = remote, and metron = measure.”

Telemetry - Easy Data that helps us make decisions to provide a better service for our players Provides answers to specific questions Multiple sources – Financial data – Game statistics – Web behaviour data – Game telemetry Vertical slice of the player population

Why bother? We prefer to know what is going on instead of guessing We can measure results from actions Data do not (usually) lie Forums not representative – Less than 20% read forum posts – Less than 5% post in forums

Game telemetry examples Latency data Punkbuster kicks Matchmaking Time to level Hardware profiles Play time

Architecture Game Client Game Server Magma DB Reporting

Implementation TelemetryManager sends data to our backend for database storage Hooks in the game code collects data Hooks are records packed as name value pairs Each record will create its own table in the database All telemtry includes a common identifer so we can cross reference data between telemetry hooks

Example record class PingRecord : public ITelemetryRecord { public: PingRecord(const std::string& clientIp, const std::string& serverIp, int ping, const std::string& dataCenter, const std::string& community); public: virtual bool hasType( int typeId ) const { return typeId == RTPing; } virtual bool assimilate( const ITelemetryRecord* other ) { return false; } virtual IDataCollector::DataRef buildData() const; private: std::string m_clientIp; std::string m_serverIp; int m_ping; std::string m_dataCenter; std::string m_community; };

Example usage player->addTelemetry(new backend::telemetry::PingRecord(clientIp, serverAddressAndPort, conn->getAveragePing(), serverSettings->getProdDataCenter(), serverSettings->getServerCommunity()));

Real life examples

High latency - before

Why were people in Europe being matchmade to Australia and North America?

High latency - after

How did we do it? Generated an HTML page – GeoIP City – A bit of C# – Google Maps API – Telemetry data – A bit of SQL

Example page function initialize() { var latlng = new google.maps.LatLng( , ); var myOptions = { zoom: 2, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); var marker = null; var coords = null; var path = null; marker = new google.maps.Marker({ position: new google.maps.LatLng(59.433, ), map: map, title:"gva, ", icon: "client.png" }); marker = new google.maps.Marker({ position: new google.maps.LatLng(52.350, 4.916), map: map, title:"gva", icon: "server.png" }); coords = [new google.maps.LatLng(59.433, ), new google.maps.LatLng(52.350, 4.916)]; path = new google.maps.Polyline({ path: coords, strokeColor: "#ff0000", strokeOpcaity: 0.5, strokeWeight: 1}); path.setMap(map); }

Google Maps

Punkbuster - before

Punkbuster - after

How did we do it? Microsoft SQL Server 2008: Reporting Services – Standard BI tool – Easy to create charts and tables – Updates on a daily basis

During development

Asserts We collect all asserts from both client and server We differentiate between content asserts and code asserts We have leaderboards and summaries – Top 10 asserts – Total content/code asserts per branch Provides guidance to what we need to fix

Fragalyzer Level design helper tool Collects information about how a map is played – Kill position – Killed from position – Player/Vehicle movement – Etc Currently collected locally on a game server

Summary Telemetry is awesome! Collect data to answer specific queries Build a flexible system to make it super easy to add new telemetry hooks Chose the right reporting tools to mine and report on the data

Questions?