[ 첨부파일 ]
1. 소스코드 프로젝트
2. 실행파일 (노설치)
3. 실행파일 (인스톨)
4. 스크린좌표->마름모꼴 배열좌표 변환, 오토타일링 구현 설명 ppt
MFC공부를 목적으로 기획.
학교 졸업작품으로 제출할 예정인 프로그램이다.
아이소메트릭 형태의 타일을 편집할 수 있는 게임 맵 에디터이다.
개발이야기..
더보기
첫 팀프로젝트이다. PC게임 데모버전을 만들면서 혼자 하기엔 작업량이 너무 많다고 느꼈기에 졸작 프로젝트는
팀프로젝트를 선택했다. 처음 팀프로젝트를 하면서 SVN으로 버전관리도 하고, 단 둘뿐인 팀이었지만,
다른 사람과 같이 작업을 하는데에 있어서 의사소통이 가장 중요하다는 것을 몸으로 느꼇다.
쓸때없는 말이든 아니든 서로 말을 해야, 오해의 소지가 생기지 않고, 곪지 않으며, 어느 부분을 어떻게 하고 있는지
알아야 프로젝트의 진행에도 차질이 없다.
이런 부분도 프로그래밍 공부 중 하나가 아닌가 하는 생각이 든다.
그리고 끝까지 함께 프로젝트를 진행해준 영석이형에게도 고맙다고 말하고 싶다.
개발 목적은 MFC공부가 50% 정도 되는 것 같다.
MFC를 처음 사용하는 탓에 책보고 공부한시간.. 삽질한 시간.. 결과물에 비해서 개발기간이 오래걸렸다.
게다가 MFC의 깊고 넓은 구조에 너무 취중했는지 결과적으로 MFC클래스가 아닌 로직을 위한 클래스들은
구조적이지 못한 결과가 나왔다.
객체지향적인 구조는 클래스간 참조관계가 명확해야 된다고 생각하고 있었는데.. 이럴수가..
MFC는 어떤 클래스든 MainFrame클래스를 통해 참조가 가능하도록 구조가 짜여져 있었다..
어찌됐든 구조를 알기 위해서 MDI로 했다가 SDI로 했다가 다이얼로그 기반으로 했다가
이렇게 저렇게 해보다가 결국은 SDI 구조로 방향을 잡았다.
SDI 구조로 하면서 불편했던건 MDI에서는 스크롤바가 기본지원이었는데.. SDI는 그렇지 않았다는 점..
아직 MFC의 매력을 느끼지 못한터라 이럴꺼면 그냥 WinAPI로 하는거랑 뭐가 다를까라는 생각도 들었었다.
프로그램 구현에 앞서 힘들었던 점은 실제 게임에 쓰인 이미지 전체 파일이 있었는데
첨봤을땐 참으로 난감했었다. 어떤 방식으로 쓰려고 이미지들은 이런식으로 그리고 쪼개고 뭉쳐놓았는지
같은 이미지들이 이파일 저파일에 있었고 어떤 이미지는 여러 이미지들을 합쳐야 하나의 이미지가 되고..
아바타에 옷입히는 것처럼 보이지도 않고.. 어떤 이미지가 어떤 용도로 쓰이는지 구분하는게 정말 애매했다.
실제 구현에서는 마름모꼴 타일이다 보니 마우스 좌표로 맵 배열 인덱스를 구해야 한다는 점이었다.
여기저기 자료를 찾아봤으나.. 힌트가 될만한 말이나 코드들은 없었고.. 구현하는데 애를 먹었다.
또한가지.. 맵에디터를 만들기 전에 다른 맵에디터들을 인터넷에서 찾아봤었는데,
하나같이 타일 하나하나를 클릭해서 찍어서 한다는 점이 너무 불편해 보였다.
이미 스타크래프트의 캠페인에디터를 사용해본 경험이 있어서인지 더 그랬다.
그래서 결국 잔디밭에 흙 타일을 찍으면 주변타일이 잔디에서 흙으로 자연스럽게 연결되는
타일을 자동으로 찍어주도록 구현하기로 했다.
이 기능을 구현하는데 힘들었던 점은 가진 타일 이미지는 24개인데..
높낮이와 주변타일 이미지 종류가 틀린경우를 따져보니 1296가지.. 하지만 구현은 가능한 부분이었기에
경우의 수에 따른 이미지 인덱스를 뽑아주는 프로그램을 따로 구현에서 파일로 뽑았다.
아쉬웠던 점은 타일셋의 부제로 타일셋이 하나밖에 없다는 점이다.
여러가지 타일셋을 추가할 수 있도록 생각해서 만들었는데, 리소스가 없다니.. 정말 아쉽다..
하지만 지금까지 만들었던 프로그램 중 가장 보람있는 프로그램이 아닌가 싶다.
패키징을 한게 처음은 아니지만 (처음은 YuPlayer), 그래도 정말 패키징한 기분이 든다.
왠지 모르게 뿌듯하고, 버전 1.0짜리 프로그램을 만든 기분이랄까..
다음에 이 프로그램을 업데이트하거나 새로 맵툴을 만들게 되면,
스크립트 언어로 코딩이 가능한 트리거 기능 이벤트 기능을 을 꼭 넣어보고 싶다!
타일 이미지 - TGL사의 파랜드 택틱스 1/2
개발환경
- Windows7 32bit (WindowsXP 32/64 에서 테스트)
- MFC 9.0 SDI
- DirectX 9.0c
- C++
기능
- 오토타일링 온/오프 (스타크래프트의 타일 설정방식)
- 높낮이 표현
- 장식물(Doodad) 표현
- 플레이어 시작위치 설정 (플레이어당 캐릭터 3개 / 최대 8명)
- 미니맵
- 전체화면 미리보기
- 새로만들기 / 열기 / 저장 / 다른이름으로 저장
- 모든 기능에 단축키 지원
- BrushPallate창 위치보존
사용방법
실행 후 h/H 를 눌러 도움말 참조
첨부파일
1. Visual C++ 2008 프로젝트
2. 실행파일 (설치 없이) - 32비트 mfc배포 라이브러리 설치해야 실행됨 (파일포함)
3. 실행파일 (인스톨)