'컴퓨터:Computer/프로그래밍:Programing'에 해당되는 글 23건 RSS Icon ATOM Icon

  1. 2008/05/06 도구를 만들 때 (3)
  2. 2008/04/28 뭐라도 좀 보면서.... (3)
  3. 2008/04/16 프로그래밍을 하면서 얻은 교훈 (2)
  4. 2008/03/06 이것 저것....
  5. 2008/02/06 간단한 게임 엔진 Sparrow : 참새
  6. 2008/02/04 새로운 모델
  7. 2008/01/07 Project Aquila 개발 노트 - 서문
  8. 2007/07/31 흠흠흠, (1)
  9. 2007/07/11 PSP용 플러그인 제작 / 블로그 개편
  10. 2007/07/03 새 프로젝트 '텃세' (2)
도구를 만들 때에는, 그게 왜 필요한 것이고, 용도가 무엇이며, 어떻게 쓰일 지가 명확해야한다.
왜 필요한 지를 모르면 만들어 놓고도 헛짓을 한 것에 불과하게 될 것이며
용도를 모르면 아무 짝에도 쓸모 없는 도구가 만들어질 것이고,
어떻게 쓰일 지를 모르면 쓰기에 불편한 도구가 만들어질 것이다.

이 셋 중에 하나라도 명확하게 말로 풀어낼 수 없다면, 필히 원점으로 돌아가야 할 것이다.
너무나 당연한 것이지만, 실상 도구를 만들 때 쉽게 망각되곤 하는 것이기도 하다.

어떻게 쓰일 지를 어떻게 정해야 할 지 가장 난감하다.


처음엔 Orge 엔진을 모델로 두고 시작했지만, 장면노드와 개체가 다르다는 점에서 조금 내키지가 않았다(원래의 설계 방향과 전혀 달랐기 때문). 결국 장면노드와 개체를 하나의 개념으로 보는 Irrlicht 엔진을 기본 모델로 두려고 한다.

엔진 구조는 속도에 중점을 두기보다는, 아무래도 배움에 더 뜻이 있어, 구조에 더 중점을 두려고 한다. 물론 설계가 아닌 구현 상에서는 속도를 위해 아주 약간의 트릭이 적용될 수도 있겠다.
[2008.5.6]
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/05/06 19:45 2008/05/06 19:45
Orge 엔진 강좌 글이 있길래 전부 다운 받아서 참고 하는 중.

내가 하는 방법이 제대로 된 방법인지 확신이 안서서 진행도가 느렸는데,
때 아닌 참에 좋은 자료가 되었다.


신기하게 그래도 나름 혼자서 생각해온 것 치고 잘 해온 것 같다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/04/28 21:13 2008/04/28 21:13
'Simple is the best'
'형식은 기능에 맞춰야 하지, 기능이 형식을 따라가선 안된다'


지키려고 늘 노력하지만, 뜻대로 잘 되지 않는 것들.

훌륭한 프로그램은, 맥가이버 칼이 아니라, 날이 잘 세워진 수리검이라 하였는데,
이상하게도 자꾸만 범용적으로 설계하려고 한다.

게임 엔진을 만드는데 자꾸만 렌더러 같이 범용서을 추구하려 한다.

자꾸, 불필요한 형식을 만들려고 하고, 기능이 거기에 맞추게끔 되어버리기도 한다.

간단하게 할 걸, 굳이 돌아서 가기도 한다. 사실 객체 지향 프로그래밍을 하다보면 그런 일이 종종 있긴 하지만, 심할 때가 가끔씩 있다.


멀고도 험하구나.

그래서 아키텍쳐와 코더를 구분해놓는 것이군.
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/04/16 21:17 2008/04/16 21:17
모든 것을 객체화하고, 서로 간의 통신은 메세지로 주고 받도록 설계.

Windows의 GUI API 그대로 보다는, 아마 MFC에 가깝게 설계될 듯.
메세지 기반이므로, 설계가 매우 유연해짐.



간단한 물리 시스템을 적용해보려고 한다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2008/03/06 19:07 2008/03/06 19:07

아퀼라 프로젝트에 적용할 간단한 게임 엔진, Sparrow 일명 참새 엔진.

간단하다곤 해도 갖춰야 할 것들은 다 집어 넣고 있는 중.

영상(3D,2D 통합)
음향(3D 음향 및 고수준/저수준 제어 지원, 네트워크 모듈과 연동하여 VoIP 지원 예정)
사용자입력(키보드, 마우스, 조이스틱, XBOX 패드)
네트워크
등...

[2008.2.7]
+ 빠른 렌더링을 위한 절두체, 쿼드트리에 기반한 오브젝트 렌더 판별 루틴 추가
= 클래스에 이것 저것 다 쑤셔넣자.

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/02/06 21:53 2008/02/06 21:53
HIS : Heros in the Sky

2차대전을 배경으로한 3D 온라인 비행 슈팅 게임을 오늘 알게 되었는데,

이걸 모델로 삼아서 진행해야겠다.

스크린샷 <출처 : HIS 공식 홈페이지>

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/02/04 11:43 2008/02/04 11:43

+ 모든 것을 객체화하는 실험을 강행.
모든 객체들은 객체 간의 통신에 쓰이는 메세지를 처리하기 위한 메세지 프로시져를 갖고 있으며,
객체 간의 상호작용은 모두 메세지를 통해 이루어진다.
(Windows의 윈도우 메세지를 참고함)

+ 게임 진행에 관련된 모든 동작은 Lua 스크립트에 의해 이루어진다.
(메뉴 출력부터 게임 시나리오까지)
단, AI 등, CPU 시간을 많이 필요로 하는 루틴의 경우는 제외.

+ DirectX9기반, 그러나 OpenGL 도입도 검토.
해결책.
->엔진 모듈을 각 라이브러리에 대해 따로 따로 분리.
그래픽 엔진을 추상화시켜 두 라이브러리 간의 의존도를 없앤다.
DLL Hell을 막으면서, 디자인을 위해 게임은 그래픽 엔진을 참조할 때 명시적으로 참조하고, 각 엔진은 라이브러리를 묵시적으로 참조.

[2008.1.2]

+ 리소스 매니저 추가
리소스 패키지 파일을 로드하면 지정된 드라이브명으로 마운트 시켜서 사용할 수 있도록 해줌.
물론 실제로 드라이브를 생성하지는 않고, 파일 관련 함수를 후킹해서 구현.
->스타크래프트도 그런 방식이었던 것 같음. (X:\)

[2008.1.5]

+ 리소스 매니저 변경
후킹은 아무래도 좀 오버인 듯. 다른 플랫폼은 모르겠지만 윈도우에서 파일을 다룰 때에는 어차피 핸들을 이용할 테니, MMF로 직접 리소스파일에 임의 접근이 가능하도록 하자.

[2008.1.7]

+ 크로스 플랫폼 포기.
-> 걷지도 못하는데, 뛰려고 하는 것 같다.
+

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/01/07 22:01 2008/01/07 22:01

흠흠흠,

컴퓨터:Computer/프로그래밍:Programing RSS Icon ATOM Icon 2007/07/31 21:27 posted by 정기
아주 어렸을 때에, 음, 그러니깐 휴대폰 벨소리를 처음으로 만들어 보게 되었을 때,

(아마 초등학교 5학년 정도 때에)

벨소리 용량에 대해 최대 샘플링레이트 계산하기가 귀찮아서

되지도 않는 실력으로 비주얼베이직으로 계산기를 짜본적이 있다.



원래, 뭔가를 하면 항상 소스나 흔적을 하드디스크에 남겨놓지만,

이상하게 이것 만큼은 도저히 못 찾겠다.



아쉽게도 그 프로그램에 내 이름이나 홈페이지는 새기지 않았지만,

프로그램 창 하단에 'Eyesoft corp'라고 적혀있었다.
(eyesoft.co.kr는 본인의 옛 도메인)



암튼, 내가 만든 게 그럭저럭 잘 쓰이고 있으니, 왠지 뿌듯하다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/07/31 21:27 2007/07/31 21:27

게임 도중에 다른 홈브류를 실행시킬 수 있도록 해주는 플러그인을 제작하려 합니다.

공략집을 보면서 게임 하려고 하니, 새로 만드는 수밖에 없더군요.

따라서 '텃새'는 기한이 미뤄졌습니다.


프로젝트 카테고리에 제로보드를 달았습니다.

조만간 진행 중, 진행할, 진행했던, 끝난 프로젝트들이 제로보드에 올라올 예정입니다.

이제서야 블로그가 좀 굴러가는 듯 합니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2007/07/11 00:09 2007/07/11 00:09

새 프로젝트 '텃새'를 공개합니다.

프로젝트의 목적과 내용은 밝히지 않습니다.

목적과 내용은 사용자 사용하기 나름임에,

모든 문제는 사용자의 책임을 전적으로 합니다.

D-12

크리에이티브 커먼즈 라이센스
Creative Commons License
2007/07/03 16:39 2007/07/03 16:39