: 1 : 2 : 3 : 4 :

이전 스프라이트툴 을 만들고 어언 수개월 (3개월밖에않됬다니..) 동안 써보니
몇가지의 문제점을 알게되었습니다.

문제점

이전 스프라이트툴 같은경우에는 그림파일+애니메이션영역값의 식으로 파일에 저장이됩니다.
용량이 그림파일의용량+애니메이션정보의용량 이런식으로 되겠죠.
그렇다면 아래의 사진들을 봅시다.  
아래의 사진들을 보면 두사진의 애니메이션영역의 값이 항상 같습니다.

사진 1-1 RPG만들기

사용자 삽입 이미지

사진 1-2 RPG만들기

만약 게임이 이런식으로 일정한 애니메이션영역의 정보를 사용하게 된다면
불필요하게 같은 정보를 저장하여 메모리를 낭비하게될수도있습니다.

문제의 해결방법

뭐 개인적으로 생각한 방법인데 그림파일의 정보와 애니메이션 영역의 정보를
각각 분리시켜서 저장하는것입니다.
뭐 물론 리소스의 패킹은 셀프죠 ㅎ_ㅎ...
뭐 이런식으로 저장하면 프로그래밍소스 혹은 스크립트 레벨상에서
그림파일과 영역파일을 알아서 연결할수있게 구성해주면될것같습니다.

이런식으로 하면 만약 다른 그림파일로 같은 애니메이션의 영역정보를
쓰는경우가 많은경우에 이전의 스프라이트툴 보다 많은 용량 절감을 할수있다고 생각합니다.

추가밑 변경될 사항

그리고 기존의 스프라이트툴은 확대해서 RECT값을 드래그로 딴후 중점정보를 바꾸는등의
노가다(드래그로RECT값따는게 제일노가다)로 애니메이션을 완성햇어야했는데
최근에 GNEX SDK 속에 있는 ImageMaster라는 툴을 사용해봤는데
처음 보는 방식으로 RECT 값을 따내길래 신기해 하였습니다. =ㅇ=
뭐 비슷하긴 하지만 편의성이 UP 될듯한 기능이더라구요.

밑의 사진처럼 그냥 스프라이트를 포함한 일정영역을 드래그시 딱 스프라이트의 크기에
RECT을 맞춰주는겁니다... 우왕굳 ... 뭔가 알고리즘 적인 부분이 들어갔을듯한데
사용자 삽입 이미지
대략 무지한 저로선 ㅠ_ㅠ...

이것들 이외에 추가밑 변경될 사항들이 더있는데 포스팅하다 졸려서 자야겠군요 =ㅇ=..
음음 새로만들어질 스프라이트툴은 앞으로 다시 만들어지는일이없길 빌며..
[##_kaAmo_##]

Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/49
  2. 날자고도 2009/04/20 13:56  Modify/Delete  Reply  Address

    픽셀을 검사해서 알파값이 0이면 라인을 줄여나가는 방식입니다.

  3. 닭도난다 2009/04/20 16:13  Modify/Delete  Reply  Address

    날자고도님 의견에 한표, 픽셀 값 계산을 해주면 될듯요.

  4. 랜스 2009/04/20 16:50  Modify/Delete  Reply  Address

    아앗...이렇게도 할수있겟군요~~ GPG 에 질문올렸었는데 답변떠서 날자고도님 답변보기전에 이미 그방법으로 해결했다는.. 감사합니다!

  5. 날자고도 2009/04/20 19:59  Modify/Delete  Reply  Address

    같은 말이죠.
    알파값이 0이면 아닐때까지 찾거나,
    투명한색을 제외한 색을 찾거나..

  6. 나무 2009/04/21 15:31  Modify/Delete  Reply  Address

    두가지 방법으로 다하는게 좋습니다. 영역을 죽이면서 이미지영역을 따는 방법과 이미지부분을 클릭시 점점 확대하면서 이미지영역을 따는방법으로요 그리고 이미지 임포터에서 자동으로 적용하여 이미지를 불러드리는 적시 줄어들며 영역을 따는것도 있으면 편합니다.
    생각하기 나름이긴하지만 최대한 사용상 편의가 가장중요한게 툴이기도하고
    데이타를 쓰기쉽게 구조화하는것도 필요하겠죠. 게임상에서 계산할것을 최대한 줄이는
    응용기능들은 미덕이죠: )
    전 아직 10년전에 만든 스프라이트툴을 쓰고있는데 툴이란게 잘만들어두면 두고두고 유용한거같아요.

  7. 나무 2009/04/21 15:33  Modify/Delete  Reply  Address

    아 3D로 오고나서 조각이미지를많이 만드는게 좀 위험해쪘죠. 텍스쳐를 만드는 갯수가 많아지면 퍼포먼스가 많이 낮아집니다. 특히나 텍스쳐를 생성할시나 해제시에요. 작고 많은 수의 텍스쳐보단 큰 몇개의 텍스쳐가 용의하다는 : )

  8. 랜스 2009/04/23 16:08  Modify/Delete  Reply  Address

    오오.. 날자고도님 나무님 답변모두 감사합니다.~

TCP/IP 소켓통신을 이제껏 클래스화 시키지않고 그냥 무자비하게 사용해온 1人 이있었으니.....
그건 바로 저랍니다 =ㅇ=;
뭐 잘사용할필요도없고 그랬는데 이번에 혼자 계획한 프로젝트가 네트워크를 이용하는거라서
이번기회에 클래스화 시키기로 하였습니다~

(뚝땅 운마엄나ㅣ엄니ㅏㅓㅇ미ㅏㄴㅇㄴ마)

클래스화 끝~!

클래스화 시킨것으로 간단한 채팅 서버를 구현해보았습니다.
흠냐... 기존의 채팅서버를 참고해서 만드는데 걸리는시간은 약 10분정도...
[##_kaAmo_##]
사용자 삽입 이미지

물론 현재 채팅서버에만 적용해봐서 다른 부분에 적용할때의 수정해야 할부분이 생길지도 모릅니다.
=ㅇ= 그런고로 오늘내일중으로 예전에 만들어뒀던 프레임워크에 적용을 해볼까합니다 캬캬캬


Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/35
  2. EOSTORY 2009/03/28 07:49  Modify/Delete  Reply  Address

    단단하게 하나 만들어두시면 마음이 든든합죠! ㅋ 앗흥~ (게임코디에서 왔습니다~ ㅋ)

    • 랜스 2009/03/31 00:14  Modify/Delete  Address

      헉 게임코디님이 시군요~~~
      블로그 들어가자마자 알아챘습니다 ㅋㅋ(그보다)

1년전쯤 잠실역에 직거래하러갔다가 레브님을 만나서 레브님꼐 돈을 꿔서 산책...

하루에 한단원씩 2주내로 끝내야겠다!!
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/25
  2. 닭도난다 2009/03/01 01:03  Modify/Delete  Reply  Address

    저도 보긴 했는데 ㅎㅎ 어느정도 기초가 있다면 금방 금방 이해하고 나갈수 있는 내용들.
    심화 있게 볼려면 게임 물리 바이블 등등 이런 책들도 읽어 보는것도 좋을듯 ㅎ

    • 랜스 2009/03/03 05:07  Modify/Delete  Address

      흐음 4장까지봤는데 제가 기본고등학교 수준도않되네요 ㅠㅠ ; 그냥 요점정리에 요점정리를 한듯한 느낌... 한번 쏵훑고 딴거해야지...

사용자 삽입 이미지


오마이갓뜨 -ㅇ- ;;;
출력엔코딩을 utf-8에서 EUC-KR나 한글을 지원한다는 별에별거로 바꿔도 않되네 ;;
혹시 아시는분은 메일좀 ㅠ_ㅠ
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/21
  2. Kell 2009/02/03 14:05  Modify/Delete  Reply  Address

    http://www.gpgstudy.com/gpgiki/DoxygenTutorial

    이 쪽을 한번 참조해보세요. 저도 이렇게 해결했던 기억이 나네요..

dll 이 너무 많길래
0.6 버젼부터는 static 라이브러리로 링크가 가능하더라구요...그래서 링크해줘버렷습니당
그래서 작업디렉토리에 있던 여러개의 dll들을 다 삭제해도 돌아가네요 ㅎ_ㅎ
다만 조금 슬픈게 뭐냐면 Puer엔진이 만들어내던 dll의 용량이 78KB 에서 5.08MB로 급증해버렸습니다만
뭐 깔끔해지니 좋쿤요 >_<

[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/18
  2. 랜스 2009/01/20 23:26  Modify/Delete  Reply  Address

    아!! 참고로 전처리지시사에 CEGUI_STATIC 해주어야합니다

CEGUI::DirectX9Renderer 의 메서드인 preD3DReset과 쌍을 이루는 postD3DReset메서드를
사용하여 디바이스를 Reset할수있다. 고로 풀스크린문제 해결!! 디바이스소실관련 문제 모두 해결 >_<

 /*!
 \brief
  Direct3D support method that must be called prior to a Reset call on the
  Direct3DDevice; this is required so that the GUI renderer can release any
  unmanaged D3D resources as needed for the device reset to succeed.
 */

 virtual void preD3DReset(void);


 /*!
 \brief
  Direct3D support method that must be called after a Reset call on the
  Direct3DDevice; this is required so that the GUI renderer can rebuild any
  unmanaged D3D resources after the device has been reset.
 */

 virtual void postD3DReset(void);


PS . 나는지금 DLL HELL........ㅠ_ㅠ

[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

사용자 삽입 이미지

한글을 띄우기 이렇게 어려워서 어디 살겟니???
imageset이라던지 layout에디터의 사용법에 대해 오케이!!!!!
근데 -ㅇ- 이거 디바이스 소실복구 어떠케 하는거예염..ㅠㅠ? 소실되면 않켜지네 ㅠㅠㅠㅠ
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

사용자 삽입 이미지
이제껏 자체 GUI모듈만들면서 쓰다가 사용량이 많아지는 레이아웃을 구성하니
프레임이 뚜두두둑.... 내가 만든 GUI모듈은 이렇게 허접햇던건가 !!! (충격)
하여튼 고로 GUI를 다시만들기도 그렇고 끄적끄적 몇가지 GUI라이브러리를 사용해보려합니다.
고로 젤 첫타자는 CEGUI -ㅇ- 이리저리 무겁고 불편하다는 GUI라이브러리이지만 한번 만지작해봅시다!!

만들어 뒀던 Puer엔진에 CEGUI를 붙여보았습니다.... 가장기본적인 윈도우 창 하나이지만
늘이기 줄이기 이동 접어두기... 등등 엄청난 기능지원!!!!!

만들어둔 윈도우창이 한개라서 그런지 fps는 크게 차이가 나지않는다.
생성한 윈도우를 렌더할떄 1400대 렌더하지않을떄 1300대 -ㅇ-?;;
풀스크린하면 1600대정도 뜨네 흐음

끄적끄적 가지고 놀아봐야징
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

사용자 삽입 이미지
저번에 API를 이용하여 만든 스프라이트툴이 정확도가 떨어지는 면이있어서 -ㅇㅠ; 다시제작했습니다.
물론 임시방편으로 쓸꺼구요;; MFC로 제작했답니다.
MFC가 역시 편하긴 편하더라구요 -ㅠ-; 제작하는데 단지1시간 반 ; 그것도 파서 만들다가 보낸시간이 90%랍니다.ㄷ_ㄷ;; 뭐 심플하니깐 만들께없긴햇지만 말입니다....
하여튼 이걸로 실행하니깐 잘되자나!!!
[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

사용자 삽입 이미지

볼사람은 클릭해서 보세요 ㅋㅋ

[##_kaAmo_##]
Posted by 랜스.

Leave your greetings here.

  1. Comment RSS : http://lancekun.com/tc/rss/comment/7
  2. 호수 2009/03/06 00:49  Modify/Delete  Reply  Address

    API 이용해서 만드신거죠? 근데 제가 정말 경험이 없어서 그런데 .Net에서 프로젝트 생성 후 이 툴을 만들려면 저 칸이나 그림 넣고, 이름, 열기, 수정 이런거 버튼도 모두 소스로 쳐야 되는건가요? 기초적인 부분이 없어서 궁금합니다. ㅠㅠ

    • 랜스 2009/03/06 03:55  Modify/Delete  Address

      네.. 저같은경우 자체GUI라고하기도 뭐하게 만들어서

      m_pGuiSystem->AddButton("열기",위치x,위치y,사각형의위치등...)

      이런식으로 일일이 다쳐줬네요 ...ㅠ 기본 윈도우 버튼을 이용해도 아마 마찬가지일꺼예요~ 툴이 있지않는이상 gui엔진들도 저런식으로 처주어야하니..

  3. 호수 2009/03/06 22:34  Modify/Delete  Reply  Address

    네~ 감사합니다. 저도 한번 따라해봐야 겠어요;ㅎㅎ

  4. 호수 2009/03/06 22:35  Modify/Delete  Reply  Address

    아...그런데 가능하시면 만든 소스 좀 부탁드려도 될까요? 어디서 부터 시작해야할지 감을 못 잡겠어서...

    • 랜스 2009/03/07 08:54  Modify/Delete  Address

      소스 전체공개는 좀그렇구요 ㅠ_ㅠ 메신져등록하시던가 방명록에 메신져 주소 남겨주시면 그쪽으로 제가 연락드릴께요~~

: 1 : 2 : 3 : 4 :