더러운 오솔길 부검
7399 단어 gamedevnextjstypescriptnetlify
이 문장에서, 나는 그것이 어떻게 형성되고, 발전했는지, 그리고 내가 무엇을 배웠는지 너에게 알려줄 것이다.
이게 어떻게 된 일입니까?
몇 장의 캡처는 내가 너에게 알려줄 수 있는 어떤 것보다 더 해석적일 수 있다.당신도 방문adirtytrail.com해서 한번 해 보세요!
서술하다.
싸우다
이것은 인터넷 게임이다. 당신은 결정을 내릴 것이다. 이런 결정은 이야기의 나머지 부분에 영향을 주고 가능한 결말로 인도할 것이다.
그러나 이것은 이야기 자체가 아니라 그것을 움직이는 엔진이다.
얘는 어떻게 시작했어?
내가 VS 코드를 풀기 시작했을 때, 나의 생각은 매우 달랐다.나의 의도는 절차적인 서술을 창조하는 것이다.
나 자신도 게임 유저이다. 나는 모든 개방된 세계 게임의 흥행을 보았다. 이런 게임에서 당신은 한 장면에 직면하고 있다. 단지, 응, 어떤 진정한 목적도 없는 상황에서 그것을 통과한다.나는 내가 집중할 수 있도록 이야기가 필요하기 때문에 이런 게임을 정말 좋아하지 않는다.
그래서 나는 네가 갈 때 서사의 가능성을 동태적으로 생성하는 것이라고 생각한다.웅대한 포부, 나는 안다!너무 많아, 내 결말을 봐.
이런 도전은 매우 크다. 비록 나는 아직 완전히 포기하지 않았지만, 나는 비교적 짧은 시간 안에 살 수 있는 물건에 만족하기로 결정했다.
이것은 간단한 JS와 자연 언어 처리에 사용되는 일련의 라이브러리에서 시작하여 순수한 Typescript 프로젝트로 대상을 대상으로 고도로 하고 처음부터 구축된 메커니즘을 채택하여 최초의 생각에서 최종 결과로 발전했다.
건축하다
기술적으로 더러운 흔적은 매우 간단하다.
이 엔진은 자신의repository, 그리고another one 웹 앱에 사용됩니다.
엔진은 순타자 스크립트다.그의 행위는 한 장면의 개념을 둘러싸고 있다. 즉, 그것과 관련된 동작의 텍스트, 전투 장면에 대한 적들이다.
장면은 가격을 내리는 방식으로 썼다. 나는 손잡이를 사용하여 텍스트를 만들었기 때문에 서술의 현재 상태에 따라 작가(즉 나!)사물을 나타내는 표시를 포함할 수 있다.이것은 Markdown으로 작성된 장면의 텍스트 부분의 예이다.
The road climbed up, and the higher they got, the colder the air was. The fog came over them, and it started to drizzle.
"This could not get worse," {{playerName}} said under her breath.
"Never say something like that!" the minister protested. "Do you want Him to prove you wrong?" and at this, he pointed at the sky, which was heavy with clouds.
"Those are not appropriate things to say for a minister," Lady Willsbourgh said. She could hardly speak, breathless as she was from carrying so many things.
The two of them kept discussing for a while, but {{playerName}} stopped, redid her blouse, and breathed deep.
Something in the woods caught her attention.
태그 파일의 메타데이터 부분은 장면 정보가 있는 위치입니다. 예를 들어 제목과 가능한 동작입니다.다음 예는 다음과 같습니다.id: theRoad_theWalk
title: The road
actions:
She tried to focus on it (_perception_):
check:
skill: perception
success:
nextSceneId: theRoad_somethingInTheWoods
failure:
nextSceneId: theRoad_nothingInTheWoods
핵심 라이브러리는 단원 테스트로 덮어쓰이고, 파일을 표시하는 메타데이터로 장면을 설명하는 템플릿 언어는 typescript-json-schema로 생성된 JSON 모드 파일로 설명됩니다.너는 곧 그것의 사용법을 보게 될 거야!이제 인터넷 앱 자체가 다음이다.js 응용 프로그램.왜 다음이야?js?이것은 아주 좋은 틀이기 때문에, 나는 그것과 연락을 유지하고 싶지 않다.여기서 핵심 라이브러리는 의존항으로 가져옵니다.
이 웹 앱에서 나는 이야기를 하나 썼다.나는 모든 장면을 두 개의 단독 파일로 나누었다. 하나는
.md
텍스트에 사용되고, 다른 하나는 .yaml
메타데이터에 사용된다.이유가 뭡니까?나는 YAML VS code extension를 사용하여 intellisense를 나의 데이터 모델에 사용하고 VS 코드는 intellisense를 주입 언어, 예를 들어 파일을 표시하는yaml 부분에 사용하지 못하게 한다.이 분야에 대해 더 많은 정보를 알고 싶다면check out this GitHub thread.이 점을 감안하여, 나는 최종 가격 인하 파일을 구축하는 데 도움을 주는 몇 개의 스크립트를 만들었는데, 이 파일들은 나의 다음 응용 프로그램
/public
폴더를 통해 제공된다.js 응용 프로그램 및 테스트 목적에 사용됩니다.프로젝트의 이 방면에 대한 테스트가 부족하기 때문이다.나는 단원 테스트를 통해 이 일을 정확하게 완성하는 것이 너무 복잡하거나 유쾌한 생각이 아직 내 머릿속에 나타나지 않았을 수도 있다고 생각한다. 그래서 지금 나는 몇 개의 스크립트와 기본적인 단원 테스트를 해결했다.
단원 테스트는 생성 장면의 완전성을 검증한다.그 중 한 스크립트는 서술한 장면과 문자의 수량, 그리고 끝 장면을 포함하는 보고서를 생성한다. 그러면 내가 무의식중에 유저가 계속할 수 없는 장면을 만들었는지 알 수 있다.마지막 스크립트는 완전한 서술 도표를 만들었는데, 그 형식은 나의 다른 도표를 표시하고 편집하는 항목 grapher.tech 과 호환된다.
이것이 바로 그래퍼의 생김새다.
기타 기술
스타일링에 있어서 react-bootstrap을 사용한 유일한 이유는 과거의 모든 응용 프로그램이 Bootstrap을 사용했던 아름다운 시절을 그리워하고 최신 버전을 따라잡고 싶어서였다.
회고 중에 나는 내가 한번 시도해야 한다고 생각한다Tailwind.나는 그것에 관한 좋은 이야기를 많이 들었는데, 이 응용 프로그램은 그것에 매우 적합하다고 느낀다.
호스트에 대해 Netlify를 선택했습니다.나는 그들의 서비스가 매우 좋다고 생각한다. 지금까지 나는 어떠한 불평도 하지 않았다.
내가 발견한 유일한 것은 핵심 의존 항목을 업데이트할 때마다 캐시를 정리해야 한다는 것이다.그러나 우선, 그것이 제공한 것과 비교하면 이것은 아무것도 아니다!
봄에
나는 react-spring로 애니메이션을 제작하는데, 나는 그것에 매우 의존한다.나는 이것이 React에서 가장 인기 있는 애니메이션 라이브러리라는 것을 알고 있지만, 그것은 나를 위해 클릭하지 않았기 때문에, 나는 다른 것을 찾으려고 시도했다.그리고 나는react spring이 지금까지 가장 좋았다는 것을 깨달았다. 이것은 나를 매우 괴롭게 했다. 왜냐하면 나는 그것을 사용하는 것을 좋아하지 않기 때문이다!그래, 내가 살게.
현재 나는 v9에 아주 좋은 API가 있다는 것을 발견했기 때문에 갔다. 비록 아직 발표되지 않았지만, 그것으로 전체 응용 프로그램을 구축했다. (나는 안다.)그리고 첫 번째 버전을 배치할 때 구축은 작동할 수 없습니다!
나는 디버깅하는 데 많은 시간을 들였는데, 이것이 an issue with react-spring v9 때문이라는 것을 발견했다.(알아요!)
v8로 돌아가는 것은 너무 고통스러워서 제가 직접 수리하기로 결정했고 결국GitHub 라인에서 이것에 대해 a mix of some of the solutions proposed을 했습니다.못생겼지만, 그것은 나를 가게 했다.
내가 배운 것
총알점 시간!
로드맵
한동안 나는 더러운 오솔길을 참을 만큼 참았지만, 나는 미래에 계속 뭔가를 추가할 계획이다.
감사합니다!
이런 부검 보고서를 통독해 주셔서 감사합니다!만약 당신이 좋아한다면 A dirty trail에게 당신의 생각을 공유할 기회를 주십시오.
감사합니다!
Reference
이 문제에 관하여(더러운 오솔길 부검), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/davidballester/a-postmortem-of-a-dirty-trail-a-text-based-game-4nhh텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)