finecode

디펜스 오브 디 아머

무기를 실은 수레를 몰아 상대 진영을 무너뜨리는 가로형 중세 2D 전략 대전.

디펜스 오브 디 아머 대표 이미지 — 불타는 전장을 달리는 오크 전차와 멀리 보이는 성채

주요 기능

무기 수레 전투

무기를 실은 수레를 몰아 밀려오는 적 웨이브와 보스를 막고 상대 진영을 무너뜨립니다.

무기 구매와 무게

전투 중 상점에서 골드로 무기를 사고팔 수 있고, 무기마다 가격·무게·효과가 달라 조합이 승부를 가릅니다.

챕터와 스테이지

들판·협곡·성채 챕터마다 길을 따라 이어진 스테이지를 차례로 깨 나갑니다.

5개 언어

한국어를 비롯해 5개 언어로 즐길 수 있습니다.

기술 스택

들어 있는 기능

안정성 · 운영

  • 헬스 체크 · 장애 알림서버 상태를 주기적으로 점검하고, 이상이 보이면 운영 채널로 바로 알려 장애를 빨리 알아챕니다.
  • 정기 DB 백업데이터는 일 단위·월 단위로 나눠 정기적으로 백업해, 잘못된 변경이 생겨도 이전 시점으로 되돌릴 수 있습니다.
  • 정기 작업 중복 실행 방지서버가 여러 개 떠 있어도 만료·정산 같은 정기 작업은 한 곳에서만 돌아갑니다.

보안 · 계정

  • 소셜 로그인여러 소셜 계정으로 간편하게 가입·로그인하며, 제공자별 처리는 서버가 한곳에서 맡습니다.
  • 언어별 약관 동의약관과 개인정보 문서를 언어별로 보여 주고, 동의 여부를 기기와 서버가 맞춰 관리합니다.

데이터 · 동기화

  • 이중 지급 없는 결제 기록영수증이나 콜백이 다시 들어와도 같은 결제는 한 번만 반영되어 중복 지급이 없습니다.
  • 버전 관리되는 DB 구조DB 구조 변경을 번호순 파일로 남기고 차례대로 적용해, 환경마다 같은 구조가 되도록 합니다.
  • DB 없이도 도는 개발 모드같은 인터페이스로 저장소를 바꿔 끼울 수 있어, DB 없이도 개발과 테스트를 할 수 있습니다.

알림 · 업데이트

  • 구버전 안내 · 차단서버가 알려 주는 상태에 따라 구버전은 업데이트를 안내하거나 접속을 막습니다.
  • 광고 보상 누락 방지광고 보상 확인이 늦어져도 보류 상태를 알아보고 다시 확인해, 본 광고의 보상이 사라지지 않습니다.

게임 시스템

  • 웨이브 데이터 자동 동기화웨이브 표 하나에서 서버 값을 자동으로 만들어, 클라이언트와 서버의 웨이브가 어긋나지 않습니다.
  • 가벼운 이펙트투사체 이펙트를 시트 이미지로 처리해, 화면이 바빠져도 부담이 적습니다.

사용성

  • 5개 언어 지원번역 표 하나에서 5개 언어 리소스를 만들어, 해외 이용자도 같은 게임을 즐깁니다.
  • 노치 기기 화면 대응기기의 안전 영역을 계산해 UI 를 배치하므로, 노치가 있는 화면에서도 버튼이 잘리지 않습니다.

구성도

  1. DOTA 클라이언트Godot 4.7 · iOS · Android
  2. DOTA 서버Node.js
  3. 공유 DBMySQL
  1. 웨이브 표CSV
  2. 자동 생성클라이언트 · 서버 같은 값
  1. DOTA 서버헬스 체크
  2. 운영 알림 채널

클라이언트와 서버는 같은 웨이브 표에서 만든 값을 쓰고, 서버는 스스로 상태를 점검해 이상을 알립니다.

운영 · 배포

디펜스 오브 디 아머 — 가로형 중세 2D 전략 대전 게임 — 파인코드(finecode)