경량 Java 게임 라이브러리

Lightweight Java Game Library
경량 자바 게임 도서관(LWJGL).
LWJGL logo.svg
오리지널 author(s)캐스피언 왕자
Developer(s)요안 니스 Tsakpinis
초기 석방42007년 2월;15년 전(2007-02-04)[1].
안정적인 석방
3.3.1/2월 21일 2022년, 5개월 전에(2022-02-21).
기록관github.com/lwjgl
로 쓰여져 있다.자바, C, Kotlin[2][3]
시스템을 관리하는 것Windows, 리눅스, OSX
플랫폼자바 플랫폼
유형무료 컴퓨터 라이브러리
면허증.BSD,[4] 다른[2] 라이선스에 의한 일부 바인딩
웹 사이트lwjgl.org

Lightweight Java Game Library(LWJGL)는 비디오 게임 개발자를 위해 Java에 대한 다양한 C 라이브러리에 바인딩을 제공하는 오픈 소스 소프트웨어 라이브러리입니다.Vulkan, OpenGL, OpenALOpenCL과 같은 비디오 게임 및 멀티미디어 타이틀 개발에 일반적으로 사용되는 크로스 플랫폼 라이브러리를 제공합니다.

이 프로젝트의 주요 목표는 Java 개발자가 기존 Java 플랫폼에서 사용할 수 없거나 제대로 구현되지 않은 리소스에 액세스할 수 있는 방법을 제공하는 것입니다.기본 기술을 얇은 래퍼로 노출하여 원본에 가까운 API를 만드는 것이 주요 철학입니다.또한 libGDX 또는 jMonkeyEngine과 같은 많은 고급 Java 게임 엔진과 라이브러리의 기반이기도 합니다.

역사

라이브러리 개발은 2002년 J2SE 1.4 출시와 함께 새롭게 추가된 논블로킹 I/O 작업과 오프히프 메모리 액세스를 이용하여 시작되었습니다.JDK에 이러한 추가 기능을 통해 JDK의 일부가 아닌 네이티브 메모리와 라이브러리에 보다 효율적으로 액세스할 수 있습니다.도서관의 첫 공식 발매는 2007년 [1]2월 4일이었다.

2014년 11월 13일 버전 3이 발표되었으며 2015년 4월 27일 알파 버전으로 출시되었으며 LWJGL을 완전히 [5][6][7]다시 쓴 것입니다.GLFW, EGLObjective-C를 포함한 많은 새로운 바인딩이 추가되었습니다.[4][6]Oculus [4][7]Rift 개발 지원도 LibOVR 바인딩으로 추가되었습니다.새로운 버전은 3년 반 이상의 [8]개발 끝에 2016년 6월 4일에 출시되었습니다.

바인딩

라이브러리는 Java Native Interface(JNI)를 통해 네이티브 C 코드에 액세스합니다.각 네이티브 라이브러리에 대한 바인딩은 서로 다른 모듈로 존재하기 때문에 개발자는 [4][7][9]특정 프로그램에서 필요한 것만 사용하여 커스텀 빌드를 작성할 수 있습니다.

유틸리티 클래스는 순수 Java로 작성되지만 대부분의 바인딩 클래스는 Kotlin에서 [2][3]구현된 커스텀 제너레이터에 의해 자동으로 생성됩니다.

버전 3.1 이후 LWJGL은 개별적으로 다운로드하여 사용할 수 있는 51개의 모듈로 완전히 분할되었습니다.이 프로세스를 쉽게 하기 위해 이 프로젝트에서는 온라인 빌드 컨피규레이터를 제공합니다.이것에 의해, 유저는 모듈의 커스텀 편성을 다운로드할 수 있게 되어, Maven 및 Gradle 의 설정 파일을 자동적으로 생성해, 기존의 [10][11]프로젝트에서 사용하기 쉬워집니다.

제공된[2][4] 바인딩
바인딩 카테고리 묘사 메모들
EGL 크로노스 API Kronos 렌더링 API와 기본 플랫폼 창 시스템 간의 인터페이스입니다.
OpenCL 크로스 플랫폼 병렬 컴퓨팅용 API.
오픈GL 대부분의 GPU 벤더가 실장하고 있는 3D 그래픽스 사양. 대부분의 내선번호는 지원되지만 사용 빈도가 낮은 내선번호는 요청에 따라 추가됩니다.
OpenGL ES 휴대전화, 태블릿, 콘솔 등의 임베디드 시스템용 OpenGL.
불칸 새로운 크로스 플랫폼 3D 그래픽스 API.
GLFW 표시 및 입력 OpenGL 및 Vulkan 컨텍스트 및 사용자 입력을 처리하기 위해 필요한 창 관리 라이브러리입니다.
AWT 네이티브인터페이스
nfd 소형 크로스 플랫폼 네이티브 파일 대화 상자 라이브러리.
아주 작다 작은 네이티브 대화 라이브러리.
오픈AL 오디오 3차원 오디오 API입니다. ALC 및 기타 확장이 지원됩니다.
OpenAL 소프트 OpenAL의 무료 라이선스 소프트웨어 구현.
오퍼스 오픈, 로열티 없는 오디오 코덱.
어셈프 그래픽스 다양한 3D 모델 형식을 가져올 수 있는 휴대용 오픈 소스 라이브러리입니다.
bgfx 여러 그래픽스 백엔드를 지원하는 크로스 플랫폼 렌더링 라이브러리.
드리프트 FX OpenGL 콘텐츠를 JavaFX 노드로 렌더링하는 라이브러리입니다.
LibOVR Oculus Lift SDK의 API입니다.
메쉬 옵티마이저 메쉬를 소형으로 고속화하는 메쉬 최적화 라이브러리
NanoSVG 단순한 SVG 파서
나노VG OpenGL을 사용한 2D 벡터 그래픽스 렌더링 라이브러리.
누클리어 심플한 GUI 라이브러리
par_par_par_par_par_par의 파라메트릭 및 기타 간단한 모양 생성기.
par_streamlines(유선형) 넓은 선과 곡선을 삼각 측량합니다.
오픈 VR 애플리케이션 없이도 여러 벤더가 제공하는 VR 하드웨어에 액세스할 수 있는 API 런타임은 대상 하드웨어 유형에 대한 특정 지식을 갖추고 있습니다.
셰이더 셰이더 컴파일을 위한 라이브러리 모음
SPRV-크로스 SPIR-V에 대한 리플렉션을 수행하고 SPIR-V를 고급 언어로 분해하기 위한 라이브러리입니다.
OpenEXR OpenEXR(.exr) 이미지를 로드 및 저장할 수 있는 소형 싱글헤더 라이브러리.
투틀(AMD) 기존 메쉬 전처리 기술을 개선한 3D 삼각형 메쉬 최적화 라이브러리입니다.
벌칸 메모리 할당기 Vulkan 메모리 할당 라이브러리를 쉽게 통합할 수 있습니다.
요가 CSS Flexbox를 구현하는 오픈소스 크로스 플랫폼 레이아웃 라이브러리.
STB STB 이미지, 사운드 및 글꼴을 로드하기 위한 경량 싱글 파일 라이브러리.
총탄 물리학 다른. VR, 게임, 시각효과, 로봇공학, 기계학습 등을 위한 실시간 충돌 감지 및 다중 물리 시뮬레이션
쿠다 GPU 상의 일반 컴퓨팅용으로 NVIDIA가 개발한 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델입니다.
dyncall을 호출하다 C 함수를 포터블 방식으로 동적으로 호출하기 위한 라이브러리입니다. 삭제하도록 설정합니다.
젬록 낮은 수준의 메모리 관리
libffi 다양한 호출 규약에 대한 휴대용 고급 프로그래밍 인터페이스입니다. dyncall을 바꿉니다.
libdivide 비싼 정수를 대체하는 라이브러리는 비교적 저렴한 곱셈과 비트 시프트로 나뉩니다.
LLVM 모듈러형 및 재사용 가능한 컴파일러 및 툴 체인 테크놀로지의 집합.
LMDB 메모리 매핑 파일을 사용한 고속 데이터베이스 라이브러리.
LZ4 속도에 초점을 맞춘 무손실 데이터 압축 알고리즘.
야옹 해시 고속 비암호화 해시
ODBC 응용 프로그램이 다양한 데이터베이스 관리 시스템에서 데이터에 액세스할 수 있도록 하는 C 언어 인터페이스입니다.
리모터리 실시간 CPU/GPU 프로파일러
rpmalloc 크로스 플랫폼 스레드 캐시 메모리 할당기.
xx해시 고속 해시 알고리즘
Z표준 고속 무손실 압축 알고리즘.

주목할 만한 용도

레퍼런스

  1. ^ a b Matzon, Brian (4 February 2007). "LWJGL 1.0 Released". LWJGL Forum. Retrieved 23 July 2016.
  2. ^ a b c d "LWJGL/lwjgl3". github.com. Retrieved 13 August 2016.
  3. ^ a b "lwjgl3/doc – Generator". github.com. 11 August 2015. Retrieved 30 August 2015.
  4. ^ a b c d e "Official website". Retrieved 14 August 2015.
  5. ^ Tsakpinis, Ioannis (13 November 2014). "Welcome to LWJGL 3". blog.lwjgl.org.
  6. ^ a b "LWJGL 3 Roadmap". github.com. Retrieved 2 June 2015.
  7. ^ a b c Tsakpinis, Ioannis (27 April 2015). "LWJGL 3.0.0a released". blog.lwjgl.org.
  8. ^ "LWJGL 3.0.0 Released!". blog.lwjgl.org. 4 June 2016. Retrieved 4 June 2016.
  9. ^ "Bindings FAQ". github.com. 27 December 2014. Retrieved 27 July 2015.
  10. ^ "LWJGL 3.1.0 Released!". blog.lwjgl.org. 30 October 2016. Retrieved 11 November 2016.
  11. ^ "Download – LWJGL". lwjgl.org. Retrieved 11 November 2016.
  12. ^ "Minecraft Attributions Minecraft". Minecraft.net. Retrieved 9 July 2020.
  13. ^ "APZDTISA #3: This time with LIVE MULTIPLAYER!". Project Zomboid. 17 February 2014. Retrieved 25 January 2022.

외부 링크