Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Kaboom.js is a zero-dependency declarative JavaScript game library (kaboomjs.com)
205 points by slmjkdbtl on April 7, 2021 | hide | past | favorite | 42 comments



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)

Ask me anything!


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:

- ReplJewled https://replit.com/@ConnorBrewster/ReplJeweled

- Flappy Mark https://replit.com/@slmjkdbtl/flappymark

- Bamboo Ninja https://replit.com/@RoBlockHead/KaboomJam

- Cookie Vs Oreo https://replit.com/@Coder100/COOKIE-VS-OREOS-KABOOMJS-BOOMOM...


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!


Oh, I also made a 2D version too you can glance at the API design, it's just not super documented.

https://github.com/ngokevin/pframe


I just wanted to say thank you, it looks superfun!


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

   socket.on("msg", () => { player.move(...) })


Wow great work tga, love it!!


hh thank you shu!


This is the first time I've seen a dev-made musical intro video for a game platform and it was great!


The video, song, logo. Everything so fun and cool, made me laugh. Really looks like the author went the extra mile.


Thank you! Had fun working on that hh


Yup, totally awesome.


That’s interesting. As side-projects I just created two sibling games using JavaScript:

https://www.gameofpainting.com

https://www.paintingpuzzles.com

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.


Great games!!


This is really exciting for me.

I want to make little games for fun and js/Web is the best distribution method for a fun hobby. But phaser is way too heavy for my target.

How well does it work on mobile for simple games?


Hi! Thanks. Mobile is not well supported yet, but will be focused shortly, but for simple games for sure, the goal is to get a simple game out quickly


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.


I like in the 'car' demo how continuing to zoom out, you can end up with zero or even negative scale so it's rotated 180.


hh yeah that's fun! try playing a game upside down


That looks like really nice concept for very quick game prototypes.

Is there something similar?


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


TIC-80 is also another fantasy console like pico8, same idea.


yea! TIC-80 is probably the best open source one it's written in taste


This is very cool. What was your inspiration for this?


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.


hh I love the sounding of "example-based programming"! i would also add a "spreadsheet-based programming"


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

Edit: assumptions bad


@slmjkdbtl works at Replit and he designed and lead this project :)


Ah my mistake! Awesome to see. Thanks for all the great work


I wasn't alive for the web in the '90s but I really dig the retro vibe

Super neat project!


I like it. You brought back some fun. Congrats for the job well done.


Looks cool, can this work on mobile? Via react native or something?


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?


yeah, the click ones should be trivial I'll add support now


honestly that could be huge. Imagine a repl.it arcade on iOS, kids would go wild to make stuff their friends could play on their phones.

At least middle school me would have.


Should be possible with Apache Cordova.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: