flow-vector

지금 까지 공부한 내용을 바탕으로 간단한 나만의 게임엔진을 만들어 보기로 하였다.

목적은 어느정도 규모 있는 프로그램을 만들어 보면서 공부한 내용 복습 및 개발 과정에서 발생하는 문제를 해결하면서 새로운 걸 배울 수 있을 것 같기 때문이다.

앞으로 만들 프로그램이 어떤 것인지에 대한 정의를 해보고 어떤 기능을 만들어 볼지 적어보려고 한다.

내가 생각하는 게임 엔진의 기본 기능

  • 특정 파일의 데이터를 불러와 프로그램 내부에서 정의한 자료구조에 저장한다.
    • 파일 i/o
  • 저장된 데이터 형식에 알맞은 처리를 한여 모니터에 그린다.
    • 렌더러 기능
  • 실시간으로 사용자와 소통하여 화면에 그려진 물체가 변환 되어야함
    • event 처리 기능

구현 목표

  1. 수학 라이브러리와 obj, png파일 로더 구현
    • 이미 훌륭한 라이브러리는 존재하지만 학습을 목표로 간단하게 구현해 본다
    • 추후 상용 라이브러리로 대체할 계획이기 때문에 인터페이스는 사용라이브러리와 동일하게 구현 한다.
  2. 크로스 플랫폼을 위한 그래픽 API, window API, GUI API 추상화
    • openGL을 그래픽 API로 사용하되 한번 더 추상화된 인터페이스를 구현하여 추후 direct3D 추가하는 것이 목표
  3. AppLayer와 WindowLayer를 나눠서 구현
    • AppLayer
      • 메인 로직 및 추가될 기능들
    • WindowLayer
      • 사용자 input, event 처리

꼭 지켜보고 싶은 점

우선 간단한 렌더러를 시작으로하여 계속 새로운 기능을 붙여 나가고 크로스 플랫폼을 계획 하고 있기 때문에 아래 한가지는 꼭 유념하면서 개발해 보려고 한다.

  • 확장 가능성 있는 코드를 작성하자
    • 객체지향적인 코드 작성

'Project > GameEngine' 카테고리의 다른 글

프로젝트 셋팅 - 진행 시 규칙  (0) 2024.01.25
상용 엔진 구조 분석 - Godot Engine  (0) 2023.12.31
profile

flow-vector

@flow-vector

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!