Browser game

Fernwild

A free browser arena shooter starring Fern, an elf with a bow and a limited quiver. Clear four stages, buy upgrades between bosses, and spend earned embers at the Hearth to give the next run a better start.

Try live demoVersion 1.1.11
Fernwild's title screen, with a torchlit forest, Fern holding her bow, and buttons to start a run or enter a seed.
Fernwild, a small browser game from Tavern & Tails.

About Fernwild

I built Fernwild around an elf, a bow, and a quiver that can run out. You move through enclosed arenas, clear the monsters to open the way forward, and try to reach the boss with enough arrows and lives left to deal with it.

It is a small, free browser game from Tavern & Tails, built in Godot. You can play with a keyboard and mouse, a gamepad, or touch controls on your phone.

Play Fernwild

Four stages into the woods

The run starts at the Fern Edge and takes you through the Overgrown Ruins, the Misty Crypt and the Deep Hollow. Each stage has six arenas and its own boss.

The monsters need different answers. Goblins close the distance, imps swarm, beetles protect themselves behind their shells, and boars commit to a charge you need to get out of the way of. Trees and rocks are solid, so where you stand matters as much as where you shoot.

Fern facing goblins and other monsters in a grassy arena surrounded by trees and rocks.

The opening forest arena. Clear the room to open the way forward, and collect dropped quivers before you run dry.

You begin with one life and 24 arrows before Hearth upgrades. A hit costs a life. Ammunition comes from quivers on the ground, so holding the fire button is only useful while there is something left to fire.

Earn your next upgrade

Coins buy stronger bows, multishot, piercing arrows, a faster draw, better boots and spare lives. The pedlar waits beyond each boss, which gives you a reason to collect the spoils before leaving the room.

Each boss has its own attack patterns. The Rootwarden guards the end of the first stage; three more wait deeper in the hollow.

Fern aiming her bow at the Rootwarden, a large wooden boss with a health bar above the arena.

The Rootwarden is the first of four bosses. Beating it opens the route to the pedlar.

Runs also earn embers. Spend those at the Hearth to start future attempts with permanent upgrades, including more arrows or an extra life. Your records and Hearth progress are saved locally.

Try the same rooms again

Start with a random seed or enter one yourself. The same seed rebuilds the same arenas, so you can retry a layout or pass it to someone else.

On desktop, use WASD or the arrow keys to move, aim with the mouse, and hold the left mouse button to fire. Shift runs and Esc pauses. Gamepad controls are supported too.

On a phone, play in landscape. A left-thumb joystick handles movement, the fire button aims at the nearest enemy, and the menu button opens pause and settings.

The pedlar's upgrade shop in Fernwild's wide mobile layout, showing bow, life, multishot, draw speed, piercing and boots upgrades.

The pedlar on a phone. Spend coins on this run; Hearth upgrades carry into the next one.

Fernwild uses AI-generated art and music alongside credited CC0 assets and synthesised sound effects. The game includes credits for its assets and fonts.

Play in your browser or visit Tavern & Tails.

Notes & updates

Release history

Version 1.1.11

Fixed

  • A phone could still draw the game stretched - buttons like planks, the joystick an ellipse - and the phone was not lying. The picture on a 9:16 screen came back as a 640x360 design blown up to fill it, which is what the engine does when nothing has told it the window's shape: the same sideways-then-tall smear 1.1.10 was chasing, from the other end. So the page no longer trusts the engine to letterbox a tall window at all. A window narrower than 1.5 asks for a canvas in the game's own 16:9 shape, centred, with the page's colour above and below it - and a 16:9 canvas cannot be stretched into anything but 16:9, whatever the engine decides. Windows wider than that are unchanged: the view still grows into the extra width, because that is more arena and not a letterbox.
  • The game now re-asks the engine for the window's shape every frame, not once when the window changes. The ask is two property reads that agree on every ordinary frame, and it is re-made the moment they do not.
  • The build is printed in the corner of the title screen. Two rounds of this bug were a phone running an older copy of the game out of its own cache and being unable to say so; v1.1.11 in the corner of a screenshot answers it. A machine whose engine refuses the shape also gets one line of numbers across the top of the title screen, because a phone in the hand of someone who can send a screenshot is the only place those numbers can be read.
Version 1.1.10

Fixed

  • Rotating the phone, twice or more, left a stretched game. The engine sizes its canvas by asking the window how big it is - innerWidth and innerHeight - and iOS answers that question with the previous orientation's numbers for a moment after a rotation. In a standalone PWA nothing pokes the page again afterwards, so the wrong answer stuck for the rest of the session: the engine drew an 852x393 picture into a 393x852 canvas, the browser stretched one into the other, and the joystick came out an ellipse. Reproduced by having the page report the old orientation, which is what iOS does:

    build the canvas box what it drew into
    1.1.9 852x393 1179x2556 - stretched
    1.1.10 852x393 2556x1179

    The canvas is now the page's to size (html/canvas_resize_policy=0) and the page measures its own layout box, which cannot be out of date, then keeps measuring for a second and a half after anything that could move it. The engine reads the canvas back on its next frame, so the game re-lays itself out with the screen.

  • The on-screen controls could disappear after a rotation, taking the menu button with them - which left a phone with no way to pause, and the pause menu is where the control setting lives. The controls now put themselves back if the view changes without telling anybody, and the menu button is drawn whenever the glass is a hand's, whatever the thumb controls are set to: the joystick and the fire button are a preference, the way out of a run is not.

Version 1.1.9