프로토 타이핑 할 때 어떻게 게임 동작을 더 쉽게 탐색 할 수 있습니까?


49

나는 인디 게임을 직접 만들지 만, 새로 개발 된 게임을 행동으로 플레이 할 수있는 수준으로 끌어 올린 후에는 대개 에너지가 부족하므로 탐험 대신 세련미를 추구합니다. 끔찍한 결과.

개선 대 탐험
( 인터콤 블로그 사진 )

예를 들어, 동작 조정 (예 : C ++ 응용 프로그램 연결 및 다시 시작)에 대한 반복주기가 너무 길어서 모든 창의성이 사라집니다. 이 문제를 해결하는 도구를 만들고 있습니다.

게임 행동을 빠르게 탐색 할 수있는 다른 방법은 무엇입니까? 저는 대기업뿐만 아니라 인디 개발자들이 사용하는 방법론에 관심이 있습니다.


1
아주 좋은 사진입니다. 그것이 어디에서 온 것인가?
Superbest

특히 한 번에 게임의 작은 부분을 조정하려는 경우 공식적으로 "단위 테스트"라고합니다. 불행히도 게임은 구성 요소를 분리하기가 어렵고 테스트 자체를 자동화하기가 어렵 기 때문에 실제로 단위 테스트를하기가 어렵습니다 (통과 / 실패 결정). 단위 테스트 전략에 대해 읽으면 유용한 아이디어를 얻을 수 있습니다.
Superbest

5
@Superbest : 나는 단위 테스트를 안다는 것을 알고 있으며 행동 탐색을 단위 테스트와 비교할 수 없습니다. 동작을 탐색 할 때는 관련 자산과 함께 대부분의 게임 엔진이로드되어 있어야합니다. 단위 테스트는 어디로 가는지 알고있을 때만 가능합니다. 이 경우 아무도 모른다. 그것이 "정교"가 아니라 "탐사"인 이유입니다. 인터콤 블로그 에서 그림 .
Jonas Byström

디버그 모드에서 테스트 할 때는 코드를 일시 중지 할 때 (적어도 Visual Studio에서) 코드를 변경할 수 있습니다. 많이 변경하지 않는 한 (함수 헤더 등), 짧은 컴파일 시간으로 일시 정지 된 게임에로드 할 수 있습니다.
Tobias B

@ TobiasB : 실제로 불행히도 그 쓸모없는 것을 발견했습니다. 특히 일반적으로 게임 메카니즘이 스크립트, 이미 인스턴스화 된 게임 객체, 자산 등으로 퍼져 있습니다. 나는 무료 Visual Express가 그것을 지원하는지 확실하지 않으며 실제로 14 년 동안 그것을 사용하지 않았습니다! :)
Jonas Byström

답변:


30

앞에서 언급했듯이 게임 메커니즘을 작업 할 때는 반복 속도가 중요합니다. 수정을 생각하고 수정을 테스트 할 수있는 시간이 길수록 생산성이 떨어지고 산만 해집니다. 결과적으로 반복 시간을 관리하려고합니다.

저에게 간단한 변화를 테스트하는 시간이 약 5 초를 초과하면 생산성이 떨어지기 시작합니다. 게임의 느낌을 완벽하게 시험해 볼 때, 목표 중 하나는 "어떻게 변경하고 5 초 안에 그 변화를 사용하여 게임을 할 수 있을까"를 이해하는 것입니다. 반복 시간을 해당 수준에 이르기까지 유지할 ​​수있는 한 실제로 어떻게 수행하든 중요하지 않습니다.

많은 현대적인 대형 엔진 (Unity, Unreal 등)은 에디터를 게임 엔진에 배치하여이 작업을 수행하는 경향이 있으므로 게임을 다시 시작하지 않고도 대부분의 수정 작업을 실시간으로 수행 할 수 있습니다. 작은 엔진 / 게임은 일반적으로 다른 방향으로 작업에 집중합니다. 게임을 컴파일하고 빠르게 시작하여 각 변경에 대해 게임을 다시 시작해야하는지 중요하지 않습니다. 5 초가 지나기 전에 계속 테스트를 진행합니다.

현재 프로젝트에서 작은 재 컴파일, 링크, 게임 시작 및 게임 플레이에 도달하는 데 약 10 초가 걸립니다 (대부분 저장된 게임을로드 할 때 렌더링 가능한 월드 지오메트리를 생성합니다). 그리고 그것은 너무 길다. 따라서 모든 실제 게임 자산을로드하지 않고도 게임의 다른 부분을 테스트 할 수있는 별도의 "테스트"게임 모드를 만들었으므로 훨씬 더 빠르게 들어오고 나갈 수 있습니다. 일반적으로 약 2 ~ 3 초입니다. UI를 테스트하고 싶다면 실제 게임에로드하지 않고도 할 수 있습니다. 렌더링을 테스트하려면 전체 게임 시스템을 다시로드하지 않고도 테스트 할 수있는 다른 모드가 있습니다.

게임 로직을 DLL에 넣고 게임이 실행되는 동안 이미 메모리 내 게임 실행 파일이 DLL을 다시로드하도록하여 문제에 접근 한 다른 사람들을 보았습니다. 따라서 DLL을 다시 빌드하고 다시로드 할 수 있습니다 이미로드 된 실행 파일이므로 게임의 아트 자산을 다시로드하거나 다시 빌드 할 필요가 없습니다. 이것은 나에게 광기처럼 보이지만 나는 그것을 보았다.

그보다 훨씬 간단한 방법은 스크립트 또는 데이터 파일에서 게임 동작 및 / 또는 구성을 지정하고 시스템을 종료하지 않고도 필요에 따라 파일을 다시로드하거나 수정을 위해 파일을 다시 보는 방법을 제공하는 것입니다. 게임을 다운하고 다시 연결 한 다음 다시 시작하십시오.

많은 접근 방식이 있습니다. 가장 적합한 것을 선택하십시오. 그러나 게임 메카닉을 성공적으로 개선하기위한 열쇠 중 하나는 매우 빠른 반복입니다. 당신이 그것을 가지고 있지 않다면, 당신이하는 다른 일은 거의 중요하지 않습니다.


3
"테스트"게임 모드에 대해 자세히 설명해 주시겠습니까? 반복하고 싶을 때마다 각 부분마다 여기저기서 게임 조각을 작성합니까? "슬라이스"를 설정하는 데 시간이 얼마나 걸립니까? 무엇을 제외하고 어떻게? 이러한 유형의 "저장 게임"및 "게임로드"기능이 있습니까? 그렇지 않은가?
Jonas Byström

2
@ JonasByström 나는 그에 대해 알지 못하지만 게임 상태를 잘 제어 할 때 종종 IF DEBUG"테스트"상태 (게임 메뉴 생략)로가는 대체 "디버그"버전 (종종 리터럴 컴파일러 지시문)을 가질 수 있습니다. 등), 이것은 당시 테스트 할 자산이있는 베어 본 플레이 영역입니다. 따라서 기본적으로 매우 제거 된 수준을 자동으로로드하는 대체 실행 파일을 컴파일합니다 (매번 게임 메뉴로로드 할 자산이 적습니다).
Superbest

@ JonasByström 게임을 "모드"로 나눕니다. 기본적으로 큰 상태 머신입니다. 일반적으로 "제목 화면"모드, "게임 중"모드, "크레딧 스크롤"모드 등이 있습니다. 실행 파일에 내장 된 게임과 같습니다. 내 "테스트"모드는 "UITest"와 같은 것으로, 다른 게임 콘텐츠를로드하지 않고도 사용자 인터페이스를로드하고 그릴 수 있습니다. 또는 "RenderTest"는 다른 객체를로드하지 않고 특정 객체를로드하고 그립니다.
Trevor Powell

@ JonasByström 새로운 테스트 모드를 만들어야 할 때 테스트하려는 특정 항목과 그에 따른 종속성을 설정하는 코드를 작성하는 데 일반적으로 몇 분이 걸립니다. 또는 몇 초 안에 기존 테스트 모드를 조정할 수도 있습니다 (예 : 일반적으로 기존 UITest 모드를 수정하여 다른 UI를로드하지 않고 다른 UI를로드하도록하겠습니다). 그래도 설정하는 데 시간이 얼마나 걸리는지는 중요하지 않습니다. 요점은 일단 설정되면 터무니없이 빠른 속도로 반복 할 수 있으므로 반복 시간 동안 생산성을 유지할 수 있다는 것입니다.
Trevor Powell

1
@ JonasByström 또한 "빠른 컴퓨터를 구입"하는 것이 "반복 시간을 어떻게 단축 시키는가"라는 질문에 대한 완전한 합법적 해결책이라는 점도 주목할 가치가 있습니다. 특수 테스트 장비를 구현하는 데 시간을 투자하는 것과 비교할 때 종종 가장 저렴한 솔루션 일 수 있습니다. 반복 시간 을 줄이려면 많은 시간 / 돈 / 노력을 미리 투자 하되 많은 배당금을 지불해야합니다.
Trevor Powell

20

프로토 타입을 잘 제작하려면 테스트 아이디어 비용을 줄이십시오.

워크 플로는 작은 게임에 맞게 조정되었지만 다음 사항이 도움이되었습니다.

  • 프로토 타입 친화적 기술 Lua ( LÖVE 는 2D에 적합), JavaScript 또는 Lisp / Scheme  과 같은 동적 프로그래밍 언어 및 프레임 워크를 사용하는 것이 도움이된다는 것을 알게 되었습니다. 다른 모든 것. 원하는 것을 알고 수정하려는 경우 다른 엔진으로 최적화하거나 포팅하십시오.
  • 버전 관리  프로토 타입을 개정 관리 저장소 에 보관하십시오 . 일찍 분기하고 자주 분기합니다. 이를 통해 무언가를 잃어 버리거나 잊어 버릴 염려없이 편안하게 시도 할 수 있습니다. ( 힘내 최저가 분기 모델을 갖는다.)
  • 자동화 구축  실제로 작업을 실행하려면 가능한 한 적은 작업을 수행해야합니다. 제 생각에는 버튼을 눌러야하는 것조차 너무 많습니다 : 나는 일반적 으로 게임을 자동으로 컴파일 / 실행하여 파일 변경에 반응하여 루프에서 실행 Makefile되는 make watch대상을 가지고 있습니다 inotifywait. 해석되거나 JIT 컴파일 된 언어에서 이것은 즉각적입니다.

1
루아는 핫스왑 코드를 지원하지 않는 것 같습니다. 변경 사항을 테스트하기 위해 게임 / 시제품을 다시 시작해야합니까?
Jonas Byström

6
핫스왑 루아 코드는 확실히 가능합니다.
Josh

1
@ JonasByström 가능하지만 올바른 환경에서만 가능합니다. 찾을 수 없으면 하나 작성하십시오. Lua의 소스 코드는 C로 작성되므로 C 스타일 함수 호출을 허용하는 모든 항목에 이식 가능합니다. OpenGL, SDL 2 또는 기타 그래픽 / 하드웨어 래핑 라이브러리와 혼합하여 핫스왑 IDE를 구축하십시오.
Pharap

2
@ JonasByström 다음은 IDE 지원없이 지원하는 방법 입니다.
Anko

2
@ JonasByström : ... 달로 돌아 오는 것을 제외하고는 분명히. :(
Mason Wheeler

11

프로토 타이핑에 중점을 둔 개발자로서 여기 내 경험에 대한 약간의 조언이 있습니다.

  1. FAST를 빠르게 변경할 수있는 엔진을 사용하십시오. 이것은 "컴파일을 기다리고 없음"같은 것들을 포함하고, 또한, "디버깅의 용이성", "실행시에 일을 변경"등 개인적으로 Unity3D를 사랑하지만, 그렇지 않은 "테스트 자산의 가용성" 거기에 가장 좋은 도구. 최상의 툴은 게임에 따라 다릅니다. 예를 들어 Unreal Engine은 Unity3D보다 느린 코드를 컴파일하지만 여러 연결된 클라이언트를 빠르게 시작할 수 있습니다. 네트워크 게임의 경우 종종 컴파일 비용이 상쇄됩니다. 친숙도 고려하십시오. C ++을 사용하는 사람이라면 최고의 Javascript 엔진조차 그다지 좋지 않으며 그 반대도 마찬가지입니다. 익숙하지 않은 기술로 어려움을 겪지 마십시오. 다른 언어 / 프레임 워크를 배우지 만 중요한 프로토 타입을 만드는 것과 동시에 배우는 것은 아닙니다.
  2. 기존 기능을 무자비하게 폐기하는 방법을 배웁니다. 이미 구현 한 것들에 집착하는 것은 성공적인 프로토 타이핑에 대한 혐오이지만, 작업을 포기하는 것은 어렵습니다.
  3. 게임 디자이너와 함께 일하지 않으면 "프로그래머의 모자 착용"과 "디자이너의 모자 착용"사이에 명확한 선을 두십시오. 새로운 멋진 게임 플레이 기능을 추가하는 것은 매우 유혹적인 것처럼 보이지만 디자이너 입장 에서는 그렇게하지 마십시오. 오히려 당신이 가진 것을 사용하여 재미있는 게임 플레이 (바람직하게는 여러 변형)를 만들려고 노력하십시오. 도움이 될 기능 목록을 작성하고 중 일부 구현하십시오.
  4. 신속한 프로토 타이핑에는 두 개의 반대편의 균형이 필요합니다. 가능한 빨리 물건을 만들고 싶기 때문에 잘못된 코드를 작성합니다. 그러나 가능한 한 많은 것을 변경 하고 싶다면 좋은 코드를 작성해야합니다! 이 두 가지의 균형을 맞추십시오. 죄송합니다, 실제로이 작업을 수행하는 방법에 대한 구체적인 조언은 생각할 수 없지만 적어도이 문제에 대해 알고 있어야합니다 (-8

프로토 타입 제작에 필요한 시간을 확인하십시오. 내 경험상, 당신은 처음부터 시작하여 최대 2 일 안에 무엇이든 플레이 할 수있는 버전을 원합니다. 매일 하나 또는 두 개의 새로운 기능을 테스트하려고합니다. 이러한 목표를 달성하지 못하면 더 빠른 방법을 찾으십시오.


기능 탐색과 행동이 다르다고 생각합니다. 「느낌」을 탐구하고 싶다. 비 필수적이고 게임의 재미와 상관없는 기능은 나에게 아름다운 렌더링과 비슷합니다. Minecraft, Candy Crush, Tetris 및 유사한 게임은 IMHO임을 증명합니다.
Jonas Byström

@Jonas Byström 명확히하기 위해 : 여기서 "기능"이란 게임 플레이에 필수적인 변화를 의미합니다. 즉, 아름다운 렌더링은 아니지만 Minecraft를 프로토 타이핑 할 때 "블록 제작 방법 추가"또는 "플레이어를 공격하고 죽이는 몹 추가"와 같은 것입니다.
Nevermind

1
두 번째 요점 인 "letting features go"의 중요성은 아무리 강조해도 지나치지 않습니다. 구현에 2 주가 걸렸던 실패한 기능에 대해 "아니오"라고 말하지 않기 때문에 많은 탐색 단계가 실패합니다.
코스타스

요점 4에 대한 참고 사항 나는 이것의 핵심은 코드에서 빠르게 변경해야 할 사항을 이해하는 것이라고 생각합니다. 조정하려는 값을 공개하십시오. 코드가 게임 플레이에 많은 영향을 미치지 않는다는 것을 알고 있으면 코드의 다른 부분을 묻혀두고 나중에 필요할 때 노출시킵니다. 이 작업을 신속하게 해결해야하지만 '게임 디자인'항목이 가능한 한 정면을 향하고 깨끗하게 유지되도록 단어에서 아키텍처를 설계하려고하면 나머지 부분은 까다로울 수 있습니다.
sydan

1
@sydan 불행한 진실은 어떤 코드가 "전면"인지에 대한 당신의 생각이 잘못되었다는 것입니다. 내 말은, 항상 변하지 말아야 할 것이 실제로 매우 역동적이라는 것이 밝혀졌습니다. 프로토 타이핑을 할 때 문자 그대로 모든 측면을 바꿀 준비가되어있는 것이 좋습니다.
Nevermind

5

다음 4 가지 단계로 게임 개발을 분할 할 수 있습니다.

  • 프로토 타이핑
  • 게임 플레이 개선
  • 개발
  • 성능 개선

게임 플레이 탐색 필자는 주로 프로토 타이핑 단계에서 발생하며 다음과 같은 조언을 따릅니다.

  • 종이 프로토 타입으로 디자인을 시작하십시오. 게임이 무엇인지 명확하게 알고 나면 실제로 상호 작용을 느낄 수 있도록 코딩을 시작하십시오. 어쩌면 이것은 3D 게임에는 쓸모가 없지만 개인적으로 과거에는 많은 도움이되었습니다.

  • 완료된 후에 코드를 버릴 것이라는 것을 알고있는 코드. 이것은 어떤 게임 엔진을 선택해야 할 때 자유로울 수 있습니다.

  • 빠른 반복주기가 중요합니다 (다른 사람들이 이전에 지적했듯이). 코딩 한 내용을 빠르게 보여줄 수있는 능력에 따라 게임 엔진을 선택하십시오. 또한이 단계에서 성능 또는 그래픽 충실도에 신경 쓸 필요가 없습니다.

  • 범위를 제한하십시오. 실제 게임 플레이가 2D (일반 전략 게임, JRPG) 인 경우 2D로 프로토 타입을 만듭니다. 이 단계에서는 게임 플레이 에 대한 피드백 만 중요 합니다.

  • 자산을 연마하거나 검색하는 데 시간을 낭비하지 마십시오. 종이에 무언가를 낙서하고, 사진을 찍고, Photoshop에서 잘라 내고, 색칠하고 스프라이트로 사용할 수 있습니다. 마이크를 켜고 "pew pew"라고 말합니다. 두 개의 큐브와 구를 합하면 로봇이 있습니다. 항상 명심하십시오. 게임 플레이 가능성을 탐색하는 것이 최우선 과제입니다.

재미있는 프로토 타입을 결정한 후에는이를 수정하십시오. 게임 플레이 요소가 필요한 경우를 제외하고는 아직 기술을 전환 할 이유가 없다고 생각합니다.

개발 단계 후반에는 세련된 프로토 타입을 손에 넣을 수있을뿐만 아니라 새롭고 훨씬 더보기 좋고 소리가 좋고 느낌이 더 좋은 게임을 개발할 수 있습니다. 여기서 사용할 실제 게임 엔진을 선택해야합니다.

결국, 당신이 가진 것을 가지고 더 적은 자원을 사용하도록 조정하십시오.

위에서 설명한 것은 대부분 일반적인 지식이지만 목록에 올리면 전체 개발 프로세스를 구획화하여 각 단계를 원근법으로 만드는 데 도움이됩니다. 나는 그것이 당신에게도 도움이되기를 바랍니다.


1
종이 그림과 "자위"는 훌륭한 조언입니다. 그리고 예-목록도 도움이됩니다. "가장 중요한 세 가지 우선 순위를 식별하십시오. 2 번과 3 번을 버리십시오." :)
Jonas Byström

4

반복 속도가 폴리싱 대신 창의적인 분위기를 유지하는 데 중요하다는 Trevor Powell의 답변에 동의합니다 . 저에게 영감을주는 큰 원천은 Bret Victor의 "원칙 발명" 입니다. 불행히도 그 수준에서 실제 도구를 찾기는 어렵습니다. 파이썬 코드를 입력하는 동안 파이썬 코드를 실행할 수 있도록 파이썬 개발을 위해 직접 빌드하려고했습니다. 이것을 파이썬에서 라이브 코딩 이라고 합니다.


1
나는 전에 vid를 보았지만 잊어 버렸습니다. 흠. 즉각적인 상호 작용은 실제로 노력하기위한 것입니다. 나는 당신의 조언에 따라 행동하려고 노력할 것입니다. 재미있는 라이브 코딩 플러그인 btw에서 잘하셨습니다!
Jonas Byström

2

Trabant 라는 프로토 타입 도구를 만들었습니다 .

  • 3D 및 게임 메카닉 (UI, 텍스트, 아무것도 없음);
  • 필요로 매우 작은 코드와 전혀 프로토 타입을 구축하기 위해 자산을;
  • 3D 모델은 ASCII 아트를 사용하여 코드 로 작성됩니다 .
  • 1 초 미만의 반복을 허용합니다.
  • 강체 시뮬레이션 지원
  • Windows, Mac, Linux 및 iOS에서 작동합니다.
  • 잘 알려진 범용 언어 인 Python을 사용합니다.
  • Windows 및 iOS 용 IDE가 있습니다.

위의 내용을 확인하기 위해 30 개의 테스트 프로토 타입을 제작했습니다.

Trevor Powell이 강조한 것처럼 반복은 5 초 미만이어야하며, <1s 반복은 거의 5 배나 좋습니다.:)

Anko 는 동적 언어를 사용하는 것이 좋은 생각이라고 언급 했습니다 .Python 은 가장 널리 사용되는 언어 중 하나이므로 Python을 선택했습니다 . 빌드 자동화와 관련하여 Trabant에서의 테스트는 IDE에서 F5 (또는 iPad에서 F6을 테스트하기 위해 F6)를 누르는 것만 큼 빠르며, 빌드 단계가 없기 때문에 이보다 더 즉각적인 결과를 얻지 못합니다.

폐기 코드는 Nevermind의 테이크 아웃 중 하나였습니다 . 나는 전적으로 동의하며, 트라 반트가이를 강제합니다.


1

Trevor Powell의 반복 속도 이외에도 중요한 사항은 다음과 같습니다.

좋은 코드처럼 ...

거기에 많은 IF가 있습니다.

개념이 더 견고할수록 장난감을 덜 사용할 필요가 있습니다. 고기가 무엇을하려고하는지 아는 경우 프로토 타이핑은 무엇을해야하며 중앙 기둥 (주된 것)과 관련하여 물건을 배치하는 방법이됩니다.

다른 많은 사람들과 같이 시작하는 경우-하고 싶은 일이 확실하지 않은 경우, 방향을 향하고 보여준 이미지 방식으로 많이 탐색하십시오.

찾고자하는 것을 심도없이 시뮬레이션 할 수 있다면 기술에 대한 헌신은 무의미합니다.

자원을 낭비하지 마십시오. 인터넷에서 모든 것을 다운로드하십시오. 독점 여부. 당신은 직장에서 당신의 개념을 느끼려고합니다. 그래픽이 다른 사람들의 소리, 질감 및 모든 것을 실험하기 위해 고소하지 않을 주요 기능이 아니라면, 아직 상점의 선반에 놓지 않을 것입니다. 이미 자금을 지원받지 않는 한 사람들에게 설득력있는 개념은 가치가 있습니다. 원하는 자원을 얻기 위해 돈을 벌 수있는 것입니다. 나는 게임 스튜디오 사람들이 권리가없는 독점 게임의 변형 된 버전으로 게임 개념을 제시하는 것을 보았습니다.

스케일 모델을 작성하는 것과 같습니다. 당신이 원하는 것의 축소 된 생활 복제품을 갖는 것이 훌륭합니다. 때로는 잡지에서 잘라내어 수공예품을 만들고 조각을 붙일 수 있습니다. 상상력이 번지는 모든 사람이 실제로 스케일 모델을 보여준 것과 같은 골판지로 스카이 스크래퍼를 만들 것이라고 가정하지는 않습니다. 그리고 창조적 인 산업에서-상상력이있는 사람들과 함께 일하는 것이 더 바람직합니다. 그들이 전체 개념 뒤에 숨어있는 잠재력을보기 위해 일부 초안 문제를 볼 수 없다면, 제품을 높이 평가하는 경우는 거의 없을 것입니다. 감사의 말은 그들이 기꺼이 저 지르 겠다는 의미가 아니며, 이는 하향 나선형입니다. 세상을 정복하려는 자녀의 태도를 설정하는 대신 "신발을 제대로 묶을 수는 없습니다.

당신이 무엇을 하든지 항상 태도 만 기억하면 기술이나 경제적 잠재력에 관계없이 무엇이든 절대 망칠 수 있습니다.

한때 독점적으로 gif 이미지를 사용하여 게임을 시제품 화하고 자바 스크립트와 관련이있는 작은 것을주었습니다. 눈부신 것은 아니지만 내가 보여주고 싶은 것을 보여주는 목적을 달성했습니다. 나중에 Xbox 전용으로 개발하더라도 중요하지 않습니다.

아이디어가 단순한 프로토 타입보다 더 복잡한 경우, 프로토 타입이 최종적인 것의 비계가 될 것이기 때문에 (사용할 기술에 대한 연구를해야 할 것입니다. 그것과 그것은 가볍게 버릴 수 없습니다)-분명히 승인을 받으면.


프로토 타이핑은 새로운 것을 만들 때만 필요합니다. 툴링 부족은 펜과 종이가 부족한 것과 같습니다. 모래에 그릴 수는 있지만 비효율적입니다. GIF + JS 또는 Scratch 을 피하기 위해 Trabant 를 만들었습니다 .
Jonas Byström
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.