Browser RPG · Malaysia · 2 chapters playable

Pendekar

A hero's journey across Malaysia.

Click to walk. Net fish on the reef, cut timber in the jungle, drill silat strikes on a training post, then build a boat and sail for the mainland, where a fishing town has a harbourmaster, a shop and clothes to buy. Old-school mechanics, an original world, played in a browser tab.

Low-poly 3D view of a beach: the player in a white top and red sarong stands by a campfire, Guru in a tall purple headcloth holds a staff, with the boatyard, a training post, jungle trees and turquoise shallows around them.
Perhentian Island, the training ground. A screenshot from the current build (v8).
01

The journey

The game is built in chapters, each a real place on the east coast. The route begins on a small island and works its way onto the mainland, one region at a time.

  1. 1

    Perhentian Islands

    Playable

    The training ground. Guru teaches you to feed yourself, fight and build a perahu, a small boat. Two islands, a reef to fish, crabs on the sand and monitor lizards in the jungle.

  2. 2

    Kuala Besut

    Playable

    Landfall. The fishing town where the mainland begins: a jetty, a harbourmaster, Kak Yah's sundry shop and the first clothes to buy, prawns in the river and tuna off the jetty, and a boat back to the island whenever you want it.

  3. 3

    Terengganu coast

    Next

    Silat weapon families with different reach and speed, keris and other blades, songket armour, and the first real dungeon.

  4. 4

    The rest of the peninsula

    Later

    Down the coast and across the hills. Sabah and Sarawak after that. Each region brings its own skills, foods and people.

02

How it plays

The feel of the browser MMOs of the 2000s: a world that moves on a tick, skills that reward time, and a camera you can swing around freely. Everything else is new.

The tick600 ms

Every action in the world happens on a tick. Click a tile and your character finds a path and walks it, one tile per tick, eight directions, no cutting corners.

Skills7

Fishing, Woodwork, Cooking, Attack, Strength, Defence and Body. The classic curve: level 99 takes about 13 million XP, and the first levels come fast.

Combat3 stances

Train Attack for accuracy, Strength for power or Defence for dodging. Hitsplats, XP drops, food to eat mid-fight, and monsters that come back.

Camera360°

Drag to orbit, scroll to zoom, arrow keys to turn, tap the compass to face north. Pinch and press-and-hold on a phone.

World2 maps

Each 90 by 60 tiles. The islands are grown from seeded noise, so the map is the same for everyone. Kuala Besut is laid out along a river, with scenery running past its edges so the mainland never ends in a cliff.

Weight1 file

The whole game is one HTML file of about 2,300 lines, with three.js loaded from a CDN. No install, no engine, no build step. Progress saves in your browser.

Close-up of the player character in a black songkok, white top, red sarong with a gold band and dark trousers, holding a wooden staff, with Guru standing behind on the sand.
Every model is built in code from boxes, cylinders and icosahedra, flat-shaded and merged into a single mesh. The character is assembled from garment slots (hat, top, sarong, bottom, shoes, vest, weapon) so that shops and equipment can change how you look. Since v8, they do. Skills keep their Malay names beside the English ones in the game.
  • Fishing Nelayan
  • Woodwork Tukang Kayu
  • Cooking Masak
  • Attack Serang
  • Strength Kuasa
  • Defence Tangkis
  • Body Tubuh
03

Build journal

How the game got here, one published version at a time. Each entry starts with the note from the player that set it off. October 2026.

v0prologue

It started with a question

PlayerWhy did RuneScape become viral?

Not a plan, a question. Talking through why RuneScape caught on (it ran in a browser, it was free, the skills rewarded time, and the world felt shared) led straight to the next message: let's make a game with the same mechanics, but change the theme, the weapons and the map, and start with a small one.

The setting came quickly. Malaysia, with silat for the weapons and skills and armour named for the culture. Terengganu was the first idea for a starting place. Then a better one: begin on the Perhentian Islands as a training ground, and take a boat to the mainland. That gave the game its tutorial, its first chapter, and its first quest.

v0.5prototype

Brinefall, a throwaway island

Before any of the Malaysian world existed, a small test island on a flat 2D canvas: 44 by 30 tiles, a tick loop, click-to-walk pathfinding, trees to cut, fish to net, a fire to cook at and crabs to avoid. It proved the loop worked and was then set aside.

v12D

Pendekar, the whole game in 2D

The first real build. A 60 by 40 world with two islands grown from seeded noise, so every player gets the same map. Eight-direction pathfinding that refuses to squeeze through diagonal gaps. The RuneScape XP table. Seven skills, a 20-slot pack, crafting at the boatyard, two monsters with their own tempers, Guru's tutorial quest, and a save in the browser.

It was checked before it was looked at: object counts, monster counts and whether every tree and fishing spot could be reached from the beach were tested in a headless run. Palm trees came up short the first time, so the beaches got more of them.

v23D

Too rubbish, so: low-poly 3D

PlayerI want you to think of a good system to use to make the graphics better. At least Old School RuneScape level. It's too rubbish right now. Let it rotate freely like OSRS.

The 2D tiles went. In their place, a three.js renderer in the low-poly style: the tile map becomes a heightfield that rises gently inland, the sea is a translucent plane with a scrolling texture and foam strips along every shore, a sun casts soft shadows, and fog settles over the far water. Every tree, palm, fire, boat frame and creature is built from a few primitives, coloured per vertex and merged into one flat-shaded mesh.

The camera orbits the player freely, with drag, scroll, pinch and arrow keys, and a compass to face north. The game logic did not change at all. The renderer was swapped underneath it. On top came the interface: right-click menus, hover labels in the familiar colours, hitsplats, XP drops, and a minimap with a wedge showing where the camera looks.

The training island seen from high above: a jungle of low-poly trees, a sand beach with palms, a rock outcrop, crabs, and bright shallows around the shore.
The training island from above, as it is today, after the jungle was thinned in v4.
v3text

English first

PlayerMake things mainly in English first.

The first builds led with Malay: Tukang Kayu, Nelayan, unggun, bengkel. Reading them cold was work. The names were flipped so English leads and the Malay sits beside it, in the Skills tab and in every item tooltip. Guru still says toya and perahu, and explains them the first time.

v4world

Bigger islands, fewer trees

PlayerIsland is a bit small, and too many trees.

The world grew from 60 by 40 to 90 by 60 tiles, about 2.2 times the land. Cuttable trees dropped from around 100 to 29, palms to 9, with more open grass between them. To keep the bigger island busy, fishing spots went up to 18 and the monsters to 21: fourteen crabs on the beaches and seven monitor lizards in the jungle.

v5people

People with necks

PlayerCan we make the people better? They have no necks. Remember, later we will allow people to buy or wear stuff.

The character rig was rebuilt: a neck, shoulders, a slimmer waist, a jaw, ears, a nose and a mouth. More important for later, every visible garment became a slot: hat, top, belt or sarong, trousers, shoes, vest, weapon. An item can swap any of them, which is what shops will need. Guru wears a tanjak, a folded headcloth; the player a songkok.

The rebuilt player character seen from the front, with a visible neck, shoulders and jaw, holding a staff, with Guru behind.
The player after v5, with the toya Guru hands over in the first conversation.
v6motion

Smoother steps

PlayerThe walking is too robotic. Please make it smoother steps.

Characters used to snap from tile to tile with straight legs. Now the drawn body glides toward its tile with a damped follower, which rounds corners and eases every start and stop. The stride is tied to distance travelled, so feet never slide. Knees and elbows bend, hips sway, the torso twists against the hips, and turning speed no longer depends on the frame rate. Crabs and lizards got the same treatment.

Five side-on frames of the player walking across the grass, showing the legs and arms swinging through one stride.
One stride, five frames about a fifth of a second apart, captured by stepping the game clock one frame at a time.
v7quests

A journal for quests

PlayerWe need a section for the quests.

A Quests tab joined Pack, Skills, Craft and Gear. The tutorial became a named quest, Castaway's Training, with eight steps that tick off as you go and counters that update live. The next quest, Landfall at Kuala Besut, sits locked underneath it. A dot on the tab shows when something changed, and the chat log announces quests starting and finishing.

Testing the tab turned up a bug: Guru's dialogue box stayed on screen after you closed it. Fixed in the same version.

The in-game Quests tab: Castaway's Training in progress with three steps ticked and 'Hit the training post (6/10)' active; Landfall at Kuala Besut and The road to Kuala Terengganu are locked below it.
The Quests tab mid-tutorial, as it looks now. The two cards below it arrived in v8.
pagethis site

A place to tell the story

PlayerLet's make a landing page first, and actually document our journey in building this.

This page. The screenshots on it are taken from the real build in a headless browser, the map is a simplified outline of the peninsula drawn in code, and the journal grows with every version.

v8chapter 2

Landfall at Kuala Besut

PlayerI was working on this game, let's continue.

The roadmap already said what came next, so that was the brief. The boat from the end of the tutorial now sails: the view fades to night sea, a small perahu crosses a dotted line, and you tie up at the end of a jetty in Kuala Besut, where the Besut river meets the sea.

The town is a second map: a beach, a river lined with painted east-coast fishing boats, a bridge, stilt houses, a mosque with the tiered roof of old Terengganu mosques, and a fish market. Two people live there. Encik Rahman is the harbourmaster, a post once called syahbandar. Kak Yah runs the sundry shop.

Kuala Besut seen from above the jetty: a T-shaped wooden jetty with the player's boat, the beach, an open-sided fish market, the harbourmaster's blue-roofed office, Kak Yah's shop, stilt houses with red roofs, and fishing boats in the river mouth.
Kuala Besut from the end of the jetty: the fish market, the harbourmaster's office, Kak Yah's shop, and the river mouth on the left.

Coins came with her: ringgit, earned by selling what you catch and cut. The garment slots from v5 finally paid off. A terendak (straw hat), a baju Melayu, a kain pelikat (checked sarong) and capal (sandals) each change how the character looks the moment you put them on. The river has giant prawns, the end of the jetty has tuna for anyone with Fishing 12, a charcoal grill cooks them, and macaques in the forest drop coins they stole from someone.

The player on the village road in a conical straw hat, a blue baju Melayu and a green checked sarong, standing beside Kak Yah in her yellow headscarf in front of her shop's red and white awning, with stilt houses and the mosque behind.
The first outfit from Kak Yah's shop, worn on the village road: terendak, baju Melayu, kain pelikat and capal.

Underneath, the world was rebuilt as zones so the game can hold more than one map, and saves from v7 carry straight over. The mainland needed land past the edge of the map so it would not end in a cliff, and at first that drew 317,000 triangles a frame. Merging the scenery into chunks the camera can skip brought it down to about 37,000 at the jetty.

A headless playthrough of the new quest, fifteen checks from boarding the boat to sailing home, caught two things before anyone saw them: the fish market had been built half in the sea, and the jetty sign read backwards from the boat.

04

What comes next

Written the way the game writes its quests. Order is a plan, not a promise.

The road to Kuala Terengganu Next

Chapter 3. The coast road south, once the monsoon floods go down.

  • Open the road south from Kuala Besut
  • Kuala Terengganu: a bigger town, a bigger market
  • Songket armour
  • The first real dungeon

Dressed for it Started

Shops, and clothes that show on your character.

  • Tops, sarongs, hats and shoes as items
  • Coins, and a way to earn them
  • A character creator: body, skin, hair
  • More shops, more colours

Ways of silat Planned

Weapon families with their own reach and rhythm.

  • Reach: the toya and other staffs
  • Quick: keris and short blades
  • Heavy: parang and the like
  • Songket armour, and an inner-power skill under consideration

More to do on Perhentian Planned

Side quests for players who are not ready to leave.

  • Errands for the island's few residents
  • Rarer fish, and a reason to cook them
  • A hidden spot or two

Landfall at Kuala Besut Done

Cross the sea and find your feet on the Terengganu coast. Shipped in v8.

  • Build and launch the perahu
  • Sail to Kuala Besut
  • Meet the harbourmaster
  • Buy your first piece of gear
  • Take the boat back to the island, any time
05

How it is built

Pendekar is designed by one player and built with Claude, in a single running conversation. There is no studio and no engine. The game is one HTML file with three.js for the 3D, the logic and the renderer kept apart so that either can change without the other.

Mechanics borrow from the browser MMOs that inspired the project. The world, the names, the models and the map are original.

  1. 1The player writes a note. Usually one line: what feels wrong, or what is missing.
  2. 2The change is built, with the game logic and the renderer kept separate.
  3. 3The result is loaded in a headless browser and screenshotted, and counts like trees and monsters are checked.
  4. 4Tuned, published as a new version, and written up here.