본문 바로가기
-----ETC-----/C++ 게임 개발 시리즈

[C++ 게임 개발 시리즈] Day 3: 개발 환경 설정 (Visual Studio, CMake, SFML/SDL 설치)

by cogito21_cpp 2024. 8. 1.
반응형

개발 환경 설정

게임 개발을 시작하기 위해서는 먼저 개발 환경을 설정해야 합니다. 오늘은 Visual Studio와 CMake를 사용하여 SFML과 SDL을 설치하고 설정하는 방법을 학습하겠습니다.

1. Visual Studio 설치 및 설정

  1. Visual Studio 설치:
    • Visual Studio는 강력한 C++ 개발 환경을 제공합니다. Visual Studio 다운로드 페이지에서 설치 파일을 다운로드하고 설치합니다.
    • 설치 중 "Desktop development with C++" 워크로드를 선택합니다.
  2. 새 프로젝트 생성:
    • Visual Studio를 실행하고, "Create a new project"를 선택합니다.
    • "Empty Project"를 선택하고, 프로젝트 이름과 위치를 지정한 후 "Create"를 클릭합니다.

2. CMake 설치 및 설정

  1. CMake 설치:
  2. CMake 설정:
    • 설치 후, Visual Studio에서 CMake 프로젝트를 생성할 수 있습니다. "Create a new project"에서 "CMake Project"를 선택합니다.

3. SFML 설치 및 설정

  1. SFML 다운로드:
    • SFML 공식 사이트에서 Windows용 SFML을 다운로드합니다.
    • SFML을 압축 해제하고, 적절한 위치에 저장합니다.
  2. 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
  3. 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 설치 및 설정

  1. SDL 다운로드:
    • SDL 공식 사이트에서 Windows용 SDL2를 다운로드합니다.
    • SDL2를 압축 해제하고, 적절한 위치에 저장합니다.
  2. 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
  3. 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)"에 대해 학습하겠습니다.

반응형