즐파!!! ( 즐거운 파랜드 택틱스 온라인 개발 ) ^ㅁ^
[파랜드 택틱스 온라인 개발 라이브 방송 66 일차 방송 - 1 부]
https://www.youtube.com/live/jI8anJ4qmNY?si=_JlA7vWxv_0rh_q_
[파랜드 택틱스 온라인 개발 라이브 방송 66 일차 방송 - 2 부]
https://www.youtube.com/live/6A3JcAY77wE?si=Vi21MtlLx3irmdKq
안녕하세요.
파택온라인을 개발하고 있는 1 인 개발자 자칭서태웅 입니다.
어제는 3 월 4 째주 개발 라이브 방송을 진행했는데요.
1 부 에서는 기존 파택온라인의 렌더링 방식인
기본 윈도우 API 라이브러리 의 GDI 렌더링 방식을
게임 혹은 그래픽 툴인
DirectX SDK 를 활용하여 Draw 함수로 렌더링하는 작업을 진행했습니다.
2 부 에서는 간단하게 파택온라인의 실시간 컨텐츠를 테스트해봤는데요.
우선 1 부 방송을 조금 더 설명하자면,
쉽게 말해서
더 빠르고 효율적으로 게임이 만들어진다.
라고 보시면 될 것 같습니다.
애초에 DirectX SDK 를 썼어야하지만,
이 프로젝트가 시작될 때 저의 프로그래밍 학습상태가 거기까지 미치지 못했었기에
아직까지 윈도우 API 의 기본 GDI 렌더링 함수인
TransparentBlt 함수로 렌더링을 하고 있던 상황이었습니다.
이는 렌더링 속도도 느리며 ( 다시 말해, 프레임 FPS 도 늦게 나오며 )
BMP 비트맵 이미지만 사용 가능하기에
( BMP 이미지는 같은 사이즈의 PNG 이미지에 비해 약 10 배 가량 용량이 큽니다. )
게임이 차지하는 프로그램 용량도 무시못할 정도였는데요.
기존에 파택온라인 배포판을 설치해보신 분이라면
C 드라이브 ProgramFiles 에서 FarlandTacticsOnline 이 거의 2 GB 까지 용량을
잡아먹는 모습을 보실 수가 있으실겁니다.
그걸 단 200 MB 로 줄이는 작업이다 라고 보시면 될 것입니다.
어제는 물론 하루아침에 전체 렌더링 소스를 다 갈아엎을 수는 없고
딱 하나의 이미지만 DirectX 로 렌더링 해보는 것이 목표였습니다.
처음에 간단할 줄 알았던 작업은 실수를 연발하다
예전 학원에서 배웠던 소스코드와 챗 gpt 의 도움과 저의 삽질 끝에
결국 방송 막바지에 이르러서야 렌더링에 성공했습니다.
렌더링에 성공한 이미지 입니다.
기존 GDI 렌더링 맵툴 ( 좌 ), DirectX 렌더링 테스트 ( 우 )
1 차적으로 성공을 했으니,
이제 남은 작업은 프로젝트의 모든 렌더링 코드를
DirectX 코드로 바꾸는 것.
그리고 모든 이미지 BMP 파일을 PNG 파일로 바꾸는 것.
이렇게 큰 노가다 작업이 남아있습니다.
어제 개발방송 이후 다음 방송까지
이번에는 3 주간의 시간이 있다보니 그 사이에 제가
틈날때마다 꾸준히 작업을 해나갈 계획입니다.
2 부 에는 조금 흥미로운 컨텐츠로 실시간 컨텐츠를 테스트해봤는데요.
쉽게 말해서 파랜드 택틱스라는 예전의 턴 방식 게임의 리소스 ( 캐릭터, 마법 등 ) 을 가지고
실시간 게임으로 바꿔보는 작업이었는데요.
기존에 이동은 실시간으로 되는 스테이지가 따로 있습니다.
거기에서 오늘은 카린이 번개( 라이트닝 ) 마법을 실시간으로 시전해보는 연습을 해봤습니다.
https://youtu.be/Wiv7FjDphQM?si=Dn6PXt1_OXaJIjUV
기존에 턴 방식에서 라이트닝 마법을 시전하는 코드 로직을 분석하고
시나리오툴에서 실시간 시나리오로 실행시켜서,
캐릭터를 선택한 상태에서 키보드의 'T' 키를 누르면
라이트닝 마법을 시전할 타일을 마우스로 선택할 수 있게 됩니다.
그리고 마우스 왼쪽 키를 눌러 라이트닝을 발사하게 되는 작업입니다.
제가 참고한 프로젝트는 제가 자주 개발리포트에 공유드렸던
'이용준' 이라는 분의 파랜드 택틱스 포트폴리오 영상입니다.
https://youtu.be/fIR1YmMeKsU?si=BT84CxFHO35ldeYz
여기에서는 파택 캐릭터와 몬스터 등으로
거의 디아블로 급 게임으로 재탄생 시킨 걸작품이었는데요.
파택으로 이게 가능해?? 라는 수준을 보여주셨기에
저 또한 참고하여
기존의 파택온라인 멀티플레이 온라인 전투 방식인
실시간과 턴방식을 혼합한 시간제한 턴 방식 온라인 게임 형식과 더불어
완전 실시간 컨텐츠로도 실험을 진행할 계획입니다.
만약에 가능하다면 두 방식을 취사 선택하여
유저들끼리 해보고 싶은 전투방식을 게임마다 선택해서
오늘은 실시간 전투로 즐겨보고
내일은 시간제한 턴 방식으로 즐겨보고
다양하게 즐겨볼 수 있도록 컨텐츠를 둘 다 제공해드릴 수도 있구요.
개발하다가 둘 중에 하나는 포기해야겠다 싶으면
하나는 접거나 이렇게 될 것 같습니다.
가능하다면 둘 다 잘 만들어서
과거 파랜드의 시그니처 전투인 턴방식의 묘미도 살려보고
최신의 트렌드인 실시간 전투 방식도 멋지게 만들고픈 욕심이 있습니다.
그리고 어제 방송을 이후로
3 주간의 기간이 생긴김에,
기존에 하려던 미뤄왔던 개발 작업인
1. 1 부에서 진행했던 렌더링 방식 개선.
2. 프로젝트에 존재하는 수많은 경고 및 메모리 릭 잡기.
3. 프로젝트의 비쥬얼 스튜디오 버전 업그레이드 ( 현재 VS 2017 → VS 2022 )
작업도 될 수 있는한 진행하려 합니다.
최대한 가능한 범위까지 이번에 작업을 해둬야 향후 개발에
속도감을 더해줄 뿐만 아니라 완성도를 높여줄 것이라 판단되어
이번 여유기간동안 작업하려합니다.
저는 앞으로도 더 노력하여 더 좋은 게임이 될 수 있도록 최선을 다하겠습니다.
참고 : 현재 구글드라이브에 공유된 파택온라인 v0.5.8 버전 파일에는 아직 적용되지 않았습니다.
파택온라인 체험판 다운로드 링크( 구글 드라이브 )
: https://drive.google.com/drive/folders/1gcDe6FjiH_TgGhoLpkWiFTfdkCmYhCSp?usp=sharing
다운받은 후
압축 파일 비밀번호 : 영문 상태에서 한글로 "파택온라인" -> vkxordhsfkdls 으로 압축 해제
- 진행 상황 및 향후 계획 정리 -
- 멀티플레이 컨텐츠 작업
- 로그인부터 인게임 플레이까지 전반적인 디버깅 및 테스트, 플레이 개선
- 신규 캐릭터 추가
- 알파 테스트 ( 오픈카톡방 멤버들끼리 테스트 )
- 소셜 미디어 컨텐츠 구현 ( 시간과 공간의 방 )
- 멀티플레이 맵 렌더링 수정
- 렌더링 개선 버전 배포
- 서버 렌더링 개선 ( 클라이언트 다운 현상 수정 )
- 맵 툴 : 스타팅 포인트 기능 체크 / 개선
- 맵 선택 로딩 기능 ( 멀티플레이 스테이지 )
- 계정 DB 엑셀 파일화 -> MySQL, mdb, 구글시트 DB 구축
( 소셜 미디어 로그인 기능 가능 여부 체크 )
- 서버 매니징 기능 구현
- 회원 추가정보창 작업 ( 최애 파택 챌린지 기능 )
- 멀티플레이 채팅 시스템 구현
- 방 정보 동기화
- 파택 2 오프닝 에피소드 : 카린과 T.T. 의 조우
- 사운드 이벤트 구체화
- 시나리오 이벤트 블럭 데이터 기록 ( 엑셀로 정리 )
- 피드백 : Part 1. T.T. 와 요리사의 달리기 모션 프레임 속도 조절
- 시나리오 엑셀 형식 파일 세이브 & 로드 기능 구현
- 이벤트 블럭 슬라이드 기능 최적화 △
- 스테이지 전환 이벤트 구현
- 카메라 영역 앵글 테두리 표시
- 카메라 이동 이벤트 구현
- 디버깅 및 테스트 + 최적화 등등...
- 파택 1 스테이지 12 : 용의 산 구현 ( feat. 은의 들판 bgm )
- 맵 세팅
- 캐릭터 & 몬스터 세팅
- 케릭터 & 몬스터 이미지 리소스 준비
( 달리기 모션부터 작업 )
- 캐릭터 이동 구현
- 캐릭터 & 몬스터 공격 모션 이미지 리소스 준비
- 캐릭터 & 몬스터 턴오프 이미지 작업
- 캐릭터 & 몬스터 피격 이미지 작업
- 피격 피해숫자 애니메이션 시점 지연
- 공격 로직 분석
- 마법 이미지 리소스 준비
- 캐릭터 & 몬스터별 공격 및 마법 구현
- 아이템 구현
- 디버깅 및 최적화
- 유니트 일람 최적화
- 몬스터 인공지능 구현
- 파택 2 스테이지 2 : 창고에서의 전투 구현
- 맵 세팅
- 오브젝트 배치
- 멀티오브젝트 시스템 구현
- 오브젝트 그림자 처리 연구
- 난간 및 기둥 오브젝트 구현
- 적 몬스터 이미지 작업
- 상자 밀기 시스템 구현
- 사다리 타기 기능 구현
- 환풍구 활용 요소 구현
- 시나리오툴로 재현
- 시나리오툴 고도화
- 디버깅 및 최적화 : 이벤트 큐 슬라이드 렌더링 속도 개선
- 카메라 이벤트 구현
- 전투 이벤트 구현
- 몬스터 및 캐릭터 편집 기능 구현
- 몬스터 유니트 일람 구현
- 이벤트 미리보기 기능 구현
https://open.kakao.com/o/gLlmLqWc
다음 67 회차 방송은 4 월 12 일 토요일 오후 1 시 - 1 부, 오후 7 시 - 2 부 에 찾아뵙도록 하겠습니다.
이상 1 인 개발자 자칭서태웅 이었습니다.
감사합니다.
#파택온라인개발유투브방송, #파택온라인개발라이브방송66일차, #파택온라인개발실시간스트리밍방송, #게임개발방송, #파랜드택틱스온라인, #파택온라인개발라이브방송67일차예고, #DirectX렌더링적용, #실시간컨텐츠테스트, #청둥오리Studio, #1인개발자