LWJGL
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
LWJGL은 Java에서 네이티브 라이브러리에 접근하기 위한 오픈 소스 라이브러리이다. 2002년에 개발이 시작되어 2007년 첫 공식 릴리스가 이루어졌으며, 2016년에는 LWJGL 3이 출시되었다. LWJGL은 JNI를 통해 C 코드를 사용하며, 다양한 그래픽, 오디오, 입력, 병렬 컴퓨팅 API에 대한 바인딩을 제공하여 개발자가 여러 플랫폼에서 활용할 수 있도록 돕는다. 마인크래프트, 프로젝트 좀보이드 등 다양한 게임에서 사용된다.
더 읽어볼만한 페이지
- 자바 API - 자바 암호화 확장
- 자바 API - 표준 위젯 툴킷
표준 위젯 툴킷(SWT)은 자바 GUI 툴킷으로, 네이티브 룩앤필과 고성능을 위해 윈도 시스템의 그래픽 요소를 직접 사용하며, 이클립스 IDE의 기반 기술로 IBM에 의해 개발되었다. - 자바 라이브러리 - 아파치 루씬
아파치 루씬은 더그 커팅이 개발한 오픈 소스 전문 검색 라이브러리이며, 텍스트 색인 및 검색 기능을 제공하여 웹 검색 엔진, 퍼지 검색, 추천 시스템 구현 등에 사용된다. - 자바 라이브러리 - 구글 구아바
구글 구아바는 구글에서 개발한 오픈 소스 자바 라이브러리로, 자바 컬렉션 프레임워크 확장, 캐싱, I/O, 문자열 처리 등 다양한 유틸리티 기능 제공, 함수형 프로그래밍 스타일 컬렉션 적용을 통해 자바 개발 생산성 향상에 기여한다. - 비디오 게임 개발 소프트웨어 - 앨리스 (소프트웨어)
앨리스는 교육용 프로그래밍 소프트웨어로, 드래그 앤 드롭 방식을 통해 객체 지향 프로그래밍을 배우도록 설계되었으며, 스토리텔링을 활용하여 다양한 사용자들이 프로그래밍에 접근하도록 돕는다. - 비디오 게임 개발 소프트웨어 - 픽셀 게임 메이커 MV
픽셀 게임 메이커 MV는 2D 액션 게임 제작 전용 츠쿠르로, 프로그래밍 없이 인디 게임 개발을 쉽게 할 수 있도록 설계되었으며, 2018년에 얼리 액세스 버전이 출시되어 2019년 Steam에 정식 출시되었다.
2. 역사
J2SE 1.4가 출시되면서 2002년에 라이브러리 개발이 시작되었으며, 새롭게 추가된 논블로킹 I/O 작업과 힙 외부 메모리 접근을 활용하였다. 이러한 JDK에 대한 추가 사항을 통해 JDK의 일부가 아닌 네이티브 메모리 및 라이브러리에 대한 더 나은 접근이 가능해졌다. 라이브러리의 첫 번째 공식 릴리스는 2007년 2월 4일에 이루어졌다.[1]
LWJGL은 다양한 기능을 제공하기 위해 여러 라이브러리에 대한 바인딩을 제공한다. 바인딩은 JNI를 통해 네이티브 C 코드에 접근하는 방식으로 이루어진다.[5][4][7] 각 네이티브 라이브러리에 대한 바인딩은 서로 다른 모듈로 존재하므로, 개발자는 특정 프로그램에 필요한 것만 사용하여 사용자 정의 빌드를 할 수 있다.
2014년 11월 13일, 버전 3가 발표되었으며, 2015년 4월 27일에 알파 버전으로 출시되었고 LWJGL을 완전히 다시 작성한 것이다.[2][3][4] GLFW, EGL 및 Objective-C를 포함한 많은 새로운 바인딩이 추가되었다. Oculus Rift 개발에 대한 지원도 LibOVR 바인딩과 함께 추가되었다.[5][4] 새로운 버전은 3년 반 이상 개발 끝에 2016년 6월 4일에 출시되었다.[6]
3. 바인딩
LWJGL에서 제공하는 주요 바인딩은 다음과 같다.
하위 섹션에서 이미 언급된 바인딩들에 대한 내용은 간략하게 표로 작성하여 중복을 피했다.
버전 3.1부터 LWJGL은 51개의 모듈로 완전히 분리되어 개별적으로 다운로드하여 사용할 수 있다. 이 과정을 더 쉽게 만들기 위해 프로젝트는 온라인 빌드 구성기를 제공하며, 이를 통해 사용자는 모듈의 사용자 정의 조합을 다운로드하고, 기존 프로젝트에서 쉽게 사용할 수 있도록 Maven 및 Gradle 구성 파일을 자동으로 생성할 수 있다.[10][11][12]
3. 1. Khronos API
LWJGL은 여러 크로노스 API에 대한 바인딩을 제공한다. 다음은 그 목록이다.[16][17]
3. 2. 디스플레이 및 입력
GLFW는 OpenGL 및 Vulkan 컨텍스트와 사용자 입력을 처리하는 데 필요한 윈도우 관리 라이브러리이다.[8][5] JAWT는 AWT 네이티브 인터페이스이다.[8][5] nfd는 소규모 크로스 플랫폼 네이티브 파일 대화 상자 라이브러리이며,[8][5] tinyfd는 소규모 네이티브 대화 상자 라이브러리이다.[8][5]3. 3. 오디오
LWJGL은 3차원 오디오 API인 OpenAL 바인딩을 제공하며, ALC 및 기타 확장 기능도 지원한다.[16][17] OpenAL Soft는 OpenAL의 자유 라이선스 소프트웨어 구현체이다.3. 4. 그래픽
LWJGL은 여러 그래픽 API에 대한 바인딩을 제공하여 개발자가 3D 그래픽을 구현하고, 사용자 인터페이스를 만들고, 2D 벡터 그래픽을 렌더링할 수 있도록 지원한다.LWJGL에서 제공하는 그래픽 관련 바인딩은 다음과 같다.[16][17]
이 외에도, 다음과 같은 그래픽 관련 바인딩을 제공한다.[8][5]
- Assimp: 다양한 3D 모델 형식을 가져오기 위한 휴대용 오픈 소스 라이브러리이다.
- bgfx: 여러 그래픽 백엔드를 지원하는 크로스 플랫폼 렌더링 라이브러리이다.
- LibOVR: 오큘러스 리프트 SDK의 API이다.
- par shapes: 파라메트릭 및 기타 단순 도형 생성기이다.
- STB: 이미지, 사운드, 글꼴을 로드하기 위한 가벼운 싱글 파일 라이브러리이다.
3. 5. 기타
LWJGL은 JNI를 통해 네이티브 C 코드에 접근한다. 각 네이티브 라이브러리에 대한 바인딩은 서로 다른 모듈로 존재하므로, 개발자는 특정 프로그램에 필요한 것만 사용하여 사용자 정의 빌드를 할 수 있다.[5][4][7]유틸리티 클래스는 순수 Java로 작성되지만, 대부분의 바인딩 클래스는 Kotlin으로 구현된 사용자 정의 생성기에 의해 자동으로 생성된다.[8][9]
버전 3.1부터 LWJGL은 51개의 모듈로 완전히 분리되어 개별적으로 다운로드하여 사용할 수 있다. 이 과정을 더 쉽게 만들기 위해 프로젝트는 온라인 빌드 구성기를 제공하며, 이를 통해 사용자는 모듈의 사용자 정의 조합을 다운로드하고, 기존 프로젝트에서 쉽게 사용할 수 있도록 Maven 및 Gradle 구성 파일을 자동으로 생성할 수 있다.[10][11][12]
LWJGL에서 제공하는 바인딩은 다음과 같다.[16][17]
4. 저명한 사용
LWJGL을 사용한 저명한 게임 및 프로젝트는 다음과 같다.
- 마인크래프트[18]
- 마인크래프트: 자바 에디션[13]
- 프로젝트 좀보이드[14]
참조
[1]
웹사이트
LWJGL 1.0 Released
http://forum.lwjgl.o[...]
2007-02-04
[2]
웹사이트
Welcome to LWJGL 3
https://blog.lwjgl.o[...]
2014-11-13
[3]
웹사이트
LWJGL 3 Roadmap
https://github.com/L[...]
2015-06-02
[4]
웹사이트
LWJGL 3.0.0a released
https://blog.lwjgl.o[...]
2015-04-27
[5]
웹사이트
Official website
https://www.lwjgl.or[...]
2015-08-14
[6]
웹사이트
LWJGL 3.0.0 Released!
https://blog.lwjgl.o[...]
2016-06-04
[7]
웹사이트
Bindings FAQ
https://github.com/L[...]
2014-12-27
[8]
웹사이트
LWJGL/lwjgl3
https://github.com/L[...]
2016-08-13
[9]
웹사이트
lwjgl3/doc – Generator
https://github.com/L[...]
2015-08-11
[10]
뉴스
LWJGL 3.1.0 Released!
https://blog.lwjgl.o[...]
2016-10-30
[11]
뉴스
Minecraft unblocked
https://minecraftfor[...]
2023-11-16
[12]
웹사이트
Download – LWJGL
https://www.lwjgl.or[...]
2016-11-11
[13]
웹사이트
Minecraft Attributions {{!}} Minecraft
https://minecraft.ne[...]
2020-07-09
[14]
웹사이트
APZDTISA #3: This time with LIVE MULTIPLAYER!
https://projectzombo[...]
2014-02-17
[15]
Github
Releases · LWJGL/lwjgl3 · GitHub
https://github.com/L[...]
[16]
웹인용
LWJGL/lwjgl3
https://github.com/L[...]
2016-08-13
[17]
웹인용
Official website
https://www.lwjgl.or[...]
2015-08-14
[18]
웹인용
minecraft.net – Credits
https://minecraft.ne[...]
2016-08-06
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com
