[T-Engine] | #0 : 엔진을 제작해보자
·
개발/T-Engine
개요2학기 중후반, 게임 프로그래밍 프로젝트가 이제 막 시작할 시기에 저는 저만의 프레임워크를 만들고 싶어졌습니다.프로젝트를 만들기 위해 제공되는 프레임워크의 구조가 조금 불편했기 때문이죠.특히 방과후에서 듣던 수업에서 만들던 프레임워크가 그 구조보다 더 좋아서 더 불편했어요. 그래서 저만의 구조를 가진 프레임워크로 좀 뜯어버리고 싶더라구요.그렇게 혼자서 구상을 하다보니 저는 저만의 프레임워크를 만들어보기로 결정했습니다.    T-Engine그래서 나온게 T-Engine입니다.왜 이름이 T-Engine이냐 하면 C#에선 제네릭, C++에선 템플릿이라고 부르는 그거 있잖습니까.꺽쇠 안에 T 들어있는 그거. T>.이 제네릭이나 템플릿처럼 프레임워크를 어느정도 자유롭게 만들어보겠다는 저의 다짐입니다.     ..
[C#] | 한대 때리고 싶은 Exception has been thrown by the target of an invocation. 은 대체 뭐고 어떻게 해결하는걸까
·
개발/C#
개요아. 이전에 FSM을 짜면서 한번 고생했던 기억이 있는 버그인데 또 만났습니다.    왜 뜨는거임?일단 이 예외는 Reflection을 사용할때 납니다. Reflection으로 접근중인 클래스, 메서드, 필드, 프로퍼티에서 예외가 Throw될 경우 '난 일단 뭔 Exception인지 모르겠는데 아무튼 저기서 예외라는데?' 라는 무책임한 마인드로 던져집니다. 정확히는 MethodInfo.Invoke()나 PropertyInfo.SetValue() 같은 Reflection을 통한 호출 과정에서 내부 메서드가 예외를 Throw 할 경우에 발생합니다.저같은 경우 Activator를 통한 클래스 생성 도중에 생성자에서 NullReference를 뱉으면서 받았습니다. 이걸 처음 만나면 일단 원인을 알 수가 없기..
[C#] | 확장 메서드 쓰고 싶다~.
·
개발/C#
개요    확장 메서드(Extension Method)가 뭘까확장 메서드는 기존에 존재하던 클래스의 기능을 '확장' 하는 메서드입니다.기존에 존재하던 클래스에 내 맘대로 메서드를 추가할 수 있다는 뜻이죠. 이해하기 쉽게 예시를 들어봅시다.using System;public void Main(){ int[] array = new int[10];}int 배열을 만들었죠. 근데 전 이 배열을 조금 더 쉽게 다루고 싶습니다.배열에서 특정 조건을 만족하는 값만 뽑는다거나 말이죠. 아실 분들은 아시겠지만 이런 기능들을 쉽게 제공해주는 Linq라는 기능이 C#에 존재합니다.특정 조건을 만족하는 값만 뽑는 메서드(Where)는 실제로 배열, List, Dictionary 같은 클래스의 멤버 함수로 존재합니다....존재..
[아트] | 광상(狂想)
·
기타/아트
이쁘죠  https://www.youtube.com/watch?v=3EJbA6eVbvk
[백준] | C++ | 2239. 스도쿠 (사진 설명 포함)
·
알고리즘/C++
개요갑자기 왜 안쓰던 알고리즘 풀이를 쓰느냐 묻는다면 그냥 이번 문제 풀이가 깔끔했고 잘풀었기 때문입니다. 참고로 이번 문제 2239. 스도쿠는 11월에 푼 문제에요. 일자를 보면 G-STAR랑 겹치죠? 실제로 그 당시까지 1일 1백준을 지키기 위해 숙소에서 열심히 풀었습니다.다음 날 숙소에서 앓아 눕지만 않았어도 스트릭이 깨질일은 없었을거에요.   문제스도쿠는 매우 간단한 숫자 퍼즐이다. 9×9 크기의 보드가 있을 때, 각 행과 각 열, 그리고 9개의 3×3 크기의 보드에 1부터 9까지의 숫자가 중복 없이 나타나도록 보드를 채우면 된다. 예를 들어 다음을 보자. 위 그림은 참 잘도 스도쿠 퍼즐을 푼 경우이다. 각 행에 1부터 9까지의 숫자가 중복 없이 나오고, 각 열에 1부터 9까지의 숫자가 중복 없이..
'유저 친화적인 게임'은 무엇일까? (개발자 맹시)
·
주저리/잡담
개요지금으로부터 약 1달 전, 11월 14일부터 11월 17일까지 지스타에 경기게임마이스터고등학교 부스의 운영스태프로 참가하게 됐습니다.1달이나 지나서 관련 글을 적는다는게 상당히 우습긴 한데 시간이 없었습니다. (진짜로) 지스타에서 어떤 부스에 갔고 무슨 게임을 플레이했고 뭘 얻었는지 적기에는 너무 쓸데없는 내용 같아서 간단하게 부스를 운영하며 '유저 친화적인 게임'이 무엇인지에 대해 고민한 내용을 적어보겠습니다.      유저 친화적인 게임'유저 친화적인 게임'이라... 이 단어는 게임이 어떠한 장르인지에 따라 뜻이 계속해서 바뀌죠. 하지만 전 겜마고 부스의 운영스태프로서 저희 학교에서 출품했던 일반적인 '오프라인 인디게임'에 한정시켜 말해보죠. 제가 말하는 유저 친화적인 게임이란 유저가 제 3자의 ..
[Project EW] | #2 : 나중에 제목 생각나면 바꾸겠습니다
·
개발/Project EW
개요프로젝트 제출이 무사히 마무리되었습니다.구조 설명을 하기 전 간단하게 뭐하는 게임인지 적어보죠.    기획 수정?일단 본래는 [Project EW] | #0 : 윈도우창을 이용한 퍼즐게임에서 설명했 듯 플랫포머 퍼즐 게임이 될 예정이였습니다.하지만 게임 특성상 윈도우가 상당히 정적이고 루즈하기에 게임이 '우와 신기하다'가 되어도 '우와 재밌다'는 되기 힘들 것 같다는 피드백이 들어왔고 확실히 생각해보니 '윈도우 창을 이용해서 게임을 만들면 신기하겠지?' 라는 마인드로 게임을 기획했었다는 사실이 떠올랐습니다. 그래서 디펜스로 게임의 향방을 바꾸었죠. 간단하게 설명하자면 중앙에 있는 플레이어를 지키는 디펜스 게임인데 플레이어는 못움직이고 그 대신 윈도우창을 움직여 적을 잡는 게임입니다.윈도우 창으로 시야..
[Project EW] | #1 : Project EW 개발일지는 서비스 종료다...
·
개발/Project EW
개요에...??혼또...?    그래서말 그대롭니다.Project EW의 개발일지는 서비스 종료했습니다.서비스를 한적이 없는데 어떻게 서비스를 종료하냐고 묻지는 말아주세요... 변명은 다 집어치우고 귀찮고 힘듧니다.일단 개발일지라는게 적기 매우 힘들어요. 이거 개발이랑 병행할 수 있는 미친놈은 세상에 존재하지 않을거라고 생각했는데 불과 1학기 전의 제가 무려 프로젝트 2개의 개발과 개발일지를 병행했더라구요??? 도대체 어떻게 했는지는 잘 기억이 안나지만 그땐 뭐 체력이 넘쳐났나봅니다.아무튼 프로젝트 제출이 1주 남았고 개발할것도 산더미인데 개발일지를 적을 힘이 안납니다.개발일지를 적자고 첫 글을 올릴때도 이미 개발이 어느정도 진행되어 있는 상황이였구요.원래 이미 개발되어 있는 거 다시 한번 해설하고 해결..