本文へスキップ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

itch.iorehtse10privvブラウザ可
This is a ticci toby dating sim

itch.ioTeam Branches
A platformer featuring multiple characters, a story mode, a level editor, and an online…

itch.ioSoupmasters
Big Boy Boxing: Singleplayer boss-rush with slapstick humour.

itch.ioCammymoop
A puzzle game where you explore the inside of giant wheels and roll them around to prog…

itch.ioPuko
Does my head look BIG?

itch.ioGypopothomasブラウザ可
Leave to me, Leon!

itch.ioGabrielブラウザ可
Expand and conquer (HARD)

itch.ioNoah Burkholder
Deep Learning Bird RPG

itch.ioNative Butterflyブラウザ可
Птахи одного польоту мають триматися разом!

itch.ioEscada Games
A failed 7DRL with airplanes.

itch.ioBenji Kayブラウザ可
Local deathmatch platformer for up to 4 players

itch.ioRisingPixelブラウザ可
A complicated love story between you and a mutant-shark-girl

itch.ioTempo Lab Games
A collection of original rhythm mini-games!

itch.ioConor Mccann
Have a cold beer with an old friend under warm Texas stars

itch.ioSuper Duper Garrett Coo…
cyberPUNK open-world FPS / RPG

itch.ioAntoine L.ブラウザ可
A blackjack game with upgrades. Climb from 1000$ to a Billion!

itch.ioEmoreji Studio
PuzzleジャンルのEmoreji Studio が開発のitch.ioで配信中。無料。

itch.ioTeam Gormlessブラウザ可
Dodge-shoot yourself to death!

itch.ioStudio Ghost Legs
Let's have a great day!

itch.ioLorraine 🍬 Devaux
2D Dogfighting with an Army

itch.ioAzaGameStudio
Psychological Survival Horror - Live Or Die

itch.ioBootdiskRevolution
Air-dodge, slow-time and blast baddies in this twin-skick action-platformer!

itch.ioForgotten Throne
A Better Way To Smith

itch.ioBlight Software
survival horror fps set in an abandoned facility overrun by mindless creatures infected…

itch.ioAarontti
You can't fight time, but Blinx can

itch.ioBoncho Games
A fast paced platformer without...running?

itch.ioGoodgis
A N64 Styled, Fast-Paced Down Hill Rolling Game

itch.ioJess
You are a blob bunny. Your goal? Touch every tile!

itch.ioJessブラウザ可
You're a blob bunny. Your goal? Touch every tile!

itch.iobaku
Blomst is a cute and colourful dungeon crawler full of flowers.

itch.iotofurocksブラウザ可
POV: Your Vampire BFF Asks You Some Questions

itch.ioLEOYingブラウザ可
Marry the enemy. Survive the family. Hunt the truth.

itch.ioivysly
A gentleman's duel.

itch.ioMaricu
A narrative adventure game.

itch.ioMafer
Spanish version of Blood Soup2

itch.ioMafer
Ligando con chicos traumados y yanderes.