라이브러리와 엔진의 차이점은 무엇입니까?


31

Scala를 이용한 2D 게임 개발을 돕기 위해 도서관에서 일하고 있습니다. 지금까지 유용한 클래스, 파일로드, 충돌 감지, 이미지, 스프라이트 등의 모음입니다.

언제 클래스 라이브러리가 멈추고 엔진이되기 시작합니까? 유용한 프레임 워크와 게임 엔진의 차이점은 정확히 어디에 있습니까?


나는 그것들이 다른 추상화 레벨의 개념이기 때문에 구별을 할 수 없다고 말하고 싶습니다. "큰"엔진은 여전히 ​​프레임 워크입니다.
André Paramés

1
게임 엔진과 프레임 워크 사이에는 차이가 거의 없지만 제목과 라이브러리와 엔진 사이에는 크게 명확하게 정의 된 차이가 있습니다. 이 링크는 다음과 같이 요약됩니다 : gamefromscratch.com/post/2015/06/13/…
Serapth

답변:


21

사람들이 여기에 들어가는 혼란은 하나는 일반적으로 다른 것으로 구성되어 있기 때문에 사람들이 정말로 알고 싶어하는 것은 다른 사람으로 간주되기에 충분할 때입니다.

언제 클래스 라이브러리가 멈추고 엔진이되기 시작합니까?

못.

유용한 프레임 워크와 게임 엔진의 차이점은 정확히 어디에 있습니까?

없습니다.

이제 답변을 설명하겠습니다. 게임 엔진은 클래스 라이브러리로 구성됩니다. 그들은 단지 게임 엔진 내에 있기 때문에 클래스 라이브러리가되는 것을 멈추지 않습니다. 라이브러리는 게임 엔진 내에서 특정 요구를 해결하는 유용한 프레임 워크입니다. 완전한 게임에 대한 요구를 수반하는 프레임 워크는 게임 엔진입니다.

게임 엔진의 예는 다음과 같습니다.

  • 언리얼 엔진
  • 현실 엔진
  • 소스 엔진
  • 퀘이크 엔진
  • 유니티 엔진

라이브러리의 몇 가지 예

  • 노보 덱스 (물리)
  • FMOD (오디오)
  • 하복 (물리)
  • Ogre3D (렌더링)
  • BINK (비디오 라이브러리)
  • Direct3D (그래픽)
  • OpenGL (그래픽)
  • DirectSound (오디오)
  • X 입력 (입력)

이것이 도움이되기를 바랍니다.


1
렌더링 엔진과 그래픽 라이브러리의 차이점은 무엇입니까? : p
Zaky German

1
@Zaky German-Ogre3D는 FMOD와 같은 그래픽 '엔진'은 오디오 '엔진'입니다. 그러나 이것들은 게임 엔진이 아니며 사용자 입력, 네트워크 연결 등을 처리하지 않습니다. 이것이 내가 혼란의 일부가 작용할 수 있다고 생각하는 곳입니다. 이 의미에서 라이브러리, 모듈, 구성 요소 또는 엔진을 교환 할 수 있습니다. 이것들은 '게임 엔진'이 아닙니다. 그래픽 라이브러리는 Direct3D와 유사하거나 Direct3D보다 얇은 API로 쉽게 만들 수 있지만 직접 렌더링하지는 않습니다. OpenGL과 그 래퍼도 그래픽 라이브러리 영역에 속합니다.
James

14

어느 한 용어 (또는 그 문제에 대한 "프레임 워크"라는 용어)에 대한 구체적인 정의는 실제로 없습니다. 소프트웨어 패키지의 다양한 미묘한 차이를 해석하고 분류를 지정하는 방법은 수백 가지가 있습니다.

필자는 개인적으로 "라이브러리"를 비교적 작고 지시 된 기능 세트를 제공하는 것으로 보지만 "프레임 워크"는 더 많거나 광범위한 기능을 제공하고 "엔진"은 동일하거나 더 많은 기능을 제공하며 일반적으로 함께 제공되는 관련 도구.

나는 "엔진"이 일반적으로 "라이브러리"보다 더 많은 또는 더 높은 수준의 기능을 제공한다는 것을 암시하는 같은 용어에 대한 다른 사람들의 개인적인 해석을 충분히 보았다. 당신에게 달려 있습니다.


프레임 워크와 다른 라이브러리 간에는 구체적인 차이점이 있습니다. 이것들은 전자 의 위키 페이지 에 나와 있습니다 . 간결하게 프레임 워크는 응용 프로그램의 흐름을 제어하고 코드를 응용 프로그램에 연결합니다. 다른 라이브러리에서는 흐름을 제어하고 해당 코드를 호출합니다.
André Paramés

1
나는 그 결정적인 것을 고려하지 않을 것이다. Wikipedia에는 ​​"게임 엔진"페이지도 있고 "라이브러리"및 "프레임 워크"와 마찬가지로이 용어는 위키 페이지의 설명과 일치하지 않는 방식으로 자주 사용됩니다. 경험. 여전히 손이 많이 듭니다.
Josh

2

라이브러리와 엔진 사이의 선이 매우 얇고 흐릿한 선이 될 수 있기 때문에 까다로운 질문입니다. 라이브러리가 엔진으로 바뀌는 지점은 특정 게임이나 특정 유형의 게임에 맞춰질 때입니다.

예를 들어 : 언리얼 엔진 (또는 소스 또는 퀘이크)은 FPS 게임에 사용하도록 설계되었습니다 (다른 게임에도 사용 가능하지만 엔진에 대해 작업하는 데 약간의 시간이 소요됩니다). Ogre3d (또는 Directx, SDL 또는 기타 공통 라이브러리)를 사용하면 코드의 주요 부분을 제거하거나 문제를 해결하지 않고도 모든 유형의 게임을 만들 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.