You are a Glyphsinger — a hacker of the ancient network. Your weapon is language. Your power is the ability to make machines sing. Twenty quests await. The network will not yield easily.
> By the time you finish, you'll know how to code.
> You just won't know how you learned.
~ Crack the vault ring target = net.scan("sector-7") ring key = archive.search("passphrase") ring result = lock.crack( target, key ) perhaps (result.success) { sing "Vault breached." sing result.data } otherwise { sing "Warded. Try again." }
The network was built by the old ones — engineers who wrote in a tongue called Glyphscript, whose programs sang their instructions into the machine-mind. Now only you remain who can read the glyphs.
Five regions, each more guarded than the last. Nodes to scan, archives to search, locks to crack. Every system tells a story — if you can read the signals.
You are not a wizard. You are a programmer. But in this world, there is no difference. Your spells are functions. Your incantations are algorithms. Your power is logic.
The Gatekeeper, the Architect, the Archivist, the Signalkeeper, the Oracle — each guards a chapter's secrets. Each will teach you what they know. Some will test your soul.
Every spell you cast leaves traces. Write inelegant code and the network's guardians will notice. Stay clean. Stay quiet. Or face consequences.
They monitor the network. They cannot see your face, but they can see your spells. Sloppy code triggers alarms. Brilliant code passes like shadow.
At the end, the Oracle will reveal what the glyphs truly are. What you've been writing all along. The twist no one sees coming — but everyone remembers.
Every quest is a puzzle. You get a briefing, a blank editor, and access to the system's APIs. Your spell is your solution. Cast it and see what happens.
Tap-to-place spell blocks for mobile and tablet, or write raw Glyphscript in the code editor. Both are always available — they stay in sync.
Cast your spell and watch the terminal respond in real time. Errors, results, and lore — all in one stream. See your code execute.
Each region has real API calls: net.scan(), archive.search(), signal.intercept(). The world responds to your code.
Complete quests cleanly to earn reputation. High detection scores mean consequences. Low detection means you're a ghost — the best kind.
Every keyword is a concept. Every concept is real programming. The syntax looks like fantasy — but the machine understanding is identical to JavaScript.
| Glyphscript | JavaScript | Meaning |
|---|---|---|
| ring x = 5 | let x = 5 | Variable |
| precious PI = 3.14 | const PI = 3.14 | Constant |
| song greet(name) {} | function greet(name) {} | Function |
| answer x | return x | Return value |
| sing "hello" | console.log("hello") | Print output |
| perhaps (x > 0) {} | if (x > 0) {} | Conditional |
| otherwise {} | else {} | Else branch |
| journey (i in arr) {} | for (i of arr) {} | For loop |
| wander (x > 0) {} | while (x > 0) {} | While loop |
| realm Hobbit {} | class Hobbit {} | Class |
| forge(name) {} | constructor(name) {} | Constructor |
| goldberry / sauron | true / false | Booleans |
| shadow | null | Null value |
| attempt {} rescue {} | try {} catch {} | Error handling |
~ FizzBuzz — every programmer's trial ~ Count to 100. Multiples of 3: Fizz. ~ Multiples of 5: Buzz. Both: FizzBuzz. journey (n in range(1, 101)) { perhaps (n % 15 == 0) { sing "FizzBuzz" } otherwise perhaps (n % 3 == 0) { sing "Fizz" } otherwise perhaps (n % 5 == 0) { sing "Buzz" } otherwise { sing n } }
~ A spell that remembers song makeCounter() { ring count = 0 song increment() { count = count + 1 answer count } answer increment } ring counter = makeCounter() sing counter() ~ sings: 1 sing counter() ~ sings: 2
Write Glyphscript below. Use sing to output, ring to declare variables. Press Cast — and watch the machine sing.
Every mechanic in the game maps to a real programming concept. By the time you reach the Oracle, you'll have practiced all of the fundamentals — without a single boring tutorial.
"The glyphs you've been singing all along — they have another name."
When the Oracle finally speaks those words in Quest 20, the player realizes: every spell they cast was real code. Every loop they wrote to scan patrol nodes was a for-loop. Every conditional that checked for honeypots was an if-statement. Every function they defined to crack a cipher was a function.
They didn't learn programming. They did programming. The language just had a different skin.
"ring is let. sing is console.log. song is function. You have been writing JavaScript. You have always been writing JavaScript. The glyphs... are just the way the old ones chose to see it."
Every execution is observed. Inefficient loops, brute-force guessing, redundant operations — the network notices. Stay below the threshold, or trigger an alarm.
The Watchers count your operations. A brute-force loop that runs 10,000 times screams louder than a targeted search that runs 10. Elegance is stealth.
Clean executions slowly reduce your detection level. A careful Glyphsinger can recover from a noisy spell — if they act fast and smart.
Hit 100% and the Watchers lock you out. The quest resets. Your code is wiped. You have to start over — smarter. There is no save-scumming.
Chapter 5 cuts the detection decay rate in half. The Core does not forgive. Every spell must be deliberate. This is where you find out if you actually learned anything.
The path through the network is laid out before you. Each quest unlocks when you complete the last. The Oracle waits at the end.
Free to play. No downloads. No accounts. Just you, a blank editor, and a network that won't give up its secrets without a fight.
Free: All 20 quests. No paywalls. Currently in development.