728x90
반응형

Game Development, 게임개발/배경지식 7

이벤트 큐의 활용 - 서버 요청 응답의 순서 보장

Event Queue에 대한 글을 이미 썼다. [Game Developer, 게임개발자/디자인패턴] - Event Queue, 이벤트 큐 [디자인패턴](디커플링) 솔직히 지식으로 배울 때랑 차원이 다르다. 왜냐하면 요구 사항이 너무나 달라지기 때문이다. 하지만 기본을 알면 모든 것은 응용이 가능했다고 했던가... 결국 해냈다. 이벤트 큐는 실제로 어떠한 이벤트를 차례대로 수행하고 싶을 때 사용한다. 예를 들어 효과음이 일어나는 모든 상황을 이벤트 큐에 넣고 큐에서 빼면서 효과음을 실행한다던지 정말 무궁무진하다. 다시 말해서 내가 이벤트 큐에 넣는 시점에 실행되는 것이 아니라 이벤트 큐에서 빼낼 때 실행된다는 것이다. 실제로 1초동안의 모든 이벤트를 넣고 1초 이후에 이벤트 큐를 모두 비워내며 실행한다던지..

튜토리얼에 대한 고찰

오늘은 튜토리얼에 대해서 고찰해보려고 한다. 튜토리얼이란 무엇일까? 짧게 말하면 유저에게 프로그래머의 의도를 전달하는 것과 같다. 프로그래머가 유저에게 바라는 것을 게임 속에 녹이거나 전달하는 것이다. 맨날 메이플 얘기를 해서 미안하지는 않다. 그냥 내 첫 RPG라서 기억에 남는다. 튜토리얼을 보면 사용자의 행동을 유도한다. 1. NPC를 더블클릭을 유도하여 대화를 이끌어내고 2. Alt 버튼을 명시하여 사용자에게 조작법을 알려준다. 하지만.. 유도란 것은 유저가 알아채고 하기 싫어서 안하면 그만이다. 하지만 그렇게 되면 유저에게 프로그래머의 의도를 전달할 수 없다. 때문에 사용자의 예외 상황을 모두 고려해야 한다. 1. 만약 NPC에게 말을 걸지 않고 다음 맵으로 넘어가려하면 어떻게 해야할까? -> 포..

Reactive Programming이란, Rx란?

반응형 프로그래밍이라고 직역되는 말인데 이렇게 해야 성능을 제대로 이끌어낼 수 있다고 사람들이 말하곤 하는데 정확히 무엇인지 모르는게 다수다. 알아보자 우선 깔고 가야할 것이 있다. 우리가 지금까지 배운 개발 방식은 전혀 반응형 프로그래밍 방식이 아니다. 우리는 절차적, 함수형, 객체지향 등의 방식을 통해서 프로그래밍을 배웠다. 하지만 진짜 알기 위해선 새로운 모드를 우리의 머리에 추가시켜야 한다. 바로 Reactive 모드이다. ?? 아니 Reactive가 뭔지 알아야 모드를 만들든지 말든지 하지...? 줄여서 말하면 Reactive programming 은 비동기 데이터 스트림으로 프로그래밍을 하는 것이다. ???아는 단어로 설명해줘야지.. 새로운 단어가 나온 것 같은데?? 비동기 데이터 스트림이 뭔..

Scroll, 스크롤에 대한 것

비교적 간단한 2D게임은 한 화면에 들어가지만 복잡한 2D 게임은 한 화면 안에 모든 것을 보여주기 그럴 때가 있다. 스크롤에도 여러가지가 있는데 알아보자 **여기서 코드는 의사코드로 표현했다. 어차피 다 자기 플랫폼에 맞춰서 짜면 된다. -단일 축 스크롤 단일 축 스크롤 게임은 대표적으로 슈팅게임이 많이 있다. 횡스크롤, 종스크롤이 바로 그것을 말하는 것인데 1945나 텐가이 같은 게임이 종, 횡 스크롤 게임이다. 단일 축에 대해 구현하는 것은 그렇게 어렵지는 않다. 만약 모든 배경이미지를 한꺼번에 메모리로 로드할 수 있다면 간단한 알고리즘으로 구현이 가능하다. 제일 쉬운 방법이 화면 크기대로 배경을 나누는 것이다. 그래놓고 순서대로 Load하면 그만이다. //의사 코드에 가깝게 그냥 쓰면 const ..

게임의 시간과 현실의 시간의 차이에 대해서

이것은 정말 많은 차이가 있으면서도 비슷하다. 게임 루프와 관계가 정말 많이 되어있다. [Game Developer, 게임개발자] - 게임의 근간인 게임 루프, Game Loop에 대해서 게임의 시간은 어떻게 판단될까? 가 문제다. 우리는 FPS라는 것을 가지고 있고 30FPS의 게임이라면 우 리는 프레임 당 약 0.0333333s을 가지고 있는 것을 안다. 하지만 60 FPS에서는 프레임 당 0.0166666666s을 가지고 있다는 것도 안다. 즉, 프레임과 현실 시간과 무엇인가 관계가 되어있을 것 같다는 생각도 든다. 그리고 게임을 일시정지 시키면 real time으로 1분이 흘러도 게임 시간은 흐르지 않는다. 무엇인가 비슷하면서도 다른 느낌이 확연히 든다. 가장 게임 시간과 현실 시간의 차이를 잘 ..

게임의 근간인 게임 루프, Game Loop에 대해서

물론 이러한 디자인 패턴에 대해서 공부해봤다. [Game Developer, 게임개발자/디자인패턴] - Game Loop Pattern, 게임 루프 패턴 ** [디자인패턴] 하지만 조금 더 일반적인 이야기를 해보려고 한다. 게임 루프는 앞의 글처럼 게임 프로그램의 전체적인 흐름을 주관한다. 즉, 사용자가 임의적으로 중지하지 않는 한 게임은 계속 수행을 하는 것이다. 게임 루프는 말 그대로 LOOP, 계속 반복되어 진행된다. 일반적으로 우리는 60프레임으로 진행되는 게임을 많이 보는데 이는 게임루프가 초당 60번 실행된다는 뜻이다. 하지만 최신 하드웨어에 맞게 게임루프도 점차 변해가는데 우선 전통적으로 쓰여온 게임루프의 형식부터 알아보자. 전통적인 게임 루프 1. 입력 처리 2. 게임 업데이트 3. 출력 ..

728x90
반응형