C#으로 배우는 입문부터 4가지 게임
한빛미디어
집필서
절판
소문난 명강사 ‘레트로’가 게임 개발 입문자에게 보내는 선물 같은 책
게임을 만드는 ‘완벽한 준비’를 위해 시간을 낭비하지 마세요. 이 책은 기본을 빠르게 익히고 나서 게임을 직접 만들며 필요한 기능을 알아가는 입문 + 활용서로서 여러분의 시간을 아껴줍니다.
C#을 몰라도, 유니티 엔진을 몰라도 게임을 만들 수 있습니다. C# 입문 + 유니티 에디터 + 실전 게임 개발을 한 권으로 전달하니까요. 또한 아주 낮은 눈높이로 설명하고 차츰차츰 높은 난도의 게임을 완성해나가기 때문에 초보자가 책을 완독하는 데 무리가 없습니다.
이 책에서 제공하는 4가지 게임을 만들다 보면 유니티로 게임을 개발하는 데 필요한 실무 능력을 제대로 갖추게 될 겁니다.
[ 이 책의 특징 ]
1. 입문자와 비전공자를 배려한 진행 순서
이 책은 유니티는 물론 프로그래밍에 대한 지식이 전혀 없는 입문자와 비전공자, 아티스트 등
을 대상으로 합니다. 따라서 비전공자가 쉽게 이해할 수 있는 순서로 구성되어 있습니다. 수학
적 내용은 전문적인 단어 대신 비전공자가 이해할 수 있도록 풀어 쓴 예시를 사용합니다.
2. 수많은 예시와 그림
어려운 개념은 비유와 예시로, 복잡한 서술은 그림으로 대체했습니다. 650장 이상의 그림으로
실습 과정을 놓치지 않고 따라 할 수 있습니다.
3. 올인원 패키지
유니티의 동작 원리, C# 프로그래밍, 객체 지향, 선형대수, UI, 모바일, 후처리, 네트워크, 프
로그래밍은 물론 게임 개발에 필요한 모든 요소를 기초부터 고급까지 충실하게 다룹니다. 이
책 하나로 C# 프로그래밍 입문서와 게임 엔진 입문서를 모두 대체할 수 있습니다.
4. 깃허브를 사용한 꾸준한 호환성 관리
이 책의 모든 예제와 그림은 유니티 2019.1 버전으로 제작했습니다.
프로젝트의 코드는 특정 버전의 유니티 기능에 의존하지 않도록 구성했습니다. 따라서 유니티 2019.1 이후 버전에서도 예제가 호환됩니다. 향후 유니티 버전에서 호환성 문제가 발생하는 경우 깃허브 예제 폴더의 안내 문서에 해결 방법을 추가하겠습니다.
5. 4가지 게임 구현
독자가 다양한 종류의 게임을 만드는 방법을 접하도록 다음과 같이 총 4가지 게임을 구현합니다.
[ 이 책에서 다루는 범위 ]
1. 유니티 에디터
2. C# 프로그래밍
3. 애니메이션
4. 벡터 수학
5. 유니티 UI(UGUI)
6. 아트
7. 디자인 패턴
8. 네트워크
9. 그외
[ 이 책의 구성 ]
이 책은 총 7부로 구성되어 있습니다.
1부와 2부는 유니티와 코딩을 당장 이해하는 데 필수적인 핵심을 빠르게 배웁니다. 실습 프로젝트를 진행하는 3부, 5부, 6부는 장르별로 게임을 하나씩 완성하면서 실습을 통해 이론을 이해합니다. 실습 프로젝트에서는 기존 지식으로 해결할 수 없는 문제를 새로운 방법으로 돌파하는 방식으로 진행합니다. 4부는 비전공자 입장에서 게임 개발에 필요한 수학적 기반을 배웁니다. 7부는 멀티플레이 게임 구현을 배우고, 부록에서는 모바일 빌드에 대해 알아봅니다.
1부 : 유니티 준비하기
유니티를 준비하고, 유니티 동작 원리와 인터페이스를 배웁니다. 유니티 개발 환경을 준비하고 맛보기 프로젝트를 만듭니다. 게임 오브젝트와 컴포넌트의 원리와 동작을 이해합니다. 게임 엔진의 구조와 개발 방식을 이해합니다.
2부 : C# 프로그래밍
왕초보자 입장에서 C# 프로그래밍과 객체 지향을 배웁니다. 코딩 원리와 객체 지향을 즉시 이해할 수 있는 그림 예시로 설명합니다. C# 스크립트를 직접 작성하면서 필요한 대부분의 C# 문법을 익힙니다. 1부에서 살펴본 유니티의 동작 원리가 C#의 객체 지향과 어떻게 맞물리고, 스크립트가 어떻게 게임 오브젝트와 컴포넌트를 통제할 수 있는지 이해합니다.
3부 : 탄막 슈팅 게임 - 닷지
3D 탄알 피하기 게임을 만듭니다. 키보드 조작으로 공을 굴리는 작은 예제에서 시작하여 탄알, UI, 게임 매니저를 만들고 최종 빌드까지 게임 완성에 필요한 모든 부분을 진행합니다. 또한 주기적으로 탄알 생성을 반복하는 방법, 점수를 저장하는 방법을 배웁니다. 플레이어의 입력을 받아 힘과 속도를 제어하는 방법을 배웁니다. 입력 매니저와 시간 간격 같은 기초 개념이 꼭 필요한 이유를 현실 사례로 설명합니다.
4부 : 공간
공간, 속도, 회전을 통제하기 위한 선형대수를 배웁니다. 벡터 수학, 지역 공간과 전역 공간, 회전에 사용되는 쿼터니언을 배우게 됩니다. 비전공자와 선형대수를 따로 공부할 여유가 없는 개발자를 위해 복잡한 증명 과정은 직관적이고 간결한 그림으로 대체했습니다. 또한 수학적 지식을 이론이 아닌 실제 코드를 통해 사용법 위주로 빠르게 이해합니다.
5부 : 2D 러너 게임 - 유니런
발판이 무한 랜덤 생성되는 2D 러너 게임을 개발합니다. 2D 애니메이션을 만드는 방법, 캐릭터의 상황에 따라 적절한 애니메이션을 재생하는 방법을 배웁니다. 오브젝트 풀링을 구현하여 배경과 장애물을 무한 반복 배치하는 방법을 배웁니다. 또한 디자인 패턴 중 하나인 싱글턴을 직접 구현하고 사용합니다.
6부 : 탑다운 슈터 게임 - 좀비 서바이버
몰려오는 인공지능 좀비들을 총으로 쏘는 탑다운 슈터 게임을 제작합니다. IK와 애니메이션 마스크를 구현합니다. 점수와 인공지능 적 소환 시스템과 인게임 UI를 만듭니다. 유니티의 내비게이션 시스템을 사용하여 인공지능을 구현하며, 레이캐스트로 정확한 탄알 충돌을 구현합니다.
C# 인터페이스, 이벤트, 람다 표현식을 사용하여 플레이어와 인공지능 적의 대미지 처리 코드를 간결하게 줄이는 방법을 배우게 됩니다. 후처리를 사용하여 영상미를 구현합니다.
7부 : 네트워크 협동 게임 - 좀비 서바이버 멀티플레이어
싱글플레이어 전용 좀비 게임을 멀티플레이어 협력 게임으로 포팅합니다. API와 상관없이 모든 종류의 네트워크 게임에 공통적으로 필요한 이론을 배웁니다. 포톤을 사용해 로비와 매치메이킹 시스템, 플레이어 사이의 동기화를 구현합니다. 동기화 절차와 클라이언트와 호스트, 로컬과 리모트, 조작 권한을 배웁니다.
부록
[ 추천사 ]
“유니티에 매력을 느끼고, 게임 프로그래밍을 이해하고 자신만의 게임을 개발하고 싶은 사람에게 꼭 추천합니다. 단순한 따라 하기가 아니라 코드의 모든 부분을 이해하고 온전히 내 것으로 만들고 싶은 사람에게 꼭 추천합니다. 게다가 비전공자를 위해 쓰인 만큼, 프로그래머와 협력해야 하는 다른 직군의 게임 개발자에게도 추천할 만한 책입니다.”
_오지현 / 유니티 코리아, 리드 에반젤리스트
“책 끝에 언급했듯이 피카소는 ‘위대한 예술가는 훔친다’고 했습니다. 여러분은 이 책에서 훔칠 가치가 있는 많은 것을 찾을 겁니다. 그러니 레오나르도 다빈치와 같이 창작자의 숲에서 우뚝 선 나무를 꿈꾼다면 이 책이 그 위대한 씨앗을 안겨줄 겁니다.”
_서덕영 / 경희대학교 소프트웨어융합대학, 게임 트랙 교수
“유니티에 처음 입문하는 사람도 쉽게 이해하며 따라 할 수 있어서 좋았습니다. 기초 정보를 학습하고 나서 4가지 게임을 개발하면서 유니티 엔진을 명확히 이해하게 되었습니다. 세심한 코드 설명으로 C#도 자연스럽게 익힐 수 있었습니다. 유니티를 책 한 권으로 끝내고 싶은 유니티 입문자 및 게임 개발자에게 이 책을 강력히 추천합니다.”
_문주현 / 알리미프로, 안드로이드 개발자
“이 책은 유니티로 실제 게임을 구현하면서 유니티에 대한 이해와 게임 제작 방법을 익히게 도와줍니다. 특히 많은 그림으로 기본 개념을 쉽게 설명하고 있어 유니티를 처음 배우거나 게임 개발 프로세스를 알고 싶은 입문자에게 많은 도움을 줄 거라 생각합니다.”
_이민우 / 스마일게이트, 클라이언트 개발자
“하나하나 따라 하다 보면 어느새 게임이 완성되고, 중요한 핵심을 파악할 수 있는 구성이 좋았습니다. 유니티 입문하기에 아주 좋은 책입니다.”
_Darkttd / 전직 게임 개발자
“이 책은 단순히 따라 하면서 그럴듯한 게임을 만드는 것으로 끝이 아니라 기초부터 개념을 다지면서 유니티 각각의 기능을 설명해줍니다. 그래서 이 책을 읽고 나면 누구든 자신만의 게임을 유니티로 구현할 수 있게 될 겁니다.”
_이수연 / 경희대학교 게임 제작 동아리 retr0 소속
“유니티 트레이너 중에서도 가장 왕성히 활동하고 계신 제민 님이 오랜 기간에 걸쳐 집필하신 책입니다. 기초부터 실제 게임이 유니티 엔진에서 어떻게 돌아가는지 제대로 배워 자신감을 얻게 될 겁니다.”
_고양이매니저 / 독립 게임 개발자
“초보자도 정독하면 자신만의 게임을 만들 수 있게 하는 마법과 같은 책입니다. 무엇보다 게임을 만드는 과정에서 게임의 로직과 동작 방식을 일목요연하게 파악할 수 있어 큰 도움이 됩니다. 만약 유니티를 어떻게 시작해야 할지 망설이는 개발자가 있다면 이 책이 그 방향을 알려줄 겁니다.”
_김종욱 / 네이버, 서버 및 시스템 개발자
“게임 개발은 매우 흥미로운 영역입니다. 그러나 소프트웨어 개발자도 게임 개발은 어떻게 시작해야 하는지 막막한 경우가 많습니다. 이 책은 전공자가 아니라도 게임 개발에 입문할 수 있는 길잡이 역할을 해주고 있습니다. 특히 멀티플랫폼에서 동작하는 유니티를 기반으로 하므로 추후 확장성이 무궁무진합니다. 게임 개발에 관심이 있었다면 이 책을 펼치길 추천해드립니다.”
_서준수 / LG전자, 안드로이드 개발자
유니티 게임을 안드로이드와 iOS로 빌드하는 방법을 배웁니다.