Skip to content

Game Programming

게임 프로그래밍의 상세 분야

Game programming, a subset of game development, is the software development of video games. Though often engaged in by professional game programmers, many novices may program games as a hobby. Some software engineering students program games as exercises for learning a programming language or operating system.

Categories

Game Unit Test

  • Gamium - 게임 테스트 자동화 SDK인 "Gamium"

ETC

Game design (개발)

Sample Game

게임 개발 입문용으로 자주 사용되는 Demo 게임 목록은 보통 간단한 메커니즘과 적은 리소스 요구사항을 가진 게임들로 구성됩니다. 이러한 게임들은 초보자들이 게임 개발 기본 개념을 배우고 구현하기에 적합합니다. 아래는 추천 목록입니다:

Pong (퐁)

  • 설명: 테니스 게임의 초기 버전처럼 공을 튕기며 점수를 내는 단순한 게임.
  • 학습 포인트:
    • 충돌 감지
    • 공 및 패들 이동 로직
    • 점수 시스템
    • 게임 루프 이해

Brick Breaker (벽돌 깨기)

  • 설명: 공을 튕겨 벽돌을 깨는 게임. 플레이어는 바를 움직여 공을 제어.
  • 학습 포인트:
    • 물리 효과 (공의 반사각 계산)
    • 다단계 게임 디자인 (벽돌 여러 층)
    • 간단한 애니메이션

Snake (뱀 게임)

  • 설명: 뱀이 음식을 먹으며 길어지고, 벽이나 자기 몸에 닿으면 게임 종료.
  • 학습 포인트:
    • 격자 기반 이동
    • 점진적 난이도 증가
    • 충돌 처리 및 게임 종료 조건

Space Shooter (스페이스 슈터)

  • 설명: 우주선을 조작해 적을 쏘고 피하는 슈팅 게임.
  • 학습 포인트:
    • 탄환 생성 및 소멸 관리
    • 적 AI (간단한 패턴 이동)
    • UI 요소 추가 (HP, 점수, 탄환 개수)

Flappy Bird 클론

  • 설명: 버튼 클릭으로 캐릭터를 점프시키며 장애물을 피하는 게임.
  • 학습 포인트:
    • 중력 및 점프 구현
    • 장애물 생성 및 스크롤
    • 점수 시스템

Platformer (플랫폼 게임)

  • 설명: 캐릭터가 점프와 달리기로 장애물을 피하며 목표에 도달하는 게임.
  • 학습 포인트:
    • 캐릭터 이동 및 점프 구현
    • 플랫폼 충돌 처리
    • 단순 레벨 디자인

Tower Defense (타워 디펜스)

  • 설명: 적의 경로를 따라 방어 타워를 배치해 적을 막는 게임.
  • 학습 포인트:
    • 간단한 AI 경로 설정
    • 타워 공격 로직
    • 자원 관리 및 업그레이드 시스템

2048

  • 설명: 숫자를 합쳐 더 큰 숫자를 만들며 점수를 쌓는 퍼즐 게임.
  • 학습 포인트:
    • 격자 기반 데이터 구조
    • UI 업데이트
    • 점수 시스템

Tetris (테트리스)

  • 설명: 블록을 쌓으며 완성된 줄을 없애는 게임.
  • 학습 포인트:
    • 블록 회전 및 충돌 처리
    • 라인 제거 로직
    • 난이도 증가 (블록 속도 증가)

Memory Matching Game (카드 매칭 게임)

  • 설명: 같은 그림의 카드를 찾아 맞추는 게임.
  • 학습 포인트:
    • 데이터 매칭 로직
    • 간단한 UI 애니메이션
    • 제한 시간 및 시도 횟수 관리

일반적인 카드 게임 (트럼프 카드)

  • 숫자 카드: Ace (A), 2, 3, 4, 5, 6, 7, 8, 9, 10
  • 그림 카드: Jack (J), Queen (Q), King (K)
  • 양 (Suit):
  • Spades (♠️), Hearts (♥️), Diamonds (♦️), Clubs (♣️)
  • 조커

체스

  • King (킹): 왕 - 체스에서 가장 중요한 말. 한 번에 한 칸씩 이동하며, 상대편에게 체크메이트당하면 게임이 종료됩니다.
  • Queen (퀸): 여왕 - 가장 강력한 말. 직선과 대각선으로 원하는 만큼 이동할 수 있습니다.
  • Rook (룩): 성 - 직선으로 원하는 만큼 이동할 수 있습니다. 흔히 "캐슬"이라고도 불립니다.
  • Bishop (비숍): 주교 - 대각선으로 원하는 만큼 이동할 수 있습니다. 각 비숍은 한 가지 색상의 대각선만 이동합니다.
  • Knight (나이트): 기사 - 독특한 "L"자 이동(수평 2칸, 수직 1칸 또는 수직 2칸, 수평 1칸)을 하며, 다른 말을 뛰어넘을 수 있는 유일한 말입니다.
  • Pawn (폰): 졸 - 앞쪽으로 한 칸 이동하지만, 처음 움직일 때는 두 칸 이동이 가능합니다. 대각선으로 한 칸만 적을 잡을 수 있으며, 마지막 줄에 도달하면 다른 말로 승격할 수 있습니다(주로 퀸으로 승격).

점심밥 내기

룰렛 돌리기
화면에 룰렛이 표시되고, 한 번 클릭으로 룰렛이 멈춥니다. 멈춘 위치에 따라 승자가 결정됩니다.
랜덤 숫자 맞히기
플레이어들이 1~100 중에서 숫자를 찍습니다. 숫자가 랜덤하게 선택되며 가장 근접한 사람이 승리합니다.
동전 던지기
동전을 던져서 앞(HEAD) 또는 뒤(TAIL)을 맞추는 단순한 게임. 선택한 결과와 일치하면 승리!
사다리 타기
사람 목록과 꽝/당첨 을 입력한뒤 사다리 타자.
주사위 던지기
여러 면체 주위를 던지고 가장 큰 사람이 이긴다.

Game design (아트)

해당 항목 참조.

관련된 항목:

Game algorighm

Dungeon Generation
자동으로 던정을 생성하는 기법에 대한 내용.
Dead Reckoning: Latency Hiding for Networked Games
dead reckoning 즉 추측항법입니다. 위치 예측과 보정 기법이 핵심입니다. MMO 게임에서는 거의 필수로 사용되고 있는 흔한 기법입니다. 우리나라의 거의 모든 게임 개발에서 채택하는 방식입니다.
1500 Archers on a 28.8: Network Programming in Age of Empires and Beyond
Lockstep 동기화라고 불리는 기법입니다. 플레이어의 입력들을 보내주되 future time stamp를 찍어서 보내주고, '때가 되면 명령 실행'을 하는 방식입니다. 제한된 수의 플레이어가 소량의 통신량으로도 엄청난 수의 캐릭터를 정확하게 동기화합니다. 전략 시뮬레이션 게임에서는 거의 필수로 자리잡혀 있습니다.
  • https://www.gamasutra.com/view/feature/131503/1500_archers_on_a_288_network_.php
  • Page1: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page1.pdf
  • Page2: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page2.pdf
  • Page3: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page3.pdf
  • Page4: Gamasutra_-1500_Archers_on_a_28.8_Network_Programming_in_Age_of_Empires_and_Beyond-_page4.pdf
Why Making Multiplayer Games is Hard: Lag Compensating Weapons in MechWarrior Online
게임플레이 시뮬레이션을 구동하다가 과거의 행동이 도착하면 롤백을 하는 방식 위에다가, 발사체나 히트스캔류 무기에 대해서 레이턴시 문제를 다루는 방법을 설명합니다. 일인칭 슈팅게임이나 격투 게임 등 소규모 멀티플레이 게임에서 정밀하게 동기화 해야 하는 경우입니다. MMO 온라인게임이 먼저 발전한 우리나라에서는 많이 쓰이지는 않았지만 패키지 게임 위주로 발전했던 서양권 게임개발자들 사이에서는 이 방식이 오히려 익숙합니다.
Ray Tracing Gems 전자책
https://blog.hybrid3d.dev/387
2019_Book_RayTracingGems.pdf
고속 역 제곱근 (Fast inverse square root)
조명 처리와 같은 연산에 입사각과 반사각을 계산할 때 고속 역 제곱근 알고리즘을 사용한다.
"퀘이크 3 아레나"에 사용되었다.
Procedural water paint stains
In depth: Procedural water paint stains - Grendel Games
수채화 잉크 번짐 마크
ZzSprite
Pixel Art Sprite Generator

Generator Tools

Awesome

캐릭터 메이커

기타 그래픽/에셋 메이커

  • Pixel Planet Generator by Deep-Fold
  • SpriteStack.io - 복셀, 로우폴리 및 스프라이트를 결합하여 애니메이션 3D 개체 또는 입자 효과를 만들고 고유한 복고풍 렌더러를 사용하여 2D 스프라이트 시트로 렌더링합니다.

패턴/타일 메이커

AI 기반

Performance Tuning

Game Server programming

Game resources

Sonniss.com - GDC - Game Audio Bundle - Torrent download

## Sonniss.com - GDC - Game Audio Bundle
magnet:?xt=urn:btih:694916b432913f35872e806e1ca50c80201c6798&dn=Sonniss.com+-+GDC+-+Game+Audio+Bundle

## Sonniss.com - GDC 2016- Game Audio Bundle
magnet:?xt=urn:btih:aaa1407465c82160e20aba23de56ce7d4c4025ca&dn=Sonniss.com+-+GDC+2016-+Game+Audio+Bundle

## Sonniss.com - GDC 2017 - Game Audio Bundle
magnet:?xt=urn:btih:751189932f9a32eb57f4aa39b87d81d04a6f8708&dn=Sonniss.com+-+GDC+2017+-+Game+Audio+Bundle

퀵셀 메가스캔 콜렉션

See also

Favorite site

Tip

Web browser based game (HTML5)

Game resource download

Libraries

  • [추천] Open source, experimental, and tiny tools roundup ~ (게임/인터랙티브 웹사이트를 위한 작은 도구들 500+개 모음; 초소형 게임엔진 32개, 인디/오픈소스 게임엔진 11개, 판타지 콘솔 16개, 유니티 확장 16개, 지도 & 레벨 에디터 16개, 픽셀아트 / 아스키 편...)
  • Github - ellisonleao/magictools - A list of Game Development resources to make magic happen

References


  1. Lazyfoo.net.140828.backup.7z 

  2. Www_gamesync_com_ne_kr.zip 

  3. How_to_Use_Tile_Bitmasking_to_Auto-Tile_Your_Level_Layouts.pdf 

  4. Askance.tistory.com_free_bgm.pdf 

  5. Askance.tistory.com_free_texture.pdf 

  6. Askance.tistory.com-free_cg.pdf 

  7. Askance.tistory.com-reference_name.pdf