윈도쟁이가 실증을 느끼고 우분투로 가려는데요

개인적인 생각입니다만…

Windows와 Linux의 개발환경은 매우 다릅니다.
물론 일부 기능은 비슷하게 만들어 가는 여러 오픈소스 프로젝트가 진행되고 있긴 하지만…
기본적으로 달라도 너무 다릅니다.

마치 한국어를 자유롭게 구사하다가…
외국에 가셔서 외국어를 쓰시는 것과 비슷합니다.
물론… 외국어를 쓴다고 해서 한국에서 하던일을 못하는 건 아니지만…
기본적으로 문화도 틀리기 때문에 아예 할 수 없는 것들도 분명히 존재합니다.

Windows와 Linux도 마찬가지입니다.
아마도 많은 도구를 다시 배우시거나 포기하셔야 할 겁니다.
(아니면 가상머신에 의존하게 되고… 결국 한 OS에 집중해서 쓰게 되겠죠.)

그리고 리눅스용과 윈도우에서 동시에 돌아가는 게임…에 대한 개발을 노리는 분들이 있긴 있습니다만…
그 어려움은 상상하기도 어려울 것 같습니다.
Linux와 Windows가 OS로 서로 경쟁하기 시작한 것이 상당한 시간이 흘렀으나…
아직도 Linux와 Windows에서 똑같이 동시에 돌아가는 프로그램이 손에 꼽을 정도이니까요.

물론 제 개인적인 생각입니다. :D
많은 분들이 Cross Platform Application을 위하여 노력하고 계시기 때문에… 언젠가는 가능할 일이라고 생각하지만…
아직 제가 느끼기엔… 먼 꿈의 이야기… 같네요. :)

위에서 말씀하신 프로그램들은 다 윈도우용이기 때문에 기본적으로 포기하셔야 합니다.
단 앞으로 꿈 많은 청년 분이신 듯하니…

안드로이드 용 게임 개발 프로그램에 관심을 둬 보시는 것은 어떨는지요?
안드로이드가 리눅스를 바탕으로 만들어졌다는 것은 아실테고…
향후 게임 산업도 스마트폰 용 게임이 발전 가능성이 더 클 듯하니…
미리 전향하고 공부해보시는 것도 좋을 듯 합니다.
3DMAX 대신에 블렌더란 프로그램을 이용하시고,
포토샵 대신에 김프를 사용하시면 되구요…(포토샵 7 버전 등은 와인으로 거의 완벽하게 돌아가긴 합니다.)

그 외에는 이클립스 등을 이용 프로그램 환경을 꾸미시면 되겠네요…

여하튼 꿈을 이루시길 기원합니다.

MS윈도우즈와 리눅스는 개발환경이 매우 다른것은 분명한 사실입니다.
그래서 "리눅스에서는 윈도우 프로그램 개발이 가능하나요?"에 대한 답은 유감스럽게도 "아닙니다".

(창 하나 띄우는 데도, MFC니 GTK니 다를정도죠.)
그렇다고 방법이 아예 없는것은 아니죠.

  1. 자바 가상머신 혹은 스크립트 엔진등을 사용하여 똑같이 구동하는 앱을 만든다.
  • 성능의 희생이 따르겠지만, 그나마 편한 방법.
  1. WINE 따위를 쓰라고 방임한다.
  • 아무래도 윈도우API를 다른방법으로 구현하다 보니, 불안정함.
  1. 크로스 플랫폼 API를 적극 활용한다.
  • 이런 류의 API들은 거의 대부분 오픈소스라서, 여기저기 포팅을 하고 다닙니다.
    게임을 이야기하셨으니 게임을 중심으로 하자면…
    DirectX 대신 openGL(그래픽) + openAL(사운드) 등이 있을거고,( 글자를 렌더링하는 부분은 약하지만.)
    게임엔진의 경우에는 다양한 언어로 다양한 게임엔진들이 많이 있습니다.
    (저의 경우는 Java기반의 3D그래픽엔진을 사용하여 게임을 개발하고 있습니다.)

대략 게임개발하실때 리눅스에서 사용가능한 도구들은 다음과 같습니다.
3ds 맥스-> 블렌더3D
포토샵->GIMP (좀처럼 대체품역할을 제대로 못하지만.)
일러스트->잉크스케이프
플래시->[ 저도 모르니 채워주세요 ]
게임 개발 도구->[ 바로 전에 설명약간 드림. ]

PC계열 Platform Independency라면 Lazarus 괜찮은듯 싶습니다…

그리고 뭐… 첨언하자면… 사실 개발자는 하나만 잘 하면 됩니다…
"수학"

플랫폼이 어쩌구 개발환경이 어쩌구… 그런거 다 필요없어요…

그리고 사실… 리눅스진영에서 게임이 못 뜨는 이유가 있죠…
바로 게임이 문화컨텐츠 요소가 차지하는 비중이 커서 그런건데요…

프로그래머들이야 오픈소스에 대해 반갑게 생각하지만…
그래픽, 사운드, 음악 하시는 분들은 별로 달갑게 생각하지 않죠…
우리나라도 웹툰 관련하여 활동하시는 분들이 있고…
일본쪽도 니코동 활약으로 그나마 공유정신을 갖게 된듯 합니다만…
이미지나 영상에 GPL 갖다 붙이기는 힘들죠…

게임은 많은 제작비와 제작기간, 제작인원등을 필요로하기에 무료로 개발하기에는
어느정도 한계가 있어보입니다.
또한 리눅스에 비해 윈도우즈 플랫폼 개발자들이 훨씬 더 많기에… 필요한 개발자들을 충당하지 못할 소지가 많죠.
또 윗분 말씀처럼 컨텐츠를 무료로 제공하려고 하는 사람들도 상대적으로 적습니다.
이러한 면들로 따져보면, 게임개발업체의 입장에선 리눅스 플랫폼 지원은 커다란 위험요소가 되기에…
쉽게 리눅스를 지원하지 못합니다.
대안으로는, 안드로이드용 게임 개발이 대안이 될 수 도 있겠습니다.

대부분은 문제는 하드웨어 지원과 관련해서 생기기 때문에…
그래픽엔진, 그래픽가속 라이브러리, 사운드라이브러리 등을 제공하는 게임엔진등을
리눅스 플랫폼 지원하는 것으로 사용하고, 인터페이스및 게임제어루틴등을
크로스플랫폼 개발언어로 개발한다면… 아주 어렵지는 않을 것입니다.

추가로, lazarus는 파스칼 개발도구인걸로 아는데…
platform-independent가 아니라, cross-platform 컴파일러라고 알고 있습니다.
write once, compile anywhere를 모토로 하는 것이지요.

윈도우용불가능하다고 봐야죠…
자바로하심되겠네요…
리눅스에서 개발하면, 시간은 오래걸리더라도(실력자는 물론제외) 내공쌓는데는 도움많이 될겁니다.(반진담반농담…)

어자피 언어라는 측면에서는 동일하구요, 단지 그에 속해있는 라이브러리가 어떤 운영체제를 지원하느냐,
컴파일러가 어떤 운영체제를 지원하는가에 따라, 출시되는 언어가 갈린다고 보시면 됩니다.
크로스플랫폼 컴파일러는 컴파일러와 라이브러리가 여러 운영체제에서 각각 독립적으로 동작하게 됩니다.
그러니, 구현된 프로그램의 겉모습이 동일하지 않을 가능성이 큽니다.

예를들어 리눅스에서는 GTK나 QT그래픽 툴킷을 사용할 것이고,
윈도우즈에서는 윈도우즈에서 제공하는 컨트롤들을 사용하게 될것입니다.

물론 프로그램 작성시에는 동일한 QT그래픽 툴킷용으로 사용하더라도,
실제적으로는 그것이 구현되는 것은 다르다는 것입니다.

그리고, 크로스컴파일러로 명성이 자자한것은 gcc입니다.
그에 대한 IDE로, eclipse cdt나 codeblocks도 그러한 환경을 제공하지요.

가장 기본적인 ui라면 스크립트 언어로도 가능합니다.
성능상의 문제가 있긴 하겠지만, 전체 프로그램 자체가 무겁지 않다면
스크립트를 사용하는 것이 훨씬 효율적이고, 속도상으로도 별차이를 못느낍니다.

[quote="puppysss":1p1q0jzj]

뭐 툴이 아닌 이상은 Open시리즈로 최대한 사용하면 될까요?

음 근데 정말 아쉬운건 그래픽 툴이네요 ㅋㅋ;;

워낙 익숙한 포토샾과 맥스인데 김프와 블렌더면 …[/quote:1p1q0jzj]

예. 다만, 오픈소스 자유소프트웨어도 엄연히 법적으로 구속력이 있는 저작권과 라이센스를 가지고 있으니, 이들을 찾으실 때마다, 라이센스 한번쯤은 훑어보시기 바랍니다.
(GPL, LGPL, BSD, zlib 등등의 라이센스가 있는데, 각각 뭔지는 검색해보시기 바랍니다. 잘못하면 국제 '고소미’감)

그래픽 부문이 우분투뿐 아니라 리눅스, OSX irix등을 제외한 유닉스 전반적으로 취약한 부분일 것입니다.
(게임은 말할 것도 없고요.)

그래도 일부 오픈소스 3D게임엔진은 오픈소스 자유소프트웨어의 강점인 집단의 힘(?)으로 프레임수를 윈도우즈버전과 별 차이 없게 만들어낸 경우도 있으니, 희망은 있습니다.
(제가 사용중인 그래픽 엔진(jMonkeyEngine)역시 그 사례입니다.

예…포토샾과 맥스…참 미칠듯한 익숙함에 헤어나기 힘들겠군요.ㄷㄷㄷ
심지어 그 엔진을 위한 맥스 플러그인을 개발을 고려할 정도면…우움… MS계열의 개발툴을 안 만진지 꽤 되어서…

[quote="puppysss":4ec48kup][quote="drake_kr":4ec48kup]PC계열 Platform Independency라면 Lazarus 괜찮은듯 싶습니다…

그리고 뭐… 첨언하자면… 사실 개발자는 하나만 잘 하면 됩니다…
"수학"

플랫폼이 어쩌구 개발환경이 어쩌구… 그런거 다 필요없어요…

그리고 사실… 리눅스진영에서 게임이 못 뜨는 이유가 있죠…
바로 게임이 문화컨텐츠 요소가 차지하는 비중이 커서 그런건데요…

프로그래머들이야 오픈소스에 대해 반갑게 생각하지만…
그래픽, 사운드, 음악 하시는 분들은 별로 달갑게 생각하지 않죠…
우리나라도 웹툰 관련하여 활동하시는 분들이 있고…
일본쪽도 니코동 활약으로 그나마 공유정신을 갖게 된듯 합니다만…
이미지나 영상에 GPL 갖다 붙이기는 힘들죠…[/quote:4ec48kup]

내 저도 PC와 운영체제를 고를때 특히 FPS게임이 어디까지 돌아가냐에 곤두세우고

구입하죠 ㅋㅋㅋ 거의 모두가 그럴테고 … 역시 OS사용비율은 게임과 엔터테인먼트 제공에 달려있겠내요 …

Lazarus라 첨들어봅니다만 거의 코딩이 없이 비쥬얼 스튜디오에서 MFC프로젝트 만들면 제공되는

GUI 툴 인가요? 막 옵션잡고 배치하면 알아서 폼이 만들어지고 소스도 짜여지고… 그런거라면 정말 편하겠내요!

수학이라 그건 이미 알고있습니다 ㅋㅋㅋ 더불어 물리 그리고 영어를 잘해야하는건 사명급 이군요

게임업계 그리고 그래픽스에 한에서는…[/quote:4ec48kup]

lazarus 는 델파이와 비슷한 환경을 제공하는 RAD Tool 로 Free Pascal 컴파일러를 기본으로 하고 있습니다.
Free Pascal 컴파일러가 크로스 플랫폼을 지원하니깐, lazarus도 크로스 플랫폼 지원이 되지요.

쉽게 말해서 Free Pascal 을 이용해서 델파이의 RAD Tool 환경을 구현한 것이 lazarus 입니다.

Delphi 의 Object Pascal 과 Lazarus (Free Pascal) 의 Obect Pascal 은 90% 호환 됩니다.
일부 몇 몇의 특수한 라이브러리를 제외하면 대부분의 소스 코드를 그대로 - 물론 약간의 수정은 필요함 - 사용할 수 있습니다.

또한, 마이크로소프트의 비주얼 베이직과 비슷한 환경을 제공하는 리눅스 전용으로 Gambas2 / Gambas3 가 있습니다.
마이크로소프트의 비주얼 베이직을 사용할 줄 알면 Gambas2 / Gambas3 를 매우 쉽게 사용할 수 있습니다.
비주얼 베이직을 리눅스용으로 만든 것이라 소스 코드 호환이 가능하다고 합니다.

잘 찾아오셨어요^^

세상이 앞으로는 안드로이드를 중심으로 펼쳐질듯합니다

안드로이드와 우분투는 서로 상생관계죠 ㅎㅎ

뭘 공부해도 안드로이드와 관련된걸 공부하고 연마하면 미래가 보이지않을까요?

//옵빅서 썼어요~