I did it everyone, this is everything I am going to do and release and share and YOU can do! :)
I have been quiet for awhile and I want to now share with you all the things you must know and what you can do to help out:
TiberScript 1.2 is now officially real, I have made so much progress and so many upgrades, it is up to 10 to 124 times faster than 1.1 on its benchmarks and up to 240 times faster on a heavy frame, I learned SO MUCH from the other languages already built in the engine itself especially microScript 2.0! And there are A LOT of new features that I wanted and needed for making my dream game! I will now share with you all THE BIGGEST UPDATE OF ALL! The features you all have been waiting for ever since I said it, and there is not 3, not 4, not even 5, but 6 FEATURES! Here is the entire What's New in 1.2 from my Handbook itself:
What's New in 1.2
1.1 made TiberScript real. 1.2 makes it a full game scripting language. Every system a full length game actually needs is here now, and nothing from 1.1 goes away.
And then there is the one thing no other game language has.
- THE BIGGEST UPDATE OF ALL, in six parts. See Section 19.
(EDIT: this will be part of the actual full Handbook once I fully finish it and make sure everything is good! Plus TiberScript 1.2 is still on BETA and most of these features are in very early BETA and still has work to do!)- Time Is a Value. Your game can rewind itself, as far back as the whole game if you want, look into its own future, try "what if" without it happening, replay any moment, and play online with rollback netcode, all as plain TiberScript. And
online, one word, puts a game online: a room, a lobby with a link and a QR code to join from another window or a phone, players who watch, leave and come back, and rollback underneath. - A Million Things at Once.
swarm of bulletkeeps a crowd as a few blocks of numbers: a quarter of the memory, no garbage collection stutter, and snapshots the Timeline takes in a third of a millisecond. - The Forge. TiberScript compiled to JavaScript, the browser's own fastest language: 10 to 124 times faster than 1.1 on its benchmarks, 10 times faster on a real game's frame and up to 240 times faster on a heavy one, a game changed while it runs without starting over, and a door to the rest of the web.
- Fast. One word,
fast, and the Forge compiles that code to WebAssembly instead: a crowd moves in about a fifth of the time, and the math gives the same answer on every machine. - The Graphics Chip. Put
shaderin front of a function and the Forge writes it for the graphics chip, which runs it for every pixel at once: skies, water, fire, clouds, heat haze, shockwaves and black holes that bend the picture, all in TiberScript, about a millisecond for a whole 1080p frame. The same shader runs on the processor in a test or on a computer without a graphics chip, with the same colors, andswarm.drawPoints()draws a million things in 5 ms, 28 times faster than before. - Change the Past. The biggest of the six.
retro seconds(2) do ... endmakes a change two seconds ago and plays the game forward again from there with the same inputs, so the present becomes the one that change would have made. Save your code while the game runs, or move a tunable's slider, and all the time kept is played again with it: the run you are in becomes the run where the bug never happened.time.undoChange()puts back what had happened, andtime.showOldPast(true)draws it faintly over the new present.
- Time Is a Value. Your game can rewind itself, as far back as the whole game if you want, look into its own future, try "what if" without it happening, replay any moment, and play online with rollback netcode, all as plain TiberScript. And
- Light and effects. Lights, spotlights, sunlight and real shadows, soft or sharp, from walls, tile maps, round things, objects and whole swarms, a glow around every light, glows that light nothing, a light on every member of a swarm, and a finish on the whole frame (bloom, scanlines, a vignette, color fringes, big pixels, film grain, or an old television, all at once). A light is drawn like everything else, so a rewound, replayed or forecast game is lit right with no work at all. See Section 23.
- Physics that rewinds.
physics.add(crate, "box", 16, 16)and a crate falls, stacks, slides and is pushed; balls bounce and roll. It keeps nothing of its own, so a rewind, a forecast, a replay and a rollback move every body exactly, and every machine gets the same numbers. See Section 24. - Filters, and swarms the graphics chip moves.
effects.filter(shader)stacks your own shaders on the finished frame, in order, each with its strength, andswarm.moveOnChip(shader)has the graphics chip move every member of a swarm at once. See 23.11 and Section 25. - A whole game saved in one line.
save.game()writes down everything the game is right now, andsave.loadGame()puts all of it back. See Section 15. - Controllers. Xbox, PlayStation (the DualSense and DualSense Edge too), Nintendo Switch (the Pro Controller and Joy Con, in every browser, two Joy Cons as one controller), Steam, 8BitDo, Logitech, PowerA, HORI, GameSir and any other controller, plugged in or over Bluetooth, answering a light touch. Every player keeps their number when a controller is unplugged, every brand's button names work, button prompts are drawn to match the controller in the player's hands, controllers rumble, and a setup screen teaches the engine any controller a browser does not know. See Section 7.
- 60 or 120 frames a second, and 120 updates, on their own.
Tiber.frameRatedraws in between updates on a fast screen,Tiber.renderScalekeeps older computers at full speed, the performance monitor (F3) has a switch for pictures a second and one for updates a second, a game written withTiber.tickRate = "auto"runs 120 real updates a second by itself on a 120 Hz screen with room to spare, and the updates are locked to the screen's refresh so motion never stutters. See Section 21. - Built in platform SDKs, in every language.
platform.unlock(), stats, leaderboards, cloud saves, the player's name and presence, the same calls in TiberScript, microScript, JavaScript, TypeScript, Lua, Python, C#, Rust and AssemblyScript: kept on the player's computer in a browser, sent to Steam or Epic Online Services in a desktop export, and ready for a console's own SDK. See Section 22. - Modules.
importandexport. A real project can finally live in more than one file. - The Standard Library. Real string, array, math, and table helpers instead of leaning on built in functions alone.
- Inline functions.
function(a, b) ... endas a value, for callbacks you only need once. - Sequences.
sequence do ... wait(N) ... endfor cutscenes, dialogue, and timed attack patterns. - Events. A quick global
on()andtrigger()for simple cases, and real declaredsignalblocks for anything bigger. - Enums. Named states instead of bare strings, so a typo is a real error instead of a silent blank screen.
- State hooks.
enteringandleavingblocks run once when a state starts and ends. - Traits.
useslets an archetype share behavior with as many traits as it needs. - Tunable variables.
exporta value and change it without touching code. - Dialogue. A real branching conversation system, built in.
- Action mapping.
bind()andaction(). Input tied to intent, not physical keys. - Sprite animation. Frame sequences and animation state, built in, and any one frame of a sprite drawn by name, mirrored when it faces the other way.
- Camera upgrades. Smooth follow, bounds, and parallax layers.
- Draw layers. Real control over what renders in front of what.
- Real collision. Shapes beyond boxes, actual resolution, and layers and masks.
- Fixed timestep physics. A
fixedUpdate()that runs at a steady rate no matter the frame rate. - UI primitives. Buttons, health bars, and word wrapped text boxes.
- Structured save data. A real save system, not just a slot that exists or does not.
- Networking hooks. microStudio's multiplayer, finally reachable from TiberScript.
- Upgraded physics. Mass and friction, not just gravity and bounce.
- Tween easing. Bounce, elastic, and ease curves, not just linear motion.
- Cancellable timers. A schedule you can call off before it fires.
- Time in seconds.
seconds(1.5)anywhere a frame count goes. where.for e in enemies where e.hp < 10 dopicks out part of any list or swarm, in the loop itself.- A bigger randomness toolkit. Seeding, decimals, coin flips, picking from a list, and random direction.
- Audio channels. Separate music and sound effect volume, and
audio.has()to ask what a project contains. - String interpolation.
"Score: $(score)"without a single+. - Testing.
testandassertso you can trust your own code as your game grows. - Better errors. Messages that say what was expected, not just what broke.
- Typed built ins. Every built in function now has a known signature, the foundation real autocomplete needs.
- A bigger Tiber namespace. Version checks and feature checks, alongside everything it already did.
- Signal aware waiting.
wait()now pauses for a signal, not just a frame count. - Whole object saves. Save and restore an entire archetype instance in one call.
- A live debug overlay. See every trigger fire, every tag on the object under your cursor and where each frame's time went, and scrub back through time.
- Tile maps with collision. Stand on tiles, stop at walls, jump up through ledges, in one call.
- Noise and pathfinding. Smooth randomness for worlds, and a shortest route around them.
All 1.1 scripts run unchanged, with one deliberate exception, explained in Section 1: a for loop's counter now belongs to its loop. Nothing above replaces anything. It all sits on top.
1.2 is what microStudio runs for every project set to TiberScript. The language menu offers TiberScript 1.2, and that is what a new project gets. TiberScript 1.1 is still inside microStudio, frozen exactly as it shipped, but it is no longer offered in the menu: a project that was already set to 1.1 keeps running on it and still shows its name, and a new project never needs it, because every 1.1 program runs on 1.2. Every 1.1 program has been played on both engines, frame by frame, with the same keys and the same random numbers, and draws exactly the same on each. Every code block in this handbook is run on the engine as a test, and every part of 1.2 has tests of its own, listed in the README. (EDIT: I am actually thinking of open sourcing the entire TiberScript 1.1 Runner, you guys let me know if you guys want to!)
1.1 itself grew during the 1.2 work (EDIT: You can now check this out from the TiberScript 1.1 Test and Learn that is already out in microStudio right now!), and those additions are part of 1.1, not 1.2. The final 1.1 check added 0 counting as false, alter color= and alter rotation=, view world, Tiber.state and Tiber.frame, min() and max() of any number of values, functions called from fields, and round circles. Before that came % and %=, string escapes, single quoted strings, for ... in, the string methods .endsWith(), .contains(), .toUpper(), .toLower(), .trim(), .substring(), .replace(), .split(), the list methods .insert(), .pop(), .contains(), .indexOf(), .join(), .sort(), .reverse(), alter volume= pitch=, a working pause("music") and resume("music"), Tiber.version and Tiber.lastError, the rest of microStudio's screen, touch, gamepad, system and storage, and emit(), flash() and shake() that show in a game with its own draw(). The 1.1 Handbook covers all of them.
And since I have TiberScript 1.2 already set I have already modified and changed the World's First TiberScript into TiberScript 1.2 WITH TONS OF NEW FEATURES! You can yes use your Xbox controller, or your 8bitdo controller, your PS Controller, and so much more I have tested them all they are still in development and on BETA because they are not the best, 5 files for the games for each person or just yourself in different modes, everything is saved even if you leave and much improved from the previous 1.1 save. You can try out here!
https://tiberiuscreator.itch.io/worlds-first-tiberscript-game
Tons of new Reddit posts and new posts on my discord community server (here please go if your a supporter and wanna help! https://discord.gg/YzwGmn8KQj), and also YouTube videos and shorts will start showing up in my channel soon I am sorry it is taking a while! Thank you all so much for reading this and supporting my journey this is the biggest part of it! :)






