Default Defense | 다섯번째 프로젝트 # 6 : Ally Attack
·
개발/Default Defense
개요개발 일지를 적기에 앞서 저번 글을 적은 이유는 블로그 유입에 대한 고민이아닌 말 그대로 블로그를 쓰는 방향성에 대한 것이였습니다.그래도 값진 피드백을 들을 수 있었으니 괜찮은 경험이였죠. 글을 적다가 한번 날아가기도 했고 지금 개발 상황은 상당히 진행된 상탠데 어디부터 적어야 할지 조금 막막합니다.그러니 대충 적는것 처럼 보여도 이해 부탁드립니다.    아이디어 정리전 글에서 적었듯이 Ally는 각각의 공격 사거리를 가집니다. 보통 이 사거리는 공격자를 기준으로 사거리만큼의 반지름을 가진 원을 그려 그 안에 있는 적을 공격하는 식으로 작동합니다.  근데 여긴 OverlapCircle을 제공해주는 유니티가 아닌 콘솔창입니다.픽셀이랑 유사한 칸 구조를 갖고 있는것과는 별개로 원을 어떻게 그리는지 조차 ..
Default Defense | 다섯번째 프로젝트 # 5 : Enemy Movement
·
개발/Default Defense
개요친구가 옆에서 다섯번째 띄어쓰기가 다섯 번째 아니냐고 하던데 사실 저도 알고 있습니다. (진짜임)근데 블로그 첫글에서부터 띄어쓰기를 안해서 그냥 쭉 띄어쓰기 없이 가는겁니다.절대 몰랐던거 아니에요. 진짜로요.   Enemy 움직임일단 적을 움직여 주기 위해 Enemy 클래스에 변수랑 함수를 조금 추가해주겠습니다.class Enemy : public Entity{public: Enemy(); virtual ~Enemy();protected: int _hp; int _rewardGold; int _moveTime; int _lastMoveTime = 0; Vector2 _facingDir = Vector2(1,0); clock_t _moveTimer;public: void tryMove(); void m..
Default Defense | 다섯번째 프로젝트 # 4 : Entity
·
개발/Default Defense
개요저번 글 적고 바로 적는 개발일지입니다.제가 어제 하루종일 적은 코드니 아직 머릿속에 생생합니다.     Vector2Entity를 적기 전에 일단 각각의 위치들을 훨씬 원활하게 관리하기 위해 Vector2 구조체를 적겠습니다.//Vector2.hstruct Vector2{ Vector2() : x{ 0 }, y{ 0 } {}; Vector2(int x, int y) : x{ x }, y{ y } {}; int x; int y; Vector2 operator+(const Vector2& other); void operator+=(const Vector2& other); Vector2 operator-(const Vector2& other); void operator-=(const Vector2& ot..
Default Defense | 다섯번째 프로젝트 # 3 : 맵
·
개발/Default Defense
개요확실히 구조 짜는게 재밌긴 하네요.처음부터 하나하나 만들어 간다는게 만족감도 크고 재밌어요.    맵 파일 읽기일단 맵을 렌더링할 InGameScene을 하나 추가해줍니다.//InGameScene.hclass InGameScene : public Scene{public: InGameScene(); ~InGameScene();public: void init() override; void update() override; void render() override;}; 그리고 맵을 가져와야 하는데 코드에서 수동으로 한줄 한줄 넣어주는건 조금 그러니까 짧게나마 배웠던 파일 입출력을 활용하겠습니다. 맵은 한번만 가져오면 충분하니 init함수 내에서 읽어오겠습니다. 제 팀원이 보내준 맵 텍스트 파일을 소스코드 ..
Default Defense | 다섯번째 프로젝트 # 2 : Transition
·
개발/Default Defense
개요제가 의욕이 안났던 이유는 그냥 엔진 갠프가 하기 싫어서였을지도 모르겠습니다.겜프는 좀 재밌네요.     개발 시작 전에...게임 프로그래밍 과목에서 진행하는 프로젝트는 팀 프로젝트라고 말씀 드렸었죠?제가 팀장인 만큼 메인이 되어서 개발을 진행해야 합니다. 그러다보니 일단 같이하는 친구에게 다른 일을 시켜놓고 저는 구조를 짰습니다.그 과정이 저번 글입니다. 구조는 생각보다 빨리 완성 됐으니 친구에게 이러한 구조가 됐으니 Scene을 상속 받아서 너가 원하는 Scene을 만들고 init, update, render 함수를 구현해서... 뭐 이러쿵저러쿵.구조는 이해하기 편하고 직관적이게 짰으니 문제는 없었습니다. 일단 Title과 Transition 이펙트를 맡겨두었습니다. 이제 저는 다른 일을 하고 있..
UNNAMED | 네번째 프로젝트 # 6 : 버튼과 기획 변경
·
개발/UNNAMED
개요시간이 1주도 안남았다는걸 망각했습니다. 시간이 없었습니다.글 쓰는것도 안써놓으면 나중에 이때의 내용을 다 잊어버릴 것 같아서 미리미리 생각나는대로 적는겁니다.개요 쓸 시간도 없습니다. 바로 가죠.     기획 변경매주 선생님께 프로젝트 진행 상황을 보고 하는데 이번 보고에서 제가 해온 꼬라지를 보시고선 시간이 없으니 기획을 바꾸라고 조언을 해주셨습니다. 일단 맵 디자인을 길게 하려고 하지말고 짧은 스테이지로 구성을 해서 타임어택을 목표로 하는 게임을 만들기로 했습니다.그리고 가장 중요한 것. 포폴로 사용하기 위해선 전투 프로토타이핑이 제대로 돼야합니다. 적 FSM을 더욱 견고하게 짜고 맵 디자인을 최대한 간결하게 해서 최대한 총격전의 느낌은 살리되 기간내에 가능하도록 하기로 했습니다. 일단, 보고를..
UNNAMED | 네번째 프로젝트 # 5 : 적 FSM
·
개발/UNNAMED
개요이번주 목요일은 현충일이였습니다.많이 늦긴 했지만 먼저 국가를 위해 한 몸 바쳐 희생하신 분들께 애도를 표합니다. 아무튼 목요일이 현충일인 관계로 저희 학교는 수요일에 하교하여 목금토일을 내리 쉬게 되었죠.그래서 집에서 열심히 프로젝트를 하겠노라고 마음을 먹고 집에와서 한게 진짜 없습니다. 아..이고... 하... 진짜 의욕이 안나더군요. 게임을 해도 손에 잘 잡히지 않고 늘 잘 읽던 소설도 읽히질 않아서 멍하니 누워서 의미없이 시간만 보냈습니다.개발은 손에 잡혔냐구요? 당연히 아니죠. 노는 것도 손에 안잡힌다면 보통 일도 안잡히는 편입니다. 깃허브 커밋 주기 망한거 보십쇼!!!!제가 집에와서 진짜 한게 없다는 말의 산증인입니다.으악!!!!! 그래도 지금이라도 일하지 않으면 나중에 구르는것 뿐만 아니..
Default Defense | 다섯번째 프로젝트 # 1 : Scene 구조, 싱글톤
·
개발/Default Defense
개요글을 시작하기 전에 간단하게 할말을 적고 시작하곤 했는데 지금은 별로 적을게 없습니다.바로 가죠/   구조 구상 게임의 전체적인 구조는 간단하...진 않지만 Unity처럼 Scene을 나누는 구조를 사용하는 것이 좋다고 생각 했습니다.블로그에 정리하진 않았지만 저번 2시간에 객체지향 프로그래밍, 싱글톤, 추상 클래스, 상속을 배웠습니다.2시간만에 급하게 배운거라 뇌에 전부다 담진 못했지만 그래도 어떻게든 따라가면서 적어놓은 소스코드를 사용해서 적어봅시다. 일단 저희가 만드는 게임은 게임 로직을 처리하는 Update와 처리가 끝난 후 모든걸 그려주는 Render로 모든게 가능해야 합니다.그렇기 때문에 각 Scene은 각자의 Update와 Render를 가지고 있어야 하고 이 Scene들을 가지고 있는 ..