Java로 게임을 만들고 Windows, Linux 및 Mac에서 작동하도록하고 싶습니다. C #이 이것에 대한 나쁜 선택이라고 확신하며 C 또는 C ++에 대한 경험이 충분하지 않습니다. 플래시를 멀리하고 싶습니다. 따라서 Java가 저에게 적합한 선택입니까? 주로 C #을 사용하고 Java가 비슷하다고 생각하므로 배우기가 어렵지 않을 것이라고 생각합니다. 그러나 그것은 충분히 빠릅니까? Java보다 내 요구에 더 적합한 언어가 있습니까?
Java로 게임을 만들고 Windows, Linux 및 Mac에서 작동하도록하고 싶습니다. C #이 이것에 대한 나쁜 선택이라고 확신하며 C 또는 C ++에 대한 경험이 충분하지 않습니다. 플래시를 멀리하고 싶습니다. 따라서 Java가 저에게 적합한 선택입니까? 주로 C #을 사용하고 Java가 비슷하다고 생각하므로 배우기가 어렵지 않을 것이라고 생각합니다. 그러나 그것은 충분히 빠릅니까? Java보다 내 요구에 더 적합한 언어가 있습니까?
답변:
Java는 플랫폼 간 게임 작성에 매우 적합합니다. 주요 장점 :
결정해야 할 주요 결정은 사용할 GUI 프레임 워크입니다. 몇 가지 다른 옵션이 있지만 가장 눈에 띄는 옵션은 다음과 같습니다.
게임을위한 Java의 주요 단점은 실제로 당신에게 영향을 미치지 않지만 일부 게임 등급과 관련이있는 "가장 큰 경우"와 관련이 있습니다.
고려해야 할 몇 가지 배포 옵션도 있습니다.
마지막으로, 다른 JVM 언어도 고려해야합니다. 위에 나열된 Java 플랫폼의 모든 이점이 있지만 일부는 Java보다 언어가 더 좋다고 생각합니다. 스칼라, 클로저 및 그루비가 가장 눈에 띄는 것들이며 위에 나열된 Java 툴과 라이브러리를 모두 사용할 수 있습니다.
Mattine의 Minecraft와 Blocks는 모두 Java로 제작되었으므로 게임 제작에 좋습니다. Java를 사용하는 동안 발생할 주요 문제는 해당 경로로 이동하여 기본 앱을 작성하도록 선택한 경우 모바일 플랫폼으로 포팅하는 것입니다. Android는 별도의 라이브러리가있는 일종의 유명한 Java SE입니다. RIM의 Blackberry는 Java ME를 사용합니다. 이론적으로 iOS는 Java로 프로그래밍 할 수 있지만 Objective-C가 해당 플랫폼에 더 적합한 선택 일 수 있습니다.
Java는 C #과 매우 유사합니다. Java 만 알고도 C # 코드를 이해할 수있는 경우가 많습니다. 그것들은 다른 디자인 철학을 가지고 있지만 최소한의 번거 로움없이 광범위하게 배치 할 수 있습니다. C #은 모바일 배포가 더 어려워지고 비 Windows 플랫폼에 배포하는 데 특정 외부 라이브러리 등에 따라 시간이 많이 걸리거나 어려워 지더라도 게임에 대한 끔찍한 선택은 아닙니다.
짧은 대답 : 아닙니다.
Java는 이진 실행 파일을 생성하지 않지만 C #에서와 같이 바이트 코드 만 생성하며 (CLI), "열린 환경"에서 심각한 비즈니스에는 두 가지 주요 이유로 좋지 않습니다.
물론 모든 언어에는 자체 라이브러리가 있지만 각 언어마다 많은 양의 라이브러리가 있기 때문에 이것은 실제 문제가 아니며이 주제의 목적이라고 생각하지 않습니다.
전문가 수준에서는 모든 C # 문을 실제 컴퓨터의 어셈블리 코드로 변환 할 수있는 dev-Kit과 같은 규칙을 어길 수있는 것을 찾을 수 있지만, 이런 종류의 접근 방식은 실제로 카드에없는 경우 개방 된 환경에서 제품을 판매하려는 경우 개발을 위해 C 및 C ++ 만 고려하십시오.
실제 환경의 ROM 소스가 일반적으로 공개되지 않고 안드로이드는 오픈 소스로 간주 될 수 있다는 사실을 고려할 때 안드로이드도 실질적으로 폐쇄되어 있기 때문에 모바일 디바이스는 상황이 약간 다릅니다. 실제 장치의 ROM 중 %가 아닙니다. 이 경우 너무 많은 논쟁을 할 수 없으며 모든 것이 이미 준비되어 있으며 모든 플랫폼은 모든 사람이 알고있는 것처럼 고유 한 언어를 가지고 있습니다.
결국 열린 환경 에서이 제품을 판매하려는 경우 닫힌 환경에서 컴파일 된 이진 / 어셈블리 코드를 생성 할 수있는 언어 만 제안 할 수 있습니다. 닫힌 환경에서는 다른 이유로 결정을 내리기가 더 쉽습니다.