[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
수강정보
(55개의 수강평)
836명의 수강생
스킬태그 #C#, #게임개발
Rookiss 프로필
신규 강의 업데이트 관련
Rookiss 4일 전

안녕하세요,

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]의 Rookiss입니다.

많은 분들이 서버 운영 관련 질문을 남겨주셔서,
라이브 운영을 돕기 위한 2개의 번외편 강의가
시리즈 커리큘럼에 추가되었고 
이 중 첫번째 강의 [번외편: AWS로 시작하는 서버 운영]이 
금일 오픈되어 공유 드립니다.

특별히 어렵거나 비밀스러운 내용은 아니고
말 그대로 AWS 사용법과 ASP.NET 배포 테스트를 통해
실전 서버 운영 실습을 하는  강의입니다.
그리고 혹시 Linux 쪽에 대한 지식이 없으신 분들을 위해
Linux 기초 사용법에 대한 내용도 다루니,
Windows vs Linux 서버 중 고민하신다면 가볍게 들어보시기 바랍니다.

번외편은 필수적으로 수강해야 하는 내용은 아니고,
서버 개발&운영에 필요한 전 과정을 시리즈에서 다루겠다는 
소소한 약속을 지키기 위해 만든 강의에 가깝습니다.
따라서 정말 라이브 서버 운영을 목전에 두신 분들만 수강하시길 추천 드립니다.

이어서 마지막 강의의 부제는
[번외편: ASP.NET Core로 구현하는 인증과 결제]입니다.
Part6 웹서버가 Blazor 신기술에 치중되어
정작 중요한 인증, 로깅, HTTPS 및 웹보안 등의 내용이 누락된 것 같아,
ASP.NET Core 심화 강의를 만들어 해당 내용을 보충할 생각입니다.

그리고 온라인 게임을 운영하면
언젠가 결제 서버가 필요하게 될텐니,
구글이나 애플쪽 API와 연동하는 실습을 해보면서
실제로 ASP.NET Core 웹서버를 사용하는 연습을 하고자 합니다.
여기까지 마치면 온라인 게임 출시에 필요한 모든 부분들을 다뤘다고 생각되어,
마지막 강의를 끝으로 C# 시리즈를 마무리 짓고
새로 시작하는 C++ 시리즈로 넘어갈 생각입니다.

감사합니다!

Rookiss 프로필
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 업데이트 관련
Rookiss 1달 전

안녕하세요,

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]를 연재중인 Rookiss입니다.

금일 시리즈 최종 파트인 [Part9 : MMO 컨텐츠 구현 (DB 연동 + 대형 구조 + 라이브 준비)]가 
오픈되어 공유 드립니다.

Part9의 부제는 DB 연동 / 대형 구조 / 라이브 준비입니다.

 

 

DB 연동

웹서버와는 다르게 게임 서버는 항상 바쁘게 돌아가야 하기 때문에,
웹서버를 연동하는 방법 그대로 게임 서버에 적용시키기는 힘듭니다.
반드시 쓰레드 관리를 통해 DB 일감과 게임 로직 일감을 분리해야 하고,
여러가지 순서 처리에 대한 골치아픈 문제도 등장하게 됩니다.
DB 연동 컨텐츠(아이템, 인벤토리, 캐릭터 저장 등)를 제작하면서
이런 부분에 대해 실습을 하게 됩니다.

 

 

대형 구조

명색이 MMO라면 그래도 몇 백의 유저가 한 공간에 모일 수 있어야 합니다.
그런데 같은 공간에 많은 유저가 모이는 것이 왜 그렇게 어려운 것일까요?
쓰레드라는 무기가 있음에도 왜 MMO 제작이 어려운지 그 이유에 대해 설명하고,
여러가지 서버 구조론에 대해 알아보게 됩니다.
그리고 우리가 만드는 인디 게임에서 가장 쉽게 적용할 수 있는 형태로
서버를 수정한 다음, DummyClient를 복원시켜 테스트를 해보게 됩니다.

 
라이브 준비
온라인 게임을 운영하려면 많은 지식이 필요한데,
주요 내용을 짚어보고 공용 DB를 사용해서
웹서버와 게임서버 사이의 통신 실습을 해봅니다.

 
아울러 Part9는 시리즈의 완결이고,
다음 강의는 서버 운영에 대한 이해를 돕기 위해
[서버 운영 (Network 기초 / Windows Server 실습 / Linux 실습 / AWS)]를 만들 예정이지만
특별히 본 시리즈와 연관성은 없는 독립적인 강의로 제작될 예정입니다.

 

 

마지막으로 강의 내용, 수강료, 난이도와 관련해서
여러 Q&A나 문의 메일이 종종 오는데,

[쉬운 난이도 + 짧은 제작 기간 + 낮은 수강료] vs [높은 난이도 + 긴 제작 기간 + 높은 수강료] 중
어떤 방향으로 강의를 제작할까 살짝 고민을 했지만,
전자는 다른 서적이나 강의도 이미 충분히 많이 있는 것을 감안하여
앞으로는 취업/게임 프로그래머를 목적으로 하는 분들을 위한
중/고급 난이도 강의 위주로 제작할 생각입니다.
C++ / 게임 수학 / 자료구조&알고리즘 / Windows C++ IOCP Server / DirectX12 / UE (순서 미정)
로 2021년까지 이어지는 C++ 기반 강의에서는
C#보다 더 Low하게 가는 고급 주제들을 다뤄볼 생각입니다.

 

 

감사합니다!

다른 댓글 보기(1)
Rookiss 프로필
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 업데이트 관련
Rookiss 1달 전

안녕하세요,

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]를 연재중인 Rookiss입니다.

금일 [Part8 : Entity Framework Core]가 오픈되어 공유 드립니다.
Part8는 선수 지식이 없어도 되는  독립적인 강의이며,

이전 소식에서 예고드린 바와 같이

웹서버 강의에서 잠시 사용해본 EF Core를 더 깊게 살펴보게 됩니다.

EF Core를 사용하면 SQL 스크립트를 일일히 작성하지 않고서도

(C# 코드를 이용해) DB 테이블 설계와 CRUD 연산을 손쉽게 처리할 수 있습니다.

이렇게 코드와 DB를 매핑하는 기술을
ORM (Object Relational Mapping)이라 하는데,

배울 땐 지루하고 귀찮지만 한 번 익혀두면 굉장히 편리하고,

또 컨텐츠 작업속도가 빨라지는 장점이 있습니다.

추가로 라이브에서 늘 문제가 되는 Transaction처리나
DB Migration과 같이 귀찮은 작업도 간단하게 해결할 수 있는 장점도 있습니다.

아울러 Part9도 절반 정도 제작이 되었는데,

Part8서 살펴본 EF Core를 이용해서
DB 연동 컨텐츠(아이템, 인벤토리, 캐릭터 저장 등)를 제작하고,

MMO 서버의 다양한 구조에 대해 알아본 다음

더 넓은 세상을 관리하는 방법에 대해 학습을 하게 됩니다.

그리고 마무리로 Dummy Client를 복원시켜 
대략적인 동접 처리량을 테스트를 해볼 예정입니다.

감사합니다.

Rookiss 프로필
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 업데이트 관련
Rookiss 2달 전

안녕하세요,

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]를 연재중인 Rookiss입니다.

금일 [Part7 : MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)]가 오픈되어 공유 드립니다.

Part7는 처음에 소개드린 2D 로그라이크 온라인 게임을 무료 에셋을 이용해 만들어보는 강의입니다.

DB는 아직 연동되지 않은 상태로, 온라인 게임의 기본이 되는 전투/이동 동기화를 다루게 됩니다.

(그리고 Protobuf 등을 사용하는 형태로 서버를 살짝 수정해보게 됩니다.)

아무튼 Part3의 유니티 클라, Part4의 C# 서버, 및 Part2의 A* 길찾기를 재사용 하기 때문에

기존 Part들의 선수 학습이 필요하며, 수업은 다음과 같은 순서로 진행됩니다.

  - 1) Unity2D를 이용해 간단한 싱글플레이어 2D RPG 제작

  - 2) 1에서 만든 싱글플레이어 게임 로직을 쪼개면서, 온라인 게임으로 전환

  - 3) 서버의 컨텐츠 처리 구조에 대한 논의

그리고 최초 계획은 Part7에서 끝내려고 했으나,
역시 온라인 게임 특성상 클라/서버/툴을 같이 작업하다 보니

생각보다 영상 진도가 느린 것 같네요.

앞으로 나오는 Part들은 [DB 연동], [더 넓은 MMO 세상 관리 방법들], [AWS] 등을 다룰 예정이며

정확히 몇 부에서 끝날지는 아직 잘 모르고,

그냥 즉흥적으로 필요한게 생기면 강의를 이어갈 예정입니다.

(물론 그냥 취업이나, 포폴 목적이라면 Part7까지만 알아도 정말정말 충분하고도 남습니다.)

현재 계획상 Part8은 웹서버를 하면서 잠시 맛보기로 사용한

Entity Framework Core를 10시간 내외로 더 깊이 다룰 예정이며,
이를 이용해 Part9부터는 DB를 컨텐츠 연동/제작을 하고,

DB가 붙을 때의 서버 구조 및 유의사항에 대한 내용을 다룰 예정입니다.

참고로 DB 연동을 그냥 간단하게 ADO.NET으로 할까 하다가,

장기적으로 보면 EF Core도 제대로 익혀두면

추후 라이브에서도 여러모로 유용할 것 같아서,

고민 끝에 이렇게 결정되었습니다.

최종적으로 간단한 MMO 출시까지 완성하고

시리즈를 마무리를 했으면 하는 소망이 있는데,

아직 갈 길이 조금 더 남아있네요.

감사합니다 !

Rookiss 프로필
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 업데이트 관련
Rookiss 3달 전

안녕하세요,
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]를 연재중인 Rookiss입니다.

금일 [Part6 : 웹서버 (ASP.NET Core Blazor, API)]가 오픈되어 공유 드립니다.
Part6는 MMO 기준으로 핵심은 아니지만,
그래도 간간히 필요한 웹서버를 다루는 강의입니다.

우선 강의 특징 중 하나는 국내 최초로 ASP.NET Core 식구에 합류한 Blazor를 다루게 됩니다.
Blazor의 정식 출시가 2달도 채 안됐기 때문에 매우 생소할 수 있지만,
C# 기반 게임 프로그래머 입장에서는 은근 반가운 아이입니다.
여태 웹의 frontend는 Javascript 기반의 프레임워크 (Vue, Angular, React 등)가 대세였는데,
이번 Blazor의 등장으로 C#으로도 Single Page Application을 손쉽게 만들 수 있게 되었습니다.

아무튼 이번 Part6는 다른 핵심 파트와는 다르게
난이도가 특별히 어렵지는 않지만,

그냥 알아야 할 내용이 워낙 방대해서
강의를 압축하고 커리큘럼을 만드는데 애를 먹었습니다.

너무 깊이 들어가지는 않되,
웹을 아예 모르는 분들도 어느 정도 기본기를 쌓을 수 있도록,

그리고 최종 프로젝트에서 요긴하게 쓰일만한 부분을 학습할 수 있도록
최대한 간단하게 커리큘럼을 구성했습니다.

참고로 강의를 다 들으셔도

"음~ 뭔가 공부한 것 같기는 한데, 이걸로 뭘 하라는건지 막막하군"이라는 생각이 드실 확률이 높은데,

이는 특별히 본인의 문제가 아니라 웹이라는 분야가 처음 배울 때 원래 그렇습니다.

(기회가 된다면 NodeJS나 Java Spring도 가볍게 학습 해보시길 추천합니다)

그러니 일단 한 번 훑어본다는 마음으로 쿨하게 학습을 해보시고,

최종 프로젝트에서 이를 조금씩 응용하는 부분이 나오게 될겁니다.

그리고 많은 분들이 메일/질문으로 남겨주시는
Part7에 관해 공지를 드리자면,

오픈 시기는 아직 미정이고 전체적으로는.
- 1) [Unity2D] 입문부터 시작해서;

- 2) 기존에 만든 [게임 서버]를 더 알맞게 수정해서 연동하고;

- 3) 전투와 이동 동기화 등 핵심 컨텐츠를 만들어보고;

- 4) DB 연동을 해보면서 서버 로직을 수정하는;

일련의 단계를 거쳐서 순차적으로 만드는 쪽으로 구상을 하고 있습니다.

여기다 추가로 배포와 라이브 운영도 확정은 아니지만,

몇몇 질문들이 올라와 일단 고려는 하고 있습니다.

기존에 배운 내용들이 다 종합해서 나오는만큼,

하나의 강의에 다 들어가지 않을 확률이 높고,

너무 길어진다 싶으면 15~20시간 단위로 강의를 끊을 예정입니다.
(그러니 사실상 Part7이 8, 9까지 늘어날 수도 있습니다)

아무튼 시간이 날때마다 틈틈히 코드를 만들고 검증해본 후,

이를 다시 강의로 녹화하는 단계를 거치기 때문에

정확하게 언제 완료될지는 지금 단계에서 확답을 드릴 수 없습니다.

다만 대충 윤곽이 보이면 추후 공지를 따로 드리도록 하겠습니다.

참고로 [C#과 Unity로 만드는 MMORPG] 시리즈가 완료되면,

다음 강의들은 [DirectX 12], [게임 수학], [Unity Shader], [Unity 실전 모작 프로젝트], [Unreal Engine4 C++] [C++ IOCP Server] 등 그때 상황에 따라 하나를 골라서 만드는 것을 고려하고 있습니다.

(막상 연재를 해보니 하나의 강의를 시작할 땐, 큰 결심이 필요한 것 같네요)

- 이상 잡담을 마치겠습니다.

감사합니다.

다른 댓글 보기(2)
Rookiss 프로필
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 업데이트 관련
Rookiss 5달 전

안녕하세요,
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]를 연재중인 Rookiss입니다.

금일 [Part5 : 데이터베이스]가 오픈되어 공유 드립니다.
Part5는 MMO에서 데이터를 저장하고 불러오는
관계형 데이터베이스 (RDBMS)를 다루는 강의입니다.
기본적으로 야구 데이터베이스를 조회해보면서 MS-SQL을 학습하고,
회사 데이터베이스를 분석하면서 SQL 원리와 튜닝에 대해 알아보는 강의입니다.

돌이켜보면 신입으로 입사할 때 제가 가장 게을리하고 싫어했던 파트가 DB인데,
그래서인지 이런 저런 자잘한 실수를 많이 한 기억이 있네요.
굳이 서버 파트가 아니라도 프로그래머 면접을 준비하신다면
Index (Clustered, NonClustered)와 Join(NL, Merge, Hash) 원리 정도는 숙지를 하시면 좋습니다.
아무튼 Part 3, 4에 비해 난이도가 어마어마하게 높진 않으므로
살짝 쉬어가는 Part라고 생각하시면 되겠습니다.

이어서 다음 강의는 Part6: 웹서버 (ASP.NET Core)로 결정되었습니다.
지난 공지에서 말씀드린대로 커리큘럼에 살짝 고민이 있긴 했는데,
의외로 ASP.NET에 관심을 갖는 분들이 많아 변경없이 .NET으로 가기로 했습니다.

MMO에서 웹기술의 용도는 여러가지가 있는데,
우선 처음 접속할 때 계정을 처리하는 account 서버 (로그인 서버)를 생각할 수 있고,
또 라이브 운영툴 (GM 툴)도 대부분 웹으로 구현하게 됩니다.
가령 로그를 찾아보고, 특정 유저한테 아이템을 우편으로 쏴주고 하는 등의 GM작업을
웹 홈페이지에서 한다고 생각하시면 되겠습니다.
MMO가 아니라 일반적인 퍼즐 게임 등의 인디 게임이라 생각한다면,
랭킹이나 SNS 친구 목록 등을 웹으로 구현하게 됩니다.

아무튼 MMO에서 웹서버가 아주 중요하고 많이 사용되는 것은 아니기에
Part5처럼 가볍게 진행하려 했었으나,
05월22일 ASP.NET Blazor가 정식으로 나오면서 계획이 바뀌게 되었습니다.
간단히 요약드리자면 기존에는 웹기술로 홈페이지를 반응성 있게 만들라면
클라(frontend) 쪽에서 Javascript (혹은 Typescript)을 사용했어야 했습니다.
그런데 이번 신기술 도입으로 인해 클라/서버 양쪽에서 C#으로 모든 작업을 할 수 있게 되었습니다 (!)
새로 나온 기술이라 아직 제대로 된 문서나 전문 서적도 6월에야 나올듯 합니다만,
게임 업계에서 상당히 환영받을 기술이라 생각되어
강의 출시를 조금 미루더라도 Blazor에 관한 내용을 어느 정도 중점을 두고 다룰 예정입니다.

이런 추가적인 내용도 있고,
또 근래에 병행하는 일들이 다 동시에 바빠지는 시기라
다음 강의는 7월말 정도에 오픈할 예정입니다.

Part6 : 웹서버와 ASP.NET Core 에서 다룰 내용은 대략적으로 다음과 같이 구성될 예정입니다.

- 1) 웹 기초 (HTML, CSS, 웹 원리 등의 개론)
- 2) 고급 C# 문법 (Nullable, LINQ 등 웹에서 은근 자주 사용되는 문법들 학습)
- 3) ASP.NET 둘러보기 (ASP.NET 5종 세트인 MVC, Razor Pages, WebAPI, Blazor Server, Blazor Client 맛보기)
- 4) WebAPI와 Blazor 심화 과정 및 간단한 랭킹 프로젝트 구현

이상입니다.

- MMO 인디게임을 출시하는 날까지 -

Rookiss 프로필
[C#과 Unity로 배우는 MMORPG 시리즈] 커리큘렴 관련
Rookiss 5달 전

안녕하세요, Rookiss입니다.

Part5 녹화가 시작됐는데,
처음에 예고드린 커리큘럼 순서와 내용에
일부 변화가 있어 미리 공지를 드립니다.

사실 닭이 먼저냐 알이 먼저냐의 느낌으로 고민을 하긴 했는데,
DB를 먼저 다루고 웹서버를 하는 것이 순서상 적합할 것 같아
예고드린 순서와 다르게 진행될 예정입니다.

  • Part5 : 웹서버 (React & ASP.NET)
  • Part6 : 데이터베이스 (RDBS, NoSQL, Entity Framework)

위 순서가 아니라

  • Part5 : 데이터베이스 (SQL Server)
  • Part6 : 웹서버 (ASP.NET MVC, WebAPI)

이렇게 진행할 예정입니다.

그리고 너무 많은 내용을 포함하려 보니 오히려 깊이가 애매해질 것 같아서,
짜잘한 부분은 포기하고 가장 중요한 내용 위주로만 포함하도록 일부 내용을 덜어냈습니다.

Part5: DB
이미 6시간 정도 녹화가 진행됐고 , 데이터베이스에 관한 온갖 내용을 포함하기 보다는
MMO에서 가장 중요한 RDBMS에 집중을 해서 강의를 제작중입니다.
Entity Framework는 기회가 되면 웹서버 하면서 잠시 훑어보되 깊게 살펴보진 않을 예정이고,
NoSQL(Redis)는 RDBMS 분량에 따라서 넣을 수도, 빠질 수도 있습니다.
반면 SQL의 경우 기본 문법부터 성능 분석(튜닝)에 관한 부분까지 더 심화해서 다룰 예정입니다.

Part6: WebServer
최초 계획은 ASP.NET <-> React or Vue 연동으로 실습을 하려고 했는데,
시리즈를 C#으로만 진행하려는 취지에 맞지 않은 것 같네요.
JS 쪽 내용은 버리고 ASP.NET 자체 (MVC와 WebAPI) 쪽에 중점을 둔 다음,
유니티와 연결해서 랭킹 서버 같은 것을 구현하는 쪽으로 강의를 구상중입니다.
물론 국내에선 .NET Core보다는 Node.JS나 Java를 더 많이 사용하니
아직도 커리큘럼에 대해 살짝 고민중이긴 합니다.
아마 Part5가 완성되고 더 생각을 해봐야겠네요!

감사합니다.

다른 댓글 보기(4)
Rookiss 프로필
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 업데이트 관련
Rookiss 7달 전

안녕하세요,

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈]를 연재중인 Rookiss입니다.

금일 오랜 준비 끝에 Part3: 유니티 엔진이 업로드 되었습니다.

기존의 서적이나 유니티 학습 영상과는 조금 다른 학습 방법을 적용해서

실무 방식의 유니티 프레임워크를 개발하는 내용을 담고 있습니다.

아울러 프로그래밍 기초/클라 기술은 Part3에서 마무리 되고, 이후에는 서버와 관련된 부분에 들어가게 됩니다.

다음 순서로 제작되는 강의는 MMO의 꽃이라고 볼 수 있는 [Part4 : 게임 서버]입니다.

멀티쓰레드 & 네트워크 프로그래밍을 활용한 서버 제작 기본기와,

Packet Serialization, JobQueue 관리 등 MMO에서 핵심이 되는 내용들을 두루 다루게 됩니다.

유니티 엔진도 예상보다 오래 걸렸지만 (-_-)

Part4부터는 컴퓨터 전공 지식이 많이 필요하기 때문에 녹화 작업이 더 오래 걸릴 것 같네요.

대략적인 작업 일정은 4월말까지 생각하고 있습니다.

감사합니다.

다른 댓글 보기(3)
Rookiss 프로필
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 일정 관련
Rookiss 8달 전

안녕하세요! Rookiss입니다.

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 신규 업로드 소식을 알려드립니다.

금일 길찾기 주제를 다루는 [Part2: 자료구조와 알고리즘] 강의가 완성되어 인프런에 올라왔습니다.

이어서 [Part3: 유니티 엔진] 강의 녹화가 진행중입니다.

시리즈 중 [Part3: 유니티]와 [Part4: 게임서버]가 가장 핵심적인 내용들을 담고 있어서,

Part3는 특히나 신경써서 제작중이고 대략적으로 3월 말 정도에 녹화가 완료될 것으로 보입니다.

감사합니다 :)

다른 댓글 보기(3)
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스