SlideShare a Scribd company logo
1 of 78
Download to read offline
Online game server on Akka.NET
Esun Kim
veblush@gmail | github/veblush
Agenda
1. Introduction
2. Why Akka.NET ?
3. Introduction to Akka.NET
4. Addition to Akka.NET
5. Real-time online Tic-tac-toe
6. Conclusion
Introduction
Why and what did I do?
Previous game servers
KartRider (2004) Everplanet (2010) MonsterSweeperz (2015)
P2P game Server
C++ / IOCP socket
MMORPG server
C++ / IOCP socket
Mobile game server
C# / IOCP socket
Small team
- No dedicated server dev.
- Everyone does everything.
- Client is developed first and server will be followed.
- e.g. Server of KartRider was built just before 3rd closed-
beta test.
Development Process
Rapid development: Good and Bad
- 2-4 weeks working days for building server architecture.
- Only meets minimum requirements.
- Agile and no wastes.
- But hits the architectural limitation soon.
- a few years after launch?
- Very hard to revamp core design of server in live service.
- It’s better to have more general and flexible library for
creating new game contents that has never been
considered.
Development Process
Invest time for getting flexible tools
- 12 weeks
- Includes research and building demo games.
- Research
- Akka.NET, Orleans and more
- Building demo app and game
- Chatty, Tic-tac-toe and Snake
- These tools will be used for making next game.
Research
Why Akka.NET ?
What is Akka.NET?
A toolkit providing actor-base concurrency on the JVM.
Akka.NET is a port of the Akka to .NET.
Akka.NET ?
Stateful online game objects
- User, Character, World, and so on.
- Real-time interaction between objects.
Actor is good to deal with many stateful objects.
- Already adopted and used widely in the game industry.
Why actor model?
State
Behavior
M1M2M3
Actor
// actor.receiver
UserActor.OnChat(Chat m) {
_count += 1;
Print(m.Message);
}
// sender
GetUserActor().Send(
new Chat { Message = "Hello?" });
Why actor model?
_count
OnChat
M1M2M3
UserActor
To make client and server use same language
- Client is built with Unity3D and written with C# on .NET.
- Client and server can share domain code.
- No context switch cost for developing both at the same
time.
Good platform
- Good performance :)
- Can target multiple platforms with .NET Core.
- Can use Linux without worrying about subtle difference
between Mono and .NET.
Why .NET?
Considerations to choose one
- Should be an active open source project.
- Should be stable enough to be used right now.
- Should be not hard to support .NET 3.5.
- Unity3D still relies on .NET 3.5.
Candidates
- In-house library
- Orleans http://dotnet.github.io/orleans
- Akka.NET http://getakka.net
Why Akka.NET ?
The way to improve in-house library
- Small actor and network library which has been written
for the previous project “MonsterSweeperz”
- Requires tons of effort to support general genre games.
Priority
- We need to concentrate on making game rather than
library.
- It must be fun to build new library, but product itself is
first.
Candidates: In-house library
Open source project by MS Research
- 1.0 was released in 2015 after a few years research.
- Cloud agnostic.
- Different with Azure Service Fabric.
Virtual Actor
- New concept, “Virtual Actor”
- It’s like a virtual memory or GC to help easy programming.
- Seems promising but I’m not sure of this model yet.
Candidates: Orleans
.NET port of the Akka library
- Akka 1.0 was released in 2011 and has been used widely.
- Akka.NET 1.0 was released in 2015.
Modular architecture
- Can use only what you need.
- Can replace a module with another.
Candidates: Akka.NET
Strong points
- Easy to customize with modules.
- Classic API model but stable and familiar.
- Open source!
Week points
- Requires more time to be stable.
- Performance improvement for Remote is ongoing.
Chosen: Akka.NET
Introduction to Akka.NET.
Skim over basic things.
Actor
- Has state.
- Receives messages.
- Processes one message at a time.
State
Behavior
M1M2M3
Actor
Actor
class HelloActor : ReceiveActor {
int _count;
public HelloActor() {
Receive<Hello>(m => {
_count += 1;
Console.WriteLine($"Hello {m.Who}")});
}
_count
OnHello
M1M2M3
HelloActor
ActorRef
- Can access an actor via a handle
called as ActorRef.
- Can send a message to a remote
actor with ActorRef.
State
Behavior
M1M2M3
Actor
ActorRef
ActorRef
// create actor
IActorRef greeter =
system.ActorOf<HelloActor>("greeter");
// send message
greeter.Tell(new Hello("World"));
_count
OnHello
M1M2M3
greeter
greeterHello(“World”)
Actor hierarchy
- Actor creates child actors.
- Parent actor handles an exception which child actor throws.
Actor
Actor
Actor Actor
Exception
Resume|Restart|
Stop|Escalate
Actor hierarchy
class Worker : UntypedActor {
IActorRef counterService =
Context.ActorOf<CounterService>("counter");
override SupervisorStrategy SupervisorStrategy() {
return new OneForOneStrategy(ex => {
if (ex is ServiceUnavailableException)
return Directive.Stop;
return Directive.Escalate;
});
}
Remote
- Send a message to remote
actors. (Location transparency)
- Create an actor on a remote
node.
State
Behavior
M1M2M3
Actor
ActorRef
NodeA
NodeB
NodeA:Actor
Remote
// server
using (var system = ActorSystem.Create("MyServer", config)) {
system.ActorOf<HelloActor>("greeter");
...
}
// client
using (var system = ActorSystem.Create("MyClient", config)) {
IActorRef greeter = system.ActorSelection(
"akka.tcp://MyServer@localhost:8080/user/greeter");
greeter.Tell(new Hello("World"));
}
Cluster
Beyond remote
Membership management
- Gossip protocol is used. (No SPOF/B)
- Roles for every nodes
Cluster utility
- Singleton, Sharding, Distributed Pub/Sub.
NodeA
NodeB
NodeC
Cluster
class SimpleCluster : UntypedActor {
Cluster Cluster = Cluster.Get(System);
override void OnReceive(object message) {
var up = message as ClusterEvent.MemberUp;
if (up != null) {
Print("Up: {0}", up.Member);
}
}
NodeC
NodeB
A
NodeA
B
C
C
A B
Addition to Akka.NET.
More things to be done for building online game server.
Actor
NodeA NodeB
Client
Interface
DB?
State Sync
Discovery / Table
Akka.Interfaced
https://github.com/SaladLab/Akka.Interfaced
Actor
NodeA NodeB
Interface
Akka.Interfaced
Terse and readable code
- No message class
- Message handler has a form of interface method.
- Message sending has a form of calling a method.
- Influenced by Orleans and WCF Contract.
No type error for implement and using actor.
- Compile-time check for correct message handling.
- Compile-time check for correct message sending.
IHello
Akka.Interfaced
IHello
_count
OnHello
M1M2M3
greeter
greeterHello(…)
_count
IHello
.Hello
M1M2M3
greeter
greeterIHello.Hello(…)
Akka.NET style
// define message
class Hello { public string Name; }
class HelloResult { public string Say; }
// implement actor
class HelloActor : ReceiveActor {
public HelloActor() {
Receive<Hello>(m => {
Sender.Tell(new HelloResult($"Hello {m.Name}!")});
});
// use actor
var result = await actorRef.Ask<HelloResult>(new Hello("World"));
Print(result.Say);
Akka.Interfaced style
// define interface
interface IHello : IInterfacedActor {
Task<string> SayHello(string name);
}
// implement actor
class HelloActor : InterfacedActor<HelloActor>, IHello {
async Task<string> IHello.SayHello(string name) {
return $"Hello {name}!";
}
// use actor
Print(await helloRef.SayHello("World"));
Akka.Interfaced.SlimSocket
https://github.com/SaladLab/Akka.Interfaced.SlimSocket
Actor
NodeA NodeB
Client
Interface
Akka.Interfaced.SlimSocket
No client role in Akka
- Everyone can send any messages to any actors.
Access control
- Client can only send a message in allowed interfaces to
permitted actors.
Supports .NET 3.5
- Implement a small part to send a message to an actor in
server.
- Not necessary: Create actor, hierarchy, cluster and so on.
Akka.Interfaced.SlimSocket
Actor1Ref
Client Server
SlimSocket.Client SlimSocket.Server
Actor1 Actor2
ClientSession
Actor2Ref
protobuf/tcp
Akka.Cluster.Utility
https://github.com/SaladLab/Akka.Cluster.Utility
Actor
NodeA NodeB
?
Discovery / Table
Akka.Cluster.Utility: ActorDiscovery
Actor Discovery
- To find interesting actor in a cluster
Akka.Cluster.Utility: ActorDiscovery
NodeA NodeB
ActorDiscovery ActorDiscovery
UserActor ServiceActor UserActor UserActor
Register
Notify Notify
share state
Listen Listen
Akka.Cluster.Utility: ActorDiscovery
// register actor
class ServiceActor {
override void PreStart(){
Discovery.Tell(new Register(Self, nameof(ServiceActor)));
}
// discover registered actor
class UserActor {
override void PreStart() {
Discovery.Tell(new Monitor(nameof(ServiceActor)));
}
void OnActorUp(ActorUp m) { ... }
void OnActorDown(ActorDown m) { ... }
Akka.Cluster.Utility: DistributedActorTable
Distributed Actor Table
- Contains distributed actors across several nodes in a cluster.
- Registered with unique key in a table.
- Similar with sharding but more simpler one.
- There is a master node. (SPOF/B)
Akka.Cluster.Utility: DistributedActorTable
NodeA NodeB
ActorTable
ID ActorRef
1 Actor1
2 Actor2
3 Actor3
NodeC
Actor1
Actor2
Actor3
Actor4
Akka.Cluster.Utility: DistributedActorTable
// create table
var table = System.ActorOf(
Props.Create(() => new Table("Test", ...)));
// create actor on table
var reply = await table.Ask<CreateReply>(new Create(id, ...));
reply.Actor;
// get actor from table
var reply = await table.Ask<GetReply>(new Get(id));
reply.Actor;
TrackableData
https://github.com/SaladLab/TrackableData
Actor
NodeA NodeB
Client DB
State Sync
TrackableData
Sync data in n-tier
- Propagates changes to client, server and DB.
- Change tracking library rather than general ORM.
- Supports .NET 3.5 / Unity3D
- Supports
- Json, Protobuf
- MSSQL, MySQL, postgreSQL, MongoDB, Redis
Production Ready
- Used in MonsterSweeperz
TrackableData
ServerClient DB
User
Gold=10
Cash=20
User
Gold=10
Cash=20
User
Gold=10
Cash=20
User
Gold=15
Cash=20
User
Gold=15
Cash=20
User
Gold=15
Cash=20
CreateSnapshot
Gold+=5Change Save
TrackableData
interface IUserData : ITrackablePoco<IUserData> {
string Name { get; set; }
int Level { get; set; }
int Gold { get; set; }
}
var u = new TrackableUserData();
// make changes
u.Name = "Bob";
u.Level = 1;
u.Gold = 10;
Print(u.Tracker);
// { Name:->Bob, Level:0->1, Gold:0->10 }
Real-time online Tic-tac-toe
Reference game for proving akka.net based game server.
Features
User account
- User can login with ID and password.
- User data like status and achievements is persistent via DB.
Real-time game between users
- Turn game with turn-timeout
- Finding an opponent with matchmaker.
- When no opponent, bot will play with an user.
https://github.com/SaladLab/TicTacToe
Project structure
Domain
Domain.Tests
GameServer
GameServer.Tests
GameClient
450 cloc
965 cloc
1141 cloc
GameUser
Game
GameBot
User
Cluster node structure
User
User
Login
Game
GamePair
Maker
GameBot
User
Table
Game
Table
Master User Game
Actor structure
Client
Client
Session User
User
Login
Game
GamePair
Maker
GameBot
MongoDB
Main tasks
Login
Match
Making
Join
Game
Game
Play
Finish
Game
Login
LoginActor will
- Be a first actor which client can access.
- Authenticate user with ID and password.
- Create an user actor and bind it with client.
Client can communicate with only bound actors.
- Only through bound interfaced even for bound actors.
Login: Actor
Client
Client
Session User
User
Login MongoDB
Login
Create
Bind
Login: Code
// client requests login to server
var t1 = login.Login(id, password, observerId);
yield return t1.WaitHandle;
// check account, create user actor and bind it to client
async Task<LoginResult> IUserLogin.Login(id, password) {
var userId = CheckAccount(id, password);
var user = CreateUserActor(userId);
await UserTable.AddUserAsync(userId, user);
var bindId = await ClientSession.BindAsync(user, typeof(IUser));
// client gets user actor
var user = new UserRef(t1.Result);
Client
Server
Matchmaking
Behavior
- Client sends a request to a pair-maker and waits for 5 secs.
- A pair-maker enqueues a request.
- When there are 2 users on queue, make them a pair.
- When timeout, a bot is created and make a pair.
Matchmaking: Actor
Client
Client
Session User
Game
GamePair
Maker
Register
Create
Created
Matchmaking: Code
// client requests pairing from UserActor
yield return G.User.RegisterPairing(observerId).WaitHandle;
// UserActor forwards a request to GamePairMakerActor
class GamePairMakerActor : ... {
void RegisterPairing(userId, userName, ...) {
AddToQueue(userId);
}
void OnSchedule() {
if (Queue.Count >= 2) {
user0, user1 = Queue.Pop(2);
CreateNewGame();
user0.SendNoticeToUser(gameId);
user1.SendNoticeToUser(gameId);
Join game
Behavior
- GameRoom actor will be created for every games.
- User gets an ActorRef to GameRoom from a pair-maker.
- User enters GameRoom and starts playing.
- On entering user registers GameObserver to listen game
events.
Join game: Actor
Client
Client
Session User
Game
Join
Join
Bind
Join game: Code
// client sends a join request to UserActor.
var ret = G.User.JoinGame(roomId, observerId);
yield return ret.WaitHandle;
// UserActor forwards a request to GameActor.
// when done, grant GameActor to Client as IGamePlayer.
class UserActor : ... {
async Task<...> IUser.JoinGame(long gameId, int observerId) {
var game = await GameTable.GetAsync(gameId);
await game.Join(...);
var bindId = await BindAsync(game.Actor, typeof(IGamePlayer));
return ...;
}
Game play
Behavior
- Client plays game with an ActorRef to GameRoom.
- Client gets game events like opponent’s turn and result of
game from a GameObserver registered to GameRoom.
Game play: Command: Actor
Client
Client
Session
Game
MakeMove
GameRef.MakeMove(2,1)
Game play: Command: Code
// client sends a move command to GameActor
class GameScene : MonoBehavior, IGameObserver {
void OnBoardGridClicked(int x, int y) {
_myPlayer.MakeMove(new PlacePosition(x, y));
}
// GameActor proceeds the game by command
public class GameActor : ... {
void MakeMove(PlacePosition pos, long playerUserId) {
DoGameLogic();
...
}
Game play: Game events: Actor
Game
Client
Session
MakeMove
Client
GameObserver.MakeMove(2,1)
MakeMove
Game play: Game events: Code
// GameActor broadcasts game events to clients
public class GameActor : ... {
void MakeMove(PlacePosition pos, long playerUserId) {
...
NotifyToAllObservers((id, o) => o.MakeMove(...));
}
// client consumes game events
class GameScene : MonoBehavior, IGameObserver {
void IGameObserver.MakeMove(...) {
Board.SetMark(...);
}
Finish game
Behavior
- Game room reports on the end of game to user actor.
- User actor updates user’s status and achievements and
propagates changes to client and DB.
- Destroy a game room actor.
Finish game: Actor
Client
Client
Session User
Game
End
End
MongoDB
Update
Update
Kill
Finish game: Code
// UpdateActor updates user state when the game is over
void IGameUserObserver.End(long gameId, GameResult result) {
_userContext.Data.GameCount += 1;
// flush changes to client and storage
_userEventObserver.UserContextChange(_userContext.Tracker);
MongoDbMapper.SaveAsync(_userContext.Tracker, _id);
_userContext.Tracker = new TrackableUserContextTracker();
}
// when no one left in GameActor, kill actor
void Leave(long userId) {
NotifyToAllObservers((id, o) => o.Leave(playerId));
if (_players.Count() == 0) {
Self.Tell(InterfacedPoisonPill.Instance);
Conclusion
Akka.NET
Good to go
- Akka.NET is a handy building block.
- Akka.Interfaced.SlimSocket allows an Unity3D client to
interact with an interfaced actor.
Keep in mind that it is still young
- Quite stable to use.
- But it is quite early to say “matured”.
- When something goes wrong, it is necessary to check
not only your code but also library code. 
Try it
Tic-tac-toe
- Grab sources and run it
- https://github.com/SaladLab/TicTacToe
Libraries
- Visit project Github pages
- Get libraries from NuGet and Github Releases
Thank you

More Related Content

What's hot

이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018devCAT Studio, NEXON
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013devCAT Studio, NEXON
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Esun Kim
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCPSeungmo Koo
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019devCAT Studio, NEXON
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화Seungmo Koo
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019devCAT Studio, NEXON
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지강 민우
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
게임 랭킹 ( Game Leader Board )
게임 랭킹 ( Game Leader Board )게임 랭킹 ( Game Leader Board )
게임 랭킹 ( Game Leader Board )ssuserda2e71
 
Multithread & shared_ptr
Multithread & shared_ptrMultithread & shared_ptr
Multithread & shared_ptr내훈 정
 
장재화, Replay system, NDC2011
장재화, Replay system, NDC2011장재화, Replay system, NDC2011
장재화, Replay system, NDC2011재화 장
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 

What's hot (20)

이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
 
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
전형규, M2 클라이언트 스레딩 아키텍쳐, NDC2013
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABC
 
게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP게임서버프로그래밍 #1 - IOCP
게임서버프로그래밍 #1 - IOCP
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
김동건, 할머니가 들려주신 마비노기 개발 전설, NDC2019
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
게임서버프로그래밍 #7 - 패킷핸들링 및 암호화
 
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
이무림, Enum의 Boxing을 어찌할꼬? 편리하고 성능좋게 Enum 사용하기, NDC2019
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
게임 랭킹 ( Game Leader Board )
게임 랭킹 ( Game Leader Board )게임 랭킹 ( Game Leader Board )
게임 랭킹 ( Game Leader Board )
 
Multithread & shared_ptr
Multithread & shared_ptrMultithread & shared_ptr
Multithread & shared_ptr
 
장재화, Replay system, NDC2011
장재화, Replay system, NDC2011장재화, Replay system, NDC2011
장재화, Replay system, NDC2011
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 

Viewers also liked

Approximate nearest neighbor methods and vector models – NYC ML meetup
Approximate nearest neighbor methods and vector models – NYC ML meetupApproximate nearest neighbor methods and vector models – NYC ML meetup
Approximate nearest neighbor methods and vector models – NYC ML meetupErik Bernhardsson
 
게임회사 취업을 위한 현실적인 전략 3가지
게임회사 취업을 위한 현실적인 전략 3가지게임회사 취업을 위한 현실적인 전략 3가지
게임회사 취업을 위한 현실적인 전략 3가지Harns (Nak-Hyoung) Kim
 
영상 데이터의 처리와 정보의 추출
영상 데이터의 처리와 정보의 추출영상 데이터의 처리와 정보의 추출
영상 데이터의 처리와 정보의 추출동윤 이
 
Luigi presentation NYC Data Science
Luigi presentation NYC Data ScienceLuigi presentation NYC Data Science
Luigi presentation NYC Data ScienceErik Bernhardsson
 
Deep learning as_WaveExtractor
Deep learning as_WaveExtractorDeep learning as_WaveExtractor
Deep learning as_WaveExtractor동윤 이
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Heungsub Lee
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4동석 김
 
Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Huey Park
 
Developing Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David StelzerDeveloping Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David StelzerJessica Tams
 
Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발Chris Ohk
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다Lee Dustin
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012Esun Kim
 
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]Sumin Byeon
 
NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지Daehoon Han
 
8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈Harns (Nak-Hyoung) Kim
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
김병관 성공캠프 SNS팀 자원봉사 후기
김병관 성공캠프 SNS팀 자원봉사 후기김병관 성공캠프 SNS팀 자원봉사 후기
김병관 성공캠프 SNS팀 자원봉사 후기Harns (Nak-Hyoung) Kim
 
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임Imseong Kang
 
버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션동석 김
 

Viewers also liked (20)

Approximate nearest neighbor methods and vector models – NYC ML meetup
Approximate nearest neighbor methods and vector models – NYC ML meetupApproximate nearest neighbor methods and vector models – NYC ML meetup
Approximate nearest neighbor methods and vector models – NYC ML meetup
 
게임회사 취업을 위한 현실적인 전략 3가지
게임회사 취업을 위한 현실적인 전략 3가지게임회사 취업을 위한 현실적인 전략 3가지
게임회사 취업을 위한 현실적인 전략 3가지
 
영상 데이터의 처리와 정보의 추출
영상 데이터의 처리와 정보의 추출영상 데이터의 처리와 정보의 추출
영상 데이터의 처리와 정보의 추출
 
Luigi presentation NYC Data Science
Luigi presentation NYC Data ScienceLuigi presentation NYC Data Science
Luigi presentation NYC Data Science
 
Deep learning as_WaveExtractor
Deep learning as_WaveExtractorDeep learning as_WaveExtractor
Deep learning as_WaveExtractor
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4
 
Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4Behavior Tree in Unreal engine 4
Behavior Tree in Unreal engine 4
 
Developing Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David StelzerDeveloping Success in Mobile with Unreal Engine 4 | David Stelzer
Developing Success in Mobile with Unreal Engine 4 | David Stelzer
 
Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발Re:Zero부터 시작하지 않는 오픈소스 개발
Re:Zero부터 시작하지 않는 오픈소스 개발
 
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다레퍼런스만 알면 언리얼 엔진이 제대로 보인다
레퍼런스만 알면 언리얼 엔진이 제대로 보인다
 
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
 
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
PyCon 2017 프로그래머가 이사하는 법 2 [천원경매]
 
NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지NDC16 스매싱더배틀 1년간의 개발일지
NDC16 스매싱더배틀 1년간의 개발일지
 
8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈8년동안 테라에서 배운 8가지 교훈
8년동안 테라에서 배운 8가지 교훈
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
Docker
DockerDocker
Docker
 
김병관 성공캠프 SNS팀 자원봉사 후기
김병관 성공캠프 SNS팀 자원봉사 후기김병관 성공캠프 SNS팀 자원봉사 후기
김병관 성공캠프 SNS팀 자원봉사 후기
 
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
NDC17 게임 디자이너 커리어 포스트모템: 8년, 3개의 회사, 4개의 게임
 
버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션버텍스 셰이더로 하는 머리카락 애니메이션
버텍스 셰이더로 하는 머리카락 애니메이션
 

Similar to Online game server on Akka.NET (NDC2016)

Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with serverEugene Yokota
 
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)Eugene Yokota
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf euXie ChengChao
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsSerge Stinckwich
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.jsXie ChengChao
 
Iphone and Ipad development Game with Cocos2D
Iphone and Ipad development Game with Cocos2DIphone and Ipad development Game with Cocos2D
Iphone and Ipad development Game with Cocos2Dcreagamers
 
node.js: Javascript's in your backend
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backendDavid Padbury
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.jsPrabin Silwal
 
The dark side of Akka and the remedy - bp.scala meetup
The dark side of Akka and the remedy - bp.scala meetupThe dark side of Akka and the remedy - bp.scala meetup
The dark side of Akka and the remedy - bp.scala meetupkrivachy
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and LingvokotLingvokot
 
Progscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptProgscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptJohn Stevenson
 
Real World Android Akka
Real World Android AkkaReal World Android Akka
Real World Android AkkaTaisuke Oe
 
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?Albert Mietus
 
04 android
04 android04 android
04 androidguru472
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
 
Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015Karman Interactive
 

Similar to Online game server on Akka.NET (NDC2016) (20)

Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with server
 
Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)Road to sbt 1.0: Paved with server (2015 Amsterdam)
Road to sbt 1.0: Paved with server (2015 Amsterdam)
 
Game server development in node.js in jsconf eu
Game server development in node.js in jsconf euGame server development in node.js in jsconf eu
Game server development in node.js in jsconf eu
 
Wider than rails
Wider than railsWider than rails
Wider than rails
 
Using Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systemsUsing Smalltalk for controlling robotics systems
Using Smalltalk for controlling robotics systems
 
Building fast,scalable game server in node.js
Building fast,scalable game server in node.jsBuilding fast,scalable game server in node.js
Building fast,scalable game server in node.js
 
Pfm technical-inside
Pfm technical-insidePfm technical-inside
Pfm technical-inside
 
Iphone and Ipad development Game with Cocos2D
Iphone and Ipad development Game with Cocos2DIphone and Ipad development Game with Cocos2D
Iphone and Ipad development Game with Cocos2D
 
node.js: Javascript's in your backend
node.js: Javascript's in your backendnode.js: Javascript's in your backend
node.js: Javascript's in your backend
 
A complete guide to Node.js
A complete guide to Node.jsA complete guide to Node.js
A complete guide to Node.js
 
The dark side of Akka and the remedy - bp.scala meetup
The dark side of Akka and the remedy - bp.scala meetupThe dark side of Akka and the remedy - bp.scala meetup
The dark side of Akka and the remedy - bp.scala meetup
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
 
Progscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in ClojurescriptProgscon 2017: Taming the wild fronteer - Adventures in Clojurescript
Progscon 2017: Taming the wild fronteer - Adventures in Clojurescript
 
Real World Android Akka
Real World Android AkkaReal World Android Akka
Real World Android Akka
 
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
CC-Castle; The best Real-Time/Embedded/HighTech language EVER?
 
A java servers
A java serversA java servers
A java servers
 
A java servers
A java serversA java servers
A java servers
 
04 android
04 android04 android
04 android
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015
 

Recently uploaded

Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Dr.Costas Sachpazis
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxpranjaldaimarysona
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxupamatechverse
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college projectTonystark477637
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...Call Girls in Nagpur High Profile
 

Recently uploaded (20)

Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(PRIYA) Rajgurunagar Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Processing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptxProcessing & Properties of Floor and Wall Tiles.pptx
Processing & Properties of Floor and Wall Tiles.pptx
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 

Online game server on Akka.NET (NDC2016)