Skip to content
Felucca Online

DevlogFeature3 min read

Felucca goes online

The combat showcase and the first game server land together: one shared world split across many machines, fights with cover that breaks, running like in Ultima Online, and a stress test with 2,000 bots while we crashed servers on purpose.

Until this week Felucca Online was a world you could only look at alone. Today two long pieces of work land at once: real-time tactical combat, and a game server that puts everyone into the same world. The client now logs in, and the fights you saw in our captures happen online.

A crowd of test players storming a bandit camp on the server, with a broken stone wall behind them

Fights on the map, not on a battle screen

Combat happens right where you stand. Every action costs time: a dagger swing takes a second, a halberd swing three, a step half a second in a fight. A timeline at the top of the screen shows who acts next, and the clock never stops. You can queue your next order while you recover.

Arrows and spells need a clear line. Crates, fences, tables and walls are cover, and cover breaks. A stopped arrow hits the crate instead of you, and enough hits take the crate apart. Bandits know this too. Sappers plant powder kegs at doors, and halberds sweep the furniture off the floor of the room they fight in. A mage can raise a Wall of Stone across a gap.

The forest cabin assault from the combat showcase

One world, many machines

The map is cut into square regions. Each region runs on one server machine at a time, and a busy world spreads over as many machines as it needs. You never see the seams. Walk across a border and you are handed to the next machine between two steps. A fight that starts near a border stays on one machine until it ends.

If a machine crashes, its regions move to others within a few seconds, and you continue from where you were. If the server you connected through goes down, your client reconnects to another and you keep playing. When we restart servers on purpose, players move off them first, so nobody gets kicked.

We broke it on purpose

Before calling it done, we ran 2,000 bots through the world on three simulation machines and two connection servers, with two real game clients playing among them. The bots hunted camps, crossed borders, fought each other and broke walls. While they played, we killed a machine, killed a connection server, and then restarted every machine one by one.

Nobody ended up in the world twice and nobody was lost. Every bot was back in the game at the end. The crashed machine's part of the world was running again in under five seconds, and each restart took about two seconds. That test found a dozen bugs first. One was a loop that sent a player's commands back to the same machine forever.

Running like it's 1999

Hold the right mouse button and your character runs toward the cursor, as in Ultima Online. WASD does the same if you prefer the keyboard. Outside a fight you run twice as fast as you walk. Once you swing or get hit, you move at the fight's pace for ten seconds, the same pace as the bandits, so you cannot run circles around them in the middle of a fight.

Your character starts moving the moment you press, without waiting for the server. Behind the scenes your client decides each step and the server checks it, which is how Ultima Online did it too. We tested it by running in circles for a while and the character never snapped back.

The online client: HUD, spell bar and a bandit fight

Next: gear that sets your pace

We have also decided where character speed goes from here. Ultima Online's Renaissance rules are too rigid for us, so we are taking the Age of Shadows approach. Properties on your gear, such as faster swings, faster casting and quicker recovery, will make two characters with the same skills play differently. Speeds will still move in quarter-second steps, so a bonus either gets you to the next step or it doesn't. Hunting for the right piece of gear becomes part of the game. This is a design decision, not a feature yet, and the numbers are open.

What is real and what is not

  • Real today: the server, the online client, combat with breaking cover, running, and the stress test above. We run them on our own machines.
  • Not yet: there is no public server to join and no invites have gone out. Names stand in for accounts. Items and the economy live on the server for now; the on-chain economy comes later.
  • Next on the board: the first playtest milestone, which now covers the server and the online client. You can follow it on the roadmap.

Comments are the replies to this post’s thread in our Discord forum. They appear here a few seconds after they are posted.

The discussion thread opens on Discord shortly after a post goes live.