Sorry to self-promote, but, Angeldust (https://angeldu.st) is a single, persistent, real-time voxel world going for about eight years now. Can handle 300+K players on a single server due to massive parallelism. Unfortunately we don't get those player numbers right now, but hopefully in the future!
I now present the first, native, optimized build for all Raspberry Pi models that you can help test. It's fast, efficient and beautiful. You can play this forever, without DRM or limitations.
Thanks to amazing feedback from HN, I've added great features to the game over time, available on all operating systems:
– control remapping
– pasting text (from password managers too!)
– energy saving
– quest rewards
– additional languages (10 in total)
I'm livestreaming as I submit this post; feel free to hop by with questions and comments. It was awesome last time we did this! Here are the links:
Sorry for taking a while to reply—I contacted Apple support and it seems like the issue is out of my control. For both you and the GP comment I'd like to refer you to my reply here with background and more information:
Sorry for taking some time to reply in full, but I wanted to wait for an official answer from Apple support. Apple informed me that:
"[Y]our apps … are available worldwide and functioning as expected. If your customers are reporting issues, they may not meet the requirements for the apps or have some issues on their devices and would need to contact technical support for assistance."
I'm glad you and others reported problems with availability, but it looks to be something outside of my control. If you still want to get Angeldust on your Apple device from the App Store you might have to contact Apple to help diagnose the issue. I'm sorry that I am unable to help you.
Like I posted earlier, Angeldust is available from several other sources besides the iTunes and Mac App Store:
Angeldust has practically zero level of detail (LoD) and has no occlusion culling. "Almost zero LoD" means that geometry is always rendered at full resolution, but subtle vertex-shaded effects like the waving of grass are not applied for distant geometry. So you will see grass everywhere, but it won't wave when it's "unnoticeably" far away. Other than that I just push millions of mostly buffered triangles and vertices each frame at high view distance without a hitch. Turns out computers are pretty fast these days.
Note that I'm working on a newer render engine that actually uses more GPU shading capabilities and this engine runs even smoother than the current one, since it balances the workload a lot better between CPU and GPU.
As for data structures: both client- and server-side it's pretty much a simple std::map<coordinate, chunk*>. Its O(log(n)) lookup is adequate and I don't want or need to do complicated things to ensure decent performance. On top of the map I do spatially-aware caching to prevent say 99% of actual map lookups which turns the majority of lookups into O(1) which seems pretty much optimal.
As for keeping data: the server is authoritative in everything. The server keeps the data. You can take any device, install Angeldust and sign in with your credentials and you'll find yourself back in the same world, same friends, same progress, same everything that you had on another device.
Same with game state: the server tells the client everything. The client is basically just a dumb graphical terminal application that renders 3D visuals instead of VT100 text.
You might have noticed I already took a looong time to formulate a reply to your questions. And I'm still not sure how to approach them, so I'll reply to the last part first.
Currently I only have my livestreams as a public presence. I find it a very comfortable and pleasant medium for conveying who I am. It lets me share stories and ideas including non-verbal cues and that's a major plus for me. So if you want to learn more, definitely subscribe or follow on YouTube and/or Twitch:
I honestly appreciate talking about technical things a lot, even though I might be playing what appears to be a silly video game. As for streaming: I just did three consecutive days, but will take a short break. I'll be back this Thursday.
Oof! I'm the designer and art director myself. Please elaborate a bit as "colors and textures fighting each other" doesn't give me the slightest clue as to what you perceive as problematic. Can you post annotated screenshots so I can learn from this? Then I'll go and fire myself!
I've been playing the game in both the "Cartoon" and "3D" visual style for years and it's been a very pleasant and eye-pleasing experience for me. Please open your world a bit for me. Maybe share some of your design work for inspiration. Thanks in advance for your feedback.
Heh, sorry, I've been to harsh with the comment I guess... it's probably just me personally being "highly allergic" to this particular toony-style. I think it sort of falls in some "uncanny valley" of design, being neither stylized/abstract/low-poly-ish enough, nor realistic enough, nor fully-pixelated/blocky/minecrafty, but just in-between.
In general I like styles that either:
- just go all the way in the stylized direction, like Bad North [1], The Witness [2] or even Clash of Clans [3] (to be honest I also dislike CoC-style popular with mobile games nowadays, but at least it's consistent/harmonious in its candy-plasticky look)
- OR they actually try to do the realistic-style part, like the classic Age of Empires, or toony-ish-ralisticky like more modern Northgard [4]
- OR they fully embrace the blocky style like Minecraft, or the 8-bit/pixelated style of clearly retro-style games
"In between" styles just look... annoying, giving a "sand in your eye" mental sensation of the early 90s games that were too shallow and childish. It lacks some "higher harmony" thing that I can't describe any better. I get this "allergic" reaction also when I see this style in clothing or architecture or whatever.
Anyway, keep up the work if you and others enjoy it, don't be discouraged by people that just prefer smth else!
I'm just a bit sad bc I probably would've liked the game mechanics, but the style totally turns me off.
Thanks for the elaboration, I get that the design just doesn't do it for you personally. Did you already see that the game's also available in a highly abstract "Cartoon" visual style featuring hand-drawn, 2D animated sprites à la Paper Mario 64? Here's the trailer in the "Cartoon" visual style:
Not the commentator, but I say "your game, your rules!"
That said, with the same level of detail I'm brought to mind of the original Xbox Fable game which in my humble opinion had really excellent art direction for its day -- a mixture of cartoon-y, arty, and moody but only only at times, not constantly gloomy like modern games. Consistent lighting and selective contrast in detail.
Attaching a price tag it (done!) and trying to spread the word through relevant channels (in progress). Posting on Hacker News has been a thoroughly enjoyable process so far and I look forward to meeting more great minds.
Don't sweat it! I did get an older version of Angeldust running on OpenBSD with pledge and unveil without problems. It's just not a market I can comfortably cater to at the moment. Kick back and relax for a moment and there'll probably be a binary or source distribution for *BSDs too. Same with Raspberry Pi. Game runs beautifully, but I have no great packaging and distribution process yet.
In addition I also ran Angeldust on Haiku. There is no reason why a product like this wouldn't run everywhere.
(Also shoutout to theo and/or tedu if you're here.)
Since your message popped up right at the top I'm going to reply to it, hopefully summarizing my view on this and addressing the lively discussion about the game's name.
There is a special meaning for the game. The short backstory is included on the game's website. Here's the gist: in the game's lore Violet and Crimson are angel siblings. Violet is the angel of creation, Crimson the angel of destruction. Due to unforeseen circumstances both angels shatter to dust. This dust dwindles towards the planet where the game takes place. Subsequently parts of the game world and its inhabitants have been permanently infused with magical energy. Energy derived from the dust of angels. Angeldust.
"Angeldust" is beautifully fitting and it's a beautiful name in my opinion. I wouldn't want it any other way. There's an entire design language behind the lore, the names and composition of the game world. To a casual observer this might not be apparent or make sense. But everything ties together perfectly.
I've seen discussion and jokes about the name before when reaching a larger audience. It's great that people have an opinion on the name and some of it's (in my view) lesser known historical usages. As far as I'm concerned Angeldust is a pretty cool video game product with unique properties. In no way, shape or form do I want to endorse or conjure connection to other, past uses of "Angeldust". I hope you can appreciate the context, connection and product that "Angeldust" refers to for me.
And then I get there's a bit of confirmation-bias and pattern-matching going on with my name. I wouldn't have expected otherwise from the smart hackers here. I have no good argument against this. I wasn't aware that I share my name with a (for you all, well known?) dude from the past. Given finite first and last names, collisions are bound to happen. Maybe we should start using MD5- or SHA-hashes as names to prevent this in the future.
i like the name and don't associate games with drugs, so for me personally the name, even though used for some drug as a nickname (official name of the drug is obviously not angeldust) doesn't make that click. I think personally plenty of people will not relate it, and for most who do it might just be a bit of a giggle / afterthought if they do.
If it's really related to the in-game content and lore i'm sure players will figure that out and create a new more positive association to the word.
For example, a male donkey is called a "Jack", yet people still name their kids Jack, not relating that to a male donkey... (maybe a little more benign example.)
Personally i wouldn't worry about it too much! it's not like the game is called CrystalMeth or something....
Well, traditionally, Jack was a nickname for John. So they likely named their kids John. Though I guess more often these days people give their children a nickname as their fully-qualified given name.