루비는 게임 개발에 적합한 언어입니까? [닫은]


33

게임 개발로 넘어 가고 싶지만, 내가 아는 유일한 언어는 Ruby입니다. 내가 읽은 대부분은 게임 개발을위한 C ++ 또는 XNA를 사용하기위한 C #과 같은 특정 프레임 워크를위한 언어와 같은 저급 언어를 가리키는 것으로 보입니다. 게임 개발에 루비와 같은 언어를 사용한 경험이 있습니까? 그렇다면 조언을 하시겠습니까?

답변:


47

나는 루비 (또는 파이썬)를 선호하지 않으며, 나는 자바 사람이다. 그러나 Ruby가 어떻게 "실제로는 게임이 아니고"파이썬에 대한 UnknownDevice의 대답은 나를 실망 시켰습니다. 나는 그가 명확히하기를 바랍니다.

Pygame이 존재하고 주변에 있다는 것을 알고 Python이 Ruby보다 더 큰 사용자 기반을 가지고 있음을 알고 있습니다. 그러나 솔직히 말해서 그들 중 어느 것도 "게임을위한"언어처럼 보이지 않습니다. Java도 마찬가지입니다. 이것이 제가 선택한 게임 프로그래밍 언어입니다. (그리고 "선택"이라고 말할 때, 선택 은 학교에서 가르치는 것이거나 내가 "알고있는"것이 아니기 때문에 선택을 의미 합니다 . 그리고 정말로, "게임을위한"언어는 무엇입니까? 음, 속도는 중요한 요소이며, 그래픽 및 기타 게임 시스템 (오디오, 입력 등)을위한 라이브러리가 있어야합니다.

속도가 빠르면 루비와 파이썬이 던지는 것 같습니다. 몇 가지 검색을 수행하면 스펙트럼의 양쪽에 대한 벤치 마크와 인수 및 다양한 구성을 앞뒤로 빠르게 찾을 수 있습니다. "Psycho"라고 불리는 파이썬은 루비에 비해 인기있는 속도 악마이지만, 일반적인 파이썬은 루비보다 약간 느린 것 같습니다. 결국, 그러한 고급 언어를 선택한다면 어쨌든 기본 속도에 관심이 없습니다. 가장 잘 아는 언어로 가십시오. 그리고 분명히 당신은 루비를 가장 잘 알고 있으므로 권장합니다!

다른 요소는 기술이 게임을 만들기 위해 존재하는지 여부입니다. 화면에 그리기 및 입력 및 오디오 재생을 지원할 수 있는지 여부 루비는이 모든 것을 할 수 있습니다. 실제로 이와 관련하여 많은 옵션이 있습니다. 있다 루비 - OpenGL을 (또는이 기본적으로 포함 할 수 있는가?) 루비의 OpenGL 지원을 제공합니다 루비 포지에서 패키지. 또한 Chingu 는 "초고속 OpenGL 가속 2D 그래픽!" 홈페이지에 따르면; 그것은 진구가 당신을 위해 너무 많은 경우 사용할 수있는 Gosu 위에 추가 기능을 빌드 합니다. 또는 3D 그래픽의 경우 루비 -opengl 을 사용하지 않으려면 "고급 OpenGL 기능을위한 매우 깨끗한 래퍼 클래스 세트"인 G3DRuby를 사용해보십시오 . 그곳에'Rubygame 은 많은 정보를 찾을 수 없지만 "크로스 플랫폼 멀티미디어 라이브러리"라고 주장하고 이름이 주어지면 게임 개발에 중점을 두어야합니다. 널리 사용 되는 C ++ 용 SDL 라이브러리에 익숙한 경우 Ruby / SDL 또는 RUDL이 있으며 둘 다 SDL의 Ruby 래퍼입니다. 또는 더 새로운 객체 지향 SFML 을 선호하는 경우 Ruby에서도 사용할 수 있습니다!

Ruby가 Python보다 게임 프로그래밍 언어보다 적어야 할 이유는 없습니다. 하나 있다면, 나는 그것을 듣고 싶어서 그것을 반대 할 수 있습니다. Ruby에서 가장 편안한 프로그래밍을 느끼고 다른 인기있는 언어에 비해 장단점을 알고 있다면 반드시 Ruby에서 게임을 개발할 수 있습니다!


+1이지만 콘솔과 같은 독점 플랫폼에서 일부 언어의 사용 제한에 대해 무언가를 추가해야합니다 ... 게임 자체에 루비를 사용한다고해서 실제로 도움이되지는 않습니다. 그러나 데스크탑 게임의 경우 "왜?"
Klaim

@Klaim 나는 그것이 관련성이 떨어지고 있다고 주장 할 것이고, 나는 다음 세대의 콘솔이나 그 이후의 콘솔에 사용되는 언어를 알고 싶어 할 것입니다. 그들이 C ++로 계속 개발 될 가능성은 있지만, 개인적으로 그들이 더 높은 수준의 언어로 발전 할 가능성이 높다고 생각합니다. 예를 들어 Android 개발은 Java로되어 있습니다. 안드로이드는 게임 콘솔이 아닙니다. 그러나 아마도 Go와 같은 하이브리드 언어는 콘솔 세대 또는 2 세대에서 새로운 대중 언어가 될 것입니다.
Ricket

1
나는 원칙에 동의하고, 아마도 이쪽에서 Go 또는 D가 뭔가를 성취 할 것입니다. 그러나이 업계에서는 시스템 언어 만 "표준"이라고 생각합니다. 그러나 저는 비디오 게임 도메인의 인디 측면이 아닌 업계에 대해 이야기하고 있습니다. 나는 당신이 (큰 회사의 월급이 아닌) 자신의 길을 가면 원하는 것을 사용할 수있는 기회가 있다고 생각합니다. 그러나 콘솔 이외의 작업을 수행하려는 경우 생성자가 요청한 도구를 계속 사용해야합니다. 전화는 Java를 사용하지만 더 많은 성능이 필요한 응용 프로그램, 동일한 전화에서 많은 C ++이 사용됩니다.
클라 임

사실 비디오 게임 산업이 현재 표준 C ++조차 채택하는 데 시간이 오래 걸리기 때문에 콘솔에서 C ++ 이외의 다른 것을 갖기 전에 오랜 시간을 기다려야 할 가능성이 높다고 생각합니다. 생성자와 개발자의 작업 방식이 바뀔 수 있지만 오늘날에는 상상하기 쉽지 않습니다.
클라 임

최대 성능이 문제가되지 않는 많은 유형의 게임이 있다고 덧붙였습니다. 물론, 새로운 크라이시스를 만드는 동안 모든 프레임을 짜내고 싶을 필요는 없지만 많은 게임이 있습니다. 이러한 게임을 작업 할 때는 다른 언어도 필요하지 않을 수 있습니다 (예를 들어, Civilization 4 및 5와 같은 게임은 스크립트 언어에 의존 함).
MartinTeeVarga

9

http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/

URL은 아마도 스포일러 일 것입니다.

tl; dr : 순진 가비지 수집기는 실제 문제입니다.


매우 유익한! 루비 전문가가 이것이 오늘날에도 여전히 적용 가능한지에 대해 언급 할 수 있습니까? 이 기사는 2009 년 1 월에 작성되었으며 그 이후로 많은 일이 발생해도 놀라지 않을 것입니다. 편집 난 방금 2010 년 9 월 3 일자 기사를 찾았는데 실제로 루비 가비지 콜렉터가 실행되지 않았 음을 나타내는 오늘날에도 여전히 그러합니다. jabberwocky.eu/2010/09/03/ruby-garbage-collection
Ricket

1
루비의 가비지 콜렉터는 마크 앤 스윕이지만 사이클의 경우 파이썬과 루아도 마찬가지입니다 (사실 내가 작업 한 파이썬 게임에서는 정확히 그 이유로 GC를 지연시켜야했습니다). 나는 벤치 마크를하지 않았지만 루비는 근본적으로 느리기보다는 우연히 느리다. 루비를 피해야 할 엄청난 이유라고 생각하지 않습니다. 특히 루비로 질문하는 것처럼 게임을 만드는 것에 대해 이야기하고 있다면 더욱 그렇습니다. 적절한 시간이 될 때까지 GC를 비활성화하십시오.

1
이 기사가 게시 된 지 얼마되지 않았지만이 흥미로운 기사를 확인하십시오. patshaughnessy.net/2012/3/23/… Ruby 2.0의 가비지 콜렉터에 관한 것입니다. 다음은 GC 빌더의 기조 연설입니다. youtube.com/watch?v=4fIdEeM0Fyg 이 비디오는 루비 2.0이 출시 될 때 아마도 1.5 ~ 2 년이되었을 것이므로 더 많은 성능과 GC가 개선되었을 수 있습니다. . 이로 인해 Ruby는 더 많은 오브젝트가 많은 게임에 더 실용적으로 사용될 수 있습니다. 나는 확실히 그렇게 희망한다! 나는 루비 2.0이 2013 년에 나올 것이라고 믿는다.
Michael van Rooijen

1
증분 가비지 수집 시스템을 포함하는 Matz 자체의 새로운 mruby를 포함하여 다른 가비지 수집 시스템을 지원하는 MRI 이외의 VM도 있습니다. 지금까지 mruby는 게임을위한 훌륭한 선택이되고 있습니다. iOS 및 Android에서도 작동합니다!
Stephen Belanger

5

당신이 할 수없는 이유가 없습니다. 언어에 대한 멀티미디어 지원이있는 한 gamedev 자료입니다. 롤러 코스터 타이쿤 게임 중 상당 부분이 ASM에서 직접 작성되었습니다.


3
당신은 자신을 모순하는 것입니다. "게임을 asm으로 핸드 코딩"은 "루비로 게임을 코딩"또는 다른 고급 언어와는 정반대입니다.
bobobobo

1

Enterbrain은 Ruby를 둘러싼 많은 세부 작업에 익숙하지 않지만 Ruby 기반 게임 스크립트를 사용하는 게임 제작 프로그램 RPG Maker VX 및 RPG Maker XP를 만들었습니다. http://www.rpgmakerweb.com/

이것은 실제로 언어에 대한 첫 다이빙이었습니다. 대부분의 사람들이 말했듯이 아마도 다른 언어의 고성능을 얻지 못할 수도 있지만 2D RPG (또는 다른 2D 게임)를 시작하려는 경우 아마도 가장 정교한 게임 편집자 중 하나 일 것입니다 도움.


0

루비는 좋은 언어이지만 실제로 게임이 정직하지는 않습니다. C ++을 사용하고 싶지 않지만 Ruby와 같은 것을 원한다면 Python을 확인하십시오. 좋은 파이썬 프레임 워크를 위해서는 www.cocos2d.org/와 같은 것을 확인해야합니다.


3
... 또는 www.pygame.org
Ian Schreiber

6
이것은 말도 안됩니다. 루비는 파이썬보다 "게임용"언어 일뿐입니다.
Ricket

2
넌센스 루아는 게임용이 아니라고 말할 수도 있습니다.
Kornel Kisielewicz

2
파이 게임에 해당하는 루비가 있습니까? 한 언어가 다른 언어보다 더 적합하다고는 말할 수 없습니다. 그러나 파이썬에는 더 나은 게임 라이브러리와 gamedev 커뮤니티가 있다고 말하는 것이 합리적입니다.
deft_code

루비에 SFML 포트가 있다고 생각합니다.
공산주의 오리

0

어떤 종류의 게임에 관심이 있는지에 달려 있습니다. 나는 루비를 사용하여 Diplomacy , poker 및 Lost Cities를 포함한 여러 게임에 AI 클라이언트를 작성했습니다 . 다른 개념을 빠르게 실험하기에 매우 친절한 언어라는 것을 알았습니다. 반면에, 실시간 슈팅 게임을 작성하는 데 사용하고 싶지는 않습니다. 필요한 성능이 없습니다.


0

귀하의 질문은 너무 일반적입니다. 컴퓨터 게임을 취미 프로젝트로 작성하고 싶습니까? 아니면 인디 / 프로 게임 개발에 참여하고 싶습니까? 그래픽이 있습니까? 어떤 플랫폼에서 실행됩니까?

일반적으로 Ruby는 취미 프로젝트 (BTW가 가장 좋아하는 Ruby 게임은 Ruby Warrior ) 및 Farmville과 같은 웹 기반 게임 개발에 적합합니다. 그런 프로그래머들에게는 특정한 요구가 있습니다. "루비 프로그래머 소셜 게임"과 같은 구글을 ​​시도하십시오.

반면에 그래픽이있는 데스크탑 또는 모바일 기반 게임을 개발하려면 Ruby가 최선의 선택이 아닙니다. 치다:

  • Coffeescript를 지원하는 Javascript 라이브러리 (구문은 Ruby와 매우 유사 함)
  • Python-Ruby와 매우 유사하며 더 나은 게임 라이브러리

0

Ruby로 성능이 뛰어나고 전문적이고 상업적인 3D 게임을 작성할 것으로 기대하지는 않지만 Ruby는 게임 개발 개념을 배울 때 사용할 수있는 훌륭한 언어입니다.

Gosu 는 Ruby에서 2D 게임을 작성하는 데 가장 널리 사용되는 라이브러리입니다. 여기에는 성능을 향상시키고 OpenGL과 같은 기본 디스플레이 렌더링 라이브러리와 상호 작용하는 데 사용되는 기본 C ++ 라이브러리가 있습니다.

성능이 향상되는 한 "기본"Ruby 구현 (MRI)은 제대로 작동하지만 (최상의 성능을 위해 최신 Ruby 2.0을 제안합니다) 기본 스레드와 Rubinius, JRuby 등과 같은 대체 가비지 수집 알고리즘이있는 대체 구현이 있습니다. 스레드를 사용하는 경우 Rubinius를 사용해보십시오. 그렇지 않으면 MRI Ruby가 정상적으로 작동합니다.


-2

파이썬은 게임 개발을위한 프레임 워크 / 라이브러리와 관련하여 더 큰 사용자 기반과 더 많은 선택을 가지고 있기 때문에 말했다. 이 사람은 게임 개발 경험이 없기 때문에 가능한 한 루비와 같은 것을 사용하는 것이 좋습니다.

게임을 할 때 Lua와 함께 C ++을 사용하는데, 미디어를 지원한다는 이유로 Visual Basic으로 게임을 쓰지 않습니다. 나는 여기에있는 모든 사람이 누군가가 특정 직업을위한 특정 도구를 사용한다고 들었습니다. 구두로 못을 망치는 것은 확실하지만 망치를 사용할 수있는 이유는 무엇입니까?


2
C ++은 훌륭한 언어이지만 실제로 게임이 정직하지는 않습니다. 어셈블리를 사용하고 싶지 않지만 C ++과 같은 것을 원한다면 C를 확인하십시오. 좋은 C 프레임 워크를 위해서는 libsdl.org 와 같은 것을 확인해야합니다 . (좋아요, C ++은 이전 버전과 호환되기 때문에 작동하지 않지만 요점을 알 수 있습니다)
Ricket

Lol no 나는 당신의 요점을 얻지 못했습니다. 솔직히 나는 당신이 말하는 것을 정말로 신경 쓰지 않으므로 나에게 답장을하지 마십시오. 나는 프로그래밍 언어의 정당성에 대해 논쟁하지 않고 누군가를 돕기 위해 노력하고 있습니다.
UnknownDevice

5
그의 요점은 당신의 원래의 대답은 질문 된 질문과 관련하여 전혀 아무런 의미가 없다는 것입니다. 당신은 루비가 "정말 게임이 아니라"고 주장하지만 그것은 당신이 말하는 전부입니다. 그 가치는 거의 없습니다. OP가 루비를 사용하고 싶은 이유는 분명하다. "그가 정말로 잘 아는 유일한 언어"이다. 그것은 "가능하기 때문에"와 전혀 같지 않습니다.
Neverender

@Neverender, 그것은 사실이 아닙니다. 그는 파이썬이 단순히 더 큰 사용자 기반을 가지고 있으며 게임 개발을 위해 이미 완성 된 라이브러리가 더 많다고 주장했다. 나는 이것이 게임 개발 경험이없는 사람에게 조언을 할 때해야 할 합법적 인 관찰이라고 믿는다.
Zach Conn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.