raylib

raylib
raylib
개발자라몬 산타마리아와 기여자들
최초출시2013년 11월 18일; 10년(2013-11-18)
안정적인 방출
5.0.0 / 2023년 11월 18일; 58일(2023-11-18)
저장소github.com/raysan5/raylib
작성자C, 구체적으로는 C99
플랫폼윈도우, 리눅스, macOS, FreeBSD, Android, Raspberry Pi, HTML5
유형API
면허증.zlib 라이센스[1][2]
웹사이트www.raylib.com

Raylib(레이립)은 크로스 플랫폼 오픈 소스 소프트웨어 개발 라이브러리입니다. 도서관은 그래픽 애플리케이션과 게임을 만들기 위해 만들어졌습니다.[3][4]

이 라이브러리는 Borland BGI 그래픽 라이브러리XNA 프레임워크에서 영감을 받았으며 프로토타이핑, 툴링, 그래픽 애플리케이션, 임베디드 시스템 및 교육에 적합하도록 설계되었습니다. 소스 코드는 zlib/libpng OSI 인증 오픈 소스 라이선스로 배포되는 평문 C(C99)로 작성됩니다. Windows, Linux, macOS, FreeBSD, Android, Raspberry Pi 및 HTML5를 포함한 여러 대상 플랫폼으로의 컴파일을 지원합니다.

raylib는 바인딩의 형태로 50개 이상의 프로그래밍 언어로 이식되었지만 이러한 포트 중 상당수는 안정적이지 않습니다.[5]

역사

Ramon Santamaria는 2013년 8월에 Raylib 개발을 시작했는데, 이는 이전의 코딩 경험과 예술적 프로필이 없는 학생들에게 초점을 맞춘 게임 개발 과정을 지원하기 위한 것입니다. 이 과정에서 학생들의 피드백을 기반으로 레이립이 더욱 발전되었고 2014년 6월까지 도서관은 바르셀로나에서 여러 게임 개발 행사에서 선보이기 시작했습니다.

raylib 1.0은 2013년 11월에 출시되었으며 창 및 입력 관리, 기본 2D 및 3D 모양 그리기, 텍스처 로딩 및 그리기, 글꼴 로딩, 텍스트 드로잉, 오디오 시스템 관리 및 오디오 파일 로딩 및 재생을 위한 약 80개의 기능을 갖추고 있습니다. 첫 번째 레이립 버전은 5년 동안 8개의 후속 마이너 릴리스(레이립 1.1에서 레이립 1.8까지)가 있었고, 각각은 몇 가지 새로운 기능을 도입했습니다. 가장 눈에 띄는 개선 사항은 Android, WebAssemblyRaspberry Pi 지원, 여러 OpenGL 백엔드, VR 지원 및 10가지 예시였습니다.

raylib 2.0은 2018년 7월에 출시되었으며 빌드 시스템에서 모든 외부 종속성을 제거했습니다. 또한 빌드 시스템에서 다양한 구성 옵션을 제공하여 크기를 최소화하고 지원을 늘려 다양한 연속 통합 시스템을 지원합니다. 이후 2년 동안 도서관의 일부가 업데이트된 것을 검토하고 생태계를 구축했습니다. 이 기간 동안 단일 마이너 릴리스인 레이립 2.5가 출시되었습니다.

raylib 3.0은 2020년 4월에 출시되었으며, 휴대성과 바인딩을 향상시키기 위해 코드의 많은 부분을 반영했습니다. 여기에는 글로벌 변수를 컨텍스트로 이동하는 작업, 사용자 지정 메모리 할당기 지원, 자산 로드를 위한 파일 시스템 및 115개 이상의 코드 예제가 추가되었습니다. 2020년 12월에 마이너 업데이트인 레이립 3.5를 받았습니다.

raylib 4.0은 2021년 11월에 출시되었으며, 라이브러리 일관성과 일관성을 위한 완전한 명명 검토를 특징으로 합니다: 함수 이름, 매개 변수, 설명, 주석 및 로그 출력 메시지가 검토되었습니다. 내부 이벤트 자동화 시스템을 추가하고 사용자를 위한 게임 루프 컨트롤을 노출했습니다. 또한 독립형 모듈로 사용할 수 있는 일부 내부 라이브러리(rlgl 및 raymath)를 갖추고 있습니다. Zig과 Odin 프로그래밍 언어는 공식적으로 raylib를 지원합니다.

raylib 4.2는 2022년 8월에 출시되었습니다.[6]

레이립 4.5는 지난 출시 이후 7개월 만인 2023년 3월에 출시되었습니다. 이번 업데이트를 통해 데스크톱 플랫폼에서 ANGLE 지원, 새로운 카메라 모듈, M3D 모델 및 M3D/GLTF 애니메이션 지원, QOA 오디오 파일 형식과의 호환성, 압축 텍스처 로딩(rl_gputex)을 위한 새로운 모듈, rlglrshapes 모듈의 리뷰, 데이터 구조 검증(validation),IsImageReady(), IsTextureReady() 그리고. IsSoundReady()) 많은 raylib 구조 및 기타 많은 개선을 위한 것입니다. 지금까지 도서관의 가장 큰 업데이트였습니다.

레이립 5.0은 2023년 11월에 출시되어 향후 플랫폼 포트에 대한 지원이 개선되었습니다.[7]

특징들

raylib는 다음과 같은 기능을 제공합니다.[8][9]

  • Windows, Linux, macOS, Raspberry Pi Android 및 HTML5를 포함한 여러 플랫폼 지원
  • OpenGL 1.1, 2.1, 3.3, 4.3 및 OpenGL 2.0을 백엔드로 지원
  • 여러 형식에서 이미지, 텍스처 및 글꼴 로드 및 드로잉
  • 여러 포맷 및 스트리밍 지원에서 오디오 로드 및 재생
  • 벡터, 행렬, 사분면에 대한 수학 연산
  • 카메라를 사용한 2D 렌더링(자동 스프라이트 배치 포함)
  • 맞춤형 쉐이더 및 후처리 쉐이더를 포함한 3D 모델 렌더링
  • 구성 가능한 HMD 디바이스 파라미터를 사용한 VR 시뮬레이션 지원
  • 애니메이션 및 비애니메이션 3D 및 2D 모델 지원

접수 및 채택

GitHub은 2024년 1월 현재 약 900개의 프로젝트를 나열하고 있습니다. raylib 토픽[10]

소프트웨어 아키텍처

모듈

버전 5.0 기준의 raylib 아키텍처

raylib는 API를 통해 프로그래머에게 노출되는 여러 모듈로 구성됩니다.

  • core – 창 작성 및 OpenGL 컨텍스트 초기화 및 입력 관리(키보드, 마우스, 게임패드 및 터치 입력)를 처리합니다.
  • rlgl – OpenGL 백엔드를 처리하여 여러 버전을 공통 API로 추상화합니다. 이 모듈은 독립형으로 사용할 수 있습니다.
  • 도형 – 기본 2D 도형 렌더링(선, 직사각형, 원...) 및 기본 충돌 감지를 처리합니다.
  • 텍스처 – 이미지 및 텍스처 로드(CPU 및 GPU) 및 이미지 조작 기능(작물, 스케일, 틴트 등)을 포함한 관리 처리
  • text – Spriteheet 및 텍스트 렌더링으로 글꼴 로드를 처리합니다. 또한 일부 텍스트 처리 기능(조인트, 분할, 바꾸기 등)이 포함되어 있습니다.
  • 모델 – 애니메이션 모델 지원을 포함한 3D 모델 로드 및 렌더링 처리
  • 오디오 – 스트리밍 지원을 포함하여 오디오 장치 관리 및 오디오 파일 로드 및 재생을 처리합니다. 이 모듈은 독립형으로 사용할 수 있습니다.
  • raymath – 벡터, 행렬 및 4원수에 대한 수학 함수 집합 제공

제본

raylib는 Rust, Go, C#, Lua, Python, Nim 등 커뮤니티에서 만든 50개 이상의 다양한 프로그래밍 언어에 대한 바인딩을 가지고 있습니다. 바인딩 목록은 raylib GitHub 리포지토리의 BINDINGS.md 파일에서 사용할 수 있습니다.

추가 기능

raylib 커뮤니티는 raylib의 기능과 다른 라이브러리와의 연결을 확장하기 위해 여러 추가 기능을 제공했습니다. 모듈 중 일부는 다음과 같습니다.

  • raygui – raylib용[13] 즉시 모드 GUI 모듈
  • physac – raylib와[14] 함께 사용하도록 설계된 물리 모듈
  • libpartikel – raylib용[15] 입자 시스템 모듈
  • spin-raylib – raylib용[16] spin 애니메이션 통합 모듈
  • cimgui-raylib – dear Imgui integration for raylib[17]

  • 2019년 4월, Santamaria는 Raylib로 오픈 소스 생태계에 기여한 공로로 Google 오픈 소스 피어 보너스 상을 수상했습니다.[18]
  • 2020년 8월, 레이립은 개발을 지원하기 위해 에픽 게임즈로부터 에픽 메가 그랜트를 수상했습니다.[19]
  • 2021년 4월, Santamaria는 같은 이유로 또 다른 구글 오픈 소스 피어 보너스 상을 수상했습니다.[20]
  • 2022년 3월, 레이립은 MOBILE GAMES AWARDS 2022에서 BEST GAME 엔진 부문 후보에 올랐습니다.[21]

참고 항목

참고문헌

  1. ^ "License".
  2. ^ "Raylib GitHub". GitHub. 10 October 2021.
  3. ^ Thomas (2019-08-01). "Best 2D Game Engines: The Complete List (2020)". Thomas Gervraud. Retrieved 2020-07-20.
  4. ^ "A Snake Game Written in PHP (with Raylib)". thephp.website. Retrieved 2020-07-20.
  5. ^ "raysan5/raylib". GitHub. Retrieved 2020-07-15.
  6. ^ "HISTORY.md File". www.github.com. 11 August 2022. Retrieved 15 October 2022.
  7. ^ Wololo (1 December 2023). "Release: Raylib 5.0 for PS4 & PS Vita". Retrieved 15 January 2024.
  8. ^ "raylib–A C++ Game Library Perfect For Beginners". www.gamefromscratch.com. 24 July 2016. Retrieved 2020-07-20.
  9. ^ "Raylib 2.5 Released". www.gamefromscratch.com. 3 June 2019. Retrieved 2020-07-20.
  10. ^ "raylib · GitHub Topics". Retrieved 15 January 2024.
  11. ^ "raylib". Retrieved 2021-10-28.
  12. ^ BINDINGS.md 파일
  13. ^ Ray (2020-07-15), raysan5/raygui, retrieved 2020-07-15
  14. ^ Fisac, Víctor (2020-07-14), victorfisac/Physac, retrieved 2020-07-15
  15. ^ Briemann, David Linus (2020-06-10), dbriemann/libpartikel, retrieved 2020-07-15
  16. ^ WEREMSOFT (2020-06-27), WEREMSOFT/spine-raylib-runtimes, retrieved 2020-07-15
  17. ^ WEREMSOFT (2020-07-12), WEREMSOFT/c99-raylib-cimgui-template, retrieved 2020-07-15
  18. ^ "Google Open Source Peer Bonus winners are here!". Google Open Source Blog. Retrieved 2020-07-15.
  19. ^ "rayLib receives an Epic MegaGrant". GameFromScratch.com. 2020-08-07. Retrieved 2020-08-10.
  20. ^ "Announcing the First Group of Google Open Source Peer Bonus winners in 2021!". Google Open Source Blog. Retrieved 2021-04-27.
  21. ^ "MOBILE GAMES AWARD - The Finalists for 2022". MOBILE GAME AWARDS. Retrieved 2022-03-20.

외부 링크