10P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • 프로그래밍 경험이 부족한 사용자도 쉽게 비디오 게임을 만들 수 있도록 설계된 경량 자바스크립트 라이브러리
  • 내러티브 게임, 즉 스토리텔링 중심의 게임 개발에 적합
  • 직관적인 코드 구조와 간결한 API를 통해 복잡한 프로그래밍 없이도 게임 제작 경험을 제공함
  • 모든 것(스프라이트,대화,사운드,인터랙션)은 코드로 만들어지므로, 전체 게임이 1개의 파일에 저장 가능

주요 특징 및 장점

  • 초보 개발자 혹은 비개발자도 간단한 자바스크립트 코드만으로 내러티브 게임을 제작할 수 있음
  • 대형 프레임워크와 달리 매우 작은 용량과 쉬운 사용성을 제공함
  • 선택지 기반의 게임, 대화형 콘텐츠, 시각적 개발 경험 등 스토리와 상호작용에 강점을 가짐

활용 대상

  • 게임 제작 입문자 또는 프로토타입을 빠르게 만들고자 하는 스타트업, IT 전문가, 개발자, 창작자 모두 적용 가능함
  • 복잡한 그래픽이나 대규모 게임보다는 아이디어 실험, 인터랙티브 콘텐츠, 스토리 전개에 적합한 도구임

게임 개발 시작은 createGame()

createGame({  
  player: {  
    sprite: 7,  
    position: [2, 5]  
  },  
  map: `  
    ########  
    #......#  
    #..X...#  
    #......#  
    ########  
  `,  
  templates: {  
    X: {  
      sprite: 4,  
      dialog: 'Hello, adventurer!'  
    }  
  }  
})  
Hacker News 의견
  • 왜 제목이 ‘...for narrative games’인지 궁금증 생김
    라이브러리 공식 페이지에는 ‘narrative’ 게임에 대한 언급이 없는 점 포착
    ‘narrative game’의 의미에 혼란 있음
    샘플 게임들이 내가 생각하는 ‘narrative game’ 정의에 맞지 않음
    구글 검색상 나오는 ‘narrative game’과 샘플 게임들의 연결성이 부족함
    만약 ‘narrative game’의 보편적 정의가 존재한다면, 이 라이브러리가 다른 게임 엔진과 비교해서 ‘narrative game’ 제작에 특별히 지원하는 기능이 무엇인지 의문 제기

    • 어젯밤 텍스트 기반 어드벤처 게임 아이디어가 떠오름
      어른이 되어 세금도 내고, 출근도 하고, 집안 청소도 하는 식의 일상적 미션을 수행하는 컨셉
      이런 일들을 덜 하면 인생이 힘들어지고, 더 하면 더 쉬워지는 구조
      최종 목표는 빚 없이 생을 마감하는 것

    • 이 도구의 아이디어는 텍스트와 대화를 이용하여 간단한 어드벤처 게임을 선언적으로 만들 수 있게 해주는 점이라고 생각
      Pico-8 같은 일반적인 게임 엔진처럼 메카닉을 중심으로 만드는 용도와는 다름
      맵 만들기, 맵 간 이동, NPC, 대화 및 텍스트 트리거 생성이 쉬움
      비프로그래머 대상 엔진(RPGMaker 등)도 비슷한데, 거기서도 대부분 유저는 맵과 트리거 위주, 별도의 복잡한 메카닉 없이 텍스트와 대화가 중심인 게임을 만듦
      이 도구도 이런 ‘내러티브’ 게임 제작이 쉬운 점을 강조한다고 봄

    • 공식 소개 문서에서:
      ‘Odyc.js는 픽셀, 사운드, 텍스트, 그리고 약간의 로직을 결합해 내러티브 게임을 만들 수 있게 설계된 작고 가벼운 자바스크립트 라이브러리’ 설명

    • 당연히 텍스트 어드벤처 엔진이라고 생각함

    • 프랑스어 버전 사이트에서만 ‘narrative’ 예시가 두 개 더 제공됨
      턴 방식 구조와 메시지, 프롬프트, 대화 위주 포커스 때문에 ‘내러티브’ 또는 텍스트 기반 게임에 어울릴 것 같아 해당 용어를 사용함
      하지만 더 좋은 라벨 아이디어가 있다면 기꺼이 바꿀 의향 있음

  • The Magic Mushroom 게임 굉장함
    링크

    • 지금까지 가장 마음에 드는 건 이것
      링크

    • John Wick 게임, 최근 영화의 요약본과 같다는 느낌
      링크

  • 이 구성 방식이 정말 마음에 듦
    다수의 자바스크립트 게임 엔진을 만들며 다양한 실험을 했는데, 이건 ‘2시간 안에 키즈용으로 빠르게 완성해야 할 때’와 ‘심도 있게 구조 파악을 하고 싶을 때’ 사이 절묘한 지점 제공
    몇 개 게임을 빠르게 만들어 저대역폭 환경에서 아이들 산만하게 해줄 용도로 기대

  • 아기자기한 툴 느낌
    구체적으로 아이들(요즘 시대의 pygame 같은 느낌) 학습용으로 좋다고 생각
    Scratch 등은 5살에게 맞춰 설계해 프로그래밍 내용이 과도하게 쉬움
    이 툴은 10살 전후 학생에게 딱 적합
    간단한 문자열 조작, 몇 가지 문법 트릭을 배우고, 기본 사이드 스크롤러와 NPC까지만 구현 가능
    이후 준비되면 제어 흐름 익히는 경험도 가능
    이걸 배워서 아이들 대상 수업 개설이나 놀이터 투자 고려하면 실질적으로 판매도 가능
    다른 관점에서는 이 툴로 기초적인 프로시저럴 게임 에셋 생성도 실험할 만함

  • game.prompt(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”, “Yes”, “No”); 코드 예시 공유

    • await game.openDialog(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”)
      game.prompt( “Yes”, “No”) 코드 활용 예시

    • 달걀이 한 개였는데 어떻게 마흔 개가 됨? 의문 제기

  • 진정 영감을 주는 프로젝트라는 평가
    오픈소스임을 확인했으나 라이선스가 누락되어 개발자가 포크 및 수정, 배포 범위를 알기 어렵다는 점 지적
    모국어로 번역한 포크도 공개하고 싶은데(크레딧 남길 의향), 괜찮은지 문의
    자국은 5% 미만만 영어 사용

    • 고마움 표시와 함께 라이선스(MIT 형태) 추가 예정
      모국어가 무엇인지 궁금
      좌우 정렬 언어는 번역 적용이 간단하다고 설명
      언제든지 포크, PR, 또는 접근해서 접근성 개선에 참여 가능하니 환영
  • 이건 대단함
    딱 12시간 전에 꼭 필요했던 것
    공교롭게도 내가 어젯밤 처음으로 1인 전용 3레벨 짜리 내러티브 연애 게임용 에셋을 만들다 잠듦
    게임 개발은 처음
    아침에 HN에서 내러티브 게임용 JS 라이브러리가 1위까지 올라온 것을 목격
    FTR 내 게임은 심프 게임이고, 쭉 만나온 상대에게 공식 커플 제안용으로 쓰는 중

    • 멋진 아이디어라는 생각
      비슷한 경험: 최근엔 2005년 MSN 채팅 인터페이스를 HTML로 다 재현해누군가에게 추억 선사
      정말 따뜻한 경험

    • 좋은 아이디어
      더 도와줄 수 있었으면 하는 마음
      정말 이 툴이 딱 맞는 사례라고 생각
      잘 되길 희망

    • 누군가를 좋아해서 함께 시간을 보내고 싶은 마음이나, 관심을 표시하는 행동이 ‘심프’로 불릴 일은 아님
      매우 따뜻하고 배려있는 제안이라 생각

  • puzzlescript와 비슷하다는 인상

    • PuzzleScript 정말 멋지고, 같은 소형 엔진 계열로 crisp-game-lib도 추천
  • 정말 멋진 툴이라는 감상

  • 이 라이브러리와 상관은 없지만 playground에 적용된 canvas video recorder 작동 방식에 관심
    직접 구현해보고 싶음