[Project EW] | #0 : 윈도우창을 이용한 퍼즐게임
·
개발/Project EW
개요프로젝트 시간이 돌아왔습니다. 기획일단 'Project EW'는 게임 프로그래밍 시간의 프로젝트입니다. C++이고 저번처럼 콘솔창이 아닌 WinAPI를 사용합니다.그러다보니 조금 더 로우레벨의 기믹을 구성하고 싶어서 저희는 조금 색다른 시도를 해보기로 했습니다.바로 WindowKill 같이 윈도우 창을 여러개 띄워보는 게임을 만들기로 했죠. 그런데... 이제 윈도우창 하나하나가 플랫폼인. 플랫포머 게임이고 이제 플레이어는 자신의 캐릭터를 좌우 이동, 점프 등을 통해 움직일 수 있고 윈도우 창들을 이용하여 도착지까지 캐릭터를 옮겨야 합니다. 말했듯이 윈도우창 하나하나가 플랫폼이며 윈도우 창을 옮김으로써 플랫폼의 위치를 바꿀 수 있는 그런 느낌입니다.기믹 창도 여럿 있는데 설명하기가 귀찮으니까 여기까지 ..
[Unity/C#] 버프, 디버프 시스템입니다. 근데... 비트 마스킹을 곁들인.
·
개발/Unity
개요이번 글은 [Unity/C#] 포션 시스템의 후속 글입니다. 원활한 이해를 위해 글을 읽고 와주시면 감사하겠지만 귀찮다면 읽지 않아도 괜찮습니다.    아이디어 정리일단 가장 저명한 게임인 마인크래프트를 예시로 들어보자면 버프와 디버프는 다음과 같이 중첩되어 있는 것이 일반적입니다. 이것을 관리하기 위해서 그냥 List 자료구조를 쓰는것도 괜찮지만 만약 특정 버프, 디버프가 들어있는지 판단을 해야한다면 그것을 판단하기 위해 탐색을 해야하기 때문에 O(n)의 시간 복잡도가 발생합니다.물론 리스트가 길어봤자 얼마나 길겠냐마는 더 좋은 방법이 있는데 굳이 안 쓸 이유야 없잖아요? 그래서 비트 마스킹 기반으로 현재 버프, 디버프의 상태를 저장하고 구현부는 또 따로 돌려주기로 했습니다. 일단 각각의 상태이상들..
[C++] | extern "C"와 __declspec(dllexport)는 대체 뭔데
·
개발/C++
개요C++로 DLL을 익스포트하여 유니티에서 사용하려고 할때 C++안의 함수에 extern "C" __declspec(dllexport)를 붙입니다.참 기괴하게 생겼는데 어찌보면 C++답게 생겼습니다.오늘은 얘네들이 뭐하는 놈인지를 살펴보죠.    extern "C"딴거 다 제쳐두고 뜻만 알아보자면 extern "C"는 코드를 C언어 스타일로 내보내라는 뜻입니다....너무 막연하죠? 당연하게도 뭔소린지 모르겠습니다. C++도 해보다보면 사실 C언어 확장판이라 대체 C언어 스타일이 뭘까 고민하게됩니다.조금 더 깊이 들어가자면 extern "C"는 name mangling을 하지 말라는 뜻입니다. name mangling이 extern "C" 키워드를 이해하기 위해선 먼저 C++의 name mangling을..
[백준] | 골드5 달성!
·
알고리즘/C++
1일 1백준은 잘 지켜지는 중입니다...
[잡담] | 왜 본인들이 속한 집단을 깎아내리지 못해 안달일까?
·
주저리/잡담
개요저희가 사는 사회는 다양한 집단으로 이루어져있죠. 당장 제가 다니는 학교도 집단이고 앞으로 들어갈 회사도 집단이고 크게 보자면 나라도 집단이고...뭐 아무튼, 각 집단들은 고유의 정체성와 문화를 가지고 있지만 그 구성원들 중 일부는 자신이 속한 집단에 대한 비판적인 시각을 드러내기도 합니다. 비판적 사고가 도움이 되는건 맞지만 비판이라는 명목의 비난을 하기도 하고 최종적으로 그 집단 자체를 미워하게 되기도 합니다. 긍정적인 행보또한 부정적으로 생각하게 되는 것이죠. 생각해보면 참 의아합니다. 자신이 속하고 있는 집단이고, 자신 또한 그 집단의 명성에 영향을 받을텐데 왜 본인들이 속한 집단을 깎아내리지 못해 안달일까요? 오늘은 그에 대해 한번 끄적여보겠습니다.    후광 반사 효과 "다른 사람의 빛을 ..
[잡담] | 오늘부터 1일 1백준을 시작한다.
·
주저리/잡담
왜?제 포폴 리스트는 빵빵한 편입니다.근데 누군가 제가 코딩을 잘하느냐 묻는다면 전 아니라고 자신만만하게 대답할 수 있죠. 또, 제 solved.ac 티어는 실버1로 낮은편에 속하죠.  그래서 오늘부터 1일 1백준 풀기를 시작하겠습니다.앞서 선배들의 강연으로 백준에서 푸는 알고리즘이 게임개발에 사용되진 않지만 개발 사고력을 늘려준다고 하더라구요. 지금부터 제가 안해버리면 그냥 끝인 1일 1백준을 해보겠습니다. 안하면 제가 아쉬운거고 제가 안좋은거니 어련히 잘 하겠죠 아마?
[잡담] | 악마의 증명(부존재의 증명), 러셀의 찻주전자, 내 차고 안의 용, 파파기아니스의 법칙
·
주저리/잡담
개요요즘 이 곳 저 곳에서 많이 접해볼 수 있는 논리이죠. "OO이 XX가 아님을 증명해라!" 우리는 이러한 말을 접했을때 반박을 시도하기 전에도 온몸에 힘이 쫙 빠져버리곤 합니다.분명히 내가 느끼기엔 성립조차 안하는 단어들의 집합인데 반박을 시도하기란 쉽지 않죠. 그 이유는 다음과 같은 문장이 아주 예전, 저 멀리 중세 유럽으로부터 전해져 내려온 악질 가불기 논리이기 때문입니다.  아무튼 저는 오늘 제목에 늘어놓은 '악마의 증명(부존재의 증명), 러셀의 찻주전자, 내 차고 안의 용, 파파기아니스의 법칙'이 대체 무슨 연관성을 가지고 있는지, 앞서 말했던 'OO이 XX가 아님을 증명해라!' 라는 논리와 무슨 상관인지 한번 떠뜰어보겠습니다.      악마의 증명(부존재의 증명)일일히 괄호 붙이기 귀찮으니 ..
[수학] | 공리적 집합론과 체
·
기타/수학
개요사원수까지 달리기 위해 기초부터 차근차근히 짚어가봅시다.   소박한 집합론(Naive Set Theory)공리적 집합론을 알기 전에 소박한 집합론을 먼저 알아야합니다.수학 용어가 몇개는 진짜 때깔나면서도 몇개는 참 짜치는데, 소박한 집합론도 그 중 하나입니다. 이 소박한 집합론이란 무엇이냐 하면 우리가 고등학교 까지의 의무 교육을 거치면 배우는 집합. 딱 그것입니다.저도 이 이상의 집합에 대해선 모르기때문에 간단하게 소박한 집합론이 무엇인지만 짚고갑시다. 소박한 집합론은 집합을 단순한 대상들의 모임으로 이해하는 것을 말합니다....참 추상적이죠. 간단하게 어떠한 집합 \(A\) 에 원소 \(\{ a, b, c \cdots\}\)가 존재하며 어떠한 집합 \(B\) 에 집합 \(A\)의 원소가 모두 포함..