25 comments

  • turtledragonfly14 hours ago
    This is super cool, and I like the no-nonsense presentation.<p>I&#x27;m curious to know where he takes the gameplay. He mentions it being digging-focused, and also mentions the digging&#x2F;terrain deformation aspects in other games like No Man&#x27;s Sky are relatively low-fidelity. I wonder what a &quot;high-fidelity digging game&quot; looks like (:<p>Aside, if I may self-plug: I wrote a small series on SDFs, for those who might be interested[1]. I&#x27;m also using them in my game engine (though it&#x27;s 2D, for me).<p>[1]<p>* <a href="https:&#x2F;&#x2F;festina-lente-productions.com&#x2F;articles&#x2F;sdfs-1&#x2F;" rel="nofollow">https:&#x2F;&#x2F;festina-lente-productions.com&#x2F;articles&#x2F;sdfs-1&#x2F;</a><p>* <a href="https:&#x2F;&#x2F;festina-lente-productions.com&#x2F;articles&#x2F;sdfs-2&#x2F;" rel="nofollow">https:&#x2F;&#x2F;festina-lente-productions.com&#x2F;articles&#x2F;sdfs-2&#x2F;</a><p>* <a href="https:&#x2F;&#x2F;festina-lente-productions.com&#x2F;articles&#x2F;sdfs-3&#x2F;" rel="nofollow">https:&#x2F;&#x2F;festina-lente-productions.com&#x2F;articles&#x2F;sdfs-3&#x2F;</a>
    • nnevatie47 minutes ago
      Seems you&#x27;re not familiar with how game projects with a custom engine typically go. Let me elaborate on this - the steps involved are:<p>1. Create a custom game engine.
    • plagiarist13 hours ago
      I am interested in the small series and also the game engine (if not covered in the series). I will read these, thank you for sharing.
  • milgra1 hour ago
    I had the same idea but with voxels. The idea works fine, more work on photorealism needed : <a href="https:&#x2F;&#x2F;youtu.be&#x2F;LBzuXj21_bY?t=128" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;LBzuXj21_bY?t=128</a>
  • mbullington17 hours ago
    Go Mike! Been seeing his progress for a while on Bluesky, I knew exactly (and who) what this was when I saw it on HN.<p>I was rendering-curious when we overlapped together at Figma. Mike was super patient and giving with his time, answering all my dumb questions and aiding with my Maker Week projects. Excited to see him take on something so ambitious next.
  • rjh294 days ago
    Really impressive work. He covers it at the end, but being able to create tunnels into terrain, walk through them and then make the terrain disappear. Or make holes in the ground and move them around to suck items in. Or dynamically erase or add to any terrain in real time. A lot of interesting gameplay opportunities here and surprisingly performant!
  • msephton2 days ago
    Great video. A new game engine powered by SDFs is the sort of thing I want to find out about. Not the next game in a long running franchise that looks the same as all the others that preceded it. One for the from-scratch game dev nerds like myself!
  • yunruse4 days ago
    The physics engine mentioned towards the end, Jolt Physics [0] is used in the frankly blockbuster games Horizon: Forbidden West and Death Stranding 2 and yet opens its description with<p>&gt; Why create yet another physics engine? Firstly, it has been a personal learning project.<p>which is really rather wonderful and inspiring to see.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;jrouwe&#x2F;JoltPhysics" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jrouwe&#x2F;JoltPhysics</a>
    • armada65116 hours ago
      Its use in those games is no mere coincidence though, the creator of that physics engine, Jorrit Rouwé, has worked at Guerilla Games since the Killzone days.<p><a href="https:&#x2F;&#x2F;jrouwe.nl&#x2F;games.php" rel="nofollow">https:&#x2F;&#x2F;jrouwe.nl&#x2F;games.php</a>
    • V__16 hours ago
      It has also become the default physics engine in Godot.
    • thom16 hours ago
      Also increasingly well integrated into Godot.
  • num3ric16 hours ago
    I wonder if ReLU fields could help reduce cache grid resolution while improving reconstruction precision? See <a href="https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2205.10824" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2205.10824</a>
  • jacobgorm16 hours ago
    GameGlobe from Haptico and Square Enix, the engine of which also powered Project Spark from Microsoft, also used an SDF engine. Former colleagues of mine built the tech in Copenhagen and I remember getting a super impressive demo back then. This was the first time I heard of SDFs.
  • deckar0117 hours ago
    Dreams on PS4 had an SDF modeler, but I’m not sure if the runtime was SDF. Now that I think about it, the rendering engine had a Gaussian splat look to it years before that paper.
    • turtledragonfly15 hours ago
      The Dreams team made a nice talk at SIGGRAPH 2015, if you want to check it out:<p>* Slides (good notes): <a href="https:&#x2F;&#x2F;advances.realtimerendering.com&#x2F;s2015&#x2F;AlexEvans_SIGGRAPH-2015-sml.pdf" rel="nofollow">https:&#x2F;&#x2F;advances.realtimerendering.com&#x2F;s2015&#x2F;AlexEvans_SIGGR...</a><p>* video: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=u9KNtnCZDMI" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=u9KNtnCZDMI</a>
    • koolala17 hours ago
      They discuss Dreams in the video and even explain Brick rendering.
  • tamat5 hours ago
    the problem with SDF engines is that you have to reinvent everything, as current pipelines rely on triangles.<p>That means:<p>- Software to model using SDF (like Womp)<p>- Technique to animate skeletons using SDFs<p>- Tool to procedural texture surfaces using SDFs<p>At least he solved the physics part, which is also complex.<p>And also, his way of carving is by instantiating new elements, which works for small carves, but if you plan to have lots of tunels, then the number of instances is going to skyrocket.
    • andybak2 hours ago
      Although a decent chunk of modern tooling is there to handle the limitations of triangles. And modelling is often using higher-level abstractions that are only turned into triangles at the end of the process.
  • cepacked3 hours ago
    I use SDFs on my render engine to render text. It allows me to debug values inside shaders. (I can print value of an uniform, texture value etc.)<p>(It&#x27;s a combination of line segments for each letter and digit)
    • kaoD1 hour ago
      Are you aware of Valve&#x27;s paper[0] for glyph rendering via SDFs? You can get amazing results from a low res glyph atlas.<p>[0] <a href="https:&#x2F;&#x2F;steamcdn-a.akamaihd.net&#x2F;apps&#x2F;valve&#x2F;2007&#x2F;SIGGRAPH2007_AlphaTestedMagnification.pdf" rel="nofollow">https:&#x2F;&#x2F;steamcdn-a.akamaihd.net&#x2F;apps&#x2F;valve&#x2F;2007&#x2F;SIGGRAPH2007...</a>
  • ludicrousdispla5 hours ago
    The interaction with the terrain reminds me of Astroneer, although I don&#x27;t know if that game uses SDFs.
  • eviks5 hours ago
    Excellent technical presentation! Though the style itself is a bit too &quot;clay-like&quot;, like I wouldn&#x27;t expect a cube melding with the terrain sand to be a smooth glued connection. Is that some &quot;inherent&quot; SDF thing or just a style of the demo?
    • tomashubelbauer2 hours ago
      I think it is an artifact of the optimizations he uses and while it&#x27;s artistically limiting, I think a right game with the right visual language could make this work to its advantage in terms of uniqueness&#x2F;distinctiveness. It&#x27;s a one trick pony if not avoidable though.
    • nkrisc2 hours ago
      Basically it&#x27;s the result of a smoothing function that blends the sampled SDF value of the two nearest bodies. You can simply pick the minimum SDF value and get no blending at all.
    • interpol_p4 hours ago
      I believe you can do regular hard edged intersections. You can see in his operator list some are listed as “smoothSubtract” and some are just “subtract”<p>It’s just easy to do the melding thing with SDFs so a lot of people do it
      • rcxdude2 hours ago
        From his description of the approach I suspect its also to smooth over sharp edges that the grid optimization doesn&#x27;t like so much.
  • rcarmo6 hours ago
    I watched this over the weekend and loved the approach. I’ve played with SDF for 3D modeling (even though the current libraries generate meshes for slicing using marching cubes, which is slow as heck and can lead to imprecision on small features), and wish I had more time for playing around with it.
  • Glyptodon15 hours ago
    Using layers with settings about which SDFs interact with which layers for operations seems interesting. Like put trees in a layer and then have an axe that can negatively deform the trees but not the ground layer or something. Or a predator layer that can absorb things in the prey layer. Haven&#x27;t really thought through.
  • Traubenfuchs3 hours ago
    You can&#x27;t talk about terrain modification without mentioning &quot;From Dust&quot;, which did it at a grand scale... 15 (!) years ago.<p>It allowed you to shape terrain with sand, water and lava. So terrain modification PLUS fluid simulation!<p><a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ZYUU3dv7WC4" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=ZYUU3dv7WC4</a><p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;From_Dust" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;From_Dust</a>
  • vivzkestrel11 hours ago
    stupid question to anyone reading this: not a gamedev, not even by a long shot but i had to ask<p>- with the advent of all the AI tools, is it actually possible to vibe code a 3D FPS shooter from scratch like if you wrote a 2000 page prompt, can it actually be done?
    • ehnto11 hours ago
      A big challenge of game dev is the asynchronous nature of all the requirements, and that the game will develop its direction continuously throughout dev. That is to say you don&#x27;t know what assets etc you need until you&#x27;ve developed the part of the game that generates that requirement. I find it hard to imagine even a 2000 page pre-planning could capture that process.<p>You could try planning ahead and restricting assets to an asset library, that could fix some of that problem. But having used coding agents for complex software work, and games being one of the most complex software tasks in the industry, I just don&#x27;t see it happening quite that easily.<p>I also think the outcome would be shit, pure and simple. The development of a game is usually the stylistic input of dozens to thousands of humans over the course of years. They are not trivial pursuits. There&#x27;s a lot of variance in there, but generally speaking I expect this to be one of the final frontiers for AI development. There&#x27;s not heaps of training data since game code is usually proprietary, which doesn&#x27;t help.
      • vivzkestrel9 hours ago
        out of curiosity, i want to experiment creating a third person shooter from scratch with vibe coding (yes third person, i wrote FPS above by mistake). think of a proper military game with actual uniforms, movements like walk, crouch, jump, take cover etc. and being able to fire bullets, ballistics, grenades, explosions etc. what do you think is the process to vibe code something like this. obviously i ll need to give it models or assets for characters, map locations etc. how does this sorta thing work?
        • bschwindHN6 hours ago
          I would recommend _not_ vibe coding it if it&#x27;s a game you actually want to see become real, and instead pick up Godot or Unreal or Unity.<p>I&#x27;m sure an LLM could output something or other that resembles a vague concept of a game but you&#x27;re not going to prompt your way into something that&#x27;s actually fun for a human to play.
        • socalgal27 hours ago
          I don&#x27;t think you can describe all of that in an HN comment. There are lots of videos of people vibe coding games though.
    • nmfisher10 hours ago
      Probably, yes. But it&#x27;s not 1997 any more, you can &quot;code&quot; a vanilla FPS in Unity in 15 minutes too. Games are more about artwork and design, which agents aren&#x27;t great at (yet).
    • protocolture10 hours ago
      You can pretty much drag and drop a working FPS in unity.<p>But I have half vibed an FPS in Pygame so its 100% viable (Mine is First and Person, and has motion, but its more of a flight simulator. I am sure the rest of the features would be piss easy)
    • lifeformed52 minutes ago
      Not a good one.
    • meheleventyone3 hours ago
      Depends on what you mean really. In the context of making a game people would actually want to play, no.
    • MattRix11 hours ago
      I mean you can download a free sample project for Unity or Unreal and have a 3D FPS Shooter even without AI. If you want to make one from scratch using AI, you’ll still need to provide some kind of art…<p>With that said, yeah Claude Code CAN build one, but for action games a big part of them comes down to “game feel”, something that can’t be captured in a screenshot. You really need to have taste and the ability to describe what isn’t working and why.
    • ttawehed11 hours ago
      Elon Musk is working on this(XAi)
  • d--b11 hours ago
    Reminded me of Red Faction, a FPS where you could destroy the environment.<p>Kind of like Quake in a Lemmings world.<p>This is quite more polished to say the least.
  • cubefox16 hours ago
    Almost every 3D game uses textured polygons almost everywhere (except sometimes for fog or clouds), so this SDF engine is nice to see.<p>However, he doesn&#x27;t mention animations, especially skeletal animations. Those tend to work poorly or not at all without polygons. PS4 Dreams, another SDF engine, also had strong limitations with regards to animation. I hope he can figure something out, though perhaps his game project doesn&#x27;t need animation anyway.
    • Boxxed15 hours ago
      I&#x27;m not super familiar with this area so I don&#x27;t follow... Why is animation any more difficult? I would think you could attach the basic 3D shapes to a skeleton the same way you would with polygons.
      • dahart15 hours ago
        There are lots of reasons you don’t see a lot of SDF skeletal rigging &amp; animation in games. It’s harder because the distance evaluations get much more expensive when you attach a hierarchy of warps and transforms, and there are typically a lot of distance evaluations when doing ray-marching. This project reduces the cost by using a voxel cache, but animated stuff thwarts the caching, so you have to limit the amount of animation. Another reason it’s more difficult to rig &amp; animate SDFs is because you only get a limited set of shapes that have analytic distance functions, or you have primitives and blending and warping that break Lipschitz conditions in your distance field, which is a fancy way of saying it’s easy to break the SDF and there are only limited and expensive ways to fix it. SDFs are much better at representing procedural content than the kind of mesh modeling involved in character animation and rendering.
        • MITSardine5 hours ago
          One possibility, a little backwards maybe, is to produce a discrete SDF from e.g. a mesh, by inserting it in an octree. The caching becomes the SDF itself, basically. This would let rendering be done via the SDF, but other logic could use the mesh (or other spatial data structure).<p>Or could the engine treat animated objects as traditional meshed objects (both rendering and interactions)? The author says all physics is done with meshes, so such objects could still interact with the game world seemingly easily. I imagine this would be limited to characters and such. I think they would look terrible using interpolation on a fixed grid anyways as a rotation would move the geometry around slightly, making these objects appear &quot;blurry&quot; in motion.
          • Jarmsy4 hours ago
            Sampling an implicit function on a grid shifts you to the world of voxel processing, which has its own strengths and weaknesses. Further processing is lossy (like with raster image processing), storage requirements go up, recovering sharp edges is harder...
            • MITSardine2 hours ago
              But isn&#x27;t this what the author is doing already? That&#x27;s what I got from the video. SDF is sampled on a sparse grid (only cells that cross the level set 0) and then values are sampled by interpolating on the grid rather than full reevaluation.
    • 01HNNWZ0MV43FF14 hours ago
      His SDF probably puts out a depth buffer, so with some effort (shadows might be hard?) you can just mix it with traditional polygons. The same way raytracing and polygons mix in AAA games.<p>He&#x27;s using the SDFs to fill a space sort of like Unreal&#x27;s Nanite virtual geometry. Nanite also doesn&#x27;t support general animation. They only recently added support for foliage. So you&#x27;d use SDF &#x2F; Nanite for your &quot;infinite detail&quot; &#x2F; kit-bashing individual pebbles all the way to the horizon, and then draw polygon characters and props on top of that.<p>In fact I was surprised to see that Nanite flipped from triangle supremacy to using voxels in their new foliage tech. So maybe the two technologies will converge. The guy who did the initial research for Nanite (his talk also cites Dreams ofc) said that voxels weren&#x27;t practical. But I guess they hit the limits of what they can do with pixel-sized triangles.
      • cubefox8 hours ago
        I think they do now support skeletal meshes with virtual geometry: <a href="https:&#x2F;&#x2F;dev.epicgames.com&#x2F;documentation&#x2F;en-us&#x2F;unreal-engine&#x2F;nanite-virtualized-geometry-in-unreal-engine#nanite-skeletal-mesh" rel="nofollow">https:&#x2F;&#x2F;dev.epicgames.com&#x2F;documentation&#x2F;en-us&#x2F;unreal-engine&#x2F;...</a><p>Though it says &quot;experimental&quot;. Unclear what that means in practice.<p>This also mentions &quot;skinning&quot;: <a href="https:&#x2F;&#x2F;dev.epicgames.com&#x2F;documentation&#x2F;en-us&#x2F;unreal-engine&#x2F;nanite-foliage" rel="nofollow">https:&#x2F;&#x2F;dev.epicgames.com&#x2F;documentation&#x2F;en-us&#x2F;unreal-engine&#x2F;...</a> I believe thats just another term for skeletal meshes &#x2F; &quot;bones&quot;.
  • DetroitThrow16 hours ago
    Such impressive demos and great explanations in the video. Mike, if you&#x27;re reading this, keep making videos!
  • matt321016 hours ago
    Dang! Very nice!
  • Keyframe15 hours ago
    really cool! CSG: The Game!
  • doctorpangloss9 hours ago
    how does this compare to MudBun?
    • andybak2 hours ago
      Mudbun renders using raymarching - the video explains why he has avoided doing this.
  • darubedarob16 hours ago
    [dead]
  • andrewstuart8 hours ago
    There’s game developers who develop games.<p>And there’s game developers who develop game engines thinking they are developing games.
    • 21asdffdsa124 hours ago
      Nothing wrong with that - Engine developers often have &quot;defining&quot; titles - aka tech demos they work on to push the field