본문 바로가기

Game Programming221

서버 프로토콜은 어떻게 해야 하는가? 초기에 프로토콜 만들땐 그냥 상수형으로 만드는 것이 좋다고 생각했다. PT_1000 이런식이지... 그런데 시간이 좀 지나면서 상수형보다 더 좋은 방법이 없을까고민이 되었다. 아무리 패킷을 잘 보낸다 하더라도 분명 유실되는 부분은 있을 수 있고..유실이 되는 상황이면 겜하긴 글렀다고 봐도 되겠지만.. PC는 그래도 괜찮은데 단말기는에러처리에 취약해서..아마 재부팅 되는 문제도 심심치 않을 것이다. 툭하면 빠바박~ 띠링~ 그럼 받아들인 패킷이 어떤건지 어떻게 보내면 될까? 혹시 유실되도 정보를 얻는 법이 있을까?만약 중간에 쓰레기 값이 있다면?? 그래서 생각해 볼 수 있는 문제가문자형 프로토콜이다! 과거 성능상의 걱정이 있어서 좀 꺼리긴 했지만편하긴 하다. 단순히 1001xcab000abb3ba 같은 바이.. 2007. 11. 4.
충돌체크의 간단한 수학적 풀이 충돌 체크는 대부분이 사각형을 이용한 체크를 한다. 마스크를 이용한다던지..일일히 대조하는 것이 아닌 영역을 지정하여 해당 영역의 교집합을 구하는 것으로 충돌을 체크하는 것이다. 이것을 수학적으로 풀이하면 여러가지 방법이 있겠지만 내가 즐겨 사용하는 것으로는abs 즉 절대값을 이용한 계산이 있다. a라는 박스가 x=10 y=10 가로 w = 10 세로 h = 10 이고b라는 박스가 x=10 y=15 가로 w = 10 세로 h = 10 이다일단 생각하기에 이 박스는 겹치기는 겹치는 것 같다. 그런데 확실히공식을 통해 겹치는지 알아보자. 일단 a와 b 모두 중점을 구하도록 하자.a.cx = a.x-a.w/2, a.cy = a.y-a.h/2 cx는 x의 중점이고 cy는 y의 중점이다.b도 같은 방식으로 구하자.. 2007. 11. 2.
ARM 계열에서의 1바이트 팩킹? 네트웍을 하다보면 4바이트 정렬 때문에 깨지는 경우가 많다.당연히 4바이트 정렬처리 해주는 게 좋지만 어디 다들 그렇게 생각하겠는가?네트웍상으로 낭비가 아닌가? 그래서 팩킹을 하는데 이놈의 ARM계열에서는아래처럼 #pragma pack(1)하면 안된다. 에뮬이야 dll이니까 되겠지만 실제 폰에서는 안된다. 그래서#ifdef __arm // arm컴파일러의 경우에 한하여 typedef __packed struct _S_PRO_Default // 구조체의 앞에 __packed 를 기입해 주면 된다. { byte Hoss; int PROTOCOL_ID; int LENGTH; }S_PRO_Default; 이러면 해당 구조체는 1바이트 단위로 팩킹된다.sizeof하면 9로 나오게 되는 것이다. 이것 땜에 고생한 .. 2007. 10. 22.
플로트랜드 모바일 플로트랜드 스토리 예전에 만들다 만 실행파일을 찾아서 녹화했다.완성하는 건 큰 무리가 없지만 몸이 안따라주었다.www.gamehon.comwww.gamemotor.com 2007. 9. 29.
DEVC++ DX사용 마우스도 삐꾸고..잘 되는게 엄구나. 기획자까지 비쥬아르 스뜌디오를 주는 회사는 없었다.그럼 내 유일한 취미이자 낙인 게임 혼자 만들기는 어떻게 하란 말인가? 결론은 DEVC였다...ㅜㅜ 비록 인텔리쒠스도 쎈스가 쫌 떨어지지만 공짜로 쓰려면 감수하는 수 밖에 일단 devc++ 한글판으로 받고 DX9C minGW용도 받아서 돌렸는데 잘된다.. 그런데..그런데.. 한글 출력을 모르겠어 ㅜㅜ 우어어어 내가 폰트 안잡아서 그런가? VS 익스프레스로 가야할까? 2007. 9. 20.
심심풀이 배선게임~ 모 플래시 게임을 하다가 패턴화 된 모양새가 맘에 안들어 직접 만들었다. 그냥 대충 만든거라 스코어 계산도 없지만 매번 할때마다 스테이지 생성하니까 그냥 심심풀이로 즐기기 바람. Max카운터가 조합에 걸린 수이고 그거 미만으로만 모든 불을 꺼트리면 된다. 역시 DX스프라이트다. www.gamehon.comwww.gamemotor.com 2007. 8. 28.