• Pre-Release 0.1.2-pre-alpha e828e354a8

    Liblast 0.1.2 pre-alpha

    unfa released this 1 month ago | 178 commits to main since this release


    This is a testing release, giving a first look into the game after a near-complete rewrite and internal redesign.

    Before reporting any issues, please see if they aren't already known and note that it's not supposed to be playable yet. There's lots of issues as things are slowly starting to come together. We're getting there :)

    This is a Linux-only release using a custom Godot engine build.
    I managed to strip a lot of unused data and get the file size much smaller than before.

    Things to check out:

    • Make an online account!
    • Upload you avatar to the infrastructure server! (and realize it doesn't download back)
    • Play with settings in console: ~ key toggles it, read help that prints out
    • Try to host a local game and see why it doesn't work yet!
    • Load MapC.tscn with bots and see that you can't kill anybody yet!
    • Does the loading screen with a progress bar work?
    • How's movement? WSAD + Space + Shift
    • You can zoom the view again with Z!
    • New skybox!
    • New handgun model (made out of primitives, lol)


    • unfa 2022-10-13
  • Pre-Release 93565b8c7f


    unfa released this 8 months ago | 0 commits to sprint-1 since this release

  • Pre-Release ae4e0ac86c


    unfa released this 9 months ago | 613 commits to main since this release

    DOWNLOAD (601 MB, Linux + Windows)

    A hotfix release to fix a few issues that were omitted in This only afects the game clients, not the servers.

    • Fixed chat history being invisible (widget had 0x0 size due to updated Godot UI logic)
    • Fixed default server address (now it's unfa.xyz - the new 24/7 public server)
    • Fixed default render_scale (it was at 25%, now it's at 100%)
    • Fixed menu width making it difficult to type in some fields (due to updated Godot UI logic)
    • Changed the server address label from "ip" to "server"
    • Deleted some unnecessary assets from the build
    • Fixed some script errors caused by renaming player_list.set()/get() to set_item()/get_item()
    • Fixed a script error with erronous reference to GUI scene that was renamed to MenuRoot some time ago
  • Pre-Release 9091170f72

    unfa released this 9 months ago | 616 commits to main since this release

    DOWNLOAD (640 MB, Linux + Windows)

    A public server is currently active under the addess unfa.xyz. Input it into the the ip field to join this server.

    • Implemented basic splash damage for the rocket laucher
    • Added tools for automated updating Godot editor used for the project development
    • Documentation was ported to AsciiDoc format, proving much more flexible formatting
    • Removed all OpenSimplexNoise textures to avoid crashes that they cause
    • Other changes made to avoid Godot 4 bugs
  • Pre-Release b46d2b6c36

    unfa released this 9 months ago | 678 commits to main since this release

    DOWNLOAD (550 MB, Linux + Windows)

    1. Overhaul of the level to fix collision issues due to holes in the geometry and other issues. The new version is called DM1-2.
    2. Occlusion culling now actually works as the level is broken in to pieces and occluders are generated on import
    3. Fixed players tripping over shell casing
    4. Fixed players gaining points for comiting suicide
    5. Shell casing now uses LOD models to reduce GPU load (though fade-out is broken for now)
    6. Added command to disable pistol shell casing using render_casing console variable.
    7. Fixed text fields not saving values unless user pressed ENTER - now the text fields apply values when the item leaves focus or when ENTER is pressed.

    Video update:

  • Pre-Release 24226b0f7e

    unfa released this 10 months ago | 706 commits to main since this release

    Rushed for a team meeting / playteting session.
    <I'll fill this in later>

  • Pre-Release 3ae8b02311


    unfa released this 11 months ago | 741 commits to main since this release

    Notable changes:

    • a lot of performance improvements
    • a lot smaller download (<100 MB)

    Separate downloads for Linux and Windows.

    You'll need 7-zip to extract them though.

  • Pre-Release 3e5b39d92c

    unfa released this 11 months ago | 766 commits to main since this release


    1. Download the file above and extract it.
    2. Run the binary based on your operating system (Liblast Linux or Liblast Windows).
    3. Set your user profile (name and color)
    4. Join the public server at unfa.xyz
    5. Have fun!

    Notable changes:

    1. Improved look of the test level (4K textures, reflection probles, nice lighting etc.)
    2. New weapon: rocket launcher! So far only scores direct hits.
    3. Weapon switching. Use keys 1 and 2 to select weapons.
    4. Improved score table, showing player colors, pings and packet loss
    5. Players can no longer be killed multiple times
    6. Falling out will kill you
    7. You can commit suicuide when you're stuck (option is in the menu - acces with Esc while in game)
  • Pre-Release 373214dbd5

    unfa released this 12 months ago | 0 commits to DM1_temp_test since this release

    [DOWNLOAD HERE] (no loner available - go get the newest release instead!)

    1. Download the file above and unzip it.
    2. Run the binary based on your operating system (Liblast Linux or Liblast Windows).
    3. Set your user profile (name and color)
    4. Join the public server at liblast.unfa.xyz
    5. Have fun!

    This is a very temporary state of the game with a botched implementation of the new version of the DM1 level.

    Notable changes:

    1. Much better performance
    2. A lot more room to play for more players
  • Pre-Release 0.1.1-pre-alpha 217917706a

    Liblast 0.1.1-pre-alpha

    unfa released this 1 year ago | 896 commits to main since this release

    This is a first groundwork version of the game rewritten in Godot 4.

    Download for Linux + Windows

    https://unfa.xyz/liblast/Liblast_0.1.1-pre-alpha.zip (ZIP - 506 MB)
    https://unfa.xyz/liblast/Liblast_0.1.1-pre-alpha.7z (7-zip - 325 MB)

    No longer available - go the the newest release!

    Both downloads contain the exact same data. If you can handle a 7-zip archive - please choose that to save bandwidth.

    How to run the game

    Extract the downloaded archive and run the executable suitable to your operating system (Linux or Windows).

    How to run a dedicated server

    You can start a dedicated server on Linux using the Liblast Linux dedicated server.sh script. Due to current issues in Godot it's impossible to run the game in a headless mode, so you need a display and usable Vulkan graphics to run the dedicated server. It's optimized to use as little GPU as possible and also show you a nice overview of what is going on in the game.

    You can start a dedicated server on Windows by (1) running the game executable from commandline with --dedicated-server argument, or (2) by creating a shortcut to the Liblast Windows.exe file that will add this argument. I wanted to make a BAT file, but I have no Windows to test this so I failed. Contributions are welcome :)


    • The damage system has been redesigned and rewritten (using Excalidraw, here's the archive of the document I've created). This is not a visible change, but it's a necessary restructuring for further development down the road. Before - nearly all the logic was placed on the Gun (Weapon.gd). This meant that the handgun checked what did the bullet hit, it decided if the victim should die, it sent info to trigger shooter's hit confirmation (crosshair and sound), and als owhat kind of article effects, decals and sounds to play. Now the logic is clearly separated. All damagable objects must have a take_damage() method that provides a clear unified path to communicate:
      • who deals damage
      • how much damage
      • what type of damage (so far there's just one, but in the future this will be important)
      • where does the damage come from physically (is now useful for bullets, but will be even more useful for explosions)
      • What point in space did the damage was applied to and under what angle to teh hit surface (useful for placing decals and particle effects)
      • what push force should be applied (this will be necessary for explosions)

    This will let every player class, shootable switch, or a decorative object to react in different ways to any type of damage the game throws at it. There should probably be some feedback if the collision has stopped the damage (bullet) - not sure how we'd implement water effects with shooting bullets or projectiles that can travel under water. This may need to be considered in the future design changes and adjusted.

    • The weapon model is now moving according to player movement. There's up/down movement when walking, There's a jolt when jumping and up/down, sway based on vertical velocity (hopefully this'll give players a bit more feel for what is their vertical velocity, especially when using the jetpack). There's aso extremely faint breathing bob, it should probably by made stronger as it's almost invisible.
    • The blood particles have been replaced with a dedicated texture that finaly isn't terribly ugly. The material Maker source file is in Asset Sources;
    • Dying Players now leave gibs behind - these are GPU Particles and use SDF collision with the level geometry. It's nice to see this working!
    • Player's camera is moved and rotated when they die to make it clear what's going on
    • Players have now clear visual feedback of taking damage (non-directional though). The "bleeding eyes" effect is done with a shader that generates the "vignette-like" shape with CleverMaths™. The shader is animated based on recieved damage and time. Dying players have a full blood-o-vision turned on and decay disabled.
    • Players spawning now shoud be unified across peers, as it's handled by a spawn() method in the Player.gd script, rather than in Main.gd. It seems that's not perfect yet, but well...
    • Players leaving the game was hopefully hardened against ghosts, but that proven to not be the case during playtesting with the team. The game needs to be tested more across unreliable networks or introduce artifical packet loss and ping to reproduce these bugs.
    • The crosshair now turns black if on a very bright background to make it clearly visible at all times. There's nothing mroe frustrating in a game that requires precise aim when the crosshair is not visible! (I've recenly played Half-Life: Opposing Force and that that was an issue with one of the weapons).
    • There's now a game version, FPS counter and Ping display in the bottom left corner. I've programmed a ping measuring feature, that pings the server every second. It's in ping() method in Main.gd. I think the code is pretty clever. Pings are sent with random tokens and the server sends the pings back with the same token, this ensures that pings are not mistakenly counted when they did not really arrive on time. This however limits the ping meter to 1 second, as there is no list of pings sent - there's only one token stored so if a ping does not arrive in 1 second, then another ping is sent, overwriting the stored token and invalidaing the previous ping entirely. This is obviously flawed, but that's the first implementation.
    • The map's lighting was tweaked to provide better shadows look (less blur) and take advantage of the newly added angle size for directional lights.

    Enjoy the game!

    • unfa