게임프로그래밍을 하고싶은데...

dummy999의 이미지

2d 스크롤 액션게임을 만들고싶습니다.
뭐랄까? 열혈고교스타일로 게임을 만들고싶은데
어떤책이나 사이트를 참조해야할지모르겠습니다.

아래의 질의에대한 조언또는 답변을 부탁드립니다.

1. 윈도우에서 개발할건데 directx를 설치해서 c++또는 C로 할껍니다.
2. 자바에서도 directx같은것이있습니까?
3. 관련 소스및 소스포지를 찾고싶은데 어디를참조하는게좋을까요?
4. 다이렉트x에 들어있는 개발도구들이 뭐뭐들어있습니까?
5. 게임은 처음인데 관련책이있을까요?
(쉽게 따라하기정도수준의 책이면 좋을듯)

이정도만 조언및 답변부탁드립니다.
차후 더필요하면 아래에 추가질문을 드리겠습니다.

익명 사용자의 이미지

gpgstudy.com 에 가보세요..
자바는 비추..

monpetit의 이미지

게임 프로그래밍에 처음이라면 개인적으로 DirectX를 권하지 않습니다.
게임 프로그래밍은 다른 프로그래밍과 구별되는 나름의 개념과 원리가 있습니다.
scene이라는 것인데요. 게임은 마치 영화나 애니메이션과 같아서 scene의 연속이라 생각하면 됩니다.
게임을 시작하면 먼저 게임의 배경과 등장인물을 설정하고 그 위치를 찾아 그려 줍니다.
그리고 게이머로부터 입력을 받아 사건을 처리한 후 변경된 내용을 다시 화면에 그려 줍니다.
특정한 조건에서 게임이 끝날 때까지 이러한 scene을 무한히 반복하는 것이 게임입니다.

위의 개념을 익히기에 DirectX는 그리 적합하지 않습니다. 일단 낯선 DirectX API에 파묻혀 허우적거리기도 바쁜데 거기다가 Win32 API 또는 메시지 개념까지 익혀야 됩니다. 이러다 보면 2d 스크롤 액션은 간데 없고 bmp 파일 하나 화면에 그려 보다가 흥미를 잃기 딱 좋습니다.
솔직히 DirectX를 직접 공부하는 것은 게임을 만들기 보다는 게임에 사용될 엔진 제작에 더 필요합니다. 초보 게임 프로그래머라면 그런 것 보다는 게임 자체에, 즉 scene 연출에 더 신경을 써야 합니다.
그래서 이미 만들어진, Win32 환경이라면 DirectX를 래핑한 게임 엔진(또는 라이브러리)으로 시작하는 게 좋습니다. 이 엔진으로 게임 프로그래밍의 개념을 익힌 후 나중에 자신만의 엔진을 구상해도 괜찮습니다.

추천할만한 라이브러리는
1. SDL: 크로스플랫폼, http://libsdl.org
2. allegro: 크로스플랫폼, http://allego.sourceforge.net
3. CDXLib: Win32 전용, http://www.cdxlib.com
이정도입니다.
SDL과 allegro는 C, CDXLib은 C++용입니다만 SDL과 allegro도 C++용 라이브러리가 따로 만들어져 있습니다.
SDL은 특히 다른 언어와의 바인딩이 훌륭하게 되어 있어서 굳이 C/C++을 사용하지 않고서도 쓸만한 게임이 나옵니다. 파이썬을 사용한다면 pygame이 좋겠죠.

gamdora의 이미지

allegro 주소가 잘못되었군요.

http://alleg.sourceforge.net 입니다. :)

익명 사용자의 이미지

monpetit wrote:

scene이라는 것인데요. 게임은 마치 영화나 애니메이션과 같아서 scene의 연속이라 생각하면 됩니다.

전 게임 프로그래밍은 전혀 모릅니다만.

게임에는 ui 적인 것도 무척 중요하지만 (씬을 ui에 포함되었다고 생각하고)

내부의 게임룰도 매우 중요합니다.

공격자와 방어자 간의 명중률, 데미지와 같은 전투 룰.

각 캐릭터에게 개별성을 부여하는 캐릭터 제작 룰.

여러가지 있습니다만... 간과하지 않으셨으면 좋겠습니다.

그런 것에 대해서 깊게 생각해 보신다면... 보드게임을 만들어 보실 것을 권해 드립니다. TRPG도 좋구요^^

monpetit의 이미지

akudoku. wrote:
monpetit wrote:

scene이라는 것인데요. 게임은 마치 영화나 애니메이션과 같아서 scene의 연속이라 생각하면 됩니다.

전 게임 프로그래밍은 전혀 모릅니다만.

게임에는 ui 적인 것도 무척 중요하지만 (씬을 ui에 포함되었다고 생각하고)

내부의 게임룰도 매우 중요합니다.

공격자와 방어자 간의 명중률, 데미지와 같은 전투 룰.

각 캐릭터에게 개별성을 부여하는 캐릭터 제작 룰.

여러가지 있습니다만... 간과하지 않으셨으면 좋겠습니다.

그런 것에 대해서 깊게 생각해 보신다면... 보드게임을 만들어 보실 것을 권해 드립니다. TRPG도 좋구요^^


맞습니다. 게임룰이 중요하죠.
Win32 환경에서 DirectX로 개발하신다기에, 전 게임룰에 대해선 기본적으로 고려한다는 전제를 깔고 그래픽 표현 부분만 말씀 드린 겁니다.
게임룰이야 DirectX가 아니라 curses 환경의 roguelike도 당연히 필요한 거 아니겠습니까.
dotri의 이미지

저도 게임을 만들어보고 싶어하는 사람입니다.
서로 의견이 맞는다면 뭔가를 함께 해볼수도 있겠군요. MSN 메신져로 연락 주세요.
landbirds@gmail.com

lunarboy의 이미지

directX에 대한 JAVA 래핑이 있긴합니다.
wildtangent.com에서 ms-java를 이용한 웹/standalone 3D 게임 SDK를 제공했었는데... 3년 전에 이 라이브러리를 이용한 웹3D 게임을 제작한 경험이 있었는데 API가 아주 깔끔했던 기억이 있습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.