리틀 오리온 엔진
AAA 비디오 게임 개발 석사 학위 중에 개발 된 C ++ 3D 엔진

하이라이트
- 장면을 생성, 저장 및로드합니다.
- 구성 요소 시스템을 사용하여 GameObjects를 만들고 동작을 수정하십시오.
- Unity와 같은 카메라를 사용하여 장면을 탐색하십시오.
- 다른 엔진 속성 구성 : 렌더러, 시간 관리, ...
설치
- 릴리스 섹션에서 마지막 릴리스 (또는 원하는 릴리스)를 다운로드하십시오.
-
Build.zip 추출. -
LittleOrionEngine.exe 실행하십시오.
용법
엔진 사용 방법을 배우려면 위키를 참조하십시오.
개발 설정
그렇게하려면 다음이 있음을 확인하십시오.
- 컴퓨터.
- OpenGL 지원이있는 그래픽 카드.
- VisualStudio 2017 이상.
기여
이것은 학업 프로젝트이기 때문에이 리포지기에 직접 기여할 수 없습니다. 그 말을 자유롭게 포크하고 (https://github.com/unnamed-company/littleorionengine/fork) 자신의 방식으로 확장하십시오!
저자
마리오 페르난데스 빌랄 바
| Anabel Hernández Barrera
| Enrique Alexandre González Sequeira
| Joan Ginard Mateo
| 요르디 사우라스
| 요르디 로마 고사
| 토니 페라리 후안
|
루이스 모야 노
| 마르코 로드리게즈
| Artemis Georgakopoulou
| Pau Casas Garcia
| Raúl González
| 리카드 비비
| 비달 멜로
|
개발 방법론
이 프로젝트는 민첩한 방법론 철학에 따라 개발되었습니다. 작업 배포를 알고 싶다면 주저하지 말고 Trello 보드를 방문하십시오!
구축
- SDL 2.0- 창 생성 및 입력을 관리하는 데 사용됩니다.
- GLEW 2.1.0- OpenGL 확장을 관리하는 데 사용됩니다.
- Mathgeolib 3.0.0- 수학을하는 데 사용됩니다.
- Dear Imgui 1.73- GUI를 구축하는 데 사용됩니다.
- Imgui FileBrowser- imgui로 파일 디렉토리를 열는 데 사용됩니다.
- 악마 1.8- 이미지를로드하는 데 사용됩니다.
- Assimp 5.0- 3D 모델을로드하는 데 사용됩니다.
- Font Awesome 5- 멋진 아이콘을 표시하는 데 사용됩니다.
- 아이콘 글꼴 CPP 헤더 - C ++에서 글꼴 멋진 아이콘을 가져 오는 데 사용됩니다.
- PCG- C ++에서 양호한 랜덤 숫자를 생성하는 데 사용됩니다.
- RapidJson 1.1.0- JSON 파일을 처리하는 데 사용됩니다.
- 디버그 드로우 - 기본 모양을 그리는 데 사용됩니다.
- PAR_SHAPES- 기본 프리미티브를 생성하는 데 사용됩니다.
- Imguizmo- 기즈모를 그리는 데 사용됩니다.
- Physfs 3.0.2- 파일 시스템을 관리하는 데 사용됩니다.
- 총알 물리학 - 물리를 시뮬레이션하는 데 사용됩니다.
- spdlog- 물건을 기록하는 데 사용됩니다.
특허
이 프로젝트는 MIT 라이센스에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 참조하십시오.
릴리스 기록
- [1.0.1] 버그와 연마의 잘못
- 많은 버그 수정.
- 최상의 사용자 경험을 제공하기 위해 컨트롤을 조정했습니다.
- 자원을로드 할 때 성능 향상.
- [1.0.0] v1.0.0 릴리스가 여기에 있습니다!
- 메쉬 재료. 메시에는 자체 자료가 있으며 다양한 텍스처와 조명 매개 변수를 저장합니다.
- 장면의 광원을 나타내는 새로운
ComponentLight . 메쉬 재료를 따라 사용됩니다. - 마우스 따기. 장면 창에서 게임 객체를 클릭하면 게임 객체를 선택할 수 있습니다.
- 기즈모. 선택한 객체의 변환을 수정하는 데 사용됩니다.
- [0.2.2] 이진 파일 및 장면 직렬화
- 더 나은 자원 관리.
- 자산은 공간 소비 형식으로 변환됩니다.
- 자원의 복제를 피하는 새로운 캐시.
- 장면의 직렬화로 장면을로드 및 저장할 수 있습니다.
- [0.2.1] 엔진 속도를 높이십시오!
- 새로운 모듈 modulecamera. 여기에는 gameobjects에 부착 될 수있는 카메라 frustum이 포함되어 있습니다.
- 두 개의 새로운 탭, 장면 및 게임. 전자는 편집기 카메라에서 본 장면을 포함하고 나중에는 게임 카메라에서 보이는 장면이 포함되어 있습니다.
- Frustum Culling. 이 개선으로 카메라 외부의 메시는 렌더 프로세스에서 폐기됩니다.
- 카메라 클리어 모드. 카메라는 스카이 박스 또는 일반 색상으로 지울 수 있습니다.
- 텍스처는 OpenGL 프리미티브 대신 텍스처를 사용하여 렌더링됩니다.
- 쿼드 트리와 옥트리. 이러한 개선으로 수표 수를 줄임으로써 렌더 프로세스의 속도를 높일 수 있습니다.
- 새로운 모듈 moduledebug. 유용한 디버그 기능이 포함되어 있습니다.
- [0.2.0] 그리고 GameObjects가있었습니다
- GameObjects가 들어옵니다. 각 GameObject는 구성 요소를 사용하여 수정할 수있는 엔티티를 나타냅니다.
- 구성 요소는 메시, 재료 등과 같은 다른 엔티티 부품을 포함하는 객체입니다.
- 장면 GameObject 계층 구조를 나타내는 새로운 계층 창.
- 개정 된 속성 창. 여기서 구성 요소 매개 변수를 수정할 수 있습니다.
- [0.1.5] 최종 0.1 버전 (이것은 교사입니다)!
- 다양한 버그를 수정했습니다.
- 좋은 C ++ 관행을 따르기 위해 몇몇 리팩터.
- 슈퍼 멋진 readme.
- [0.1.4] 새로운 로그, 최종 0.1 알파 버전 준비!
- 개선 된 로그. 더 명확하고 읽기 쉬운 방식으로 메시지를 표시합니다.
- 디버그 메시지는 Assimp 및 OpenGL에서 캡처됩니다.
- Soruce의 메시지 필터!
- PNG 파일을 엔진 창에 드래그하고 삭제하는 모델 텍스처를 덮어 쓸 수 있습니다.
- [0.1.3] 와우 UI, 너무 많은 구성 옵션
- 새로운 화려한 gui.
- 다른 모듈에 대한 많은 새로운 구성 옵션 (카메라, 렌더, ...).
- 장면은 별도의 창에 렌더링됩니다.
- 모델 속성은 새 창에 표시됩니다.
- 로드 된 모델 크기와 관련하여 카메라 속도와 초점이 계산됩니다.
- [0.1.2] 시간이 흐르기 시작하여 지평선에서 새로운 GUI 쇼를 임박합니다 ...
- 시간 흐름을 제어하는 시간 모듈이 추가되었습니다. 실시간 시계와 게임 시계의 두 시계를 구현합니다.
- 시간을 일시 중지하고 한 번의 프레임을 밟을 수 있습니다. 또한 시간 규모가 변경 될 수 있습니다.
- FPS는 제한 될 수 있습니다.
- GUI의 새로운 구현을 시작했습니다. 카메라 구성에 몇 가지 새로운 정보가 추가되었습니다.
- [0.1.1] 이것은 모델 로딩과 카메라에 관한 것입니다
- 개선 된 모델 로딩. .FBX 파일을 엔진 창으로 끌고 삭제하는 모델을로드 할 수 있습니다. 카메라는 새로운 모델 차원에 따라 스케일링됩니다.
- 개선 된 카메라 컨트롤. F를 누르면로드 된 모델에 카메라를 집중시킵니다. 또한 ALT를 누르면 현재 모델 주변의 카메라 궤도가됩니다.
- 경계 상자가 추가되었습니다. B를 누르면 현재 모델의 경계 상자를 활성화/비활성화합니다.
- [0.1.0] 여기에 기본 버전이 온다!
- 확산 텍스처를 사용하여 FBX 파일의 모델을로드 할 수 있습니다.
- 카메라는 Unity와 같은 스타일로 제어 할 수 있습니다.
- 엔진에는 여러 구성 및 디버그 옵션이있는 기본 UI가 있습니다.