Hey, I’m just curious about what sort of software stacks people are running with for their babylonJS stack!
Personally, I’m totally new to web development, as my background is in robotics engineering. Currently, I’m building a desktop app using Electron (electron-forge) with Vite and Typescript.
Personal:
Code: Node, Vite, TypeScript, Babylon.js, Colyseus, Svelte/SvelteKit
Tools: VSCode, Obsidian, Blender, Affinity suite (would also love to get into audio/music/MIDI but am currently clueless)
I’m very happy with my current personal web stack, but with work I’m less happy with React Native in particular and React in general (I’ve been spoilt by the joy of Svelte).
So first I just want to say I probably use this form just as much as anyone else at least for finding answers. I do not respond often because I feel the real experts should answer questions.
But at least this post just wants to share the stack for my projects and how I organize everything.
I have several big projects that I am working on at any given time but I am also a freelance dev. So I get thrown into a lot of scenarios where maybe I can’t use an outside library or all other options are broken and outdated.
I only use npm, webpack and TypeScript but I take advantage of npm workspaces.
This is my main mono repo with all my projects and utility libraries.
I have lost countless hours dealing with npm link issues and type issues. This was the only real solution I found. I tried using Vite and will use it for more simple web projects. But for my libraries, games, and some client work this is the best.
Building Project For Steam
So right now I have a game on Steam and online called Crystalline Bliss (which btw got some hugs updates coming soon to that). But the build process is a little more complicated for it because it is both online and on the server.
For that I have a testing server and two electron apps. One for dev and one for production. I have scripts that will auto link assets and code. I just have an .env json file that tells it what environment it is running in and other data.
I do not use the webpack dev server because it breaks completely with web workers. So I have had to found my own ways to preserve game state or skip to the parts I am testing.
Final Note
I started out using Babylon.js about four years ago after I graduated college. I have a degree in art with a minor in computer science. I started making games when I was 11 with game maker and made some games in college. But for all of college I worked as web developer mostly with PHP and jQuery.
Because of that a lot of what I knew was outdated by the fact I was working in a huge insulation. I wasted too much time solving problems that were already solved.
So I will just say always seek ready made trusted solutions first and be willing to try new things.
And ECS is better then OOP for complicated games any day of the week lol.
thanks for sharing that. I have built some electron stuff a while back. I dont have an immediate need to do anything desktop currently but it nice to see new options available
Hello edvart.
I also use Vite and really like its hot-reload feature. However, Vite doesn’t support .wasm files in development mode, which prevents me from using Havok with it. I hope Vite will add support for this content type in development mode.
Oh, and this one: minimal ECS implementation. The underlying pattern is pretty cool and useful outside ECS (see type ComponentClass<T extends Component> = new (...args: any[]) => T)
Build/Deploy:
Python/Blender/gltf pack (must have for lowering loading times) for everything 3d
Some (legacy) ImageMagick automation for 2d stuff
NodeJs, esbuild (lighter than webpack), plain old windows batch, Butler (cli to upload to itch.io). Puppeteer for copyright management. Using javascript (don’t want build extra step)
Testing: NodeJs, Mocha, Tutorial (in-game tutorial currently used for system testing; no clue how to ever automate this).
Analysis: Since I ran into issues: dpdm dependency analyser
Other:
Vscode/Notepad++/Babylon Playground
Gimp (I miss Photoshop), Calc (I miss Excel), KdenLive (video editor, actually cool), Audacity, Materialize/Material Maker, TexturePacker (sprite atlas)
You keep stacking stuff on your dependency pile. But in practice it becomes more like OINO (once in, never out)
No, you’re not. Or would you say BJS is outdated? I believe you’re at the forefront
And then, for whoever cares about a simple designer’s feedback… about ‘What’s your stack’:
Well, as said, designer here, so you can forget about vue, vite or react (except for just making a couple of adjustments in a built made by a dev/eng).
Code side, I’m pure bjs/js only for my babylon projects. Ok, add node.js to it but I suppose that’s pretty much it. I’m unable to properly work the backend (better leave this to the people who know )
Else, on the side of assets, video and 3D:
Well, I’m an all-time adobe user, so of course Adobe cloud (PSD, AE, AI for the most) and also Substance for some projects. On the side of 3D, I’m also advocating for C4D. My all-time best favorite (clearly off-track from the others ). But then, of course, not is if you could do without BLENDER (although, not my favorite on the side of UI). Else, since dealing with clients, any other from the leading I can cope with (if necessary ). On the side of ‘normalizing’ things, nowadays GLTF comes in like a must-have (my opinion only).