We are not all like this. I think this meme is stupid too.
As a matter of fact, I did!
Godot was even my first choice originally. It's compact, FOSS, and easy to use. I had a good experience with it and even contributed a few times. But I didnโt end up using it:
- It's not ECS-based. They even have an article explaining why. But for a game like this, we need to process a lot of objects to simulate a city (I want cities to be similar to Sims 3), so we benefit from a data-driven approach. Also after actually using ECS, I think I disagree with some points from the article: I found ECS much more natural to work with.
- It's not very extensible. Even with GDExtension (a low-level C API), in order to integrate a C or C++ library I have to adapt it. It's so much more seamless with Rust.
- GDScript is easy to use and well-integrated, but slow. C# is faster, but the support is worse and I don't like the language ๐ There also bindings for other languages via GDExtension. Even their C++ API are implemented this way: C++ engine code wrapped into C and then wrapped again into C++. But working with bindings is never the best API experience. Also, after using Bevy for a while, I really appreciated that when something goes wrong, I can directly jump into the engine code and see whatโs happening. I'm, of course, planning to provide a scripting API, but using the same language for writing the core stuff is so convenient. I'm basically writing an engine for an engine ๐
- I disagree with some of the developers choices. For example, I dislike how they parse the CLI in main.cpp - it's just messy. A long time ago, I implemented a CLI parser in C++ with a GDScript API for users and suggested reusing it in the engine, but they didn't end up merging it and said that the current state was fine.
I also considered Unreal Engine. It's highly optimized, packed with features, and provides tools for massive simulations. But I also didn't end up using it:
- It's incredibly heavy. Compiling it from source takes hours.
- Linux support is not great. The editor runs, but poorly. All the Unreal games I know are available only for Windows. Almost all developers also use Windows.
- The main language is C++, which matches the engine language, but iteration times are awful due to the engine size. It's game development workflow clearly designed around Blueprints. They're convenient to use but hard to refactor, and they're stored in binary format because the engine is designed to use with Perforce VCS. I prefer Git, and even a small change in a Blueprint results in a full file replacement.
- They don't allow you to license your game under a copyleft license, which is the kind of license I'd like to use for my project.
Donโt get me wrong - both mentioned engines are great. I just didn't mentioned all their advantages and all disadvantages of Bevy. But for this specific project, I found Bevy to be a better fit ๐
All the mentioned repositories are located at https://github.com/projectharmonia. The game repository with my previous attempt is at https://github.com/projectharmonia/project_harmonia, which I plan to move to a separate archived branch since I'll start from scratch. As I mentioned in the post, I'm currently finishing the remaining work on the crates I'll need for the game while waiting for Bevy 0.17 ๐ The name "Project Harmonia" was just a placeholder; I'll be renaming both the game repository and the organization to "Simgine" today.
Yes, being able to work on it full time would be a dream! Right now, I work on it in my free time after my full-time job, but I want to write an MVP first before considering any fundraising.
Yeah, I'll definitely try to scale it down as much as possible!
Right now I considering using a mesh with morphs just to provide a proper API for character customization. I don't expect this particular part to be that hard. The mentioned MakeHuman is FOSS, so I could use it as a reference.
I also donโt think it will be incredibly generic. It'll be focused on life simulation, so it wouldnโt be a good choice for something like an RPG. This lets me scale the project down even further โ and a narrower API will be simpler as well.
Thanks for the honest opinion!
Thanks!
Yes, I'll definitely maintain a few mods. Not only are they useful as references, but actually using the API helps me improve it. I'm planning to use free models because I need to test things like clothing and morphing. Plus, the showcases look better this way ๐
Yes! I like Lua and even wrote a few plugins for Neovim with it ๐
I think the glasses are quite solid, but I havenโt dropped them yet ๐
I never buy additional warranties.
how do you change its settings, like the aspect ratio, the dimming or the distance?
They have an OSD like in a regular monitor. You press the mode switch button twice to bring it and navigate using the +- brigness buttons. For dimming you hold the brightness rocker to start adjusting the dimming. For everything else there is an OSD menu like in a regular monitor. You bring it by double pressing the switch button and navigate with the brightness buttons.
how does it know where is forward in anchor mode? if you are sitting in a vehicle that is turning, can you keep it using as if nothing has happened?
It's only 3 DoF without the eye add-on, so when you move, the monitor moves with you.
how do you do chores with it? I mean, what do you connect it to, and where do you place it so that itโs not in the way?
I just connect it to my Retroid Pocket Flip and put it into my pocket. Then I just enable side mode in the glasses, so it displays the image in the corner. And use my 8BitDo to navigate in the device.
what do you do to not get tangled in the cable, and to not get stuck on something?
The default cable is just very short :) It's a distance from the glasses to my pocket with about extra 15-20 cm.
But it's not VR. It's basically an OLED monitor in front of my eyes. I can't say it's healthy, but I wouldn't say it's that bad.
Also AFAIK there are vacuums with only Bluetooth connectivity to configure them from a phone, with no Wi-Fi and cloud bullshit.
Thanks, I will take a look! But I think it's stills requires using a proprietary app for a phone, right? What I liked about Valetudo is they provide their own app.
This guy makes great romhacks!