강의/C언어 게임 만들기

C언어로 게임 만들기 - 시작

moon44432 2020. 11. 10. 20:45

반갑습니다! C언어를 활용하여 간단한 윈도우 콘솔용 게임을 제작하는 방법을 알아봅시다.

기본적으로 저의 예전 블로그에 올렸던 강의를 재구성하고 오류를 고쳐 재업로드할 예정입니다. 강의가 아직 완결되지 않았으므로 남은 부분은 이곳에서 완성할 것입니다.
blog.naver.com/PostList.nhn?blogId=moon44432&from=postList&categoryNo=175 에서 아직 옮기지 못한 부분을  미리 읽어볼 수 있습니다. 


간단한 강의 소개

C언어를 이용하여 텍스트 터미널(윈도우 콘솔 등) 상에서 실행되는 간단한 탑뷰 슈터 게임을 만들어 봅시다.

강의 순서

0. 개발 환경 설정하기
1. 기초 & 플레이어 움직이기

​(1) 기초 함수들
(2) 플레이어 움직이기
2. 시분할
​(1) 시분할이란?
(2) 필자가 만든 프로그램
(3) 시분할 구현
(4) 키 입력 함수 바꾸기
3. 적 플레이어 만들기
​(1) 적 플레이어 생성
(2) 적 플레이어 움직이기
4. 적과 플레이어의 상호 작용
​(1) 적 공격하기
(2) 적이 플레이어를 공격하게 하기
5. 기초적인 시스템
​(1) 점수 시스템
(2) 메인 메뉴 및 UI

이 부분을 쓰는 현재 3-(1)까지만 쓰인 상태입니다. 이후의 부분은 이 블로그에만 업로드할 예정입니다.

대상자

C언어의 기초 문법 (제어문, 반복문, 함수, 구조체 등)을 조금이라도 알고 있는 사람

배운 내용으로 시각적인 결과물을 만들어 보고 싶은 사람

게임의 매우 기초적인 로직을 만들어 보고 싶은 사람

C언어와 윈도우 콘솔을 사용하는 이유

요즈음은 초보자도 쉽게 게임을 개발할 수 있는 환경이 잘 마련되어 있습니다. Unity나 언리얼 엔진을 사용하여 처음부터 3D 게임에 입문할 수도 있고, Cocos2d 등 좋은 2D 게임엔진으로 입문할 수도 있습니다. 본 강의는 그러한 고급 툴과 라이브러리를 일체 사용하지 않고, C언어와 윈도우 콘솔 (즉 텍스트 환경)만을 이용하여 아무것도 없는 상태에서 하나씩 구현해 나갈 것입니다. 그래픽 면에서 좀 더 화려한 게임을 만들고 싶거나, 바닥부터 게임을 만드는 것이 지루하다면 다른 강의를 따라하는 것도 좋은 선택입니다.

굳이 윈도우 콘솔에서 구현하는 이유는 이 방법이 꽤 전통적이고, 눈에 익숙하고, 게임의 로직을 백지 상태에서 일일히 구현하기에 좋은 환경이기 때문입니다. 다들 프로그래밍에 입문할 때 윈도우 콘솔을 비롯한 다양한 형태의 텍스트 환경을 접해 보았을 것입니다. 아시다시피, 기본적인 함수나 메서드가 충실하게 구현된 환경과는 다르게, 이러한 텍스트 환경에서 게임을 개발하려면 이동, 충돌 처리, UI, 색깔, 심지어는 내가 원하는 좌표에 무언가를 출력하는 기능까지 하나하나 구현해야 합니다. 처음에는 복잡하다고 느낄 수 있지만 하나씩 따라하다 보면 좋은 연습의 기회가 될 것입니다. 가장 낮은 레벨의 기능부터 스스로 구현해야 하므로, 제멋대로 개조가 쉽다는 점은 덤입니다.

C를 선택한 이유는 필자에게 가장 익숙한 언어이기도 하지만, 굉장히 널리 사용되고 배워둘 가치가 있는 언어이기 때문입니다. 사실 최근 게임 개발에서 C만을 사용하는 경우는 드뭅니다. (게임 개발만을 목적으로 한다면 C# 등 다른 언어를 많이 선택합니다.) 그러나 C는 여전히 가장 범용적인 언어 중 하나이므로, 익혀 두면 여러 상황에서 쓸모가 많습니다. 게다가 여러분이 학교나 학원에서 자주 마주칠 언어이기도 하고요. 본 강의를 통해 C언어를 접해 보거나, C언어를 통해 직접 눈에 보이는 결과물을 만드는 경험을 해 보길 바랍니다.