반응형
개발 환경 설정
게임 개발을 시작하기 위해서는 먼저 개발 환경을 설정해야 합니다. 오늘은 Visual Studio와 CMake를 사용하여 SFML과 SDL을 설치하고 설정하는 방법을 학습하겠습니다.
1. Visual Studio 설치 및 설정
- Visual Studio 설치:
- Visual Studio는 강력한 C++ 개발 환경을 제공합니다. Visual Studio 다운로드 페이지에서 설치 파일을 다운로드하고 설치합니다.
- 설치 중 "Desktop development with C++" 워크로드를 선택합니다.
- 새 프로젝트 생성:
- Visual Studio를 실행하고, "Create a new project"를 선택합니다.
- "Empty Project"를 선택하고, 프로젝트 이름과 위치를 지정한 후 "Create"를 클릭합니다.
2. CMake 설치 및 설정
- CMake 설치:
- CMake 공식 사이트에서 CMake를 다운로드하고 설치합니다.
- CMake 설정:
- 설치 후, Visual Studio에서 CMake 프로젝트를 생성할 수 있습니다. "Create a new project"에서 "CMake Project"를 선택합니다.
3. SFML 설치 및 설정
- SFML 다운로드:
- SFML 공식 사이트에서 Windows용 SFML을 다운로드합니다.
- SFML을 압축 해제하고, 적절한 위치에 저장합니다.
- SFML 프로젝트 설정 (Visual Studio):
- Visual Studio에서 새 프로젝트를 열고, 프로젝트 속성에서 다음을 설정합니다:
- C/C++ -> General -> Additional Include Directories: SFML의
include
디렉토리를 추가합니다. - Linker -> General -> Additional Library Directories: SFML의
lib
디렉토리를 추가합니다. - Linker -> Input -> Additional Dependencies: SFML의 라이브러리를 추가합니다. 예:
sfml-graphics.lib
,sfml-window.lib
,sfml-system.lib
- C/C++ -> General -> Additional Include Directories: SFML의
- Visual Studio에서 새 프로젝트를 열고, 프로젝트 속성에서 다음을 설정합니다:
- SFML 프로젝트 설정 (CMake):
CMakeLists.txt
파일을 다음과 같이 설정합니다:
cmake_minimum_required(VERSION 3.10)
project(MySFMLProject)
set(CMAKE_CXX_STANDARD 17)
# SFML 경로 설정
set(SFML_DIR "path/to/SFML/lib/cmake/SFML")
# SFML 찾기
find_package(SFML 2.5 COMPONENTS graphics window system REQUIRED)
# 실행 파일 생성
add_executable(MySFMLProject main.cpp)
# SFML 라이브러리 링크
target_link_libraries(MySFMLProject sfml-graphics sfml-window sfml-system)
4. SDL 설치 및 설정
- SDL 다운로드:
- SDL 공식 사이트에서 Windows용 SDL2를 다운로드합니다.
- SDL2를 압축 해제하고, 적절한 위치에 저장합니다.
- SDL 프로젝트 설정 (Visual Studio):
- Visual Studio에서 새 프로젝트를 열고, 프로젝트 속성에서 다음을 설정합니다:
- C/C++ -> General -> Additional Include Directories: SDL2의
include
디렉토리를 추가합니다. - Linker -> General -> Additional Library Directories: SDL2의
lib
디렉토리를 추가합니다. - Linker -> Input -> Additional Dependencies: SDL2의 라이브러리를 추가합니다. 예:
SDL2.lib
,SDL2main.lib
- C/C++ -> General -> Additional Include Directories: SDL2의
- Visual Studio에서 새 프로젝트를 열고, 프로젝트 속성에서 다음을 설정합니다:
- SDL 프로젝트 설정 (CMake):
CMakeLists.txt
파일을 다음과 같이 설정합니다:
cmake_minimum_required(VERSION 3.10)
project(MySDLProject)
set(CMAKE_CXX_STANDARD 17)
# SDL2 경로 설정
set(SDL2_DIR "path/to/SDL2")
# SDL2 찾기
find_package(SDL2 REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
# 실행 파일 생성
add_executable(MySDLProject main.cpp)
# SDL2 라이브러리 링크
target_link_libraries(MySDLProject ${SDL2_LIBRARIES})
예제 코드
SFML 예제
#include <SFML/Graphics.hpp>
int main() {
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML Works!");
while (window.isOpen()) {
sf::Event event;
while (event.pollEvent(event)) {
if (event.type == sf::Event::Closed) {
window.close();
}
}
window.clear();
// Draw something here
window.display();
}
return 0;
}
SDL 예제
#include <SDL.h>
int main(int argc, char* argv[]) {
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
return -1;
}
SDL_Window* window = SDL_CreateWindow("SDL Works!",
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
800, 600,
SDL_WINDOW_SHOWN);
if (!window) {
SDL_Quit();
return -1;
}
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (!renderer) {
SDL_DestroyWindow(window);
SDL_Quit();
return -1;
}
SDL_Event event;
bool running = true;
while (running) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
running = false;
}
}
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
// Draw something here
SDL_RenderPresent(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
결론
개발 환경을 설정하고 간단한 SFML 및 SDL 프로젝트를 만들어보았습니다. 이를 통해 게임 개발의 기본적인 환경 설정을 이해할 수 있었습니다. 질문이나 추가적인 피드백이 있으면 언제든지 댓글로 남겨 주세요. 내일은 "Day 4: 첫 번째 게임 프로젝트: 간단한 2D 게임 만들기 (1)"에 대해 학습하겠습니다.
반응형
'-----ETC----- > C++ 게임 개발 시리즈' 카테고리의 다른 글
[C++ 게임 개발 시리즈] Day 4: 첫 번째 게임 프로젝트: 간단한 2D 게임 만들기 (1) (0) | 2024.08.01 |
---|---|
[C++ 게임 개발 시리즈] Day 5: 첫 번째 게임 프로젝트: 간단한 2D 게임 만들기 (2) (0) | 2024.08.01 |
[C++ 게임 개발 시리즈] Day 2: 게임 개발 도구와 엔진 소개 (Unreal, Unity, SFML, SDL) (0) | 2024.08.01 |
[C++ 게임 개발 시리즈] Day 1: 게임 개발 개요와 역사 (0) | 2024.08.01 |
[C++ 게임 개발] 목차 (0) | 2024.06.20 |