게임을 개발하는 것이 프로그래밍을 배우는 가장 좋은 방법입니까? [닫은]


21

최근에 교수 개발 팀이 게임 개발이 프로그래밍을 배우는 가장 좋은 방법이라고 들었습니다. 그는 모든 것이 코드로 작성되어야한다는 사실 외에도 프로그램에서 OOP를 완전히 경험하고 구현할 수 있다고 말했다. 다시 말해서 게임에서 만드는 모든 것은 기술적으로나 개념적으로 문자 그대로의 객체입니다. 이 가정을하는 것이 안전합니까? 아니면 프로그래밍을 배울 때 항상 예외가 있습니까?

주의 가 .NET / XNA / C # 개발에 맞도록했다.


3
"모든 것이 코드로 작성되어야한다는 사실". 3D 모델, 텍스처, 사운드 및 기타 리소스는 어떻습니까? 그것들없이 게임 엔진을 만들 수는 있지만, 리소스가 거의없는 완전한 게임은 불가능하지는 않더라도 어려운 과제가 될 것입니다.
POSIX_ME_HARDER

@ 체셔 : 글쎄, 당신은 처리와 같은 것들을 프로그래밍 할 수 있습니다. 나는 그것이 매우 실용적이라고 말하지 않습니다.
Anto

2
@Cheshire : 그렇습니다. 어떤 사람들은 모든 것을 절차 적으로 만들어서이 도전을 직접적으로받습니다 . 상용 게임 (내가 아는 한)에서는 흔하지는 않지만, 그것이 가능 하다는 것을 증명하기 위해 인기 있고 그런 인상적인 데모를 보았습니다.
FrustratedWithFormsDesigner

6
이 질문이 게임에 대해 질문 할 때 '게임을하는 것'보다는 '게임 개발'을 의미한다고 가정합니까? Call of Duty에서 C ++ 로의 지적 도약을 그만 둘 수 없습니다 ...
HorusKol

1
게임을 플레이하려면 속도를 높이기 위해 순수한 OO 디자인을 타협해야 할 수도 있습니다.
피터 테일러

답변:


25

게임 개발은 제 생각에 가장 어려운 개발 중 하나입니다. 1 인칭 슈팅 게임을 만드는 사람이 알아야 할 모든 개념을 살펴 보자.

  • 제도법
    • 3D 계산
    • 속도 최적화
    • 그래픽 하드웨어와 인터페이스
  • 게임
    • 데이터 구조
    • 저장을위한 파일 형식
    • 일반적인 디자인 또는 그렇지 않으면 기능을 추가 할 수없는 혼란이 생길 ​​수 있습니다
    • 게임이 멀티 플레이어 인 경우 네트워크 지식
  • AI 알고리즘
    • 길 찾기
    • 전투 파이팅
  • 출판
    • 설치 프로그램 작동 방식과 같은 OS 지식
    • 단어를 꺼내기위한 웹 개발 가능성

하나의 게임이 동시에 많은 영역을 커버 할 수 있습니다 . 이것은 당신이 기꺼이 시간을 보내고 그것을 좋게 만들고 싶다면 훌륭한 학습 도구가됩니다.

OOP에 관해서는, 그것은 잘 작동하는 하나의 패턴입니다. 게임을 학습 도구로 사용하여 훌륭한 디자인 기법을 연습 할 수 있습니다.

그러나 질문에 대답하는 것이 프로그래밍을 배우는 유일한 방법은 아닙니다. 중간 개발자가되면 게임을 만들면 많은 프로그래밍 개념과 레벨을 만질 수 있습니다. 게다가 재미 있어요!


12
당신은 한 가지, 그 게임에 대한 이야기를 잊어 버렸으며 때로는 이야기가 모두 중요합니다.
Mahmoud Hossam

이것은 3D 게임이라고 가정합니다.
Adam Harte

1
@Adam : 그렇습니다. 그러나 2D는 계산도합니다. 나는 테스트 용 RPG를 의도적으로 제외하고있다;)
Michael K

1
@Mohmoud 이야기는 결코 "모든 문제"가 아닙니다. 이것은 나쁜 이야기를 놓치는 것만큼이나 큰 실수입니다. 좋은 게임을 만드는 데는 여러 가지 측면이 있습니다. 이야기가 아무리 훌륭하더라도 지루한 게임을하고 싶지 않습니다. 또한 가장 성공적인 퍼즐 게임에는 이야기가 없습니다.
Adam Harte

게임 이론도 편리합니다.
VirtuosiMedia

46

긴장이되어서는 안되지만 프로그래밍은 프로그래밍을 배우는 가장 좋은 방법입니다. 컴퓨터 게임에 관심이 있다면 프로그래밍 게임은 프로그래밍을 배우는 좋은 방법 일 수 있습니다.

나는 게임을 신경 쓰지 않지만 수학을 좋아하므로 많은 학습 프로젝트가 본질적으로 매우 수학적이었습니다.

결론은 코드 관련 문제를 해결하는 방법을 찾아야하며 게임은 많은 사람들에게 효과적이라는 것입니다.


이것이 내가 원래 생각한 것입니다. 그러나 완전히 새로운 프로그래밍을 고려하십시오. 게임은 많은 다른 개념을 배울 수있는 훌륭한 도구 인 것 같습니다. 마이클은 그 중 일부를 나열합니다. 솔직히 게임 관점에서 먼저 OOP를 배웠 으면 좋겠다. 그러나 설명이 잘못되었거나 비즈니스 응용 프로그램을 개발하면 개념을 이해하기가 조금 더 어려워 졌기 때문일 수 있습니다. 두 가지 주장을 모두 관찰하는 것은 분명 흥미 롭습니다.
Edward

@penguin Call of Duty 또는 Halflife를 어떤 방식으로 프로그래밍하면 프로그래밍이 가능합니까?
jwenting

13

그것은이다 다른 방법들, 프로그래밍을 배울 수있는 방법입니다. 코드를 작성할 때 배우게됩니다. 지금, 그것은이다 가장 좋은 방법은? 확실하지 않습니다.

적어도 선생님이 제시 한 두 가지 이유는 유효하지 않습니다 .

  • "모든 코드를 만들 수 있었다" : 당신이 비즈니스 응용 프로그램을 작성할 때, 당신은 실제로 코드를 작성하고 있습니다. 그것은 마술로 쓰여지지 않을 것입니다. 예, 자동 생성 코드를 사용할 수있는 도우미가 있습니다. 아니요, 반드시 사용해야하는 것은 아닙니다. 그건 그렇고, 자동 생성 된 부분은 일반적으로 프로그래밍에서 가장 성가신 것입니다 (흥미롭고 유용한 것을 배울 수있는 Windows Forms 컨트롤에 컨트롤을 추가하는 것이 아닙니다).

  • "귀하의 프로그램에서 OOP를 완전히 경험하고 구현해야합니다." 누군가 이것이 왜 게임에만 유효하지만 다른 것에 대해서는 유효하지 않은 이유를 설명해야합니다. OOP를 이해하고 사용하려면 비즈니스 응용 프로그램에서도 사용할 수 있습니다. 얻지 못하거나 사용하지 않으려는 경우 (예를 들어 기능 프로그래밍 사용을 선호하는 경우) 게임 개발을 통해 변경하도록 강요하지 않습니다.

그러나:

게임 개발은 재미있을 수 있습니다 . 대부분의 젊은이들은 게임을 좋아하므로 비즈니스 앱을 작성하는 대신 게임을 개발하는 것을 좋아할 것입니다. 이를 통해 교사는 실제로 게임이 프로그래밍을 배우는 가장 좋은 방법이라고 믿기 시작하고 논리적 설명을 찾으려고 노력할 것입니다.

이 교사들은 비즈니스 앱 개발과 같은 젊은이들에게 게임 개발을 지루하게 만들어서 끝납니다. OOP 등 배우기 위해 게임을해야한다고 생각한다면 학생들은 전혀 즐겁지 않은 종류의 프로젝트를하도록 요청할 것입니다. 이것은 제가 대학에있을 때 선생님들의 가장 큰 실수 중 하나였습니다. 그들은 콘솔 모드에서 Ada로 작성할 게임 프로젝트를 매우 자주주었습니다. 그래픽이 없습니다. 재미 없어. 사용자 경험이 없습니다. 나는 평생 동안이나 직장에서 그처럼 지루한 프로젝트를 본 적이 없습니다.


4
이 모든 방법을 보는 것은 매우 쉽기 때문 게임 OOP와 잘 작동 BadGuy, Weapon, PowerUp, 게임 및 기타 항목을 쉽게 객체가 될 수 있습니다. 당신은 객체 간의 프로그램 상호 작용에 도착하고는 에 화면을. 나는 시각적 부분이 그렇게 매력적이라고 ​​생각합니다. 유형 계층 구조가 비즈니스 애플리케이션 ServerTaskScheduler, AbstractDataProcessor, UserQueryAgent, 등 ...으로하지 않습니다 흥미로운 그들이 게임에서와 같은 OOP 개념을 가르 칠 수있다하더라도.
FrustratedWithFormsDesigner

4
@FrustratedWithFormsDesigner : 나는 비즈니스 응용 프로그램을 개발하는 데 너무 많은 시간을 소비하기 때문에 어쩌면 난 그냥 그것을 얻을하지 않습니다,하지만 난 그것을 어떻게보고 더 어려울 왜 이해가 안 CustomerProduct또는 Transaction객체가 될 수 있습니다. 그러나 나는 BadGuy지루하지 않고 s 를 다루는 것이 훨씬 즐겁다는 것을 이해합니다 Transaction.
Arseni Mourzenko

추상적 사고의 수준에 대해 더 많은 관련이 있습니다. 어떤 프로그래머들은 관련이 무엇인지 모르기 때문에 이름을 많이 붙잡습니다. 예를 들어 나는 무슨 일이 Transaction수반 되는지 모르는 일부 개발자를 만났습니다 .
Spoike

7

게임 프로그래밍은 게임 프로그래밍을 배우는 가장 좋은 방법입니다. 웹 개발을 배우려면 시스템 프로그래밍을 배우려면 그렇게하십시오.

게임 프로그래밍은 까다 롭고 많은 것들을 가르쳐 줄 것입니다 (마이클은 그의 대답에서 많은 사람들을 지적했으며 많은 것들이 매우 도전적이고 외부 게임에서도 사용할 수 있습니다). RPG 또는 타이쿤 (또는 유사한 게임)을 만들면 OOP 디자인에 대해 많은 것을 가르쳐 줄 것입니다. 패러다임에 매우 적합하기 때문입니다. 또한 그래픽과 물리의 복잡성에 따라 성능 고려 사항, 게임을위한 일부 하드 코어 수학 등에 대해 많은 것을 배울 수 있습니다.

좋은 방법이며 어떤 것을 배우는 가장 좋은 방법이지만 프로그래밍을 배우는 데 좋은 방법은 아닙니다. 프로그래밍 한 게임 수에 관계없이 운영 체제를 만드는 방법에 대해 전혀 모를 것입니다. 시간이있는 한 대부분의 개발자는 게임을 개발의 주된 훈련으로하지 않더라도 게임을 개발하여 무언가를 벌 수 있다고 생각합니다.


7

질문 : 프로그래밍을 배우는 가장 좋은 방법은 무엇입니까

답변 : 실제로하는 방법

즉, 배우거나 무언가를 할 때 어떤 방법을 선택했는지는 중요하지 않습니다. 실제로 사용하는 방법입니다.

게임이 정말 재미있는 것 같다면 가십시오. 수학 문제 해결이 더 만족 스러우면 시작하십시오. 다양한 종류의 프로그래밍이 있으며 각각 다른 기술이 필요하므로 가장 흥미로운 방법은 가장 흥미로운 것으로 시작하는 것입니다. 아마도 아마도 당신이 함께 할 것입니다.

... 그러나 그렇습니다. 게임은 수학, 동시성, 알고리즘, oop, 그래픽 등을 통합하기 때문에 매우 다양한 프로그래밍을 배우는 좋은 방법입니다.


4

게임을 즐기는 경우 게임을 작성하는 것이 개발에 들어가는 좋은 방법이지만 최선의 방법이라고는 말할 수 없습니다. 내가 생각하는 가장 좋은 방법은 물론 교육과 주니어 직원 멘토링에 투자하는 소프트웨어 하우스와 함께 작업 뒤에 CS 정도입니다.

물론 게임 개발은 내가 생각하는 많은 훌륭한 기술을 가르쳐 줄 것이며 컴퓨터 게임을 즐기는 경우 개발 과정에 관심을 가질 것입니다. 책에서 볼 수있는 다른 많은 간단한 앱보다 더 재미 있어야합니다.


2

코딩을 배우는 가장 좋은 방법은 재미있게 만드는 것입니다. 실제 게임 일 필요는 없지만 일종의 게임 일 것입니다. 저에게는 복잡한 문제를 가능한 한 빨리 해결할 수있는 방법으로 알고리즘을 개발하는 수학 문제를 해결하는 게임입니다. 내 자신에게 도전하라 나는 문제를 해결하려고 할 때마다 더 나은 코더가된다. 문제가 어려울수록 좋습니다.

코드 학습 (모범 사례)과 관련하여 더 큰 과제에 직면해야한다고 말합니다. 단일 입력 / 출력을 훨씬 더 많이 요구합니다.


2

Halflife 나 Call of Duty를 통해 프로그래밍 기술을 가르친다는 주장은 들어 본 적이 없습니다.

그것들을 프로그래밍하는 것은 가능하지만, 그런 것을 프로그래밍하는 것은 초보자가 조금이라도 시도해야 할 것이 아닙니다. 특히 초보자는 종종 존재하지 않는 프로그래밍 지식으로 다음 블록버스터를 만들 수 있다는 인상을받습니다. 그들에게 PacMan 또는 Tetris 복제품을 먼저 만들어 보라고 말하면 그들이하고 싶은 것이 아니며 비명을 지르도록 비명을 지 릅니다.


1

아니에요 프로그래밍을 배우는 가장 적합한 유형의 프로젝트 는 없습니다 . 가장 좋은 유형의 프로젝트는 귀하의 관심사와 관련된 것입니다.

예를 들어, 나는 게임 프로그래밍을 배우는 것을 포함하여 몇 가지 다른 방법으로 프로그래밍을 배우려고했습니다. 그냥 붙어있는 것 같지 않았습니다.

그런 다음 연구에서하고있는 일을 프로그래밍하는 방법을 배워야했을 때? 지금은 2 개 언어를 알고 3 분의 1을하고 있다고 말할만큼 편안합니다. 왜? 그것은 내 관심사와 관련이 있기 때문입니다. 나는 그 책에 나오는 "운동 8"보다 그것을 고집해야 할 이유, 배워야 할 이유, 그리고 더 많은 문제들이 있었다.

우연히도 전염병 모델을 프로그래밍하는 것이 프로그래밍을 배우는 가장 좋은 방법은 아닙니다. 그러나 그것은 나에게 가장 좋은 방법이었습니다. 당신을 찾으십시오. 게임 일 수도 있지만 그렇지 않을 수도 있습니다.


"최상의 유형의 프로젝트는 귀하의 관심 분야와 관련이있는 프로젝트"+1입니다. 아멘.
Bryan Oakley 2012

0

내 경험상, 게임을 작성함으로써 (자신의 / 소규모 개발자 팀에서이 작업을 수행한다고 가정), 프로그래밍의 알고리즘 / 분석 부분뿐만 아니라 사용자 경험과 디자인에 대해서도 생각해야합니다.

또한 합리적으로 복잡한 게임이라면 몇 달 동안이 작업을 수행하게되며 모든 작업을 문서화하는 것이 중요하다는 사실을 알게 될 것입니다.


...하지만 사용자와 상호 작용하는 프로그램을 작성 하는 경우 사용자 경험과 디자인에 대해 생각하지 않습니까? 전통적인 클라이언트 응용 프로그램을 사용하면 실제로 그러한 것에 대해 생각할 필요가 없지만 게임 당신을 강요 한다고 말합니까? 또한 대규모 데스크톱 응용 프로그램도 몇 개월에 걸쳐서 문서를 작성해야합니까? 이 중 어떤 것이 게임에 적용되지만 다른 유형의 프로그래밍에는 적용되지 않습니까?
Bryan Oakley


0

동의하지 않을 것입니다 ...

많은 사람들이 레고 로봇 (Mindstorms)을 구축하고 프로그래밍 한 최초의 프로그래밍 경험 일 것입니다.

일반적으로 "게임"이라는 용어는 거의 모든 프로그래밍을 포괄 할 정도로 거대한 범주를 정의 할 수 있지만, 원래 포스터의 맥락에서 사용될 때는 항상 "둠 스타일 게임 작성"을 의미하는 것 같습니다.

앞에서 언급했듯이 프로그래밍을 배우는 가장 좋은 방법은 프로그램이 필요한 정말 원하는 것을 얻는 것입니다. 즉-원하는 프로그램을 작성하여 프로그래밍을 배우십시오.

첫 번째 Windows 프로그램 중 하나는 MIDI 컨트롤러 프로그램이었습니다. 왜냐하면 MIDI 컨트롤러 프로그램을 정말로 원했기 때문에 Windows는 슬라이더, 버튼, MIDI에 대한 SDK 지원 등 완벽하게 맞습니다. 그 프로그램에서 Windows 프로그래밍에 대해 많은 것을 배웠습니다.

나는 여기에 언급 된 이유로 게임 프로그래밍에 부분적 인 적이 없었습니다. 나는 그다지 잘 그리는 것이 아니므로 내가 만드는 게임은 아티스트의 그래픽보다 열악한 그래픽을 갖게됩니다. 나는 "게임 제작팀"을 관리하는 것이 아니라 프로그램하는 법을 배우고 싶다.

결국 나는 선생님의 진술에 동의하지 않습니다. 프로그래밍을 배우는 가장 좋은 방법은 원하는 프로그램을 작성하는 것입니다.

-아르 자형

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.