Pendekar
A hero's journey across Malaysia.
Learn silat from Guru, draw a bamboo bow at Tok Ali's range and net fish on the reef. Then build a boat, sail for the mainland and trade in a fishing town. Old-school mechanics and an original world, played in a browser tab.
- Free · no install
- 2 chapters
- 8 skills
- 8 people to meet
- Saves in your browser
Perhentian Island, from the current build (v0.40)
The journey
The game is built in chapters, each a real place on the east coast. The route starts on a small island and works its way onto the mainland, one region at a time.
- Playable
- Next
- Later
- By boat
- Next road
- Later
- Town

1Perhentian IslandsPlayable
The training ground. Guru teaches you to feed yourself, fight and build a perahu. Five islanders teach archery, fishing, woodwork, cooking and defence.

2Kuala BesutPlayable
Landfall. The fishing town where the mainland begins: a jetty, a harbourmaster, Kak Yah's sundry shop and the first clothes to buy, with prawns in the river and tuna off the jetty.
3Terengganu coastNext
The coast road south to Kuala Terengganu: a bigger market, songket armour and the first real dungeon.
4The rest of the peninsulaLater
Down the coast and across the hills, with Sabah and Sarawak after that. Each region brings its own skills, foods and people.
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.

Every action happens on a tick. Click a tile and you walk there, one tile a tick, or two when you run. Paths go eight ways and never cut corners.
Level 99 takes about 13 million XP, and the first levels come fast.
- Fishing Nelayan
- Woodwork Tukang Kayu
- Cooking Masak
- Attack Serang
- Strength Kuasa
- Defence Tangkis
- Archery Memanah
- Body Tubuh
Three stances for the staff (Attack, Strength, Defence), plus the bow. A three-strike combo, blocks and dodges, and damage that lands when the blow connects.
Each 90 by 60 tiles. The islands grow from seeded noise; Kuala Besut is laid out along a river. Tap the minimap for the whole of Malaysia, unexplored until you get there.
Drag to orbit, scroll to zoom, arrow keys to turn. Pinch and press-and-hold on a phone.
The whole game is one HTML file of about 4,500 lines, with three.js loaded from a CDN. No install, no engine, no build step. Every model and every sound is built in code, people and creatures are bent by skeletons made in code too, and progress saves in your browser.
The people
Everyone you can meet so far. On the island, each teacher sets one task; finish it and the lesson stays with you. They look up as you pass and greet you. Malay titles come first, as you would hear them.

Guru
Silat teacher · PerhentianTeaches the basics: food, fighting and the boat. Castaway's Training starts with him.

Tok Ali
Archer · PerhentianLends you a bamboo bow. Hit his target ten times and archery is yours.

Mak Long Esah
Fisherwoman · PerhentianNet five fish and she shows you how to throw a net. You fish faster from then on.

Pak Mat
Boatwright · PerhentianCut five timber for a better swing, and learn to make arrows at the boatyard.

Mak Jah
Cook · PerhentianCook four fish without burning them to learn her secret. You burn less food afterwards.

Abang Zul
Silat fighter · PerhentianSpars with a rattan stick. Dodge eight strikes and earn a point of armour for good.

Encik Rahman
Harbourmaster · Kuala BesutKeeps a ledger of every boat on the river, a post once called syahbandar. Landfall at Kuala Besut is his quest.

Kak Yah
Shopkeeper · Kuala BesutBuys your catch and sells clothes, food, arrows and a horn bow from her sundry shop.
Build journal
One entry a day, newest first, with every version that came out of it. The game is in beta: the numbers count up to 1.0, which comes with chapter 3 and the Terengganu coast. October 2026.
Company in Kuala Besut, and faces that talk
NewWorldPeopleLookTwo versions, v0.39 and v0.40: drop anything from your pack, every item redrawn and described, live talking portraits and friendlier faces, and Kuala Besut shared with other players.
v0.40Kuala Besut, together
Other players walk the town with you, and you can talk to them.
Kuala Besut is no longer yours alone. When you land at the jetty the game asks what to call you, and you join a world shared with everyone else in the town. Other players walk about with their names over their heads. Anything they say appears above them and in a new Public tab in the chat, with a box to say something back.
- The server keeps everyone honest. It decides where each player stands. A click asks to walk somewhere; the server checks the way, refuses water and walls, and steps everyone one tile a tick, two when running, just as the game does on its own.
- Eight worlds. Each holds about 150 players, and when one is full you are pointed to the next.
- Chat is plain words, up to 80 characters, and slowed down if anyone floods it.
- If the server can't be reached, the town works as before, on your own, and the game keeps trying to reconnect.

Perhentian Island stays single-player for now, and nothing is saved on the server yet: your progress still lives in your browser. Signing in comes next, so your character, its name and its pack can follow you to any device.
Thirty-five new checks run two browsers against a local copy of the server. They cover a walk into the water being refused, world 2 never seeing world 1, chat staying plain text, Kak Yah's shop opening from where the server put you, and the game carrying on alone when the server stops. After publishing, two guests on the live server saw and heard each other.
v0.39Drop it, look at it, hear it
Dropping and picking up, item art with real detail, and a portrait that talks.
Until now your pack only ever filled up. Now you can empty it. Right-click an item, or press and hold it on a phone, and you can eat or wear it, drop it, or examine it. Shift-click drops it at once, and so does Delete on an item that has focus.
- What you drop stays on the ground. It lies where you stood for three minutes, as a small picture of itself with a shadow under it, and you can walk back and take it. The boat is the one thing you can't drop.
- A full pack no longer wastes a kill. When there is no room, a crab's meat or a macaque's bananas fall to the ground instead of vanishing.
- Every item is redrawn. The coconut has its husk, its three eyes and a cracked half with the white flesh inside. Timber is two logs with bark and end grain, coir is a tied hank of fibre, rope is a twisted coil, and the hatchets have proper heads. Cooked fish have grill marks, and the grilled squid comes on its bamboo skewer. Each item also has a line that says what it is, in its tooltip and when you examine it. The book has a new page, the visual directory, with every icon shown large.
- Friendlier faces. Everyone on the islands has a new head: bigger, with soft dark eyes and a smile that opens when they talk. Guru and Tok Ali have rounded beards now, so you can see them speak, and the tall hats are trimmed to fit.
- The person you talk to is live. The portrait is half as big again, and it is the islander's own 3D figure, head and shoulders, not a still picture. While a line types out they say it: the jaw keeps time with the words, the hands move with them, and they look at you. Press once to finish a line, and again for the next.

New checks cover dropping by menu, by shift-click and by the Delete key; picking an item up from your feet and from a few tiles away; an item being gone after 300 ticks; the boat refusing to be dropped; pointing at an item on the ground; every icon being valid SVG with a description; the line typing out while the jaw moves, closing when it ends, and one press finishing a line without skipping it; and the portrait fitting on a phone.
Chapter 2, then the whole country
NewWorldPeopleLookSoundSiteEight versions, v0.25 to v0.38: sailing to Kuala Besut, five teachers and archery, characters on real skeletons, a carved-teak interface, a map and an atlas of Malaysia, music made in code, and tools.
v0.38Tools of the trade
A hatchet for trees, a net for mackerel, and the right gear for every other catch. The first ones are free.
Until now you could fell a tree with your bare hands and pull fish out of the sea with nothing at all. Now every way of gathering needs its tool: a hatchet for trees, a cast net (jala) for mackerel, a jig (candat) for squid, a prawn trap (bubu) for the river and a hand-line (tali pancing) for tuna. Palms are the exception: you climb them.
- The first tools are free. Pak Mat gives you his old hatchet the first time you talk to him, and Mak Long Esah her old net. If you ever have none you can use, they hand over another. Guru sends you to both, and Castaway's Training has a step for each. Finish Esah's lesson and she adds a squid jig.
- Kak Yah sells the rest: an iron hatchet for RM 45, a jig for RM 8, a prawn trap for RM 15 and a hand-line for RM 20. She won't buy back the old hatchet or the old net. “That's Pak Mat's old hatchet. He'd know.”
- Tools hang on a belt. The Pack tab has a belt of four slots above the pack, so tools don't use up pack space. Click a tool to move it between belt and pack. It works from either.
- Better tools work better. You never choose a tool: the game uses the best one you carry that you have the level for. The iron hatchet needs Woodwork 5, and adds 8% to the chance of every swing.
- You can see what you need. Point at a tree without a hatchet and the label says so in red. Try anyway and the game tells you where to get one. While you chop, the hatchet in your hand is the one you are using, and when you fish, the net is in your hands.

Older saves find the old hatchet and the old net on the belt, with a line in the chat. If Esah's lesson is already done, the jig is there too. The island is laid out exactly as before.
This is the first of three parts. The next two bring hardwoods, a blacksmith's forge, bamboo, and prawn traps that fill while you are away. All three are designed in the Pendekar Book, a new wiki of how every part of the game works. Its numbers are read straight from the game's code.
Fifty-five new checks ran, and the tests from earlier versions still pass. They cover:
- that every tree and fishing spot refuses you without its tool, with the right message for the island or the town, and works with it;
- that the wrong tool, such as a net at a squid spot, is refused;
- that the iron hatchet takes over at Woodwork 5, in the code and in your hand;
- that the teachers' tools go on the belt, or in the pack when the belt is full, and come back if you lose them;
- that an old save gets its tools once;
- that the ring by the action text fills in exactly the time a swing or a cast takes, for every tool;
- that a new game can still finish Castaway's Training without spending a ringgit.
One gap turned up along the way. Someone who bought an iron hatchet before Woodwork 5 could not cut at all, and Pak Mat would not help, because they had a hatchet. Now he gives an old one to anyone without a hatchet they can use.
v0.37Music for every place
Seven songs made in code, a fight layer, Kak Yah's radio, and a Muzik tab to choose what plays.
It began as a page of seven sketches: one for each place on the route so far, and one for the dungeon ahead. Each borrows its instruments and rhythms from music of this coast. These include the Malay gamelan long kept at the Terengganu court, the oboe and drums that play for silat, joget, keroncong, and the rebab that leads Mak Yong theatre. Every melody is new.
Pendekar has sound now, and like everything else in the game it is made in code, with no audio files. The synthesiser and all seven songs add about 32 KB to the game file. The gongs and the saron are a few sine waves each. The serunai, the rebab and the violin are filtered saw waves with a little vibrato. The gambus, the cuk and the cello are plucked strings, worked out a sample at a time.
- Angin Pulau (island wind) plays on Perhentian by day.
- Gelanggang (training ground) plays at Guru's post and while you spar. A fight anywhere switches it to Lawan, its fight layer, with more drums and a busier serunai at the same tempo. The switch waits for its own bar line.
- Jala (cast net), a slow 6/8 on the rebab, plays while you fish.
- Dayung (oar stroke) takes you across the strait and lands with you. The saron and the bass join halfway over.
- Pekan Besut (Besut town) is a joget on violin and accordion.
- Radio Kak Yah plays from the transistor radio on her counter. It gets louder as you walk up to the shop, and the town song ducks under it.
- Gua (cave) waits for chapter 3 and its first dungeon.

Every song runs at 100 beats a minute, one beat for each 600 ms tick. The music keeps its own clock, and the game's tick follows its beat, so your steps and strikes land on it. After a conversation or a crossing, the tick snaps back to the nearest beat. The rest of the time it is nudged a millisecond or two, so the two clocks never drift apart. Songs change on a beat and crossfade over two ticks. Under the music, the waves grow louder near the water, cicadas sing among the trees, and birds call on the island.
The new Muzik tab, key 6, lists the songs. Each one unlocks the first time you hear it, with a note in the chat: Lagu baru, a new song. With Ikut tempat, each place plays its own song. Pick any song you have heard to keep it playing everywhere. The tab has sliders for the music and the ambience, and B turns the sound on or off. Sound starts with your first click, as browsers require, and pauses while the game is in a background tab.

Thirty-three new checks ran, and the tests from earlier versions still pass. They cover:
- that every song renders offline with no clipping, and every melody fills its loop;
- that the beach, the post, a fight, fishing, the boat and the town each pick the right song;
- that the radio rises near Kak Yah's shop and stops away from it;
- that songs unlock, survive a reload and can be picked, with keyboard focus kept on the pick;
- that the game's tick lands within 40 ms of the beat;
- that six panel tabs fit on a 375-pixel phone, each at least 44 pixels wide.
Two problems turned up. The spawn beach is a few steps from Mak Long Esah, so at first the island song never got a turn. Jala now plays only while you fish or stand with her. The screenshots also caught the song count in the Muzik tab lagging one song behind, until the next redraw.
v0.36An atlas of Malaysia
Every state in its own colour, mountains you can see, and a sea full of whales, dolphins and ships.
The map from v0.35 was accurate but plain: parchment land on a flat blue sea. It is now drawn like an old atlas. Each of the 16 states has its own colour, so you can see where Kelantan ends and Terengganu begins. The ground has relief:
- the Titiwangsa range runs down the peninsula;
- the Crocker range lifts towards Kinabalu;
- Sarawak climbs to the ranges along its border.
Light falls from the north-west, contour lines mark every 400 metres, and the coast is inked, with water lines offshore. Ten peaks are marked and named when you zoom in, from Gunung Kinabalu at 4,095 m to Bukit Bendera above Penang.

The heights are modelled, not surveyed. The game file carries no elevation data, so the land is raised along the real ranges and around the real peaks, broken into crests and valleys with noise, and kept flat along the shore. Building it takes about a fifth of a second, the first time you open the map.

The sea has squiggly waves that drift, and a compass rose with sixteen rhumb lines in the South China Sea. It also has traffic:
- whales that spout every few seconds;
- pods of dolphins that leap in turn;
- perahu close to the shore;
- junks, and two-masted sailing ships with a wake behind them.
They are pixel sprites, drawn at a size you can see from any zoom. They keep to open water and turn back from the shore, and new ones appear wherever you are looking. With reduced motion on, they hold still.

Unexplored territory is still there. States you have not reached are pale and flat under parchment. The ground you have explored is in full colour, with a dashed survey line round it.


The map now has thirty checks, four more than before, alongside the 141 others. They cover:
- that six states have six different hues;
- that Kinabalu and Tahan stand high and the shore at Kuala Besut is low;
- that the sea holds whales, dolphins, perahu, junks and ships, all of them on water;
- that they move, and that they stop for reduced motion.
Two problems turned up. Zoomed in on open sea, there was nothing in it. Water more than 14 cells from land carried a "not measured" distance, and the ships' rule read it as too far out. The 3D world also kept drawing behind the full-screen map. It now pauses while the map is open, and the game keeps ticking underneath.
v0.35A map of Malaysia
Tap the minimap for the whole country: the places you have been in colour, the rest unexplored.
Tapping the minimap, or pressing M, now opens a map of the whole country: Peninsular Malaysia, Sarawak and Sabah, alone in the sea. It is drawn from Natural Earth's real coastlines and state borders, the same data as the map on this page, on a grid of cells about 1.7 km across. Packed as run-length text, the whole country adds 9 KB to the game file.

The first version drew the neighbours in muted green: Thailand, Sumatra, Kalimantan, Brunei, Singapore and a corner of the Philippines. They are gone now, so Malaysia stands alone in the sea. The neighbouring borders are still used while the map is built, to decide which islands are Malaysian. Brunei sits inside Sarawak's coastline, so it now shows as two bays.
Almost all of it is unexplored. Malaysia starts as blank parchment, with only the coastline and faint state borders showing. A place you have been is drawn in colour for 16 km around it, with green land, a sand edge and lit shallows. A new game knows only the sea around Perhentian. Landing at Kuala Besut opens up that stretch of coast and puts a red dot on the minimap until you look. The footer keeps score: by the end of chapter 2 you have seen about a fifth of one percent of the country, in 2 of its 16 states. Kuala Terengganu waits down the coast as a question mark.

Drag to move, and scroll or pinch to zoom. Buttons zoom in and out, jump to where you are, and go back to the whole country. Zoomed far out, only the markers show, so the names do not pile up. The minimap no longer walks you anywhere when you tap it. That moved to the map's second tab, This area, which shows the island or town you are in at full size, with the people named. Click a spot there and you set off.


Twenty-six new checks ran alongside the 141 from earlier versions. They cover:
- that Pahang and Sabah are parchment while the sea around Perhentian is lit;
- that only Malaysia is drawn, with Thailand and Kalimantan left as open sea;
- that landing at Kuala Besut turns its coast green;
- that saves remember what you have seen;
- that a click on This area walks to that exact tile;
- that on a phone the map fills the screen with 44-pixel buttons.
One problem turned up in the game: the zoom keys worked only while the chart itself had focus. Taking screenshots turned up an older one. After chapter 2, the quest card at the top left named a side quest above the main story's goal. It now names the same quest as the goal it shows.
v0.33A carved-teak interface
The world fills the window, and the interface floats over it in teak, brass and songket.
Until now the game sat in a box on a web page, with a header, a 16:10 view, a status strip, a large empty chat box and a plain sidebar. Now the world fills the whole window, and the interface floats over its four corners, the way the resizable mode of the old browser MMOs does.
- Top left: a menu behind a carved flower emblem, and a parchment card showing your quest and what you are doing.
- Top right: a round minimap that turns with the camera, ringed in brass, with orbs for health and run energy.
- Bottom left: chat, which folds away to a single line.
- Bottom right: the panels, behind five icon tabs.

The look is carved teak and songket. Panels are dark teak with brass rails and small flowers at the corners. Borders carry pucuk rebung, the bamboo-shoot triangles woven along the edge of songket. Names and selected tabs sit on a red songket lattice. The emblem is a bunga pecah lapan, the eight-petalled flower of Malay woodcarving. Anything you read sits on parchment. Every icon is a 16 by 16 pixel drawing made in code, from the fish beside Fishing to the songkok in the hat slot.

Conversations now show who is talking. Each speaker's portrait is rendered once from their own v0.31 skeleton, head and shoulders, and kept for the rest of the session. The name sits on a songket plate, small diamonds count the pages, and Space turns them. Items in your pack open a card with their English and Malay names, what they do, and what Kak Yah would pay. A level-up raises a ribbon with a burst of petals, and hitsplats have shapes: a burst for a hit, a shield for a miss, a leaf for healing, and rings on the archery target. The sail to the mainland is now drawn on a parchment sea chart.


On a phone the panels become a bottom tab bar with Chat beside them. Each tab opens one sheet at a time, and every target is at least 44 pixels. The keyboard reaches everything: 1 to 5 open the panels, R toggles running, Space turns a page, and Esc closes things in order. A reduced-motion setting, taken from the system or chosen in the menu, stops the ribbon, the petals, the bobbing and the sailing. Because the world now fills the window, the renderer keeps to a pixel budget rather than drawing three times as many pixels.

Eighty-two new checks ran at 1440 by 900, at 1280 by 720 and on a 390-pixel phone, alongside the 59 from earlier versions. They cover:
- overflow, and which parts of the screen take clicks;
- shortcuts and the order Esc closes things in;
- tooltips, every panel and the portraits;
- reduced motion, touch targets and a name on every button;
- the contrast of each colour pair, including chat text on glass over a white worst case;
- that the page does no DOM work while you stand still.
Two problems turned up. The pixel font turned a small C into an O and a small G into a B, so labels moved to Alegreya Sans and Spline Sans Mono, and Pixelify kept the big titles and the numbers. The level-up ribbon also touched the page once more after it had already hidden itself.
v0.31People who move
Smooth characters with faces, an animation system, running, and creatures on the same bones.
Until now every person was a stack of separate boxes, with gaps at the joints and no hands, feet or face. Each one is now a single smooth low-poly mesh bent by a skeleton of 29 bones: hips, spine, chest, neck, head and jaw, eyes and eyelids, shoulders, arms and hands, legs and feet, and two bones for the hem of a sarong or skirt. Each joint blends between its two bones, so elbows and knees bend without cracking open. Clothes, headscarves, hats and beards are part of the same mesh, so a person takes one draw call where it used to take about two dozen. Everyone blinks, and when someone speaks, their jaw moves with the words.

Movement comes from a small animation system written for this game. Walking and running are tied to the distance covered, so feet never slide. Every kind of gathering has its own loop: a parang for chopping, a net thrown wide, a skewer held over the fire. Fighting has a three-strike staff combo, a guard stance, blocks, dodges, a flinch and a fall. Damage now lands when the blow connects, about a fifth of a second into the swing, not on the click. The game logic never waits for an animation. The tick runs as before, and the body catches up.

You can run now. Press R or click the orb under the compass. Running covers two tiles a tick and spends energy; a full bar lasts about a minute and a half. Energy comes back while you walk, faster at a higher Body level, and twice as fast sitting down. Monsters still move one tile a tick, so a crab can be outrun.

The islanders notice you now. Their heads follow you as you pass. They greet you with a salam, a nod or a wave, then go back to work: Pak Mat with his adze, Mak Jah fanning the fire, Abang Zul striking at the air, Tok Ali drawing at his targets. When someone speaks to you they gesture, and you turn to listen. Encik Rahman and Kak Yah wander a step at a time. Right-click yourself to wave, give a salam, cheer or sit down. If you are knocked out, you fall where you stand, lie still for three ticks, then wake at the spawn and get up.

The creatures use the same system. Crabs scuttle sideways on alternating legs. Monitor lizards trot with the spine and tail swinging. The macaques of Kuala Besut walk on all fours and bound when they are angry. Each has its own attack and its own way of dying.

Twenty-nine new checks ran in a headless browser before release, alongside the thirty from earlier versions. They cover run speed and energy, every clip and the prop it holds, blinking and talking, and a soak of 2,000 random frames looking for broken joints. They also set a budget for animation time. On the test machine, all the people and creatures in view animate in under half a millisecond a frame. They caught two snags: cooking never started its loop, and Abang Zul's strikes never made you flinch.
v0.28Teachers, archery, and a better site
Five islanders teach five skills, the bow arrives, and this page gets a redesign and a real map.
Perhentian Island now has five teachers besides Guru, each standing by the thing they know. Tok Ali keeps an archery range in a clearing near the beach. Mak Long Esah mends nets by the reef, Pak Mat works at the boatyard, Mak Jah cooks at the fire, and Abang Zul waits by the training post with a rattan stick. Each one sets a single task. Finishing it teaches a lesson that stays with you: faster fishing, faster chopping, less burnt food, a point of armour, and for Tok Ali, archery itself.
Archery is the eighth skill, Memanah. Tok Ali teaches it the way traditional archery is taught in Malaysia today: nock the arrow, draw the string to the chin, look at the target, release softly. Target practice is free. Shooting a crab costs an arrow, works from six paces, and needs a clear line of sight past the trees. Arrows come from the boatyard (one timber and one coconut fibre make ten) or from Kak Yah, who also sells a horn bow for Archery 10.

The site was redesigned after looking at how game landing pages and changelogs are put together. A game page wants a strong hero, one clear way to play, features you can scan, real screenshots and the people in it. A changelog wants a summary line on every entry, newest first, and older entries folded away. The map is now drawn from Natural Earth's real coastline, rendered in the game's own minimap palette. The route follows the rules of a subway map: one line, stations as nodes, only 45° and 90° turns, and a legend for every symbol.
Fifteen checks from v0.25 and fifteen new ones ran in a headless browser before release. They caught one real snag: Abang Zul kept on sparring when you came back to report, so you could never finish his lesson.
v0.25Landfall at Kuala Besut
Chapter 2: sailing, a second map, a shop, coins and clothes.
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. Encik Rahman is the harbourmaster, a post once called syahbandar. Kak Yah runs the sundry shop.

Coins came with her: ringgit, earned by selling what you catch and cut. The garment slots from v0.15 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.

Underneath, the world was rebuilt as zones so the game can hold more than one map, and saves from v0.18 carry straight over. Merging the mainland scenery into chunks the camera can skip took it from 317,000 triangles a frame to about 37,000. A headless playthrough caught a fish market built half in the sea and a jetty sign that read backwards from the boat.
From a question to an island in 3D
NewWorldPeopleLookSitePrologueNine versions and this site, v0.00 to v0.18: a test island, the first Pendekar, low-poly 3D, English names, a bigger island, people with necks, smoother steps and a quest journal.
SiteA place to tell the story
This website and its build journal.
This page. The screenshots on it are taken from the real build in a headless browser, and the journal grows with every version.
v0.18A journal for quests
A Quests tab with live counters.
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. 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.

v0.16Smoother steps
Eased walking, bending knees, no sliding feet.
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, and the torso twists against the hips.

v0.15People with necks
A better character rig, and garment slots for future gear.
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. Guru wears a tanjak, a folded headcloth; the player a songkok.

v0.13Bigger islands, fewer trees
A larger map with more open ground, fish and monsters.
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.

v0.11English first
English names lead; Malay sits beside them.
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.
v0.10Low-poly 3D
three.js, a heightfield, a sea, and a camera that orbits freely.
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 foam along every shore, a sun casts soft shadows, and fog settles over the far water. The game logic did not change at all; the renderer was swapped underneath it. On top came right-click menus, hover labels, hitsplats, XP drops and a minimap.
v0.05Pendekar, the whole game in 2D
Seeded islands, seven skills, Guru's tutorial, saves.
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: counts and reachability were tested in a headless run.
v0.01Brinefall, a throwaway island
A flat 2D test island to prove the tick loop.
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.
v0.00It started with a question
Why RuneScape caught on, and a game set in Malaysia.
It began as a question: why did RuneScape catch on? It ran in a browser, it was free, the skills rewarded time, and the world felt shared. That led straight to a plan: 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. Then a better idea for the start: the Perhentian Islands as a training ground, and a boat to the mainland.
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, and version 1.0. 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
Ways of silat Started
Weapon families with their own reach and rhythm.
- Range: the busur, a bamboo or horn bow
- Reach: the toya and other staffs
- Quick: keris and short blades
- Heavy: parang and the like
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
More to do on Perhentian Started
For players who are not ready to leave.
- Lessons from the island's residents
- Rarer fish, and a reason to cook them
- A hidden spot or two
A carved-teak interface Done
Shipped in v0.33.
- The world fills the window
- A round minimap with orbs
- Portraits in conversation
- A tab bar and sheets on phones
Lessons on Perhentian Done
Shipped in v0.28.
- Archery with Tok Ali
- Fishing with Mak Long Esah
- Woodwork with Pak Mat
- Cooking with Mak Jah
- Defence with Abang Zul
Landfall at Kuala Besut Done
Shipped in v0.25.
- 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
How it is built
Pendekar is designed by one player and built with Claude, in a 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.
- 1The player writes a note. Usually one line: what feels wrong, or what is missing.
- 2When the note asks for it, research comes first: references, real places, how others solved it.
- 3The change is built, with the game logic and the renderer kept separate.
- 4The result is played through in a headless browser, checked, and screenshotted.
- 5Published as a new version, and written up here.