Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

devhwan0421/C-_GameServer

Repository files navigation

C# Game Server

NDC2018 [silbeobain seobeo enjin 2] seolgye ribyureul batangeuro jaeguseonghan C# IOCP & Stackless Fiber seobeo


1. peurojegteu sogae

  • peurojegteu myeong: C# GameServer (Silvervine Engine 2 Reference)
  • seolmyeong: mabinogi mobaileseo sayongdoen silbeobain seobeo enjinyi gujoreul hagseubhago IOCP gibanyi bidonggi sokes tongsingwa singgeul seuredeu geim rojig ceorireul C#euro guhyeonhan peurojegteu

2. haegsim gisul seutaeg

  • eoneo: C#
  • neteuweokeu: IOCP
  • deiteo hyeongsig: JSON[risoseu rodeu, paekis jigryeolhwa(ilbuneun ProtoBuf teseuteu sayong)]
  • deiteobeiseu: MySQL, Dapper(ORM)
  • roging: Serilog(Seq yeondong)

3. akitegceo

deiteo heureumdo

keulraieonteuyi yoceongi IOCPreul tonghae susindoeeo singgeul seuredeu geim rojigeseo ceoridoego, bidonggi DB jageobeuro ieojineun jeonce paipeurain

seobeo keomponeonteu gujo

seobeoyi juyo domein ganyi gwangyewa gujo

silbeobain seobeoenjin2 akitegceo ddarahagi

  • Stackless Fiber giban rojig ceori
    • silbeobainyi Stackful Fiber gujoreul bunseoghayeo C#yi async/awaitwa Taskreul hwalyonghayeo Stackless bangsigeuro guhyeon
    • bidonggi IO daegi gugani pohamdoen rojigeul donggisig sunca kodeuceoreom jagseonghal su issge hayeo saengsanseongeul nopineun gujoro seolgye
  • Single-Thread Game Loop
    • modeun geim rojigeul singgeul seuredeu rupeueseo suncajeogeuro ceorihayeo deiteo ilgwanseongeul bojang
    • meoltiseuredeu hwangyeongyi gyeongjaengsangtaewa dedeurag munjereul geunbonjeogeuro jegeohayeo rojig seolgye nanidoreul najcum
  • Job Queue siseutem
    • neteuweokeu IO wa DB jageobeul geim rojig seuredeuwa bunrihayeo byeongmog hyeonsang eobsneun gujoro seolgye

seongneung jipyo

  • ceoriryang: dongsi jeobsogja 500myeong, codang 10man paekis(idong paekis 200/s) munanhage ceori ganeung
  • anjeongseong: daegyumo beurodeukaeseuting sanghwangeseodo pyeonggyun rupeu taim 8ms miman yuji(rupeuneun monseuteo, peulreieo beurodeu kaeseuteu rojigdo ceori jungin sangtae)

neteuweokeu

  • IOCP giban bidonggi neteuweokeu
    • jeogeun suyi seuredeuro yeoreo jeobsogjareul hyoyuljeogeuro ceori
    • sesyeonmada beopeopulgwa SocketAsyncEventArgsreul hwalyonghayeo GC budameul coesohwa
    • ArraySegmentreul hwalyonghaneun RecvBuffer keulraeseureul tonghae memori jeolyag

deiteobeiseu

  • bidonggi DB weokeo
    • byeoldoyi DB jeonyong seuredeuro bunrihayeo geim rojigyi jungdan(Blocking) eobsi anjeonhage deiteoreul jeojanghago bulreool su issdorog seolgye

MMORPG geim kontenceu siseutem guseong

siseutem myeongcing juyo yeoghal mic sangse gineung
injeung siseutem keulraieonteu jeobsog jeeo, DB yeondongeul tonghan sayongja injeung mic kaerigteo jeongbo roding
entiti gwanri peulreieo mic monseuteo gaegceyi saengmyeongjugi mic sangtae gwanri
weoldeu siseutem geim nae maeb deiteo gwanri mic guyeogbyeol entiti donggihwa
sanghojagyong siseutem NPC daehwa, kweseuteu surag/wanryo rojig mic bosang ceori
aitem siseutem inbentori gwanri, aitem hoegdeug mic sayong rojig ceori
risoseu rodeu siseutem JSON giban risoseu gwanri keulraeseureul tonghae kodeu sujeongeobsi kontenceu hwagjang ganeung

peurojegteu gujo

Root/
+-- GameLogicThread.cs
+-- Program.cs
+-- Protocol.cs
+-- protocol.proto
+-- Common/
| +-- Packet.cs
+-- DataManage/
| +-- DataManager.cs
| +-- ItemData.cs
| +-- MapData.cs
| +-- MonsterData.cs
| +-- NpcData.cs
| +-- QuestData.cs
| +-- DataManage/Template/
| +-- ItemTemplate.cs
| +-- MapTemplate.cs
| +-- MonsterTemplate.cs
| +-- NpcTemplate.cs
| +-- QuestTemplate.cs
+-- DB/
| +-- DbManager.cs
| +-- DbJob.cs
| +-- DbTransactionWorker.cs
| +-- Dto/
| +-- RequestDto.cs
+-- Game/
| +-- Game/Dialogue/
| | +-- DialogueBase.cs
| | +-- DialogueSimple.cs
| | +-- DialogueOk.cs
| | +-- DialogueNext.cs
| | +-- DialogueAcceptDecline.cs
| | +-- DialogueSelection.cs
| +-- Game/Quest/
| +-- QuestComponent.cs
| +-- QuestCondition.cs
| +-- QuestProgress.cs
+-- GameData/
| +-- Item/ (Item01.json ~ Item04.json)
| +-- Map/ (Map01.json)
| +-- Monster/ (monster01.json ~ monster03.json)
+-- GameObject/
| +-- Player.cs
| +-- Monster.cs
| +-- Map.cs
| +-- Inventory.cs
+-- Manager/
| +-- PlayerManager.cs
| +-- MapManager.cs
| +-- SessionManager.cs
| +-- LoginManager.cs
| +-- NpcManager.cs
| +-- ItemManager.cs
+-- Network/
+-- UserSession.cs
+-- PacketHandler.cs
+-- PacketMaker.cs
+-- PacketSerializer.cs
+-- RecvBuffer.cs
+-- PacketParser.cs

4. seolgye sangse mic munseo

5. gudong imiji

gwanryeon ringkeu

About

[NDC] Silvervine Server Engine 2 seolgye ribyureul batangeuro jaeguseonghan C# IOCP & Stackless Fiber geimseobeo

Topics

Resources

Readme

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages