HN user

franck

641 karma
Posts7
Comments101
View on HN

Thanks so much! With a bit of luck and talking to the right people at the right time, we got our start when Mozilla gave us the opportunity to create technical demos for the release of Firefox 4 back in 2010. Among other demos, we created a game called Mozilla BrowserQuest at the time, which really set us on the path to working on creative, tech-driven projects through word-of-mouth. These days, most of our clients are already excited about creating campaigns that can spark conversations and generate organic sharing, so we don’t usually need to sell them on the concept—they come to us because they already believe in its potential.

Nothing complicated, we simply have initialization code that parses the GLTF scene on startup by iterating over the children of a specific group, and creating Rapier colliders for each of them (Triangle Mesh Colliders to be specific, in order to allow things such as curved ramps). Since their geometry is very simple, we can use directly the rendering geometry for the collider geo.

The main draw of the Unity Editor for us is how it auto-reloads assets, like 3D models, as soon as the asset file is updated. So the workflow is having your DCC app open in which you model things and export assets from, and Unity Editor to design your level where every model is always up-to-date.

This is not possible with Blender because it contains all models inside a single .blend file, so assets must be manually re-imported each you change them. There is a Link feature in Blender but in my experience it's not as good as what Unity does out of the box.

The rendering engine is using Three.js which is a WebGL library. The physics/collision detection code is using Rapier through a WebAssembly module available on npm [1], which means that it can be used on the web even though it's originally written in Rust.

The levels were built inside the Unity Editor, then exported to FBX, then went through a pipeline based on Blender python scripting that optimized their geometry, assigned materials and exported them to GLTF (the final format that we load in the browser).

[1] https://rapier.rs/docs/user_guides/javascript/getting_starte...

The physics engine we are using is Rapier 3D which does a lot of the heavy lifting, even though we had to tweak a lot the physics properties of the ball and surfaces in order to get something that felt right. For hotspots specifically, we implemented the magnet-like effect with custom code (by applying a force that pushes the ball toward the center and slowing it down at the same time) as there is no attractor primitive in Rapier.

The dual input is indeed a consequence of our isometric-view design choice, which I agree may not be the easiest way to control the ball. But the 45 degree angle just looks cooler in our opinion.

Yes this is an old project that we did back in 2015, but thank you for the broken link report, I just fixed it. Also, thanks for your feedback (which I agree with!) but we currently have no plans to update it.

Equinox.space 2 years ago

The same engine runs on both desktop and mobile, pathfinding performance wasn't an issue on mobile. We knew from the beginning that it was important for mobile controls to be "smart" and to assist the player as much as possible in getting around.

Equinox.space 2 years ago

Oh I loved the Journeyman Project as a kid and I didn't think of it at all when creating Equinox, but thanks to your comment I'm now starting to think it had some unconscious influence!

Equinox.space 2 years ago

Thanks a lot for your kind words! Metroid Prime wasn't a direct inspiration but it may certainly have had some influence on us, as we loved playing that game when we were younger.

Equinox.space 2 years ago

Thanks! About the character height, it's set at 1.6m and all the environment is supposed to be at the right scale, but perhaps we made the doors a bit too short. We tried to convey a bit of claustrophobic feeling, especially in the lower level, as you would expect in this kind of spaceship.

Equinox.space 2 years ago

Thanks a lot. I wish there was more too, but we unfortunately had to keep the project's scope under control! Lots of puzzle ideas and content were cut.

Equinox.space 2 years ago

Thanks. I guess a potential issue would be rendering the outlines because it's implemented with post-processing and I'm not sure how it would look in VR.

Equinox.space 2 years ago

Much appreciated, thanks! Releasing a successful game on Steam would be amazing of course but it's not easy, to say the least. I hope we'll manage to do it some day!