Coding Feature.

SFML 게임 제작 공부 #1. 시작, SFML에 대해서. 본문

Game Development/SFML 게임 제작 공부

SFML 게임 제작 공부 #1. 시작, SFML에 대해서.

codingfeature 2023. 9. 2. 16:05

예전에 게임을 만들어보고 싶어서 Unity 게임 엔진을 조금 공부해보았다.

Unity를 통해 게임을 만드는 것은 확실히 편하고 생산성이 뛰어나지만 게임 제작에 대해서 단순히 개발 뿐만 아니라

공부를 하는 입장에서, 개발하는 일의 일부를 엔진에게 전가하는 느낌이 들어 내가 직접 게임을 만들고 있다는 느낌이 들지 않았다. 그리고 게임 엔진이 하는 일이 무엇인지 좀 더 깊게 파보고 싶다는 생각이 들었다.

 

최근에 운좋게 SFML이라는 훌륭한 C++ 멀티미디어 라이브러리를 발견하게 되어 이 참에 게임을 만드는 과정을 가능한 한 바닥부터 하드코딩하여 전체적인 Game Design과 Flow를 공부해보고 싶다는 생각을 했다.

 

예를 들어 Unity에서처럼 Scene, Sprite 등을 관리하는 manager를 직접 만들거나, RigidBody와 같은 물리적 기능을 직접 구현하는 법을 배우는 것이다.

 

이를 통해 다음과 같은 효과를 기대해본다.

- 게임 프로그램이 실행되는 Flow를 완벽히 이해한다.

- 게임을 만드는 데 사용되는 여러 Software Design을 이해한다.

- 게임 요소(Sprite, Texture, Physics, Scene 등)와 이를 관리하는 Manager를 직접 구현한다.

- 게임 성능 측면에서의 최적화(메모리, 속도 등)를 이해한다.

- 기획한 게임을 만들기 위해 그에 맞는 게임 엔진을 직접 제작할 수 있다.

- 다양한 그래픽 API(Direct X, OpenGL 등)를 다룰 수 있다.

- etc.

 

우선 SFML에 대해서 알아보았다.

https://ko.wikipedia.org/wiki/SFML

 

SFML - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. SFML(Simple and Fast Multimedia Library)은 컴퓨터의 다양한 멀티미디어 구성 요소에 단순한 API를 제공하기 위해 설계된 크로스 플랫폼 소프트웨어 개발 라이브러리이다

ko.wikipedia.org

 

SFML란, 

SFML(Simple and Fast Multimedia Library)은 컴퓨터의 다양한 멀티미디어 구성 요소에 단순한 API를 제공하기 위해 설계된 크로스 플랫폼 소프트웨어 개발 라이브러리이다. (출처 - 위키백과)

 

SFML 은 기본적으로 다음 5가지 멀티미디어 모듈을 제공한다.

- System

- Window

- Graphics

- Audio

- Network

 

기본 언어는 C++이므로 객체 지향 프로그래밍이 가능하고, 컴파일 언어이므로 성능이나 디버깅 측면에도 우수해 여러모로 게임을 만들거나 개발 공부를 하는데 좋은 라이브러리인 것 같다.

 

그 다음 공부에 필요한 학습자료들을 찾아보았다.

 

1. 

https://youtube.com/playlist?list=PL_xRyXins848nDj2v-TJYahzvs-XW9sVV&si=S6D8vY5wxVI7Gj0x 

 

COMP 4300 - C++ Game Programming - Fall 2022

 

www.youtube.com

사실 위 영상들을 통해 처음 SFML을 알게 되었다.

Dave Churchill 교수님의 2022년 가을 학기 "COMP4300 : Introduction to Game Programming" 이라는 대학 온라인 강의 재생목록인데, 교수님 강의력도 정말 좋고 게임 제작에 대한 근본적인 개념을 짚고 넘어가기 때문에 매우 훌륭한 강의라고 생각한다.

하지만 교수님이 남긴 댓글에 따르면 1년마다 강의가 새로 업데이트 된다고 하므로 나중에 새로운 강의가 나왔을 때 새로운 재생목록으로 수정해야할 수도 있겠다.

 

2. 

https://youtube.com/playlist?list=PLRtjMdoYXLf4L0UVTggZdTV55baO6x6CO&si=4UD7J0RWLMsDAxDP 

 

Tic-Tac-Toe SFML Tutorial Series

 

www.youtube.com

 

영상 길이도 짧고 별다른 추가 설명없이 대부분 코딩만 하기 때문에 지식적인 측면에서는 새로운 것을 얻기에는 힘들 수도 있겠으나 내가 직접 코딩해보면서 스스로 지식을 쌓기에는 시간 대비 좋을 것 같아서 선택했다.

다만 아쉬운 점은 중력 구현과 같은 2D Physics 내용이 없다는 것이다. 이는 추후 다른 교재를 통해서 공부해보기로 한다.

 

3.

https://www.yes24.com/Product/Goods/43737771

 

[전자책]SFML Game Development By Example - 예스24

Create and develop exciting games from start to finish using SFMLAbout This Book? Familiarize yourself with the SFML library and explore addition...

www.yes24.com

공식 SFML 페이지에 소개되어있는 책으로 Ebook으로 구입할 수 있었다.