2P by neo 6달전 | favorite | 댓글 1개

Moddio 게임 엔진 2

  • Moddio는 멀티플레이어를 우선으로 하는 게임 엔진임.
  • 서버 권한을 가진 네트워크 코드, 스냅샷 보간, 클라이언트 측 조정 기능을 내장하고 있음.
  • 월 5달러짜리 VM에서 50명 이상의 동시 플레이어 또는 300개 이상의 움직이는 객체를 지원함.

데모

  • 박스에 포함된 내용: Box2D 물리 엔진, 서버 권한을 가진 네트워크 코드, 인벤토리 및 아이템 시스템, 내장 속성(HP, 에너지 등)과 재생률, 대화 시스템, 상점, 유닛 컨트롤, 클라이언트 측 예측된 발사체 및 유닛 이동, 유닛 AI 및 A* 경로 찾기, 모바일 컨트롤 등.

게임 실행 방법

  • Node 18 이상이 필요함.
  • 저장소 설정 후, /src 디렉토리로 이동하여 game-sample.jsongame.json으로 이름을 바꾸고, 루트 디렉토리로 돌아와 서버를 실행함.
  • 이제 http://localhost:80에서 게임을 플레이할 수 있음.

새 게임을 처음부터 만드는 방법

  • Moddio 게임은 https://www.modd.io에서 제공하는 Moddio 게임 에디터를 사용하여 생성 및 편집됨.
  • 게임을 만든 후, 로컬 설치에서 사용할 수 있는 game.json을 내보낼 수 있음.
  • 내보낸 게임 JSON을 game.json으로 이름을 바꾸고 ./src 디렉토리로 이동함.

기여하는 방법

  • Moddio는 MIT 라이선스 하에 완전히 무료이며 오픈 소스임.
  • 기여자가 되는 방법에 대해 알아보려면 기여 방법 페이지를 방문함.

크레딧

  • Isogenic 게임 엔진, Phaser, PlanckJS, uWebsocket, Box2D, Kenney 자산, Hero Icons 등이 사용됨.

GN⁺의 의견

  • Moddio 게임 엔진은 멀티플레이어 게임 개발에 특화되어 있으며, 저렴한 비용으로 많은 플레이어를 지원하는 강력한 기능을 제공함.
  • 오픈 소스이며 커뮤니티의 기여를 통해 지속적으로 발전하고 있어, 초급 소프트웨어 엔지니어들에게도 접근성이 좋음.
  • 게임 개발에 필요한 다양한 기능들이 내장되어 있어, 개발자들이 빠르게 프로토타입을 만들고 테스트할 수 있는 환경을 제공함.
Hacker News 의견
  • 안드로이드 앱 가입 페이지에서 Google 사용자 이름과 비밀번호를 앱 내부의 웹 폼처럼 보이는 곳에 입력하도록 요구하는 것에 대한 우려

    • 앱이 비밀번호를 엿보는지 사용자가 알 수 없음
    • 앱이 로그인 페이지로 이동했다가 돌아오는 일반적인 패턴 구현이 어려운 것인지, 플랫폼 간 지원 문제인지에 대한 질문
  • 게임 엔진 사용자 확보는 쉽지 않은 일이며, 특히 폐쇄 소스일 경우 더욱 그러함

    • 사이트에 있는 게임 갤러리를 통해 어떻게 잘 관리해왔는지, 몇몇 친구들의 작품인지 아니면 활발한 커뮤니티의 산물인지에 대한 질문
  • modd.io가 IO 게임을 만드는 데 사용되는 인기 있는 프레임워크/플랫폼이라는 사실에 대한 놀라움 표현

  • 게임을 완성하지 못하는 확실한 방법 중 하나는 엔진 작성부터 시작하는 것임

    • 자체 기술을 만들 수는 있지만, 그 기술은 프로젝트에 맞춰져야 하며, 일반적인 게임 플랫폼이 아니어야 함
  • Brains 서버에 참여하여 50명 정도의 플레이어 경험에 대한 호기심

    • 웹소켓으로 인한 움직임의 불안정함
    • 네트워킹 압축에 대한 궁금증, 특히 LZ-string 압축의 충분성에 대한 의문
    • 클라우드 대역폭 비용이 많이 들 수 있으므로 네트워킹 측면에서 개선의 여지가 많음
  • 새로운 엔진을 만드는 동기에 대한 질문

    • 엔진에 특정 기능을 내장한 이유, 예를 들어 무기 시스템, 상점, 클라이언트 측 예측 발사체 및 유닛 이동 등
    • 이러한 기능들이 게임 엔진에 필요한 것인지, 특정 장르의 게임 엔진인지에 대한 의문
  • 취미 프로젝트에 적합해 보이는 저코드 및 인터랙티브 에디터의 장점

    • 지도 및 세계 생성에 대한 흥미
    • JSON으로 게임을 내보내고 프로그래밍 방식으로 편집한 후 다시 가져오는 것이 최선의 방법인지에 대한 질문
    • JSON을 이해하고 수정하는 방법에 대한 두려움과 접근 방식에 대한 제안
  • Node.js 기반 멀티플레이어 백엔드가 연결 수가 증가함에 따라 점점 느려질 수 있다는 지적

    • 이 문제를 해결한 방법과 Go와 같은 대안에 대한 질문
  • 오픈 소스 프로젝트에 대한 감사의 표현과 연말 휴가 동안 코드를 자세히 살펴볼 계획

  • AI 에이전트를 NPC로 만드는 작업에 유용할 수 있으며, 작업을 오픈 소스로 제공해준 것에 대한 감사 표현