Albion Online is a cross-platform sandbox MMO RPG game. This talk takes you behind the (technical) scenes. We will take a look at the structure of the server farm and its inner workings, the databases, the threading and message processing model and many other interesting implementation aspects. On the client side, Albion uses the well-known Unity game engine. The second part of the talk will describe how we use Unity (and which features we do not use, which is just as important!)
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)David Salz
Albion Online is a cross-platform sandbox MMO RPG game. This talk takes you behind the (technical) scenes. We will take a look at the structure of the server farm and its inner workings, the databases, the threading and message processing model and many other interesting implementation aspects. On the client side, Albion uses the well-known Unity game engine. The second part of the talk will describe how we use Unity (and which features we do not use, which is just as important!)
Deterministic Simulation - What modern online games can learn from the Game B...David Salz
The Nintendo Game Boy featured multiplayer games using a link cable with very low throughput. The trick was deterministic simulation and that is still a useful technique today. This talk will take a look at how different types of online games can use deterministic simulation to reduce network traffic and gives practical tips on implementation.
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...Amazon Web Services
Can you really build the infrastructure required to bring a massively multiplayer online game (MMO) to life in the cloud? This session discusses the evolution of Red 5 Studios' FireFall—a free-to-play MMO. FireFall runs entirely on the AWS platform and allows players from around the world to play together in the cloud. The session covers some of the design decisions made over the last two years—the things that worked well and not so well. The session also presents some of the solutions Red 5 implemented to ease the transition from dedicated data center hardware to virtual servers in AWS.
Presentation on MMOG architecture given to several app development groups interested in moving into the game design world. Much of this content was inspired by t-machine.org.
Albion Online - A Cross-Platform MMO (Unite Europe 2016, Amsterdam)David Salz
Albion Online is a cross-platform sandbox MMO RPG game. This talk takes you behind the (technical) scenes. We will take a look at the structure of the server farm and its inner workings, the databases, the threading and message processing model and many other interesting implementation aspects. On the client side, Albion uses the well-known Unity game engine. The second part of the talk will describe how we use Unity (and which features we do not use, which is just as important!)
Deterministic Simulation - What modern online games can learn from the Game B...David Salz
The Nintendo Game Boy featured multiplayer games using a link cable with very low throughput. The trick was deterministic simulation and that is still a useful technique today. This talk will take a look at how different types of online games can use deterministic simulation to reduce network traffic and gives practical tips on implementation.
Building a World in the Clouds: MMO Architecture on AWS (MBL304) | AWS re:Inv...Amazon Web Services
Can you really build the infrastructure required to bring a massively multiplayer online game (MMO) to life in the cloud? This session discusses the evolution of Red 5 Studios' FireFall—a free-to-play MMO. FireFall runs entirely on the AWS platform and allows players from around the world to play together in the cloud. The session covers some of the design decisions made over the last two years—the things that worked well and not so well. The session also presents some of the solutions Red 5 implemented to ease the transition from dedicated data center hardware to virtual servers in AWS.
Presentation on MMOG architecture given to several app development groups interested in moving into the game design world. Much of this content was inspired by t-machine.org.
NHN NEXT 게임 서버 프로그래밍 강의 자료입니다. 최소한의 필요한 이론 내용은 질문 위주로 구성되어 있고 (답은 학생들 개별로 고민해와서 피드백 받는 방식) 해당 내용에 맞는 실습(구현) 과제가 포함되어 있습니다.
참고로, 서버 아키텍처에 관한 과목은 따로 있어서 본 강의에는 포함되어 있지 않습니다.
멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 게임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, Lumberyard, Unreal Engine 등)에서 제공하는 복제 프레임워크를 통하여 손쉽게 게임 서버를 만드는 방법에 대한 내용을 다룹니다. 또한, 이렇게 만들어진 게임 서버를 Amazon GameLift라는 클라우드 서비스를 통해 DevOps형태의 비용 효율적으로 서비스하는 방법에 대해 소개합니다.
It is an internet platform that focuses on catering information the newest updates and hacks on the popular cellular strategy game Clash Royale. The portal comes with all of the resources that were necessary to supply its users with an improve encounter so they can possess a much better gaming experience conveniently.
NHN NEXT 게임 서버 프로그래밍 강의 자료입니다. 최소한의 필요한 이론 내용은 질문 위주로 구성되어 있고 (답은 학생들 개별로 고민해와서 피드백 받는 방식) 해당 내용에 맞는 실습(구현) 과제가 포함되어 있습니다.
참고로, 서버 아키텍처에 관한 과목은 따로 있어서 본 강의에는 포함되어 있지 않습니다.
멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 게임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, Lumberyard, Unreal Engine 등)에서 제공하는 복제 프레임워크를 통하여 손쉽게 게임 서버를 만드는 방법에 대한 내용을 다룹니다. 또한, 이렇게 만들어진 게임 서버를 Amazon GameLift라는 클라우드 서비스를 통해 DevOps형태의 비용 효율적으로 서비스하는 방법에 대해 소개합니다.
It is an internet platform that focuses on catering information the newest updates and hacks on the popular cellular strategy game Clash Royale. The portal comes with all of the resources that were necessary to supply its users with an improve encounter so they can possess a much better gaming experience conveniently.
SRECon EU 2016: Riot Games Vs the InternetAdam Comerford
League of Legends (LoL) is not a game of seconds, but of milliseconds. In day-to-day life, two seconds fly by unnoticed but in-game a two-second stun can feel like an eternity. In any single match of LoL, thousands of decisions made in milliseconds dictate which team scores bragging rights and which settles for “honorable opponent” points. The Internet, however, was not constructed for applications that run like this, essentially in real time.
This talk will discuss the steps Riot Games has taken, and will continue to take, to fix this fundamental problem with commodity Internet, with a specific focus on the work done to improve the experience of our European players.
Online mobile game server use Firebase realtime aatabaseNguyễn Bá Thành
Speaker: Nguyen Ba Thanh
Email: thanhnb1101@gmail.com
Facebook: www.fb.com/thanhnb1101
Topic was share at Google IO Extended 2016 on Hanoi, Vietnam.
It's about 1600 people joined.
Riot Games Scalable Data Warehouse Lecture at UCSB / UCLAsean_seannery
This is a talk that was given for the Scalable Internet Services Masters-level Computer Science class at UCLA and UCSB. It briefly discusses the server architecture for the game League of Legends before going into depth about how the data warehouse can hold petabytes of player data. Discussion about message queue architecture and scalability occurs along the way
Innovative Uses of Technology in International Education Marty Bennett
Throughout the life of a prospective student through to alumni, colleges and universities have been increasingly reliant on new virtual, social, and online methods to attract, retain, educate, and employ their target audiences. The panelists share examples of how institutions/organizations have been
Slides from Massively Fun's talk at the August JavaScript Game Development meetup in Seattle. In it we discuss our new title, Catan World, as well as our new HTML5 MMO game engine, Churchill.
An updated version of the 2008 talk which includes social networking tools, servers, and casual game middleware. Also a lot of comparisons between computer science constructs and world religion.
Presenting some of the technical feats that we've been able to achieve while making RoboBlastPlanet and an inside look at the setup we have for creating a game that can run at 60 FPS on mobile platforms as well as on a large number of browsers.
An introduction to what multiplayer games are, what makes them different from normal games, how to approach building them and specifically how to begin building them with the Unity game engine.
Talk given at the GameIS & Dragonplay mobile multiplayer hackathon, 30/7/2015
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...DevClub_lv
Building photorealistic 3D experiences on the Web is a challenge. Making it with React is even harder but once you got there it pays off in many ways. This talk is about Evolution Gaming approach of working with 3D graphics on the Web using ReactJS with the goal to build the most sophisticated and expensive WebGL application ever created.
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3DJSFestUA
Создать фотореалистичное 3D приложение для Web не просто. Сделать это с React еще сложнее, но окупается с лихвой если вы все таки справились. Этот доклад о том как Evolution Gaming использует WebGL и ReactJS для создания самого сложного и дорогого WebGL приложения из когда либо разработанных.
Massively Social != Massively MultiplayerPaul Furio
A talk from the Login 2011 conference on how to build games that connect hundreds of thousands of players in the same experience, using NoSQL, OSS tools & tech, and good planning. Also covers BigData analysis for understanding what your players are doing and what they want.
The opening address for the Windows Embedded & Robotics European Campus Tour. This presentation provides an overview of the Embedded Windows technology available and lots of examples of its use.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?XfilesPro
Worried about document security while sharing them in Salesforce? Fret no more! Here are the top-notch security standards XfilesPro upholds to ensure strong security for your Salesforce documents while sharing with internal or external people.
To learn more, read the blog: https://www.xfilespro.com/how-does-xfilespro-make-document-sharing-secure-and-seamless-in-salesforce/
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
2. Who am I?
David Salz
15 years in the industry
CTO, Co-Founder of Sandbox Interactive
35 people
based in Berlin
we only do Albion Online!
3. In this talk:
What is Albion Online?
Middleware + Design Decisions
Server Architecture
How we use Unity (and how not)
4.
5. Albion Online
Sandbox MMORPG
Cross-Platform (Windows/OSX/Linux/Android/iOS)
One World (no „Shards“ or „Servers“, not even for different platforms)
Player-Driven Economy (everything is player-crafted)
No Character Classes („you are what you wear“)
Strong focus on PvP + Guilds
Hardcore („Full Loot“ in PVP Areas)
Pay-to-play model
4 years in the making
Currently in Closed Beta w/ 80.000+ „founding“ players
„Release“ in Q4/2016
6. Albion Online
The initial pitch (2012)
Play-crafted equipment, buildings
One World (like EVE Online)
Guild vs. Guild Territotorial conquest
Top-Down perspective + Combat (like League of Legends)
Simple graphics, „can even be 2D“
PVP focus, no PVE, no Mobs, no Dungeons
Release in 2013
7. Middleware Selection
Engine Selection
Unity made sense – inexpensive, accessible
Cross-Platform was a „target of opportunity“
Database Selection
One world need a very scalable database, NoSQL
Cassandra sounded suitable
still use SQL for query-heavy problems
Networking Middleware
Photon!
can use C# on server (like in Unity!)
works with all Unity platforms
8. Apache Cassandra
NoSQL Database
Originally developed by Facebook
Open Source (Apache-License)
Java
Concept: everything is a hash table
in-memory (as much as possible)
optimized for high throughput
scales horizontally (just add servers)
redundant (no single point of failure)
CQL: SQL-like language (w/ massive restrictions – it‘s NoSQL)
9. Apache Cassandra
funny story from public Alpha Test…
all buildings disappeared during lunch break
found this in Cassandra Changelog:
W(
lesson learned: careful with cutting edge technology
* Fix possible loss of 2ndary index entries during
compaction (CASSANDRA-6517)
10. Apache Cassandra
Cassandra uses timestamps to resolve
conflicts between database nodes
also requires exact time sync beween servers
i.e. ntp service
11. Hosting
Hosted with Softlayer
good, but quite expensive
bare-metal machines only
currently: 8x 10-Core Intel Xeon, 32 GB RAM
Should be able to handle ~15k CCUs
Originally:
Hosted across 2 Datacenters (better ping for players)
Worked, but bad idea! (inter-server disconnects, latency)
12. Networking
Photon
UDP-based protocol (reliable/unreliable as needed)
TCP for chat, inter-server communication
use only basic message functionality (no Photon frameworks)
mostly simple messages, in rare cases JSON content
Had to implement secure TCP-reconnect abilities
Chat
Tried IRC…
… was only trouble (difficult to secure, customize)
Implemented own system in a couple of days
13. Consequences
Server needs to work without Unity
Ideally, client works without Unity, too!
think: tools, stress-test-bots!
Use Unity only as rendering front-end
cannot rely on Unity features for basic functions!
levels / game objects
collision
pathfinding
16. Server Farm
Game Server
Game Server
Game Server
Login Server
World Server
Marketplace Server
GoldMarket Server
Statistics Server
Ranking Server
BackOffice Server
Chat Server
Client
Connect to different game
server depending on
location in game world
Game DB
(Cassandra)
Accounts DB
(Postgres)
Market DB
(Postgres)
GoldMarket DB
(Postgres)
19. Game Servers / World Server
game world split into unique „clusters“ of ~ 1 km²
current world: ~600, next world: x2
distributed among game servers
player changes servers when travelling
handoff done through database (even on same server)
Instances are dynamically created
world server coordinates this
World Server
responsible for everything „global“
guilds, parties, coordination of guild battles etc.
20.
21. Threading Model (Game Server)
IO ThreadIO ThreadNetwork IO
Thread
Event
Queue
Logging IO
Thread
Event
Scheduler
Cluster Thread
Event
Queue
Event
Scheduler
Cluster Thread
Pathfinding
Thread
Database IO
Thread
Cluster Thread makes
request
Events / Results get
put into Event Queue
Cluster polls Events
from Queue and
Scheduler
22. Threading Model
Game logic for one game area („cluster“) is single-threaded
Interactions between game objects too complicated otherwise; would
require lots of locking
Objects „sleep“ whenever possible (especially mobs)
All IO (Network, Database, Logging) and other „heavy lifting“
(pathfinding) offloaded to worker threads
Instances (Player islands, instanced dungeons) are combined in thread
pools
Other servers (chat, rankings) are completely multi-threaded
23. There is no spoon!
There is no game loop!
i.e. no Update() or Tick() functions for game objects
Gameplay thread processes events in order of arrival
Events are:
Network input, i.e. player commands
Timers (Event Scheduler)
If an object needs a tick (Mobs do), it creates a recurring timer
Results from DB queries (asynchronous)
Results from pathfinding
…
24. Interest Management
Players should only „see“ (network-wise) what‘s on their screen
important to reduce traffic…
… and prevent cheating!
Find objects a player can „see“ (and update when things move)
Objects send messages to all players that „see“ them
Needs to be efficient!
~500 mobs / cluster
> 10.000 interactive objects (mostly trees )
up to 300 players
25. Interest Management
grid based hash (10x10m cells)
● cells contain list of objects inside
● list is updated by object itself when moving
● cells fire events:
● ObjectEnteredCell()
● ObjectLeftCell()player
● objects also fire events
● ObjectMoved()
● ObjectDestroyed()
● EventFired()
26. Interest Management
player
Interest area
Moves with player
Subscribe to objects when they
enter inner area
Unsubscribe when they leave
outer area
Tell player when:
● an object enters / leaves interest area
● an object in the area fires an event
27. Logging infrastructure
Game Server
Game Server
Game Server
Log File
Log File
Log File
Logstash
Agent Redis
Elasic Search
Kibana
track errors, generate statistics
classic ELK stack (Elastic Search, Logstash, Kibana)
kind of unreliable for us
Also use Cassandra Counters a lot!
Logstash
Agent
Logstash
Agent
Own tools
31. Level Design
Zones built in Unity (Unity scenes)
Consist only of Unity prefabs („tiles“)
~ 30.000 / level
Collision is painted for each tile
Level gets exported to XML format
level loading independed from Unity (for server, client)
in Unity: instantiate prefabs
actually faster and more controllable!
32. Level consists of
„tiles“ (Unity prefabs)
Tile has 3d collider
(for mouse picking +
ground height
definition)
2d collision is painted
per tile
(blocks movement /
blocks shots / blocks
placement etc.)
Ground tile
Object (non-ground) tile
34. Unity Features we (don‘t) use…
Do:
Editor: cool and customizable (but often too slow)
Sound: yes, but want to switch to Wwise or FMOD
Mechanim: now, after a long struggle (memory usage!)
Not or very limited:
Scenes – only to load GUIs (but not levels)
Collision/Physics – only raycasts @ ground
GUI – use modified NGUI instead
Network – use Photon instead
Baked light – scenes way too large
35. Unity troubles
funny story…
64 bit editor came just in time for us
32bit editor was no longer able to build our project
used > 2.7 GB RAM during build with is the max for
win32 processes
headless was still working!
36. Character rendering
Character + Equipment gets baked into one mesh
want 1 draw call / character (well, + special effects)
real-time
parts of character mesh hidden depending on equipment
Only one material for character + all equipment items
Only one texture; also use vertex colors, specular
Limit number of characters drawn (esp. on mobile)
39. Debugging
Can run and debug complete environment locally on developers
machine
Human-readable network log file
Server and client errors caught in log files
Searchable, with context
Public staging system
Community can preview patches, updates
QA freelancers from the community
Frequently mirror live database to public staging system
Can download live database to developer machines
41. Cheaters
people started using memory debuggers and packet sniffers
pretty much on day 1
Absolute server authority is king!
Includes what information you reveal to client!
only one serious cheat ever found
mistake on our side –“believed“ data from client without proper
check
Gold Sellers / Account Stealing
adding email verification greatly improved this
42. Cheaters
.NET code very accessible for analysis
camera hacks (minior problem because of interest management)
found internal tools , cheats in code (not working on live)
extracted data from client
maps, player rankings
cool community projects!
Users built bots directly into client
Difficult to prevent
Obfuscation – helps, but not much
We are doing more integrity checks now!
Future: Unity IL2CPP ?
43.
44. Future Challenges
Growing player base…
Want a more diverse world
exploring more modular level design right now
Keeping iOS / Android version in sync with server
ability to download data files without patching
clients support old server / server supports old clients
45. Thank you!
Questions / Comments?
david@sandbox-interactive.com
We are hiring!
https://albiononline.com/en/jobs