[번역] 활황을 이루는 JAVA 베이스 MMORPG

GPG 카탈로그에서 다루는 책들을 읽을 때 도움이 될만한 참고자료를 추천하는 게시판입니다.
(참고자료 추천 요청을 받는 곳은 아닙니다.)

Moderator: 류광

jacking
Posts: 1035
Joined: 2002-01-09 09:00

[번역] 활황을 이루는 JAVA 베이스 MMORPG

Post by jacking »

작년 기사인데 자바로 만든 MMORPG 게임에 대한 이야기 인데 꽤 흥미롭습니다.
저희가 현재 게임개발을 생각하면 언제나 C++만을 생각하는편인데 어떤 게임을
만드냐에 따라서 생산성이 좋은 다양한 언어를 고려 해 보는게 좋지 않을까 생각합니다.




그림이 안나오니 그림까지 보실려면
http://jacking75.cafe24.com/JapTranslat ... ted/97.htm
에서 보세요



출처 : http://www.4gamer.net/weekly/kaito/097/kaito_097.shtml
번역 : 최흥배 ( [email protected] )




2006년 10월 4일 게재

 금년 3월에 JAVA의 총본산이라고도 말할 수 있는 썬 마이크로시스템으로부터 「Project Darkstar 」라고 하는 시스템이 릴리스 되어 JAVA 언어를 사용한 3D MMORPG의 미래가 퍼졌다.「RuneScape 」나 「Yahoho! Puzzle Pirates 」 등 벌써 수백만 어카운트를 자랑하는 JAVA 제의 히트 게임도 많지만 마침내 MMORPG까지 저 예산으로 개발 가능하게 되는 시대가 온 것일까.



활황을 이루는 JAVA 베이스 MMORPG




많아진 본격파 JAVA 게임



 자바가 뜨겁다. 라고 쓰면 이번은 커피 이야기인가?  라고 생각해 버리는 독자도 있을지도 모르지만 다르다. 이번은 썬 마이크로시스템이 개발하여 현재도 진화를 계속하는 객체 지향의 프로그램 언어 「JAVA 」로 만들어진 게임에 대해 이야기 하자.
 PC 유저라면 JAVA라는 이름은 몇 번인가 듣고 있을 것이다. JAVA는 플랫폼에 의존하지 않는 어플리케이션의 제작을 가능하게 하는 것을 목적으로 1990년대 전반부터 Sun이 개발을 진행시켜 온 언어 및 환경이다. 네트워크나 보안 면에서 안정된 성능을 가져, 전세계에서 사용되는 휴대 전화의 80 %로 이용되는 등 많은 프로그램 개발자로부터 신뢰를 얻고 있다.


미국의 인기TV 드라마를 게임으로 한 「Law & Order: Justice is Served 」(2004년)는 JAVA에 의해서 프로그램 된 3D 어드벤쳐로 Vivendi Games 로부터 판매되고 있다

 그렇다고는 해도 PC의 3D 게임 분야에서는 그래픽스 라이브러리로의 액세스 스피드가 보틀 넥이 되는 등의 이유로 JAVA는 아니고 C++ 언어가 압도적인 지지를 얻어 왔다. API(Application Programming Interface ) 로서는 현재로서는 Microsoft의 DirectX가 사실상의 표준으로 그것을 OpenGL이 따라가고 있는 모습이다.
 그러나 최근 계속 상승하는 개발비 때문에 보다 염가로 이용할 수 있는 JAVA가 주목 받기 시작하고 있다. 이러한 동향은 Sun도 인식하고 있는 것 같고, 동사는 JAVA Game Community 라고 하는 테크놀러지 그룹을 설립하여 DirectX 와 OpenGL 위에서 작동하는 「JAVA 3D API 」를 개발하고 있다.

 그 결과적으로 JAVA 베이스의 게임이 요즈음 급격하게 증가하고 있는 것이다. 지금까지도 「Quake 2 」를 고쳐 쓴 「Jake 2 」나 모두 JAVA 언어를 사용해 제작된 「Law & Order 」시리즈와 같이 본격적인3D 게임이 존재하고 있었고, 「Star Wars Galaxies 」에서는 서버 프로그램이 JAVA로 제작되고 있었다. 그런 가운데, 여기1 ~ 2년에 특히 발전 현저한 것이 JAVA로 만들어진 MMORPG 이다.
 그래서 여기 당분간 화제가 되고 있는 JAVA계 MMORPG를 소개해 보자.





 인터넷에 액세스 가능한 한, 어디에서라도 자유롭게 플레이 할 수 있는 브라우저 베이스 MMORPG의 제일의 성공 예라고 생각되는 것이 영국의 Jagex에 의해서 개발된 이 「RuneScape 」이다. 현재, 영어권을 중심으로 133개의 서버가 가동하고 있어, 어카운트수의 총계는 900만에 이른다. 월액 5 달러(약600엔)을 지불해 프리미어 서비스를 받으면 맵이나 퀘스트 등이 증가한다. 프리미어 서비스의 이용자는 80만명으로 광고료 등을 포함하면 매월 약 4.5억엔의 수입이라고 하는 것으로 다른 JAVA 베이스의 게임과 비교해도 월등하다. 실제 Jagex의 창립자인 오리지날 멤버3 사람(현재, 사원수는250) 은 2005년의 영국 부호 순위에 일원이 된 것 같다.
 서비스를 개시한 것은 2004년 3월의 일이지만 2006년 5월에는 그래픽스나 사운드에 관한 대폭적인 업데이트를 실시하고 있다. 기본요금은 무료이므로 구미에서는 초등 학생의 사이에서도 큰 인기를 얻고 있다. 캐쥬얼한 플레이어가 많기 때문에인지 Jagex 관계자를 자칭해 어카운트를 채팅에 박게 하는 초보적인 사기의 만연이 문제가 되어 있는 것 같다.







 샌프란시스코를 본거지로 하는 Three Rings Design가 2003년 12월에 릴리스 한 게임. 플레이어는 해적 아바타(Avatar)를 조종하여 온라인으로 동료들과 교류하면서 퍼즐 등의 게임에서 논다고 하는 것이다.
 JAVA로 개발된 인디즈계 소프트로서 2004년의 GDC(Game Developers Conference )에서 대상을 받고 있다. 현재는 Ubisoft Entertainment가 판매원이 되어, 어카운트 보관 유지자는 200만명을 넘는다. 월액은 9.95 달러이지만, 49.95달러로 일년 분의 계약도 가능하다.
 Puzzle Pirates는 모든 씬에 대해 독립한 미니 게임이 되어 있는 것이 특징으로 항해로 배를 질주 시키기 위해서는 슈퍼 마리오풍의 2D 게임을 해내고 해적과의 싸움에서는 빠짐물 게임의 클리어를 목표로 하게 된다. 배에 크루 멤버를 태워 공동으로 항해하여 조선이든지 전투든지 크래프팅이든지로 동료들과 서로 협력하는 커뮤니티로서의 요소도 강하다.
 1doubloon (게임 내통화의 단위)가 25 센트 정도로 개발원에서 직접 거래되고 있어 이것으로 아이템이나 배를 구입한다. 금년 4월에는 500 만 doubloons가 판매되었다고 한다.







 스웨덴의 Mojang Specifications가 개발한 MMORPG로 6월에 마스터 올라갔던 바로 직후. 아직 지명도가 낮기 때문에인가 서버에 액세스 하고 있는 것은 상시 100 사람에게도 못 미친 만큼이다. 캐릭터 애니메이션이 없고 게임 화면은 조금 외롭게 느껴지지만 OpenGL과의 제휴에 의해서 지형이나 기후 등 꽤 고 레벨의 3D 그래픽스를 달성하고 있다. JOGL(Java OpenGL )인가 LWJGL (Lightweight Java Game Library )를 사용해 기동할 수 있지만 JOGL판에서는 현행의 ATI 계 그래픽 카드가 잘 작동하지 않는다는 것.
 JAVA계 MMORPG답게 기본요금은 무료이지만 그 경우 스킬 캡이나 맵이 한정되고 있다. 프리미엄 서비스는 5유로(약750엔)으로 1유로로 Silver Coin 한 장이라고 하는 RMT도 행해지고 있다.
 두 개의 왕국이 대치하고 있다고 하는 설정으로 PvP(대인 액션)이 허가되고 있기 때문에 혼자서는 생활 하기 어려운 사양이 되어 있다. 그 결과 플레이어들은 마을을 만들어 일정액수를 지불하여 NPC의 가드맨에게 마을을 지켜 주게 된다.



Project Darkstar는 저 예산 MMORPG의 개발에 공헌한다

 금년 5월에 샌프란시스코에서 행해지고 있었던 JAVA 개발자의 회합 JavaOne에 있어 Sun의 Scott McNealy (스콧 맥닐리) 회장은 2005sus의JAVA 탑재 휴대 전화의 출하 대수가 세계에서 2억대를 돌파한 것을 들어 벌써 소비자에게 깊게 침투하고 있는 것을 강조하고 있었다.
 향후 JAVA가 가지는 “플랫폼 비 의존”의 컨셉을 실현할 수 있도록 휴대 전화와 PC 게임 안에서 하등의 호환성을 갖게한 것 같은 서비스도 증가해 가는 것은 틀림없다. 그것 뿐만이 아니라 맥닐리씨는 JavaOne의 기조 강연에서 「JAVA는 벌써 PlayStation 3 에 탑재가 끝난 상태」(The Sony PlayStation 3 is coming out with Java on it.) 라고 하는 발언을 하고 있다. 그 말이 무엇을 의미하고 있는지는 좀 더 명확하지 않지만 미들웨어로서의 JAVA는 착실하게 게임으로의 발판을 쌓아 올리고 있는 것 같다.


Immediate Mode Interactive 라고 하는 개발 팀이 제작한 「Cosmic Birdie 」는 Project Darkstar 서버 시스템을 사용. 공식 사이트로부터 무료 다운로드 할 수 있다. 3D 사운드나 지형의 변형에도 대응한 본격적인 3D 게임이다

 그런 Sun이 만반의 준비를 해 금년 3월에 발표한 것이 「Project Darkstar 」이다. 이것은 San Game Server 이라고도 불리고 있는 동사가 15년 정도 걸려 개발한 Sun Grid의 바리에이션이다. 이Darkstar 서버는 Windows나Linux 등 플랫폼을 불문하고 수백만의 어카운트를 관리하는 대규모 MMORPG로부터 포커 게임과 같은 캐쥬얼인 온라인 게임에 이르기까지 서버 아키텍쳐의 확장성이나 데이타베이스의 퍼포먼스에 관한 튜닝이라고 하는 여러 문제에 있어서의 개발자의 부담경감을 목적으로 하고 있다.
 간단하게 말하면 개발자가 신작을 만들 때마다 새로운 서버를 구축할 필요가 없고, 소규모의 개발 회사나 인디즈 계의 개발 팀에서도 보다 간편하고 단기간에 온라인 게임 제작을 가능하게 한다. 확실히 게임 전용의 “표준적인 서버 환경”으로 되려고 개발된 기술이다.

 Project Darkstar는 JAVA 언어 뿐만이 아니라 C++ 언어도 지원하게 되어 있다. 흥미로운 것이 Project Darkstar 공식 사이트에 게임 애플리케이션의 원시 코드를 무료 공개한다고 명언되고 있는 것으로,어쨌든 보다 많은 MMORPG 를 세상에 내보내 주려는 자세인 것 같다.
 인디즈계 개발자는 때로는 업계내부로부터 생기기 어려운 독특한 발상의 소프트를 만들어 내는 일이 있다. 또 NCSoft의 북미 지부가 JAVA계 프로그래머를 모집하는 등 메이저 기업의 JAVA 참가도 차례로 진행해져 가는 것처럼 보인다. JAVA 나 Darkstar는 향후의MMORPG 장르의 혁명에 어떻게 관련되어 가게 되는지 기다려진다.






역자 : Project Darkstar 관련 글.
http://blog.naver.com/jacking75.do?Redi ... 0035606387
http://blog.naver.com/jacking75.do?Redi ... 0035619379
MS MVP( VC++ )
Twitter : jacking75
블로그 1: http://jacking.tistory.com
블로그 2: http://blog.naver.com/jacking75
스프링노트 : http://jacking.springnote.com
비회원

썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by 비회원 »

약간 썬의 자바를 광고 목적으로 들리는군요
만약 마소가 똑같이 한다면 c#이나 .Net으로 개발하는 mmorpg 예를 들어서
홍보에 나설것 같습니다
자바나 .Net이나 효율성면서에 좋겠지만,아직 코어까지는 좀 아니지 않나요

코어는 네이티브 C++,그 위에 컨텐츠적인건 라이트한 언어가 적당하다고 봅니다
퍼포먼스나 효율성 측면 2가지를 다 생각한다면
앞으로 몇년간 이 추세로 갈 것 같은데요(X리얼 엔진처럼,.........)
jacking
Posts: 1035
Joined: 2002-01-09 09:00

Re: 썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by jacking »

비회원 wrote:약간 썬의 자바를 광고 목적으로 들리는군요
만약 마소가 똑같이 한다면 c#이나 .Net으로 개발하는 mmorpg 예를 들어서
홍보에 나설것 같습니다
자바나 .Net이나 효율성면서에 좋겠지만,아직 코어까지는 좀 아니지 않나요

코어는 네이티브 C++,그 위에 컨텐츠적인건 라이트한 언어가 적당하다고 봅니다
퍼포먼스나 효율성 측면 2가지를 다 생각한다면
앞으로 몇년간 이 추세로 갈 것 같은데요(X리얼 엔진처럼,.........)

그런데 저희가 언제나 최고의 기술력을 실현하는 게임을 만드는건 아니지 않니요 ?
캐주얼하게 간단한 게임이라면 퍼포먼스에 대해서 크게 신경쓰지 않고 개발 편이성에
초점을 맞추어야 되지 않을까 생각합니다.

위에서 소개한 게임들도 최고의 기술력을 선보일려는 게임은 아니라고 생각합니다.


ps : 그렇지만 이미 C++에 익수한 골수 프로그래머에게 다른 언어를 사용하라고 하면
그 프로그래머 입장에서는 개발 편이성보다 불편함이 더 있지 않을까 생각되네요.
제 생각에 그래서 C++이 아닌 다른 언어로 개발이 가능하더라도 바꾸지 않는다고
생각합니다.
MS MVP( VC++ )
Twitter : jacking75
블로그 1: http://jacking.tistory.com
블로그 2: http://blog.naver.com/jacking75
스프링노트 : http://jacking.springnote.com
mastercho
Posts: 587
Joined: 2004-05-09 20:37

Re: 썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by mastercho »

jacking wrote: ps : 그렇지만 이미 C++에 익수한 골수 프로그래머에게 다른 언어를 사용하라고 하면
그 프로그래머 입장에서는 개발 편이성보다 불편함이 더 있지 않을까 생각되네요.
제 생각에 그래서 C++이 아닌 다른 언어로 개발이 가능하더라도 바꾸지 않는다고
생각합니다.

저도 골수 인지 잘 모르겠지만 , C++ 에 이미 익숙해져 버려서 ... 자바의 유용함이라 치는것들은 ( 가비지 컬랙션 , 스트링기능 , 백터,리스트,맵,해쉬 같은 자료구조등등)

이미 C++로 "자바의 편리함이라 주장하는것 이상으로" 쓰고 있기에 , 도데체 C++보다 나은 자바가 뭔지 알기 조차 힘듭니다

훨씬 다양하고 강력한 기능때문에 , 그것을 남용만 하지 않으면 자바가 설자리는 없을거 같네요

한마디로 C++은 C언어의 빠른 성능과 쓰기에 따라서 자바와 같은 편리성까지 더 할수(?) 놈이기 때문일겁니다
비회원

Re: 썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by 비회원 »

mastercho wrote:
jacking wrote: ps : 그렇지만 이미 C++에 익수한 골수 프로그래머에게 다른 언어를 사용하라고 하면
그 프로그래머 입장에서는 개발 편이성보다 불편함이 더 있지 않을까 생각되네요.
제 생각에 그래서 C++이 아닌 다른 언어로 개발이 가능하더라도 바꾸지 않는다고
생각합니다.

저도 골수 인지 잘 모르겠지만 , C++ 에 이미 익숙해져 버려서 ... 자바의 유용함이라 치는것들은 ( 가비지 컬랙션 , 스트링기능 , 백터,리스트,맵,해쉬 같은 자료구조등등)

이미 C++로 "자바의 편리함이라 주장하는것 이상으로" 쓰고 있기에 , 도데체 C++보다 나은 자바가 뭔지 알기 조차 힘듭니다

훨씬 다양하고 강력한 기능때문에 , 그것을 남용만 하지 않으면 자바가 설자리는 없을거 같네요

한마디로 C++은 C언어의 빠른 성능과 쓰기에 따라서 자바와 같은 편리성까지 더 할수(?) 놈이기 때문일겁니다
자바의 뛰어남은 한번 만들면 어느 플랫폼이던 돌아간다.(Write Once, Runs Everywhere)
가 가장 큽니다. 그렇지만 Debugs Everywhere라고 불릴정도로 그 꿈은 이뤄지지 않았습니다.

C++은 그건 안되지요. 요새 나온 WxWidget을 사용하면 어느정도 플랫폼은 해결됩니다만 의외로 OpenGL이 그래픽 카드에 따라 에러가 발생하기도 하더군요.
비회원

자바가 언어로서 나은 건 없습니다.

Post by 비회원 »

자바가 유용하다 막강하다는 건 가비지 컬렉션 같은 언어적 요소가 아닌

막강한 패키지에 있습니다.

클라이언트 쪽을 제외하면 기존에 구축된 막강한 패키지와 유연성 때문에 개발기간이나

운영에 훨씬 유리합니다.

사실 클라이언트 쪽에서나 퍼포먼스 얘기가 나오는 거지

서버쪽에서 예전에 게임 만드는 식으로 윈도우즈 서버 구성하면(요즘엔 많이 좋아졌다더군요)

부하 많이 걸리는 이통사 서비스 같은 건 쭉쭉 뻗습니다.

물론 완벽하게 코딩한 결과물이라면야 바이너리 가 VM 상에서 돌아가는 자바 어플보다 낫겠지만

그 차이는 미미하고 자바는 대충만들어도 왠만큼 성능이 나오니까요.

클라이언트는 이러니 저러니해도 아직 자바 쓰기는 이르다고 봅니다. 퍼포먼스가 왠만큼 차이가 나야죠.
비회원

Re: 썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by 비회원 »

mastercho wrote:
jacking wrote: ps : 그렇지만 이미 C++에 익수한 골수 프로그래머에게 다른 언어를 사용하라고 하면
그 프로그래머 입장에서는 개발 편이성보다 불편함이 더 있지 않을까 생각되네요.
제 생각에 그래서 C++이 아닌 다른 언어로 개발이 가능하더라도 바꾸지 않는다고
생각합니다.

저도 골수 인지 잘 모르겠지만 , C++ 에 이미 익숙해져 버려서 ... 자바의 유용함이라 치는것들은 ( 가비지 컬랙션 , 스트링기능 , 백터,리스트,맵,해쉬 같은 자료구조등등)

이미 C++로 "자바의 편리함이라 주장하는것 이상으로" 쓰고 있기에 , 도데체 C++보다 나은 자바가 뭔지 알기 조차 힘듭니다

훨씬 다양하고 강력한 기능때문에 , 그것을 남용만 하지 않으면 자바가 설자리는 없을거 같네요

한마디로 C++은 C언어의 빠른 성능과 쓰기에 따라서 자바와 같은 편리성까지 더 할수(?) 놈이기 때문일겁니다

자바는 숙련도가 떨어지는 프로그래머도 쉽게 고급기능을 구현할 수 있기 때문에 생산성과 효율성이 높아서
좋은 것이지 C++숙련도가 높은 프로그래머를 위해서 좋은 것이 아니랍니다^^

기술에 정통한 회사 사장이라면 간단한 툴을 만드는데 C++로 한달 걸려서 만들어 내는 연봉 높고 잘 숙련된
프로그래머보다 C#(자바 철학을 거의 90%이상 흉내내서 MS에서 만들었죠)으로 일주일만에 만들어 내는 1~2년차 프로그래머를 고용하지 않을까요?
비회원

Re: 썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by 비회원 »

기술에 정통한 회사 사장이라면 간단한 툴을 만드는데 C++로 한달 걸려서 만들어 내는 연봉 높고 잘 숙련된
프로그래머보다 C#(자바 철학을 거의 90%이상 흉내내서 MS에서 만들었죠)으로 일주일만에 만들어 내는 1~2년차 프로그래머를 고용하지 않을까요?
오바가 심하시네요.

무슨 툴을 만들지 잘 모르겠지만
툴을 만드는데는 , 언어보다도 , 설계 철학과 노하우 , 및 기존 코드와 연동성을 비교해보면 C# 프로그래머가
1주일만에 만들어내는 툴을 , C++에 숙련된 프로그래머가 한달이나 걸려 만들리 없습니다


그리고 C# 으로 대충만들던 프로그래머는 결코 C++의 고급스러운 영역을 건들수 없지만
숙련된 C++ 프로그래머는 C#으로 대충만드는 툴보다 더 빨리 정교하고 확장성있는 툴을만들 확률이
높고, 알고리즘 및 자료구조 능력을 비교해봐도 C# 1-2년차 와 비교를 한다는게 어불성설입니다


제가 사장이라면 단순히 알바를 뽑을 작정이 아니라 정직원을 뽑을 생각이라면 당연히 툴을 만드는데도
C++ 숙련자를 뽑겠습니다
비회원

Re: [번역] 활황을 이루는 JAVA 베이스 MMORPG

Post by 비회원 »

Java를 극한까지 사용해보지 않아 잘은 모르겠으나, 윗분들의 말씀처럼 아직은 시기상조임에는 틀림이 없는 것 같습니다.

왜냐하면 Java가 아무리 좋다고 한들, c++에 익숙해져있는 프로그래머에게 똑같은 성능을 자바로 내라고 할 수는 없는 문제고, 설령 낸다고 하여도 그 시간이면 c++로 다른 것을 개발할 수 있을 정도의 시간이 남을 것 같네요.

아무리 포토샵이 강력한 기능을 가져서 붓글씨를 흉내낼 수 있다하여도(가정), 붓으로 수십년을 글을 써온 분에게 포토샵을 주며 이것으로 글을 쓰라고 하면 어떻게 될까요? 이와 마찬가지일 것 같습니다.

결론적으로 문제는 도구가 아니라 결과물이기에 굳이 MMORPG를 Java로 개발할 필요는 없다고 생각합니다. Java프로그래머분께서 들으시면 어떻게 생각하실지 모르겠으나, C++도 전혀 Java에 비해 성능이 뒤떨어진다고 생각하지 않습니다.
비회원

언어는 언어일 뿐입니다.

Post by 비회원 »

실제 프로그램을 짜기 위해선 언어는 단지 아주 하단의 도구일 뿐입니다.

환상이 심해도 너무 심한듯..

가장 중요한건 구조이고요. 구조를 잘짜기 위해선 경력이 필요합니다.

c++과 자바를 비교하시는데.. 별반 다르지 않은데요?

기본적으로 객체화 해서 재공되는 기능이 많다 뿐이지.

c++은 자바보다 훨씬 많은 기능들을 제공 합니다 물론 c 포함..
비회원

Re: 썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by 비회원 »

비회원 wrote:
기술에 정통한 회사 사장이라면 간단한 툴을 만드는데 C++로 한달 걸려서 만들어 내는 연봉 높고 잘 숙련된
프로그래머보다 C#(자바 철학을 거의 90%이상 흉내내서 MS에서 만들었죠)으로 일주일만에 만들어 내는 1~2년차 프로그래머를 고용하지 않을까요?
오바가 심하시네요.

무슨 툴을 만들지 잘 모르겠지만
툴을 만드는데는 , 언어보다도 , 설계 철학과 노하우 , 및 기존 코드와 연동성을 비교해보면 C# 프로그래머가
1주일만에 만들어내는 툴을 , C++에 숙련된 프로그래머가 한달이나 걸려 만들리 없습니다


그리고 C# 으로 대충만들던 프로그래머는 결코 C++의 고급스러운 영역을 건들수 없지만
숙련된 C++ 프로그래머는 C#으로 대충만드는 툴보다 더 빨리 정교하고 확장성있는 툴을만들 확률이
높고, 알고리즘 및 자료구조 능력을 비교해봐도 C# 1-2년차 와 비교를 한다는게 어불성설입니다


제가 사장이라면 단순히 알바를 뽑을 작정이 아니라 정직원을 뽑을 생각이라면 당연히 툴을 만드는데도
C++ 숙련자를 뽑겠습니다
게임쪽이 아닌 일반어플이라면 그것도 UI쪽이라면 가능할수도 있지 않을까요?
비회원

자바의 장점이라면..

Post by 비회원 »

다른 곳에서 삭제해버린 썩은 포인터때문에 고생해 보신 적이 있지 않으신가요? 자바는 이 문제를 언어적 차원에서 해결하고 있지요. c++에서는 boost의 shared pointer를 이용하면 비슷한 구현을 할수 있지만 자바처럼 자동으로 해주진 않지요.
비회원

Re: 자바의 장점이라면..

Post by 비회원 »

비회원 wrote:다른 곳에서 삭제해버린 썩은 포인터때문에 고생해 보신 적이 있지 않으신가요? 자바는 이 문제를 언어적 차원에서 해결하고 있지요. c++에서는 boost의 shared pointer를 이용하면 비슷한 구현을 할수 있지만 자바처럼 자동으로 해주진 않지요.
Garbage Collector가 만병통치약은 아닙니다.

GC가 오히려 performance에 장애가 되는 경우도 있고요..

각자의 장단점이 있기 때문에 어느 한쪽만 좋다 라는식은 바람직하지 않은것 같습니다.
비회원

C -> C++ 로 가던 논쟁이고 어플리케이션 개발분야에서 C++과 Java논쟁과 똑 같네요.

Post by 비회원 »

ㅎㅎ 다들 C++ 을 주로 사용하시는 분들이라 애착이 많으시군요.
예전에 거의모든 게임이 C로 만들던 때어 불쑥 C++로 만들어진 게임이 나오면서 했던 논쟁이나,
어플리케이션 부분에서 JAVA와 C++진영에서 하던 논쟁과 아주 유사하네요...

몇몇분들이 C++과 C#,JAVA등의 언어차원에서 무슨 마법지팡이라고 가진것 처럼 말씀들을 하시네요.
물론 언어마다 생산성과 디버깅 능력, 풍부한 라이브러리, 설계의 용이성등이 있기 때문에 차이가 있는건 사실이지만 C++로 힘들게 만들거 JAVA로는 10~20% 노력으로 뚝딱 만든다는건 어불성설입니다.
아주 단순한 툴이나 특정분야에서는 있을 수도 있지만요.

ㅎㅎ 너무 흥분들하지 마시고요, 사실 C++과 JAVA모두 내부 깊은곳을 두언어 모두 잘 아시는분들은 아마 GPG에 없으실 텐데요. 지금 보드게임에서 시작해서 캐주얼게임등으로 자바가 점점 번져가는건 사실입니다.
서버측은 말할것도 없고요. 그래도 일반적인 어플리케이션이나 일반 서버사이드 개발부분에 비해서는 게임서버쪽은 JAVA로된 서버가 그리 많치가 않습니다. C#도 그렇구요.
제가 예전에 C#/JAVA로 게임서버군중에 일부를 개발해 보았는데 성능은 아주 떨어지고, 풍부한 라이브러리를 그다지 쓸게 많치 않아서 생산성도 그다지 올라가지 않았었습니다. 그렇지만, 그때당시 JAVA에 아주 깊은 이해가 있었던게 아니어서 그런점도 있고, 지금보다 하드웨어 사양이 좀 떨어져서 그런것도 있구요.

이거 두서없지만 결론은 JAVA,C#도 대안이 될수도 있다는 생각을 하고, 내가 이런일을 하는데 언어를 툴이라는 생각에 선택한다는 사고가 필요한거 같습니다. 목에 힘세우고 C++외친다고 C++이 불로장생하는것도 아니고 필요에 의해 C++이던 C#이던 JAVA던 선택하면 되는겁니다. 해도 되겠다 싶으면 과감히 하면 되는거구요.

서버사이드는 아무래도 어떤 언어를 선택해도 서비스에 잘 드러나지 않기 때문에 전 LISP,ERLANG으로 코딩한적도 있습니다. 극한 성능에선 좀 차이가 나겠지만, 요즘 하드웨어가 너무 좋아 예전보다는 언어적 성능을 좀 덜타는거 같습니다.

앞으로 1~2년은 몰라도 그이후는 사실 어찌될지 누구도 모르는 거죠.
C++도 오래 되지 않았나요.. 다른언어도 어차피 자기가 선택할수 있는 도구가 하나더 생긴거니 좋잖아요..

ㅎㅎ 부디 C++도 오래 쓰이고 JAVA도 많이 쓰이고 다양해졌으면 좋겠습니다.
비회원

Post by 비회원 »

자바의 가비지 컬렉터..

이 부분은 굉장히 잘하고 경험이 많아야합니다.
new를 통해서 memory leak은 없지만 메모리 낭비가 없다고는 할 수 없습니다.
반대로 이야기하면 해당 변수를 NULL로 대입한다 해도 가비컬렉터에서 삭제한다는 보장이 없습니다.
분명 참조하고 있는 변수가 없지만 필요 이상으로 메모리를 사용할 확률은 얼마든지 있지요.
또, 소멸자가 호출되는 시점은 아쉽게도 가비지 컬렉터에서 호출할때 인데 언제인지 알 수 없죠.
(이걸 해결할 방법이 없다는건 아닙니다.)

즉, 제 이야기는 특정언어가 좋다 나쁘다가 라기보다 언어의 특성을 잘 이해 해야합니다.
이해도가 적은 상태에서 메모리 관리 안하고 편하잖아? 라는 생각으로 접근한다면 낭패죠.
그렇게 접근하면 결론은 뻔합니다. "java는 퍼포먼스가 안좋아"
제 기준으로는 java가 쉬워 보이지는 않고 다른 내공을 갖고 있어야 하는것 같더군요.
내공만 있다면 충분히 퍼포먼스 좋게 만들 수 있습니다.
비회원

Re: 썬인데 자바를 부풀리는게 당연하다고 봅니다

Post by 비회원 »

mastercho wrote:
jacking wrote: ps : 그렇지만 이미 C++에 익수한 골수 프로그래머에게 다른 언어를 사용하라고 하면
그 프로그래머 입장에서는 개발 편이성보다 불편함이 더 있지 않을까 생각되네요.
제 생각에 그래서 C++이 아닌 다른 언어로 개발이 가능하더라도 바꾸지 않는다고
생각합니다.

저도 골수 인지 잘 모르겠지만 , C++ 에 이미 익숙해져 버려서 ... 자바의 유용함이라 치는것들은 ( 가비지 컬랙션 , 스트링기능 , 백터,리스트,맵,해쉬 같은 자료구조등등)

이미 C++로 "자바의 편리함이라 주장하는것 이상으로" 쓰고 있기에 , 도데체 C++보다 나은 자바가 뭔지 알기 조차 힘듭니다

훨씬 다양하고 강력한 기능때문에 , 그것을 남용만 하지 않으면 자바가 설자리는 없을거 같네요

한마디로 C++은 C언어의 빠른 성능과 쓰기에 따라서 자바와 같은 편리성까지 더 할수(?) 놈이기 때문일겁니다
C++로 개발하다가 JAVA나 C#으로 개발하면....
그냥 편해집니다. 그것도 좀 많~이.
(전 성능보다는 편안한 코딩을 지향하는 주의라서 C++보다 JAVA, C#이 더 좋네요.)
sid
Posts: 133
Joined: 2008-09-25 13:06
Location: chzero
Contact:

Post by sid »

빠르고 유지보수 편한거 쓰면 되죠

자바가 필요한 시스템이 있고

C++이 필요한 시스템이 있죠

제가 볼때는 서버쪽은 JAVA가 좀 유리하고

클라쪽은 C++이 유리 한거 같습니다.

C#도 좋고요 ^^
좀 쉬자 쉬자 ~~~~
비회원

자바로 개발하는 게임서버의 장점

Post by 비회원 »

저는 자바로 게임플랫폼(여러게임이 한 서버에 돌아가는 서버, 일종 WAS)를 제작하여 모 이통사에서 서비스 중이고 또한 PC 온라인 게임 현재 모바일 MMORG를 개발하고 있습니다.
개인적으로 자바로 처음 게임 서버 개발 할 때 기존 PC개발자들의 무지막지한 의심의 눈초리를 받았지만 결론은 결과로 모든 의심을 잠재웠습니다-_-.

아뭏든 제가 자바로 게임 서버를 만드는 이유는 다음과 같습니다.

1. 인간은 실수할 수 있다.(아니 무조건 실수한다) 고로 나도 인간임으로 실수한다라는 전제하에 java의 언어적 측면인 포이터가 없는 부분과 에러 처리 메카니즘이 에러코드로 부터 서버를 얘기치 않게 뻣게 만다는 것을 최대한 방지 할 수 있습니다.
물론 이런 부분이 아무렇게나 한다고 되는 것은 아니지만 엄청난 내공를 가지고 있지 안더라도 구조를 잘 만들어 놓으면 그 구조안에서 일어나는 에러는 서버를 정지할 정도록 만들지는 않는 다는 것입니다. 사실 이 부분은 여타 다른 게임 만들었던 사람들을 가장 놀라게 했던 부분이었습니다. 개발 과정중에서도 서버가 거의 뻣는 것은 없었습니다.

2.NIO의 출현. NIO는 자바에서 쓰이는 비동기 소켓입니다. 사실 블록킹 소켓만 있을 때는 대규모 접속이 일어나는 게임 서버를 만드는 일은 거의 불가능한 일이었습니다. 또 이놈이 성능도 괜찮고 쓰기도 편리하게 만들었 놓았습니다.

3. 풍부한 패키지및 공개된 오픈 소스. 자바는 정말로 엄청난 고컬리티에 수많은 라이브러리가 존재하며 심지어 소스까지 오픈 되어 있습니다. 저 같은 경우 소스를 보고 불필요한 부분이 있다면 그런 부분들을 들어내고 만들어 쓰곤 했습니다.

4. 하드웨어가 무지하게 싸고 좋아졌습니다.(요즘 쿼드코어 서버가 그리 비싸지 않습니다. 이건 OS에서 코어갯수를 8개로 나타나죠). 그래서 왠만해서는 속도 문제가 민감하지 않습니다. 물론 java를 쓰던지, 다른 언어를 쓰던지 삽질 코드에는 장사가 없겠죠-_-

5. VC도 그렇지만 풍부한 개발을 편리하게 하는 서드파티 툴이 엄청나게 많습니다(예: 이클립스).

위의 결과로 개발 기간 단축및 비용대 성능이 좋게 됩니다. 이 부분는 논란이 여지가 있지만 지금까지 프로젝트 지내온 경험의 결과입니다.

단 조심할 것은
1. OOE(Out of Memory Exception). 가비컬렉션에 대한 깊은 이해가 있어야 하고 이 가비지 컬렉션이 덜 일어날 수 있도록 데이터 풀링등을 적절히 잘 이용해야 합니다. OOE는 메모리 leak또는 HEAP메모리의 소비속도가 가비컬렉션을 통한 메모리 해제속도보도 빠를 때 일어납니다. 이 에러가 발생하면 C에서 일어나는 포인터 에러 만큼이나 찾아내기 싶지 않기 때문에 주의 하셔야 합니다.

2. Thread 남용 방지. 이것은 꼭 자바뿐만 아니라 다른 모든 언어도 마찮가지만 쓰레드는 될 수 있는 되로 가장 적게 쓰는 것이 정신건강상 이롭고 퍼포먼스 측면에서 적절한 쓰레드를 쓰도록 구조를 만든 것이 가장 좋습니다. 아니면 메모리및 컨텍스트 스윗칭 하다고 일 다봅니다.

3. 메모리를 잘 활용하기. 요즘 메모리 가격 쌉니다. 팍팍 씁시다.

이미 금융쪽은 WAS서버를 통해 크리티컬 업무도 자바를 많이 활용합니다. 게임서버쪽독 자바를 이용한 개발자들이 많아 졌으면 하는 바램입니다^^
Post Reply