Announcing: babylonjs-archive

I maintain the awesome-babylonjs list on GitHub. One thing I noticed was that a lot of really good projects don’t have deployed URLs. With Heroku free tier and pixelcodr down, the problem has become even worse. Today, I’m starting babylonjs-archive to give promising but abandoned projects a home.

There are three working projects so far:

If you know of an old but interesting project, feel free to recommend it.

Some rules for consideration:

  1. No deployed URLs - This is the whole point of the project. If there’s a really old and unmaintained project that you like, you are more than welcome to fork it and either push the changes back or submit a PR to awesome-babylonjs pointing to your fork, but babylonjs-archive is for projects that aren’t currently playable.
  2. Games only - There are more than enough playground demos out there. Only real games that provide real fun and educational value are being considered at this time.
  3. Only two devDependencies: typescript and vite - This one will need to be changed once I decide how to handle multiplayer games, but for now, all projects must be rewritten to use vite. Vite was chosen because it doesn’t need a configuration file. Since projects are not tied to the build tool, that maximizes reusability. It also means less maintenance effort since there are fewer dependencies and security alerts.
  4. Use modern TypeScript and Babylon.js - Educational value is a key point. As such, all projects under babylonjs-archive should be rewritten to use modern TypeScript and ESM.

This is still just getting started, so there may be significant changes. If you’re interested in joining the organization on GitHub, you’re more than welcome to send me a message.

The Babylon.js community has always been incredibly helpful. If you’d like to join this effort or even have a simple suggestion on how to make things better, I’m always open. Thanks again to all the awesome Babylon.js developers and users for making this possible.

10 Likes

Good initiative!

give promising but abandoned projects a home..

The preveiling issue with abandoned projects is , um , they are abandoned.

So which one of the non exitent / non active developers of the said project/s is going to port all the code if its not TS…?

Since it can then be assumed that probably wont happen, this seems to be extremely couter intuitive to your objective?

But anyway , I guess you are allowed to set your own rules for what you are doing so good luck with that then.

They don’t have to be right now. I’m saying they have to be converted before being hosted. None of the three existing projects followed those rules when I forked them.

Love that idea!!! Please keep the fight!

I’d like to appeal to the Babylon community for help. There are two projects I’m having trouble with: block and roll-a-ball. Despite keeping almost all of the original code and only adding types, they both have bugs from simply updating to a newer version of Babylon.

Here is what roll-a-ball currently looks like:


Here is what it should look like:

The same for block:


These bugs aren’t due to any changes in the code; just from using a newer version of Babylon. I’d really, really appreciate it if anyone has any suggestions for how to fix either project.

9 years ago :frowning: I know we are trying to protect back compat but you may have found some breaking changes we itnroduced along the way :slight_smile:

Feel like jsut moving the camera could do the trick?
TRy to invert camera.position on one of the axis

No, everything is falling off the platform, which means gravity is working.

Oh so it was using some old versions of ammo I guess so maybe finding that version ?

Could be but I’m honestly not sure. The fact that the ball bounces (try cloning and running the original repo) before falling off makes me think the platform just somehow got turned 90 degrees.

Another game added: https://github.com/babylonjs-archive/endless-runner-3d

I ran into some problems trying to keep the code clean because nested classes use keys. I ended up just using a global var to store keys up/down, but it gave me an idea: would Babylon benefit from the Producer pattern? If it was observable, it might help with things like global developer options (debugMode, godMode, textColor) and status values (paused, loading, isGameOver).

1 Like

Wow. That’s a bold initiative :open_mouth:. I guess you know you’re getting yourself into some trouble with this, right? :grin:
I don’t have the time (nor probably the skills :face_with_hand_over_mouth:) to help… All I can say is “Let the force be with you:crossed_swords: :joy:

Another game added: https://github.com/babylonjs-archive/simple-3d-fps

I’d be really, really grateful to anyone who can help fix block. That’s one of my favorite Babylon games.

1 Like