하나의 Linux 배포판에서 Windows, macOS 및 Linux 소프트웨어나 게임을 개발할 수 있습니까? [폐쇄]

하나의 Linux 배포판에서 Windows, macOS 및 Linux 소프트웨어나 게임을 개발할 수 있습니까? [폐쇄]

저는 여기에 처음 왔으며 아직 Linux 및 소프트웨어 개발에 대한 많은 경험이나 지식이 없습니다.

저는 소프트웨어와 게임 개발을 배우고 싶고 현재 이를 위해 PC를 만들고 있습니다. 저는 Windows, macOS, Linux라는 세 가지 주요 플랫폼을 지원하는 소프트웨어나 게임을 개발하고 싶습니다.

하나의 운영 체제에서 세 가지 주요 플랫폼을 지원하는 소프트웨어나 게임을 성공적으로 개발할 수 있습니까? 예를 들어 개발 도구가 많은 Linux를 사용하고 Windows, macOS 및 기타 Linux 배포판도 지원하는 소프트웨어나 게임을 개발하려는 경우 나중에 다시 전환하는 등의 문제를 겪지 않고도 그렇게 할 수 있습니까? 시스템 문제인가요? 작동하는지 테스트하기 위해 앞뒤로 이동합니까? 아니면 모든 OS(및 각 OS의 모든 개발 도구)를 설치하고 각 OS에 빌드하여 각각에 대한 지원을 받아야 합니까?

답변1

물론이죠.

이를 위해서는 모든 대상 컴퓨터에서 이해할 수 있는 공통 언어가 필요합니다. 그러한 언어가 있으면 운영 체제별 코드를 사용하지 않고 그 위에 소프트웨어를 작성하면 됩니다.

추측해보세요 - C, C++, Java 등의 언어가 많이 있습니다. 다중 플랫폼 프레임워크(언어와 라이브러리 및 도구 세트)를 사용하여 다중 플랫폼 프로젝트를 완료할 수도 있습니다.

더 좋은 점은 다중 플랫폼 게임 제작을 위해 특별히 설계된 프레임워크가 있다는 것입니다. 현재 Unity가 이 목록의 1위를 차지하고 있습니다. 다양한 게임별 기능을 제공하고 거의 모든 최신 운영 체제를 지원합니다. Win/Max/Linux - Unity 무료 버전과 기타 상용 버전(Xbox/PlayStation/등 포함).

답변2

@WhilteOwl의 답변은 매우 좋으며 몇 가지를 더 추가하고 싶었습니다.

HTML5/ES6/CSS3과 같은 웹 프로그래밍 기술을 배워볼 수도 있습니다. 이를 사용하여 데스크톱, 태블릿, TV 및 휴대용 장치에서 실행할 수 있는 크로스 플랫폼 소프트웨어를 개발할 수 있습니다.

웹에서 호스팅하여 사용자가 콘텐츠를 다운로드하는 것을 저장하고ElectronJS 프레임워크이를 사용하여 실행 파일을 만들 수 있습니다.

백엔드 보안 프로그래밍은 어려운 주제이지만 HTML과 JavaScript는 제가 생각하기에 가장 쉬운 학습 곡선을 가지고 있습니다.

H5 생태학 더보기무료저는 Unity보다 재사용 가능한 구성 요소가 더 많다고 생각하며, 이 플랫폼을 개발하기 위해 독점 도구를 사용할 필요가 전혀 없습니다.

Canvas API를 사용하여 간단한 2D 게임을 개발할 수 있으며, 3D 게임은 WebGL 및 WebGL2에서 지원됩니다. 다음과 같은 프레임워크도 있습니다.Three.js.

답변3

불행하게도 흰부엉이의 대답은 너무 낙관적이었습니다. 이론적으로는 이것이 작동하는 방식입니다. 그러나 실제로는 그렇지 않습니다. 적어도 어느 정도는 그렇지 않습니다. 크로스 플랫폼을 개발하려고 하면 많은 문제와 토끼굴이 기다리고 있습니다.

예를 들어 .NET은 크로스 플랫폼으로 간주되지만 Linux에서의 기본 GUI 애플리케이션 개발을 지원하지 않습니다. Blazor는 이론적으로 작동해야 하지만 Linux 관련 오류가 발생했습니다. 또한 Visual Studio는 잊어버리세요. 기능이 적고 설정이 덜 편리한 Visual Studio Code만 얻게 됩니다.

C와 C++가 플랫폼 독립적이라고 말하는 것은...글쎄, 훨씬 더 잘못된 것입니다. Philin Kulin은 다음과 같이 말했습니다.

C/C++를 범용 언어로 정의하는 것은 다소 오해의 소지가 있습니다. 핵심 언어는 보편적입니다. 이것이 바로 C가 설계한 것입니다. 그러나 운영 체제와 상호 작용하지 않는 실제 C 프로그램은 실제로 존재하지 않으며 Windows는 Linux와 실제로 겹치는 적이 없습니다.

구현 정의 동작의 차이를 고려하면 핵심 언어조차 완전히 보편적이지 않습니다.

확실히 크로스 플랫폼 개발을 시도할 수 있습니다. 하지만 때때로 발생할 수 있고 발생할 가능성이 있는 미묘한 문제에 주의하십시오.

답변4

예, 다른 답변에서 알 수 있듯이 가능합니다.

게임을 개발할 때 전체 소프트웨어 제품군에 의존하게 될 것이라고 덧붙이고 싶습니다. 사용하고 싶지만 사용하지 않는 기본 기능을 구현하기 위해 하나 이상의 프로그래밍 언어는 물론 소프트웨어 라이브러리 및 프레임워크를 사용하게 될 것입니다. 스스로 구현하지 마십시오.

이러한 스택 중 다수는 크로스 플랫폼 개발에 적합하므로 다음에 따라 하나를 선택해야 합니다.

  • 게임을 실행하려는 하드웨어(노트북? 휴대폰?)
  • 실행하려는 소프트웨어 환경(웹 기반, 기본 GUI, 텍스트 기반, 스크립트 가능해야 하는지 등)
  • 게임이 충족하기를 원하는 미적 및 기능적 요구 사항
  • 성능 요구 사항(Tic-Tac-Toe의 경우 충족하기 쉽지만 수백만 명의 사용자가 있는 체스 서버나 1인칭 슈팅 게임의 경우 충족하기 쉽지 않음)
  • 자신의 경험

내 생각에 가장 좋은 방법은 직접 해보는 것입니다.

  • 시간을 들여 만들고 싶은 게임처럼 보이고 Windows, MacOS 및 Linux에서 사용할 수 있는 오픈 소스 게임을 하나 이상 찾아보세요.
  • 개발을 위해 무엇이 필요한지 파악하고 작은 개선을 이뤄보세요.

전체 소프트웨어 스택, 빌드 프로세스, 개발 프로세스 및 프로젝트 커뮤니케이션 요구 사항을 안내합니다. 관심 있는 게임 유형을 약간 변경하는 데 필요한 것이 무엇인지 이해하고 나면 해당 유형의 게임을 개발하는 데 필요한 것이 무엇인지에 대한 공정한 아이디어를 갖게 될 것입니다.

개인적으로 저는 Linux, Windows, MacOS, Android 및 기타 몇 가지 운영 체제에서 기본적으로 실행되고 웹 기반 버전도 있는 Freeciv라는 게임에 몇 줄의 코드만 기여했습니다. 이것은 단지 예일 뿐입니다. Google에서 다중 플랫폼 게임의 예를 검색해 보면 아마도 만들고 싶은 게임 유형과 비슷한 것을 찾을 수 있을 것입니다.

관련 정보