本文へスキップstate=CHASE vy+=G*dt shake(0.3) perlin(u,v) fadeOut(1.0) RAYCAST LIGHTMAP MINIBOSS cross(a,b) sign(vx) FRAME if(combo>best) WEBGL moveTo(next) ease=t*t SKELETON vy=min(vy,MAX) ox=cx+cos(a)*d if(see(player)) perlin(u,v) orbit(t) shuffle(deck) FADE oy=cy+sin(a)*d present() dot(n,l) HITBOX MESH vx*=0.9 UPGRADE hitstop(0.05) play(hit) spin(0.05) shuffle(deck) spin(0.05) y+=vy*dt perlin(u,v) SPAWN scale=1+p*0.2 MINIBOSS WALK x+=vx*dt seed^=seed<<13 placeChest() dt=1/60 GAMELOOP fadeOut(1.0) STAMINA CRAFTING GRAVITY draw(sprite) PARRY GARBAGE play(hit) PLAYTEST if(see(player)) wave=sin(time*2) update(dt) SPRITE normalize(v) state=CHASE vy+=G*dt shake(0.3) perlin(u,v) fadeOut(1.0) RAYCAST LIGHTMAP MINIBOSS cross(a,b) sign(vx) FRAME if(combo>best) WEBGL moveTo(next) ease=t*t SKELETON vy=min(vy,MAX) ox=cx+cos(a)*d if(see(player)) perlin(u,v) orbit(t) shuffle(deck) FADE oy=cy+sin(a)*d present() dot(n,l) HITBOX MESH vx*=0.9 UPGRADE hitstop(0.05) play(hit) spin(0.05) shuffle(deck) spin(0.05) y+=vy*dt perlin(u,v) SPAWN scale=1+p*0.2 MINIBOSS WALK x+=vx*dt seed^=seed<<13 placeChest() dt=1/60 GAMELOOP fadeOut(1.0) STAMINA CRAFTING GRAVITY draw(sprite) PARRY GARBAGE play(hit) PLAYTEST if(see(player)) wave=sin(time*2) update(dt) SPRITE normalize(v) poll(input) y+=vy*dt PROFILER lives-- HEALTH HITBOX TWEEN pos=pos+vel SPAWN render() EASING draw(sprite) DROP aabb(a,b) TWEEN speed=8.0 LEVELUP ATTACK crit=rng()<0.1 TUTORIAL RESPAWN TWEEN VERTEX roll=rng(1,20) shake(0.3) SHADER if(lives==0) CHEST NOISE TUTORIAL score+=100 MEMORY PATROL BUGFIX orbit(t) if(combo>best) BUFF MANA fadeOut(1.0) HUD flood(x,y) perlin(u,v) update(dt) HEALTH flash(0.1) perlin(u,v) SEED state=IDLE sleep(rest) JUMP DODGE flee() neighbors(x,y) tile=map[idx] grid[y][x]=1 speed=8.0 RUN emit(particles) aggro+=1 MEMORY if(tile==WALL) noise(x,y) MESH die() TICK lvl=floor(exp/100) update(dt) WEBGL pick(table) sign(vx) state=IDLE score+=100 speed=8.0 clamp(v,0,1) IFRAMES if(roll>=15) poll(input) y+=vy*dt PROFILER lives-- HEALTH HITBOX TWEEN pos=pos+vel SPAWN render() EASING draw(sprite) DROP aabb(a,b) TWEEN speed=8.0 LEVELUP ATTACK crit=rng()<0.1 TUTORIAL RESPAWN TWEEN VERTEX roll=rng(1,20) shake(0.3) SHADER if(lives==0) CHEST NOISE TUTORIAL score+=100 MEMORY PATROL BUGFIX orbit(t) if(combo>best) BUFF MANA fadeOut(1.0) HUD flood(x,y) perlin(u,v) update(dt) HEALTH flash(0.1) perlin(u,v) SEED state=IDLE sleep(rest) JUMP DODGE flee() neighbors(x,y) tile=map[idx] grid[y][x]=1 speed=8.0 RUN emit(particles) aggro+=1 MEMORY if(tile==WALL) noise(x,y) MESH die() TICK lvl=floor(exp/100) update(dt) WEBGL pick(table) sign(vx) state=IDLE score+=100 speed=8.0 clamp(v,0,1) IFRAMES if(roll>=15) TICK play(hit) if(see(player)) TEXTURE sin(t)*r INVENTORY cooldown-=dt if(combo>best) WAVE VSYNC PROCGEN spawnRoom() FADE tween(x,to,0.4) DEADZONE FRAME PATROL SWARM lives-- combo*=2 lerp(a,b,t) fadeOut(1.0) if(lives==0) RAYCAST AGGRO vy=-JUMP orbit(t) BUFF LOOP MANA cos(t)*r play(hit) hp-=dmg WAVE dt=1/60 MINIBOSS draw(sprite) KNOCKBACK VIEWPORT scale=1+p*0.2 INVENTORY if(roll>=15) if(see(player)) fixedUpdate() VIEWPORT SPRITE cooldown-=dt FIXEDSTEP while(running) GRAVITY length(v) RESPAWN emit(particles) CAMERA speed=8.0 vy=min(vy,MAX) y+=vy*dt STAMINA crit=rng()<0.1 WEBGL HUD score+=100 connect(a,b) RIG ENEMY vy=-JUMP hitstop(0.05) MESH UPGRADE STAMINA lerp(a,b,t) SPRITE MESH PLAYTEST FPS ox=cx+cos(a)*d x+=vx*dt SEED alpha-=dt CRIT DEBUFF aggro+=1 exp+=50 tween(x,to,0.4) TICK play(hit) if(see(player)) TEXTURE sin(t)*r INVENTORY cooldown-=dt if(combo>best) WAVE VSYNC PROCGEN spawnRoom() FADE tween(x,to,0.4) DEADZONE FRAME PATROL SWARM lives-- combo*=2 lerp(a,b,t) fadeOut(1.0) if(lives==0) RAYCAST AGGRO vy=-JUMP orbit(t) BUFF LOOP MANA cos(t)*r play(hit) hp-=dmg WAVE dt=1/60 MINIBOSS draw(sprite) KNOCKBACK VIEWPORT scale=1+p*0.2 INVENTORY if(roll>=15) if(see(player)) fixedUpdate() VIEWPORT SPRITE cooldown-=dt FIXEDSTEP while(running) GRAVITY length(v) RESPAWN emit(particles) CAMERA speed=8.0 vy=min(vy,MAX) y+=vy*dt STAMINA crit=rng()<0.1 WEBGL HUD score+=100 connect(a,b) RIG ENEMY vy=-JUMP hitstop(0.05) MESH UPGRADE STAMINA lerp(a,b,t) SPRITE MESH PLAYTEST FPS ox=cx+cos(a)*d x+=vx*dt SEED alpha-=dt CRIT DEBUFF aggro+=1 exp+=50 tween(x,to,0.4) placeChest() if(lives==0) PROFILER placeChest() ENEMY BUGFIX SEED emit(particles) while(running) HURTBOX RESPEC seed^=seed>>17 rand()%6 spin(0.05) swapBuffers() FRICTION KEYFRAME LEVELUP MESH EASING GRAVITY if(near)attack() VSYNC coins++ RAYCAST atan2(dy,dx) noise(x,y) TILESET TILEMAP ATTACK HURTBOX PARALLAX SCREENSHAKE shuffle(deck) scale=1+p*0.2 VERTEX VSYNC abs(dx) PROCGEN tile=map[idx] if(see(player)) clamp(v,0,1) MINIMAP SHADER clamp(v,0,1) TWEEN combo*=2 shake(0.3) vy+=G*dt DEADZONE COOLDOWN PROFILER IFRAMES speed=8.0 vx*=0.9 CHECKPOINT DUNGEON BUFF PROCGEN DASH OVERLAY COLLIDER gameOver() orbit(t) MINIMAP orbit(t) ENEMY score+=100 DASH swapBuffers() hitstop(0.05) seed^=seed>>17 roll=rng(1,20) placeChest() if(lives==0) PROFILER placeChest() ENEMY BUGFIX SEED emit(particles) while(running) HURTBOX RESPEC seed^=seed>>17 rand()%6 spin(0.05) swapBuffers() FRICTION KEYFRAME LEVELUP MESH EASING GRAVITY if(near)attack() VSYNC coins++ RAYCAST atan2(dy,dx) noise(x,y) TILESET TILEMAP ATTACK HURTBOX PARALLAX SCREENSHAKE shuffle(deck) scale=1+p*0.2 VERTEX VSYNC abs(dx) PROCGEN tile=map[idx] if(see(player)) clamp(v,0,1) MINIMAP SHADER clamp(v,0,1) TWEEN combo*=2 shake(0.3) vy+=G*dt DEADZONE COOLDOWN PROFILER IFRAMES speed=8.0 vx*=0.9 CHECKPOINT DUNGEON BUFF PROCGEN DASH OVERLAY COLLIDER gameOver() orbit(t) MINIMAP orbit(t) ENEMY score+=100 DASH swapBuffers() hitstop(0.05) seed^=seed>>17 roll=rng(1,20) BUFF CRAFTING present() RESPAWN KEYFRAME TUTORIAL MINIMAP poll(input) ENEMY DELTATIME if(dist<r1+r2) tile=map[idx] PATROL NOISE PATROL present() PIXELART seed^=seed<<13 PLAYTEST scale=1+p*0.2 best=combo SHIELD RESPEC connect(a,b) CHECKPOINT RAYCAST oy=cy+sin(a)*d TRANSITION NOISE round(score) play(hit) if(roll>=15) y+=vy*dt JUMP PROFILER TILEMAP swapBuffers() hp-=dmg clamp(v,0,1) TUTORIAL PROFILER SPAWNER TRANSITION fixedUpdate() BUFF CRAFTING present() RESPAWN KEYFRAME TUTORIAL MINIMAP poll(input) ENEMY DELTATIME if(dist<r1+r2) tile=map[idx] PATROL NOISE PATROL present() PIXELART seed^=seed<<13 PLAYTEST scale=1+p*0.2 best=combo SHIELD RESPEC connect(a,b) CHECKPOINT RAYCAST oy=cy+sin(a)*d TRANSITION NOISE round(score) play(hit) if(roll>=15) y+=vy*dt JUMP PROFILER TILEMAP swapBuffers() hp-=dmg clamp(v,0,1) TUTORIAL PROFILER SPAWNER TRANSITION fixedUpdate() length(v) flee() TEXTURE JUMP PLAYTEST tween(x,to,0.4) LIGHTMAP SEED DEADZONE MESH aggro+=1 draw(sprite) aggro+=1 CHEST if(near)attack() ease=t*t overlap(r1,r2) for(i=0;i<n;i++) GRAVITY ox=cx+cos(a)*d alpha-=dt fadeOut(1.0) SPRITE PARRY ATTACK score+=100 flood(x,y) atan2(dy,dx) die() if(combo>best) next=path.shift() if(near)attack() COLLIDER TICK DELTATIME lives-- SEED SWARM PLAYTEST if(roll>=15) present() emit(particles) BUGFIX MINIMAP dt=1/60 SHIELD idx=y*W+x BUFF PARALLAX ATTACK FRICTION path=astar(a,b) FRICTION hp-=dmg lvl=floor(exp/100) roll=rng(1,20) dt=1/60 vy+=G*dt length(v) flee() TEXTURE JUMP PLAYTEST tween(x,to,0.4) LIGHTMAP SEED DEADZONE MESH aggro+=1 draw(sprite) aggro+=1 CHEST if(near)attack() ease=t*t overlap(r1,r2) for(i=0;i<n;i++) GRAVITY ox=cx+cos(a)*d alpha-=dt fadeOut(1.0) SPRITE PARRY ATTACK score+=100 flood(x,y) atan2(dy,dx) die() if(combo>best) next=path.shift() if(near)attack() COLLIDER TICK DELTATIME lives-- SEED SWARM PLAYTEST if(roll>=15) present() emit(particles) BUGFIX MINIMAP dt=1/60 SHIELD idx=y*W+x BUFF PARALLAX ATTACK FRICTION path=astar(a,b) FRICTION hp-=dmg lvl=floor(exp/100) roll=rng(1,20) dt=1/60 vy+=G*dt IFRAMES connect(a,b) COOLDOWN combo*=2 atan2(dy,dx) LOOP CHEST rand()%6 RESPAWN ATTACK NPC dot(n,l) UPGRADE FIXEDSTEP y+=vy*dt x+=vx*dt sign(vx) DELTATIME CRIT poll(input) round(score) sleep(rest) hp-=dmg clamp(v,0,1) fixedUpdate() SKELETON IFRAMES vx*=0.9 SAVEPOINT RESPAWN dist=hypot(dx,dy) sin(t)*r pos=pos+vel play(hit) rand()%6 DUNGEON overlap(r1,r2) wave=sin(time*2) LIGHTMAP poll(input) floor(x/TILE) play(hit) lerp(a,b,t) HURTBOX play(hit) shake(0.3) atan2(dy,dx) LIGHTMAP SPAWNER WAVE dot(n,l) while(running) vy=min(vy,MAX) placeChest() IFRAMES PATCH MESH pick(table) IFRAMES connect(a,b) COOLDOWN combo*=2 atan2(dy,dx) LOOP CHEST rand()%6 RESPAWN ATTACK NPC dot(n,l) UPGRADE FIXEDSTEP y+=vy*dt x+=vx*dt sign(vx) DELTATIME CRIT poll(input) round(score) sleep(rest) hp-=dmg clamp(v,0,1) fixedUpdate() SKELETON IFRAMES vx*=0.9 SAVEPOINT RESPAWN dist=hypot(dx,dy) sin(t)*r pos=pos+vel play(hit) rand()%6 DUNGEON overlap(r1,r2) wave=sin(time*2) LIGHTMAP poll(input) floor(x/TILE) play(hit) lerp(a,b,t) HURTBOX play(hit) shake(0.3) atan2(dy,dx) LIGHTMAP SPAWNER WAVE dot(n,l) while(running) vy=min(vy,MAX) placeChest() IFRAMES PATCH MESH pick(table) rand()%6 fadeOut(1.0) GAMELOOP sleep(rest) SKELETON GAMELOOP VELOCITY AGGRO if(near)attack() abs(dx) TILESET moveTo(next) SKILLTREE y+=vy*dt lives-- spin(0.05) DEBUFF CRIT SKELETON flash(0.1) ANIMATION pick(table) aabb(a,b) KEYFRAME neighbors(x,y) vx*=0.9 OVERLAY moveTo(next) TRANSITION KEYFRAME HITSTUN vy=-JUMP moveTo(next) while(running) perlin(u,v) if(see(player)) if(near)attack() if(near)attack() hp-=dmg moveTo(next) length(v) ENEMY sin(t)*r AGGRO crit=rng()<0.1 ox=cx+cos(a)*d KEYFRAME VIEWPORT lives-- sign(vx) HEALTH aabb(a,b) MINIBOSS GRAVITY ENEMY dt=1/60 die() DEBUFF dt=1/60 SEED cos(t)*r gameOver() SPAWN RUN MANA LIGHTMAP if(see(player)) STAMINA rand()%6 fadeOut(1.0) GAMELOOP sleep(rest) SKELETON GAMELOOP VELOCITY AGGRO if(near)attack() abs(dx) TILESET moveTo(next) SKILLTREE y+=vy*dt lives-- spin(0.05) DEBUFF CRIT SKELETON flash(0.1) ANIMATION pick(table) aabb(a,b) KEYFRAME neighbors(x,y) vx*=0.9 OVERLAY moveTo(next) TRANSITION KEYFRAME HITSTUN vy=-JUMP moveTo(next) while(running) perlin(u,v) if(see(player)) if(near)attack() if(near)attack() hp-=dmg moveTo(next) length(v) ENEMY sin(t)*r AGGRO crit=rng()<0.1 ox=cx+cos(a)*d KEYFRAME VIEWPORT lives-- sign(vx) HEALTH aabb(a,b) MINIBOSS GRAVITY ENEMY dt=1/60 die() DEBUFF dt=1/60 SEED cos(t)*r gameOver() SPAWN RUN MANA LIGHTMAP if(see(player)) STAMINA UPGRADE VIEWPORT MINIMAP VELOCITY die() sleep(rest) lvl=floor(exp/100) grid[y][x]=1 VERTEX JUMP wave=sin(time*2) WALK TILEMAP RAYCAST cross(a,b) tween(x,to,0.4) tween(x,to,0.4) aabb(a,b) ease=t*t SPAWNER dt=1/60 SPAWN SHADER CRAFTING sign(vx) vx*=0.9 clamp(v,0,1) orbit(t) neighbors(x,y) LOOT EASING LEVELUP abs(dx) dot(n,l) PROFILER next=path.shift() SKELETON vy=-JUMP TILEMAP if(near)attack() atan2(dy,dx) PARTICLE if(roll>=15) carve(room) speed=8.0 LIGHTMAP state=CHASE FADE present() FRAME TILEMAP vy=min(vy,MAX) orbit(t) UPGRADE VIEWPORT MINIMAP VELOCITY die() sleep(rest) lvl=floor(exp/100) grid[y][x]=1 VERTEX JUMP wave=sin(time*2) WALK TILEMAP RAYCAST cross(a,b) tween(x,to,0.4) tween(x,to,0.4) aabb(a,b) ease=t*t SPAWNER dt=1/60 SPAWN SHADER CRAFTING sign(vx) vx*=0.9 clamp(v,0,1) orbit(t) neighbors(x,y) LOOT EASING LEVELUP abs(dx) dot(n,l) PROFILER next=path.shift() SKELETON vy=-JUMP TILEMAP if(near)attack() atan2(dy,dx) PARTICLE if(roll>=15) carve(room) speed=8.0 LIGHTMAP state=CHASE FADE present() FRAME TILEMAP vy=min(vy,MAX) orbit(t) lerp(a,b,t) CULLING KNOCKBACK y+=vy*dt FRAME CHECKPOINT wave=sin(time*2) WEBGL next=path.shift() HITSTUN PROFILER RESPAWN flee() WALK TRANSITION grid[y][x]=1 SPAWN rand()%6 if(dist<r1+r2) noise(x,y) vx*=0.9 FIXEDSTEP RESPAWN draw(sprite) MANA abs(dx) VELOCITY JUMP seed^=seed<<13 PATROL shake(0.3) PROFILER alpha-=dt speed=8.0 LEVELUP angle+=PI/60 state=IDLE spawnRoom() lvl=floor(exp/100) dt=1/60 vy=-JUMP PATROL MEMORY BIOME CHEST state=CHASE if(tile==WALL) DEADZONE hp-=dmg placeChest() MESH WAVE round(score) shake(0.3) FRAME for(i=0;i<n;i++) IDLE BOSS abs(dx) lvl=floor(exp/100) SPRITE present() flood(x,y) RESPAWN present() sleep(rest) vy=min(vy,MAX) lerp(a,b,t) CULLING KNOCKBACK y+=vy*dt FRAME CHECKPOINT wave=sin(time*2) WEBGL next=path.shift() HITSTUN PROFILER RESPAWN flee() WALK TRANSITION grid[y][x]=1 SPAWN rand()%6 if(dist<r1+r2) noise(x,y) vx*=0.9 FIXEDSTEP RESPAWN draw(sprite) MANA abs(dx) VELOCITY JUMP seed^=seed<<13 PATROL shake(0.3) PROFILER alpha-=dt speed=8.0 LEVELUP angle+=PI/60 state=IDLE spawnRoom() lvl=floor(exp/100) dt=1/60 vy=-JUMP PATROL MEMORY BIOME CHEST state=CHASE if(tile==WALL) DEADZONE hp-=dmg placeChest() MESH WAVE round(score) shake(0.3) FRAME for(i=0;i<n;i++) IDLE BOSS abs(dx) lvl=floor(exp/100) SPRITE present() flood(x,y) RESPAWN present() sleep(rest) vy=min(vy,MAX) roll=rng(1,20) if(hp<=0) PATCH SKELETON shake(0.3) VERTEX seed^=seed>>17 grid[y][x]=1 MINIMAP vy=-JUMP fadeOut(1.0) lvl=floor(exp/100) FADE WEBGL MINIMAP carve(room) PARALLAX ENEMY HURTBOX cross(a,b) BUILD JUMP exp+=50 KNOCKBACK if(roll>=15) HUD clamp(v,0,1) RAYCAST TILESET dist=hypot(dx,dy) sleep(rest) aggro+=1 floor(x/TILE) SWARM while(running) if(lives==0) PROFILER if(near)attack() DROP clamp(v,0,1) gameOver() connect(a,b) if(roll>=15) PARRY HURTBOX update(dt) WALK state=IDLE overlap(r1,r2) BIOME LOOP VIEWPORT shuffle(deck) exp+=50 seed^=seed<<13 DEADZONE GRAVITY PATROL idx=y*W+x cooldown-=dt lives-- atan2(dy,dx) state=IDLE if(dist<r1+r2) onHit(dmg) spin(0.05) moveTo(next) flood(x,y) TWEEN SHIELD VSYNC render() BUGFIX gameOver() SCREENSHAKE roll=rng(1,20) if(hp<=0) PATCH SKELETON shake(0.3) VERTEX seed^=seed>>17 grid[y][x]=1 MINIMAP vy=-JUMP fadeOut(1.0) lvl=floor(exp/100) FADE WEBGL MINIMAP carve(room) PARALLAX ENEMY HURTBOX cross(a,b) BUILD JUMP exp+=50 KNOCKBACK if(roll>=15) HUD clamp(v,0,1) RAYCAST TILESET dist=hypot(dx,dy) sleep(rest) aggro+=1 floor(x/TILE) SWARM while(running) if(lives==0) PROFILER if(near)attack() DROP clamp(v,0,1) gameOver() connect(a,b) if(roll>=15) PARRY HURTBOX update(dt) WALK state=IDLE overlap(r1,r2) BIOME LOOP VIEWPORT shuffle(deck) exp+=50 seed^=seed<<13 DEADZONE GRAVITY PATROL idx=y*W+x cooldown-=dt lives-- atan2(dy,dx) state=IDLE if(dist<r1+r2) onHit(dmg) spin(0.05) moveTo(next) flood(x,y) TWEEN SHIELD VSYNC render() BUGFIX gameOver() SCREENSHAKE
販売の仕組み
GAMEYARD は決済を持ちません。その代わり、 作品ページに価格つきの購入ボタンを置けます。ボタンの行き先は あなたが用意した決済先(BOOTH・itch.io・Steam・Stripe 決済リンクなど)で、代金は買い手からあなたへ直接流れます。
この形の強みは 3 つあります。手数料がかからないこと (取る理由がありません)、決済代行会社の都合で作品が消されないこと、 そして体験版をブラウザですぐ遊ばせられることです。 遊んで気に入った人がそのまま購入ボタンを押す —— 一番強い売り方が、 ダウンロードのハードルなしで作れます。
販売までの流れ
決済先を用意する
BOOTH・itch.io・Steam など、すでに販売している場所があればその商品ページの URL がそのまま使えます。まだ無ければ BOOTH(pixiv のアカウントで開設無料)がいちばん手軽です。
体験版を用意する
製品版の一部が遊べる形(最初の 1 章、最初の 10 分など)を zip にします。体験版が無い場合でも、スクリーンショットと説明文だけの掲載(外部リンク型)で販売ページへ送れます。
投稿フォームで価格と購入先を設定する
価格に製品版の値段(1 円以上)、購入先の URL に決済先の商品ページを入れて投稿します。作品ページに価格つきの「製品版を購入できます」ボタンが付きます。
売れたお金は直接あなたへ
決済はあなたの決済先で行われ、代金は決済先からあなたに支払われます。GAMEYARD は決済に関与せず、手数料も取りません(かかるのは決済先の手数料だけです)。
決済先の比較
| BOOTH | 開設無料・pixiv アカウントで始められる。ダウンロード販売対応。 手数料 5.6% + 22 円。国内の個人販売ではいちばん手軽です。 |
|---|
| itch.io | 海外に強い。手数料率を自分で決められる(既定 10%)。 ページも決済も英語基調なので、英語圏に売るならこちら。 |
|---|
| Steam | 登録に $100、手数料 30%。審査とストアページ整備の手間はあるが、 届く人数は桁違い。本格的に売るときの本命です。 |
|---|
| Stripe 決済リンク | 自分のサイトやファイル送付で完結させたい人向け。手数料 3.6%。 ファイルの受け渡しは自分で組む必要があります。 |
|---|
手数料は 2026 年 8 月時点の各社公表値です。変わることがあるので、 契約前に必ず各サービスの最新の料金ページを確認してください。
売れるページにするコツ
- 体験版は「一番おもしろい 10 分」を切り出す。チュートリアルで終わる体験版は逆効果です。遊びの核が伝わる場面まで入れてください
- 価格は決済先と揃える。表示価格と購入ページの価格がずれていると、その場で信頼を失います
- 説明文に「製品版で増えるもの」を書く。章の数、プレイ時間、追加要素 —— 体験版との差が買う理由になります
よくある質問
- GAMEYARD に手数料はかかりますか?
- かかりません。掲載も販売導線も無料です。かかるのは、あなたが選んだ決済先(BOOTH・itch.io など)の決済手数料だけです。
- なぜ GAMEYARD 自身は決済をやらないのですか?
- 決済代行会社の意向でプラットフォームから作品が消される事例が実際に起きています。GAMEYARD は決済を持たないことで、その圧力の影響を受けない場所であり続けます。また、決済を挟まないので売上手数料を取る理由もありません。
- どの決済先がおすすめですか?
- 国内向けなら BOOTH(開設無料・ダウンロード販売対応・手数料 5.6%+22円)、海外も売るなら itch.io(手数料率を自分で設定可能)、本格展開なら Steam(登録 $100・手数料 30%)が定番です。複数に置いて、購入先 URL にはいちばん買ってほしい場所を設定してください。
- 体験版が無いと販売できませんか?
- 販売できます。配布形式を「外部リンク」にすれば、スクリーンショットと説明文の紹介ページから販売ページへ直接送れます。ただし体験版がある方が購入率は上がります —— 遊んで気に入った人は、いちばん買ってくれる人です。
- 価格を変えたいときは?
- 同じ URL で投稿し直せば差し替わります。決済先の価格と表示価格がずれないよう、値上げ・セールのときは両方を更新してください。
- 購入ボタンの近くに出る「確認済みストア」とは?
- 購入先の URL が BOOTH・itch.io・Steam・DLsite など名の知れた販売サイトのとき、作品ページに「✓ 確認済みストア」と表示されます。買う人が安心してボタンを押せるための目印です。それ以外の販売先も設定できますが、その場合は行き先のドメインと注意書きが表示されます。
ゲームを投稿する