Frank Force

Frank Force

@frankforce.bsky.social

Programmer • Game Dev • Generative Artist • Size Coder • Musician • Zen Buddhist • Wizard • Friend to Cats 🖖 linktr.ee/frankforce

454 followers1.6K following554 posts

Pinned

The PIROOT demo is LIVE on Steam! Go play it now! Holy cow, I've been working on this game for 10 years. It has a custom engine and open world gameplay. Please wishlist and RT, coming to early access very soon. 😅👍 store.steampowered.com/app/2523510/... #indiedev #gamedev #metroidvania

store.steampowered.comPiroot on SteamJourney to the center of the planet in Piroot, an open world adventure! Explore and survive as a shipwreck's lonely survivor. What secrets lie at the planet's core, and can you trust the voice leading...

LittleJS now does 2D and 3D! 🚂🎉 The same tiny, fast, open source JavaScript engine. Now with a full 3D renderer in the same canvas as your 2D game, level editors built in, a particle effects library, a faster core, and tools for making games with AI. frankforce.com/littlejs-is-...

frankforce.comLittleJS is 2D and 3D nowLittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your…
View full thread

It's Small! The whole engine, with 3D, Box2D physics and sound, is about 150 KB gzipped. A bundled 2D game ships at about 26 KB, a lit 3D scene at 47 KB. Most engines this complete are a megabyte or more.

LittleJS now does 2D and 3D! 🚂🎉 The same tiny, fast, open source JavaScript engine. Now with a full 3D renderer in the same canvas as your 2D game, level editors built in, a particle effects library, a faster core, and tools for making games with AI. frankforce.com/littlejs-is-...

frankforce.comLittleJS is 2D and 3D nowLittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your…
View full thread

LittleJS now does 2D and 3D! 🚂🎉 The same tiny, fast, open source JavaScript engine. Now with a full 3D renderer in the same canvas as your 2D game, level editors built in, a particle effects library, a faster core, and tools for making games with AI. frankforce.com/littlejs-is-...

frankforce.comLittleJS is 2D and 3D nowLittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your…
View full thread

LittleJS now does 2D and 3D! 🚂🎉 The same tiny, fast, open source JavaScript engine. Now with a full 3D renderer in the same canvas as your 2D game, level editors built in, a particle effects library, a faster core, and tools for making games with AI. frankforce.com/littlejs-is-...

frankforce.comLittleJS is 2D and 3D nowLittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your…
View full thread

Integrated Level Editors The level editor is built into the engine now, in 2D and 3D. Press Escape while your game runs, edit the level in place with undo, autosave and prefabs, press Escape again and keep playing. Then make it an editor for your game: github.com/KilledByAPix...

LittleJS now does 2D and 3D! 🚂🎉 The same tiny, fast, open source JavaScript engine. Now with a full 3D renderer in the same canvas as your 2D game, level editors built in, a particle effects library, a faster core, and tools for making games with AI. frankforce.com/littlejs-is-...

frankforce.comLittleJS is 2D and 3D nowLittleJS just got the biggest update since it launched! It is still the small, fast, dependency-free HTML5 game engine it always was. Now it also has a full 3D renderer sharing the canvas with your…

New cash prizes for LittleJS Jam, thanks to Wavedash! Publish your entry on Wavedash and use at least one advanced SDK feature for a chance to win. The LittleJS Wavedash plugin makes it easy! 🎉

New cash prizes for LittleJS Jam, thanks to Wavedash! Publish your entry on Wavedash and use at least one advanced SDK feature for a chance to win. The LittleJS Wavedash plugin makes it easy! 🎉

javacript code published 12/18/2024 for(n=i=2e3;i--;x.fillRect(i,Y,-30,5))n+=S(n)*97,Y=i**4*t%1080,g=(Y-700)**2<n,s=Y<700,d=Math.hypot(i-960,s?Y-440:i**5%400),x.fillStyle=`hsl(${d<129?60:s?Y/5+g*29-79:309-Y/8} 99%${99-d/16-g*49}%`

you can make a voxel mining game with procedural textures in only about 100 lines of code using LittleJS. this is one of the short examples that comes with the engine.

just tested out my new dreamcast homebrew at a local game show and it worked! booted from the disk with music and everything. saw a slight glitch i still need to fix but otherwise feels good.

View full thread
View full thread

It's small. 🐁 The whole engine, with 3D, Box2D physics and sound, is about 100 KB gzipped. The core is 36 KB. A bundled 2D game ships at around 26 KB.

Reversiology ⚪️⚫️ a 3D chip in a little bit of code. www.dwitter.net/d/36395 with(x)for(a=3-S(t),i=0;i<40;beginPath(fill(ellipse(890+i*3,...i>9?[600-i*3,r=540,r/a,95]:[950,r,r/7,0],0,9))))fillStyle=i?i>9?R(v=i>37?315-a*30:i>23&&a*70,v,v):'#0001':'#174',r=i++?i*29+199:2e5

View full thread

Don't let the friendly coach fool you. The top level is stronger than any human! It reads 22 moves ahead, plays the last 22 perfectly, and holds its own against Edax, one of the strongest Reversi programs. 🧠

The part I use most: hints when I'm stuck, and "their idea", which shows what the AI is planning to do to me. You can take back any move and try something else. There are 156 puzzles from real games too. 🚀

I made this because I wanted to get better at Reversi but had no idea what I was doing wrong. So the coach grades each move and tells you why, in plain words. Here it is catching me giving away a corner. 👍

⚫️⚪ this JavaScript makes a tiny random go board: www.dwitter.net/d/36385 W=108 t*=60 with(x)fillStyle=t?t**8&t>9?'#fff':R():'#ca7',t&&t<10?fillRect(523,t*W,873,9)*fillRect(t*W+415,W,9,873):beginPath(fill(arc(523+t%9*W,(t/9|0)*W,t?Math.random()>.6&t<89&&50:2e3,0,9)))

every SP13KTRA skybox, stacked 🌈 all eight panoramic skies are now baked into textures for the Dreamcast port. It draws faster and looks better too! 👍 #dreamcast #homebrew #js13k

My JS13K game SP13KTRA is now available on Dreamcast! 💿 All 8 tracks, 60 fps, VMU saves, full soundtrack. More about how I did it in this thread. 🧵 #dreamcast #homebrew #js13k #claude

View full thread

My JS13K game SP13KTRA is now available on Dreamcast! 💿 All 8 tracks, 60 fps, VMU saves, full soundtrack. More about how I did it in this thread. 🧵 #dreamcast #homebrew #js13k #claude

View full thread

It wasn't easy and I had to help solve some of the tougher bugs and weird graphical glitches we saw along the way. Everything is running smooth now!

The first boot was barely 11 fps. So we replaced the stock GL layer with a custom PowerVR renderer and did some other optimizations to get it to a solid 60 fps in the Flycast emulator.

My JS13K game SP13KTRA is now available on Dreamcast! 💿 All 8 tracks, 60 fps, VMU saves, full soundtrack. More about how I did it in this thread. 🧵 #dreamcast #homebrew #js13k #claude

I've seen some cool stuff made by Claude so I wanted to try an AI-assisted retro port. This game was the perfect candidate: small, self contained, everything procedural. So I let Claude hammer on it, rewriting it in C++ and testing it against the original.