본문 바로가기

C#

[장문후기] 인프런 Rookiss님의 MMORPG 개발 시리즈 Part1를 수강하면서

inf.run/K1s3

 

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문 - 인프런

기초 프로그래밍 지식이 없는 사람들을 위한 C# 프로그래밍 기초 강의입니다. 문법 암기 위주의 수업이 아니라, 최대한 필요한 부분만을 요약해서 진행합니다. 입문 게임 개발 프로그래밍 언어 C

www.inflearn.com

이 글을 마주치게된 사람은 제가 어떤 개발능력을 소유하고 있는지 아실 분은 없을 것이라 생각하기 때문에 간략하게..

 

메인 : C#, Unity

내머리속 어딘가: C, C++, Java, Python 등

 

출시 : DriftIt!, 로아 마리상점 계산기

미니프로젝트 : 유니티 리듬게임 + 에디터 등

 

'아니 그래도 알거 아는 사람이 C# 기초 강의를 듣는다고?' 생각이 드실 것 같습니다.

저도 그렇게 생각했었습니다.

 

 돌이켜보니 기껏해야 C 정도만 제대로 공부하였고 정식으로 C#을 공부한 적은 없었습니다. 필요한 기능만 MSDN이나 구글링을 통해 찾았었습니다. 이 사태의 계기가 된 한 일화로 학교에서 소프트웨어 공학이란 전공과목의 과제로 UML과 코드를 작성하게 된 일이 있었는데 교수님께 지적받았던 사항이 "하긴 했는데 객체지향보다는 절차지향에 가깝다" 였습니다. 그때는 잘 와닿지 않았습니다.

 

 그러나 개인 프로젝트를 진행하다보니 기본기가 부족하다는 생각이 크게 들었습니다. 코드의 생산성이 크게 떨어진다는 생각이 점차 들었고 C#이 지원하는 기본적인 개념인 OOP와 기타 강력한 기능들의 활용을 제대로 하지 않고 있다는 점이였습니다. 그래서 진행하던 유니티 리듬게임 에디터 프로젝트(github.com/LHEALP/Runthm)를 빠르게 마무리하고 잠시 휴식을 가진 뒤, 가지고만 있던 C# 책을 처음부터 끝까지 가볍게 읽었습니다.

 

 읽고나니 오만 생각이 다 들었습니다. 내가 잘할 수 있을까? 조금씩 해이해지기 시작할 때 위 강의를 알게 되었고 어느순간 시리즈 전체를 결제하게 되었습니다. 이때까지는 약간의 고정관념이 있었습니다. 뭐하러 학원이나 인강을 돈주고 듣냐.. 인터넷에 검색하면 모든게 다 나오는데? 기타 국비학원이 망쳐놓은 썰 등.. (물론 전 다녀본적은 없습니다.)

 

 이 것이 발전의 큰 실수라고도 볼 수 있습니다. 남이 수년간 삽질하며 정리하고 잘 요약한 것은 엄청나게 큰 이점이라는 것을요. 생각해보니 남을 도와주기위해 블로그에 팁을 작성하거나 Github에 프로젝트를 공개한 행위를 해놓고도 제 자신은 부정한 아이러니한 상황입니다.

 

 자존감이 약해질 시기에 발견한 강의는 고정관념을 바꿔놓는데 성공했습니다. C# 기초인 Part1은 스킵할 수도 있었지만 알고 있는 내용도 다시보고 기본기에 집중하기위해 수강했습니다. 강의자께서 중간중간 전달하는 개발 노하우는 독학하는 입장에서는 큰 도움이 되었습니다. 

 

현재 콘솔에서 이루어지는 간단한 TextRPG2 과정까지 수강을 했고 30%정도 남은 상황입니다. 그리고 복습차원에서 수강한 내용을 최대한 활용하여 처음부터 직접 간단한 게임을 만들어보자고 하여 '자동차 경주' 게임을 만들어보았습니다.

 

미니게임

플레이어는 준비된 3가지 자동차를 택하여 AI와 레이스를 하는 게임입니다.

먼저 1000m를 주행하거나 상대방 차량의 내구도가 0 미만으로 떨어지면 승리하는 조건입니다.

 

차량은 3가지가 준비되어 있으며

자연흡기 120 마력, 내구도 100, 주행실수 가중치 0

터보차져 200 마력, 내구도 90, 주행실수 가중치 2

슈퍼차져 400 마력, 내구도 75, 주행실수 가중치 6

 

플레이어는 직접 차량을 선택하지만 AI는 랜덤으로 차량이 선택됩니다.

* 주행실수는 루틴마다 랜덤으로 결정

 

조작법은 아무키를 입력하면 한번에 한턴씩 진행됩니다.

 

완성 모습

괜한 예고는 유저를 설레게 합니다.
나름 레벨디자인이 되어 있습니다
흥미진진
내구도 승리!

치열한 레이스 끝에 AI의 잦은 주행실수로 제가 승리했습니다!

 

소스코드

github.com/LHEALP/TextCarRace_Practice_CSharp

 

LHEALP/TextCarRace_Practice_CSharp

Contribute to LHEALP/TextCarRace_Practice_CSharp development by creating an account on GitHub.

github.com

평가 및 마무리

강의 포커스는 입문자로 되어있지만 어느정도 기초가 있는 사람이 수강하면 효과가 좋을 것으로 예상됩니다. 강의 스타일이 문법 하나하나 매달리지 않고 빠르게 진행하기 때문에, 입문자라면 이게 왜? 라는 생각이 드실 수도 있을 것 같습니다. 후기를 남긴 사람들의 의견을 살펴보면 난이도에 대한 언급이 잦습니다. "난이도를 내리지 말아달라." 개인적으로도 정말 공감되는 이야기입니다.

 

C 프로그래밍 이후 오랜만에 마주치는 잦은 검은 콘솔창.. 비전공자분들이 어려워하는 이유중 하나라고 들었습니다. 아무래도 모습이 화려하지 않기 때문으로 알고 있습니다. 저는 매우 반갑습니다. 개발자 체질인가봐요 ㅋㅋ

이후 파트에 대한 후기를 남길지는 모르겠지만, 강의 시리즈를 어느정도 수강하고 난 뒤에는 유니티 리듬게임을 재설계하여 힘 한번 빡줄 생각입니다.