LiBlast: A Libre Multiplayer FPS Game Built with Godot 4 and Blender
codeberg.org
codeberg.org
It's not like we're all going to go download the source code and start playing or contributing to a game we've never heard of and know nothing about.
We had no idea our game has been linked on Hacker News, but we've got a lot of people coming to play and talk about the game today, some expressed will to contribute - that's fantastic :)
We're in quite early stages of development, as the game is far from feature complete and stable - working on Godot 4 engine which is still very much in development doesn't make that any easier, but we're helping the Godot team fix issues as we go.
If you'd like to know more about the project, it's goals and philosophy, I've recorded a video where I cover these things: https://www.youtube.com/watch?v=JAQH2AVvKhU
Uh...you new here?
Personally I’d love a new “party FPS” on consoles that handles split screen deathmatch competently with bots. There are almost no games on current consoles that do this AFAIK, and the few that do are ports from older systems (e.g. Perfect Dark).
People seem to remember the good old days of local DM with friends in Goldeneye and old Halo games pretty fondly, so I’m not sure why there are a million new retro indie FPSes but seemingly nobody targeting this niche.
I tried playing GoldenEye again. I regret tarnishing those wonderful memories now.
Halo wasn't as bad, but still not great.
We're very happy that our game was hilighted in this community, and we've seen lots of new people trying out the game, getting in touch, asking how they can contribute - that's awesome.
Thank you :)
If you're interested in what the game is about and why should you care about yet another open-source multiplayer FPS, this video I made should answer that question for you: https://youtu.be/JAQH2AVvKhU
The game is quite limited still, but we've got a small team and just today we've had another team meeting and we've just started working in 2-week sprints. If anyone's interested in contributing - here's a public channel on my Rocket.Chat server where you can reach out: https://chat.unfa.xyz/channel/liblast
Note that the server is mostly about open-source audio production as that's what my primary YouTube channel is about :)
Thanks!
Thank you for that!
Where should I connect with you? I don't see any contact details in your profile.
I will connect via rocket chat.
Yeah, we hope the game will be useful learning or forking material for other libre or indie game developers.
We wanted to make something fully original (even if open-source) and using the best libre technology available. Hence: Godot 4.
We're tired of endless boring Quake clones and rehashes on the same old engines. If you'd like to learn more about why this project exists and what do we want to make, this video explains is: https://youtu.be/JAQH2AVvKhU
Honestly I think it's probably the best libre FPS out there. I wish it was more popular, but considering how poorly the new Unreal Tournament did, I honestly think the general gaming community isn't interested in quake style games anymore.
Another sort-of-game I like is AlephOne, which is an open source implementation of the engine for Bungie's Marathon games. I believe Bungie released all the marathon assets as "free for non-commercial use". There's also some very fun open source campaigns on it.
I've been playing Xonotic for many years, but there's some things that I believe are holding it back. Same goes for other libre FPS games we have like Alien Arena, Sauerbraten, Tesseract, Red Eclipse, Warsow/Warfork ... If you're interested, here's a video where I discuss that: https://youtu.be/JAQH2AVvKhU
I would love a modular version, where maybe you allow reuse of some of the networking features under MIT. But I also understand not wanting to spend a year or so of your life for some opportunists to just rebrand it and sell it.
Even though I'll probably work with Unity for now, I'd much rather there be some competition in the space than not.
We're licensed under AGPL + CC-BY-SA in order to ensure the game cannot be hijacked and rebranded, but also to make sure it will stay open-source (including any server-side software) in case whoever wants to fork it.
The game may possibly become a template/baseline for other games to be made based on it in the future, as there's a lot of common features need for multiplayer FPS games, and re-implementing all of them every time you have a cool idea is kinda silly. So we hope a lot of indie game devs will want to fork our project and have some fun with it.
Though we still have a long road in front of us - there's a lot that needs to be done! If you'd like to be a part of this project - we're looking for contributors, especially GDScript programmers :)
I consider myself to be a pretty good programmer, I do love python, which I believe GD script is basically based on. But I haven't touched Godot at all so I don't think it would be a good idea for me to immediately start putting in PRs.
Keep going though, we desperately need more competition in the engine space. Unity is good for now, but the company itself becomes more and more hostile to developers every single day.
Also, you may want to mention that it needs Vulkan somewhere in your page.
We've have been bundling Godot binaries, but that's already been cleaned up. We're hosting the currently used builds on a VPS now, you can get the current one by running the `download.sh` script in `Godot` subfolder in the repo. This lets the Liblast team easily update the editor and stay in sync.
Unless you're talking about something different? :)
Most of the team members work on Linux - the Vulkan renderer has quite a lot of bugs, so on some systems it may not work as intended still.
Aside of this, there is also the distribution of binaries with best compat across linux based OSes. For instance, with GNU symbol versioning and IBM/redhat symbol version frenzy, 1.5 year old glibc distros won't run games built with a today glibc (aka shooting linux gaming in the foot).
The idea is to iron out such issues: - pure ELF64 set of binaries, namely does not use main(), but the hw ABI entry point (on linux/sysv this is almost a straight main()). Manual linking of the game binaries (don't rely on the compiler driver default objects). - all distributed binaries should "libdl" everything they need from the system, including the libc. It means only libdl should be in the ELF static loading section (except the distributed SOs), and all binaries should have only dlopen/dlsym/dlclose undefined symbols in the ELF dynamic section (except the symbols from the distributed SOs). - don't use ELF symbol based TLS (Thread Local Storage), but pthread TLS, because ELF symbol based TLS is nasty (would need to parse the ELF headers to get some offsets then call the ELF ABI TLS func to resolve to the TLS variable). - static link as many as possible "libdl-ized" third party libs, and yes, this include a libdl-ized fork of the static c++ runtime you use, since godot is c++. - wayland(libxkbcommon)->x11(libxkbcommon-x11/xcb) fallback - vulkan->GL(->CPU) fallback - libasound only (pipewire/pulseaudio will be hidden behind the alsa API if there, and it could be dmix/dsnoop). - joystick support directly via /dev evdev devices, and hotplug with direct kernel netlink event (avoid like hell udev) or inotify or polling the /dev/input directory.
If this work, distributed binaries should be rock solid in time and across many types of linux based OSes (even musl lib one, in theory).
We had just moved from .md to .adoc and this was a missed link.
The downsides are bugs, crashes and the fact that things still change a lot so sometimes we need to update our code to the new GDScript syntax etc :)
I very much understand that having "libre" in the name throws you off, because that phenomenon is a part of why we're doing this project :)
Most FOSS games don't have an original idea and don't have a good direction. A lot of open-source games are just inferior remakes of existing proprietary games. We intend to do something different and hopefully something much better. But we're very early on this path still.
If you'd like to learn more about why this project exists and what is the idea behind it, here's a video where I explain just that: https://youtu.be/JAQH2AVvKhU
This is more of an educational/for the sake of it project than anything else. Something that fits in perfectly here. It's not trying to attract 9-year-olds who scream insults about your mother down the mic at you.