Hi! My name is tga and I'm the author of kaboom.js. I'm working at replit and this is part of the effort of us trying to make game dev more accessible to beginners & intermediate programmers.
Kaboom is like a summary of me trying to learn game dev. There're a lot of tools and most of them tend to get bloaty as they go on, they often require complicated setups and hard to really for beginners to really get started, one goal of kaboom is to allow beginners to get a game up and running with no effort and start enjoying the game dev fun right away.
Using Js is because I want it to run natively on browser, also it seems like the "go-to" beginner language right now, but I'm also thinking about making Kaboom Native where it uses QuickJS + platform native APIs (thinking sokol for that) to run on native platforms, so you can write your game in Js once and run on every platform natively (so unlike other cross platform engines, it doesn't require emscripten / WASM on web)
Inspired by fantasy consoles, there's also a special editor on replit that enables you code and manage / create assets in the same environment, check it out! https://replit.com/kaboom (still in early dev)
Worth noting that while Kaboom.js is aimed at novices, it turned out to be super fun for developers too. Our team is having a lot of fun with it -- you can have an idea write a game in 30 minutes to an hour in typically less than 100 LoC. Some examples from our team and community:
Cool! Not currently working on it personally anymore but I co-created A-Frame which is also declarative gamedev library (using HTML). Seemed successful at getting non-gamedevs and webdevs to build 3D/VR for the first time, and was popular with educators and kids. An HTML interface at the top level made it much more friendly for people even intimidated by JS.
We were heavily relying on Glitch and driving bunch of traffic to them at first, but now featuring a replit as one of the starter playground examples.
Hi! A-Frame is super interesting and I love how it has an innovative markup style and have a customizable entity component system at the same time. I've always known about it but never really dived in myself but looks like there's tons of good stuff and inspiration! Will definitely take a closer look. Thanks for replying and creating A-Frame!
Hey! So I discovered kaboom.js yesterday and I think it’s really cool! I’d like to starting building some games, but I was thinking about maybe making them multiplayer, running commands through websockets or something. I don’t see any ways to control character outside of key pressing or clicks. Do you think this would be possible?
It definitely possible if you build your own networking stack, but native multiplayer support is planned! Also you can control characters through any events, like
I optimized for the “fasted path to ship”, so I used React only, as it is what I know. The games reflect the limitations of the tools of course. They are just tapping games with simple game logic.
It would be nice to have something more powerful but still in a language that I know (I have no intention of going full game-developer). I’ll take a look at it.
How mature is this? Can I use it to teach kids? How is it more desirable than makecode arcade? I’m right in the use-case for this and have tried many alternatives.
Somewhat early but very usable. Check out the environment on Replit. We are exactly targeting your use-case. Feel free to email us with feedback amjad@repl.it
If I may be so bold as to make your case for you, a huge pain point in the amazing software that is makecode arcade is that it pigeon holes you into TypeScript strict mode, which, while an amazing and flexible technology for seasoned engineers, it is a a very limiting and confusing convention for young learners.
You mean quick game making tools? Yeah there're some good alternatives like love2d, pico8, compared to these kaboom provide more abstractions and helpers and runs natively on web, but it's also less mature than these since it's much younger
Hi! It's mainly a summary of me trying to learn game dev and reflection on current tools, also Scratch kinda inspired the "blocky declarative" style because we hope kids can make games with kaboom with "real code" just after they completed learning Scratch. Also a lot of softwares I like e.g love2d, PICO8, sokol, Amulet, Klik & Play
Klik n Play was such a fascinating programming model. I can't think of many places with... Example-based programming? It was such a curious paradigm, in retrospect.
They didn’t create it, this was made by the team at repl.it. In case a mod sees this, it would be great to be able to provide a reason for flagging a submission
It's not on mobile yet, but I'm thinking using QuickJS + platform native APIs to enable them run on native platforms (like React Native but only care about getting window with graphics / audio context, thinking about using sokol for that). But yeah you can always just put a webview and run it.
None of the demos seems to work on mobile. Which is kind of expected as they depend on a spacebar. But even the buttons example does not work as there is no mouse click on mobile?
Kaboom is like a summary of me trying to learn game dev. There're a lot of tools and most of them tend to get bloaty as they go on, they often require complicated setups and hard to really for beginners to really get started, one goal of kaboom is to allow beginners to get a game up and running with no effort and start enjoying the game dev fun right away.
Using Js is because I want it to run natively on browser, also it seems like the "go-to" beginner language right now, but I'm also thinking about making Kaboom Native where it uses QuickJS + platform native APIs (thinking sokol for that) to run on native platforms, so you can write your game in Js once and run on every platform natively (so unlike other cross platform engines, it doesn't require emscripten / WASM on web)
Inspired by fantasy consoles, there's also a special editor on replit that enables you code and manage / create assets in the same environment, check it out! https://replit.com/kaboom (still in early dev)
Ask me anything!