0 FPS

0fps.net · Personal blog · on HN since 2012

Mikola Lysenko writes technical articles on voxel engines, mesh generation, collision detection, and networked game design.

What HN saysCommenters recommend it as a source on voxel data structures and game networking, and call the author a genius who inspired them.
46HN people shared it
18linked it in comments
40stories submitted
944story points
10 months agolast shared
2012people per year2026

Most-shared posts

  1. 1
    An Analysis of Minecraft-like Engines (2012)
    6 people · 88 points · first shared 2015 · 13 comments on HN
  2. 2
    Peer-to-Peer Ordered Search Indexes
    6 people · 5 points · first shared 2020 · discussion on HN
  3. 3
    Smooth Voxel Terrain, Part 2 (2012)
    4 people · 145 points · first shared 2016 · 19 comments on HN
  4. 4
    An Analysis of Minecraft-like Engines
    3 people · 6 points · first shared 2012 · discussion on HN
  5. 5
    Homepage
    3 people · first shared 2016
  6. 6
    Collision Detection, Part 1: Overview (2015)
    2 people · 78 points · first shared 2015 · 8 comments on HN
  7. 7
    Meshing in a Minecraft Game (2012)
    2 people · 70 points · first shared 2013 · 17 comments on HN
  8. 8
    Conway’s Game of Life for Curved Surfaces - Part 1
    2 people · 65 points · first shared 2012 · 1 comments on HN
  9. 9
    Collision detection benchmarks
    2 people · 45 points · first shared 2015 · 10 comments on HN
  10. 10
    A level of detail method for blocky voxels
    2 people · 39 points · first shared 2018 · 2 comments on HN
  11. 11
    Turning 8-Bit Sprites into Printable 3D Models
    2 people · 10 points · first shared 2012 · discussion on HN
  12. 12
    Minecraft meshing, Part 2 / 2
    2 people · 9 points · first shared 2013 · discussion on HN
  13. 13
    MeshLife
    2 people · 5 points · first shared 2012 · discussion on HN
  14. 14
    Meshing in a Minecraft Game
    2 people · 3 points · first shared 2016 · discussion on HN
  15. 15
    Conway's Game of Life for curved surfaces (2012)
    1 people · 110 points · first shared 2024 · 16 comments on HN

What HN people wrote when they linked it

Lucasoato · 2025-12-26
If you’re marveled by these articles, I suggest you to read this blog: https://0fps.net/ It inspired me so much back when I was graduating in mathematics, the author is a genius.
feross · 2022-03-02
The visualization is a custom component that our own Mik Lysenko (of https://0fps.net fame) made. I agree it's a super useful way to visualize package data.
IAmLiterallyAB · 2021-09-26
For a detailed look at picking a good data structure for voxel engines, I'd recommend this fantastic article https://0fps.net/2012/01/14/an-analysis-of-minecraft-like-engines/
wyqydsyq · 2021-02-04
Another great resource for learning about multiplayer game networking is this guide from Mikola Lysenko: https://0fps.net/2014/02/10/replication-in-networked-games-overview-pa…
corysama · 2013-01-27
A wonderful feature of Timothy Lottes' blog is a continuously updated list of blog articles from other graphics programmers down the right side. http://blog.selfshadow.com/ has several great articles and a great blogroll. Meanwhile, here are a few favorites: http://fgiesen.wordpress.com/ http://directtovideo.wordpress.com/ http://www.iquilezles.org/ http://0fps.wordpress.com/
maxogden · 2013-01-18
this and the follow-up post were most useful when developing the voxel.js components http://0fps.wordpress.com/2012/06/30/meshing-in-a-minecraft-game/
dcposch · 2016-10-09
This is pretty cool. Props for doing a massive amount of work and creating something open and extensible. -- I just tried reading the code to learn how MineTest does voxel meshing, and it didn't go so well. (Voxel meshing is about turning blocks into triangles efficiently, and it's surprisingly tricky. Mikola Lysenko wrote a great exposition of the problem and several solutions way back in 2012: https://0fps.net/2012/06/30/meshing-in-a-minecraft-game/ ) I was curious which approach MineTest chose, and I still don't know. I think I found the files where the meshing happens, mapblock_mesh.h/cpp. The code quality is... less than perfect. There are 200+ line C++ functions. There's commented out code and preprocessor "#if 0" ignored code. There's a struct that looks important, but it's called "MeshMakeData", and I don't know what it represents. The comment above just says "Mesh making stuff": https://github.com/minetest/minetest/blob/0a16e53b40d347db7dcd04cb694d… The file that seems to run everything, game.cpp, is almost 5000 lines long. -- For an example of really clean game code, check out Quake or Doom 3. Both have: * short and sweet main() methods * comments that guide the reader and explain what does what * clean decomposition * short, readable functions, and... * reasonably small files So far, MineTest, at least in part, took the "big hairy ball of C++" approach. Good luck with future development!
dmit · 2016-04-25
Here are some software engineering blogs from my RSS reader in addition to the ones listed in TFA. I honestly don't know how over or underrated they are, but I guess that varies depending on which communities you're closer to. Mikola Lysenko https://0fps.net Graphics programming, geometry and algorithms. --- Steven Wittens http://acko.net Not underrated in any sense of the word, but I have to include it in case there are people who haven't seen it yet. It's about math and graphics, but also about art and design. Amazingly educational. http://acko.net/blog/how-to-fold-a-julia-fractal/ is a good starting point for new readers. --- Mark Nottingham https://www.mnot.net/blog/ Networking and HTTP. --- Jeff Preshing http://preshing.com Efficient concurrent data structures. --- Bruce Dawson https://randomascii.wordpress.com Software efficiency, performance optimization, fractals and more. --- Yann Collet http://fastcompression.blogspot.com Modern compression algorithms. --- Gil Tene http://stuff-gil-says.blogspot.com Also definitely not underrated, at least not in the Java world. But any engineer who cares about latency and honest benchmarks will benefit. Low latency techniques, GC performance, lock-free programming. --- Tony Finch http://fanf.livejournal.com C and UNIX programming, and more. --- Andy Wingo https://wingolog.org Scheme, Compilers, JavaScript, and much more. --- Aleksey Shipilёv http://shipilev.net JDK internals, low-level optimization.
lelandbatey · 2023-09-15
A bit of searching implies that they are not stored as Octrees due to "performance reasons": > [...] To understand why octrees are slower for Minecraft games, it isn’t really necessary to invoke such exotic explanations. The underlying reason for the worse performance is purely algorithmic: each time an arbitrary voxel is touched, either when iterating or performing a random access, it is necessary to traverse to the entire height of the octree. Since octrees are not necessarily balanced, this can be as much as log(maximum size of game world)! Assuming the coordinate system is say 32 bit, this brings an added overhead of 32 additional non-coherent memory accesses per each operation that touches the map (as opposed to the flat array, where everything is simply constant time). https://0fps.net/2012/01/14/an-analysis-of-minecraft-like-engines/
dejv · 2022-02-02
There are few articles on 0fps blog: https://0fps.net/2012/01/14/an-analysis-of-minecraft-like-engines/ Readable implementation (in C) is this: https://github.com/fogleman/Craft
jpereira · 2021-01-20
For work in a similar vein, Mikeal Rogers has recently been working on IPSQL[0] based on peer-to-peer prdered search indexes[1] built on IPFS, which shares the content-addressed nature of BitTorrent. [0]: https://github.com/mikeal/IPSQL [1]: https://0fps.net/2020/12/19/peer-to-peer-ordered-search-indexes/
Asooka · 2021-01-08
A better algorithm than marching cubes is surface nets, which doesn't have ambiguous cases and isn't patented AFAIK. See: https://0fps.net/2012/07/12/smooth-voxel-terrain-part-2/
lgierth · 2020-12-28
Merkle Search Trees: Efficient State-Based CRDTs in Open Networks https://hal.inria.fr/hal-02303490/document Peer-to-Peer Ordered Search Indexes https://0fps.net/2020/12/19/peer-to-peer-ordered-search-indexes/ (which adds useful context about the above) Sorry for just dropping these links, I should already be asleep :)
baffo · 2017-09-23
If you have problems with lag and conflicts resolution of state, take a look at this article, it may be useful. https://0fps.net/2014/02/17/replication-in-networked-games-latency-par…
For few other approaches implemented for WebGL see here: http://0fps.net/2012/07/12/smooth-voxel-terrain-part-2/
33a · 2015-03-18
This reminds me of a game I wrote for Ludum Dare a while back: http://0fps.net/2011/09/13/ludum-dare-21-results/ The title of the game was "Help! I'm trapped in a compact riemannian manifold" You can grab the source for it on GitHub, though the build process is pretty janky as I wrote it in 48 hours and wasn't very careful with the distribution: https://github.com/mikolalysenko/ludum-dare-21
rlx0x · 2013-03-29
there already is http://voxeljs.com/ poxel rendering like in the python scribble is trivial, there many much more interesting problems to solve, like managing the geometry. If anyone is truly interested they should begin here: http://0fps.wordpress.com/2012/07/07/meshing-minecraft-part-2/
tommsy64 · 2020-04-21
I've had this exact same project idea on my mind for a year or so, largely driven by a desire to see beautiful, to-scale mountain ranges in game (Thousands of blocks of render distance rather than a measly ~256). I wouldn't consider myself a computer graphics guy either; however, I recently started to dive into the world of computer graphics to at least figure out what it would take to implement something like this. As a sibling commenter mentioned, using a marching cube algorithm is one approach. 0fps [1] has a good blog post about using Progressively Ordered Primitive buffers to implement Level of Detail in Minecraft-like games. (There is an interesting comment on that blog replying to that post.) Another blog [2] shows a similar implementation in a Minecraft-like game call "SeaOfMemes". On a side note, I've never heard of Terasology—and it's been around for 9 years(!) it seems. I'll definitely check it out. [1] - https://0fps.net/2018/03/03/a-level-of-detail-method-for-blocky-voxels… [2] - http://www.sea-of-memes.com/LetsCode64/LetsCode64.html and http://www.sea-of-memes.com/LetsCode67/LetsCode67.html

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close