Aquileo | Feed of "Nokorpo/LibreAim"https://codeberg.org/Nokorpo/LibreAim Free and open source FPS aim trainer made with Godot.Tue, 04 Aug 2026 02:19:50 +0200Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/553de9d5ee7b91fe9b2afd33a9c871b6c637322b <a href="https://codeberg.org/Nokorpo/LibreAim/commit/553de9d5ee7b91fe9b2afd33a9c871b6c637322b">553de9d5ee7b91fe9b2afd33a9c871b6c637322b</a> Upgrade project to Godot 4.7553de9d5ee7b91fe9b2afd33a9c871b6c637322b Upgrade project to Godot 4.7]]>antimundo158548199: https://codeberg.org/Nokorpo/LibreAim/commit/553de9d5ee7b91fe9b2afd33a9c871b6c637322bFri, 19 Jun 2026 16:53:19 +0200Aquileo | thatonecoder created pull request Nokorpo/LibreAim#27https://codeberg.org/Nokorpo/LibreAim/pulls/27 27#Add cm/360º sensitivity#Note: the code in this pull request is rather terrible, since I am bad at coding. I beg for forgiveness... ]]>thatonecoder139365477: https://codeberg.org/Nokorpo/LibreAim/pulls/27Sun, 17 May 2026 10:22:09 +0200Aquileo | antimundo commented on issue Nokorpo/LibreAim#26https://codeberg.org/Nokorpo/LibreAim/issues/26#issuecomment-15070467 Allow map creators to override player manager variables <p dir="auto">Done! this added various improvements:</p> Done! this added various improvements: ]]>antimundo139046733: https://codeberg.org/Nokorpo/LibreAim/issues/26#issuecomment-15070467Sat, 16 May 2026 15:54:49 +0200Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/2a8b0f2a4a8522a95fcf0c5e72457b436d9c0eb9 <a href="https://codeberg.org/Nokorpo/LibreAim/commit/2a8b0f2a4a8522a95fcf0c5e72457b436d9c0eb9">2a8b0f2a4a8522a95fcf0c5e72457b436d9c0eb9</a> Allow map creators to override player variables2a8b0f2a4a8522a95fcf0c5e72457b436d9c0eb9 Allow map creators to override player variables]]>antimundo139046721: https://codeberg.org/Nokorpo/LibreAim/commit/2a8b0f2a4a8522a95fcf0c5e72457b436d9c0eb9Sat, 16 May 2026 15:54:44 +0200Aquileo | antimundo closed issue Nokorpo/LibreAim#26https://codeberg.org/Nokorpo/LibreAim/issues/26#issuecomment-15070464 Allow map creators to override player manager variablesantimundo139046712: https://codeberg.org/Nokorpo/LibreAim/issues/26#issuecomment-15070464Sat, 16 May 2026 15:54:44 +0200Aquileo | antimundo opened issue Nokorpo/LibreAim#26https://codeberg.org/Nokorpo/LibreAim/issues/26 26#Allow map creators to override player manager variables#The problem

Right now player_manager has some variables about it's movement that can not be changed by map makers:

const SPEED: int = 5
const JUMP_FORCE: int = 8
var jumps: Array[bool] = [true, true]
gravity += 20 * delta

The only things the map maker can change are the player_movement, and if player shoots semi-automatic or machinegun:

[settings]
player_movement = true
shoot_machinegun = false

And when PlayerManager script wants to check if it has a machine gun or semi-automatic or if it can move it has to constantly check:

if Global.current_scenario and Global.current_scenario.shoot_machinegun == true:

This is bad because:

  • Map makers can not customize player movement settings.
  • PlayerManager has to constantly check the Global.current_scenario which feels very odd and introduces a lot of copuling of two things that shouldn't be coupled.

How to fix it

Let's introduce some new variables:

[player]
movement_enabled = true
speed = 20.0
jump_force = 10.0
max_jumps = 4
gravity_force = 30.0
shoot_machinegun = false

And then, the PlayerSpawner should be the one that just checks once the Global.current_scenario settings and initializes the PlayerManager with the correct variables. So PlayerManager doesn't have to couple to the Global script.

Another thing that should be improved

By the way, I'm also thinking that scenarios should only override the settings they need to override. For example many scenarios have the same default score settings, and the same default player movement, so maby is not necessary to define these variables for every single scenario that just uses the default.

[settings]
time = 30

[player]
movement_enabled = true
speed = 20.0
jump_force = 10.0
max_jumps = 4
gravity_force = 30.0
shoot_machinegun = false

[score]
score_per_hit = 1
accuracy_multiplier = false
]]>
antimundo139008081: https://codeberg.org/Nokorpo/LibreAim/issues/26Sat, 16 May 2026 13:56:09 +0200
Aquileo | thatonecoder commented on issue Nokorpo/LibreAim#25https://codeberg.org/Nokorpo/LibreAim/issues/25#issuecomment-15045543 Improve the default scenarios <p dir="auto">Viscose Benchmarks S2 (good starting point for scenarios):</p> Viscose Benchmarks S2 (good starting point for scenarios): ]]>thatonecoder138768687: https://codeberg.org/Nokorpo/LibreAim/issues/25#issuecomment-15045543Sat, 16 May 2026 03:26:26 +0200Aquileo | antimundo opened issue Nokorpo/LibreAim#25https://codeberg.org/Nokorpo/LibreAim/issues/25 25#Improve the default scenarios#Right now, LibreAim is bundled with four default scenarios:
  • Horizontal targets: All targets spawn at the same
  • Moving targets: Targets move in random
  • Random targets: Random static
  • Tracking: Keep your aim tracking a target.

The selection of default scenarios probably could be a lot better, I didn't put much thought into it when I originally created them, I'm open to suggestions about what posible scenarios could be added.

  • There shouldn't be too many default scenarios, maby around 4-8 is a good number, making too many would be hard to maintain.
  • The default scenarios should be really unique, and serve unique purposes, in case anyone wants a "slightly tweaked" version of a default scenario, that person could tweak it by themself.

Default scenarios

I don't really play any aim trainers other than LibreAim, and I would like to buy some aim trainers (like Kovaaks) on Steam to learn in what areas LibreAim should be improved. Probably a good approach would be to just see what the most popular scenarios on other popular aim trainers are, and just try to replicate those.

]]>
antimundo138735867: https://codeberg.org/Nokorpo/LibreAim/issues/25Sat, 16 May 2026 01:20:28 +0200
Aquileo | antimundo commented on issue Nokorpo/LibreAim#19https://codeberg.org/Nokorpo/LibreAim/issues/19#issuecomment-14682204 Show game settings on pause menu <p dir="auto">Done in b0a08fa381</p> Done in b0a08fa381 ]]>antimundo136511730: https://codeberg.org/Nokorpo/LibreAim/issues/19#issuecomment-14682204Mon, 11 May 2026 21:51:34 +0200Aquileo | antimundo closed issue Nokorpo/LibreAim#19https://codeberg.org/Nokorpo/LibreAim/issues/19#issuecomment-14682207 Show game settings on pause menuantimundo136511727: https://codeberg.org/Nokorpo/LibreAim/issues/19#issuecomment-14682207Mon, 11 May 2026 21:51:34 +0200Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/b0a08fa381b959e16d9df1b32f0b04e100941cc7 <a href="https://codeberg.org/Nokorpo/LibreAim/commit/b0a08fa381b959e16d9df1b32f0b04e100941cc7">b0a08fa381b959e16d9df1b32f0b04e100941cc7</a> Show game settings on pause menub0a08fa381b959e16d9df1b32f0b04e100941cc7 Show game settings on pause menu]]>antimundo136511493: https://codeberg.org/Nokorpo/LibreAim/commit/b0a08fa381b959e16d9df1b32f0b04e100941cc7Mon, 11 May 2026 21:51:18 +0200Aquileo | thatonecoder commented on issue Nokorpo/LibreAim#2https://codeberg.org/Nokorpo/LibreAim/issues/2#issuecomment-12918378 Add playlists <p dir="auto"><a href="/antimundo" class="mention" rel="nofollow">@antimundo</a> wrote in <a href="https://codeberg.org/Nokorpo/LibreAim/issues/2#issuecomment-12679260" class="ref-issue" rel="nofollow">#2 (comment)</a>:</p> @antimundo wrote in #2 (comment): ]]>thatonecoder120916380: https://codeberg.org/Nokorpo/LibreAim/issues/2#issuecomment-12918378Thu, 09 Apr 2026 16:26:59 +0200Aquileo | antimundo closed issue Nokorpo/LibreAim#24https://codeberg.org/Nokorpo/LibreAim/issues/24#issuecomment-12713202 Add more target shapesantimundo119615823: https://codeberg.org/Nokorpo/LibreAim/issues/24#issuecomment-12713202Mon, 06 Apr 2026 13:08:08 +0200Aquileo | antimundo commented on issue Nokorpo/LibreAim#24https://codeberg.org/Nokorpo/LibreAim/issues/24#issuecomment-12713199 Add more target shapes <p dir="auto">I think this is done for now, it can be further polished, but you can already add whatever shape you want, map creators can create new custom shapes, you can add multiple colliders to differenciate &#34;headshot&#34; from &#34;bodyshot&#34;, and you could potentially add an animator.</p> <p dir="auto">The &#34;humanoid&#34; target shape doesn&#39;t have any animations yet, but they could technically be added now!</p> <p dir="auto">Also none of this is documented yet, and it should be.</p> I think this is done for now, it can be further polished, but you can already add whatever shape you want, map creators can create new custom shapes, you can add multiple colliders to differenciate "headshot" from "bodyshot", and you could potentially add an animator.

The "humanoid" target shape doesn't have any animations yet, but they could technically be added now!

Also none of this is documented yet, and it should be.

]]>
antimundo119615808: https://codeberg.org/Nokorpo/LibreAim/issues/24#issuecomment-12713199Mon, 06 Apr 2026 13:08:07 +0200
Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/e7fc956186c46d29acf53bc7b99fd75d0a8ce05c <a href="https://codeberg.org/Nokorpo/LibreAim/commit/e7fc956186c46d29acf53bc7b99fd75d0a8ce05c">e7fc956186c46d29acf53bc7b99fd75d0a8ce05c</a> Add target shapes hit partse7fc956186c46d29acf53bc7b99fd75d0a8ce05c Add target shapes hit parts]]>antimundo119614002: https://codeberg.org/Nokorpo/LibreAim/commit/e7fc956186c46d29acf53bc7b99fd75d0a8ce05cMon, 06 Apr 2026 13:04:25 +0200Aquileo | antimundo commented on issue Nokorpo/LibreAim#24https://codeberg.org/Nokorpo/LibreAim/issues/24#issuecomment-12686400 Add more target shapes <p dir="auto">This is almost done, there is one more thing left to do, and is that collisions should be decided by Area3D shapes, while the current collisionshape3D should be used just for movement.</p> This is almost done, there is one more thing left to do, and is that collisions should be decided by Area3D shapes, while the current collisionshape3D should be used just for movement. ]]>antimundo119343312: https://codeberg.org/Nokorpo/LibreAim/issues/24#issuecomment-12686400Sun, 05 Apr 2026 18:08:13 +0200Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/eb2cc1094191081ddd3b3ba1fc7cdfcbc2ae145d <a href="https://codeberg.org/Nokorpo/LibreAim/commit/eb2cc1094191081ddd3b3ba1fc7cdfcbc2ae145d">eb2cc1094191081ddd3b3ba1fc7cdfcbc2ae145d</a> Add more target shapeseb2cc1094191081ddd3b3ba1fc7cdfcbc2ae145d Add more target shapes]]>antimundo119340798: https://codeberg.org/Nokorpo/LibreAim/commit/eb2cc1094191081ddd3b3ba1fc7cdfcbc2ae145dSun, 05 Apr 2026 18:01:12 +0200Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/4847886ccb6b06126c405cfd995a19e25c69788a <a href="https://codeberg.org/Nokorpo/LibreAim/commit/4847886ccb6b06126c405cfd995a19e25c69788a">4847886ccb6b06126c405cfd995a19e25c69788a</a> Reestructure some project parts4847886ccb6b06126c405cfd995a19e25c69788a Reestructure some project parts]]>antimundo119303115: https://codeberg.org/Nokorpo/LibreAim/commit/4847886ccb6b06126c405cfd995a19e25c69788aSun, 05 Apr 2026 15:50:41 +0200Aquileo | antimundo opened issue Nokorpo/LibreAim#24https://codeberg.org/Nokorpo/LibreAim/issues/24 24#Add more target shapes#Right now targets are always a CapsuleMesh so they can only be either be a Capsule or a Sphere.

You should be able to have targets with other shapes, right now i'm thinking mainly Cubes, and Humanoids.

  • This system should have support for adding more shapes in the future.
  • Maby in the future some map creators want to add their own custom-shaped Targets, so this must be keept in mind when when implementing this.
  • Keep in mind that targets have a custom material so users can customize the target color, this functionality should be kept.
  • If there are going to be humanoid targets, maby it would be cool to:
    • have animation support for those.
    • have some way of distinguish at which part of the body you shot at.
    • its spawn point pivot should be at its feet, this will make it easier for map makers.

I like this humanoid model, is low-poly and cc0! https://comp3interactive.itch.io/low-poly-human-mesh

3D model of a human

]]>
antimundo119303091: https://codeberg.org/Nokorpo/LibreAim/issues/24Sun, 05 Apr 2026 15:50:41 +0200
Aquileo | antimundo commented on issue Nokorpo/LibreAim#2https://codeberg.org/Nokorpo/LibreAim/issues/2#issuecomment-12679260 Add playlists <p dir="auto">Playlists are something I would definitely would like to add, but right now I have no plans to add &#34;benchmarks&#34;</p> Playlists are something I would definitely would like to add, but right now I have no plans to add "benchmarks" ]]>antimundo119302083: https://codeberg.org/Nokorpo/LibreAim/issues/2#issuecomment-12679260Sun, 05 Apr 2026 15:45:36 +0200Aquileo | nepo commented on issue Nokorpo/LibreAim#23https://codeberg.org/Nokorpo/LibreAim/issues/23#issuecomment-12678135 Project restructuring <p dir="auto">100% support decoupling and modularization.</p> 100% support decoupling and modularization. ]]>nepo119285514: https://codeberg.org/Nokorpo/LibreAim/issues/23#issuecomment-12678135Sun, 05 Apr 2026 14:48:12 +0200Aquileo | antimundo opened issue Nokorpo/LibreAim#23https://codeberg.org/Nokorpo/LibreAim/issues/23 23#Project restructuring#I think some things about the way the LibreAim Godot project is currently structured could be improved. This is a very long text documenting my thought process for the sake of transparency.

The "scenes" folder

Some time ago I had a long conversation with my co-workers about how we should structure Godot projects.

First of all we decided that a "Feature-based organization" where you have folders for each feature like player_character/, enemies/, levels/ works better for us than a "Type-based structure" where you have folders for each type of asset like scripts/, sprites/, sounds/, scenes/.

This is very convenient because Godot works by itself in a very modular way and almost everything in Godot is just a Node, so we started having a folder called scenes/ where we keep all our modules.

But one of my co-workers thought it was odd to have a folder called scenes/, when its purpose isn't really just to host Godot Scenes, but modules of the project. And I agree with that, so we started calling this folder src/ but this is also an odd name since it sounds like "source" and doesn't communicate well its purpose. So we decided to call this folder modules/.

There are some other good names for this folder, here are some suggestions:

  • modules/ or features/: I like these names.
  • No folder at all: Is also a good option but you will end up with too many folders on the root of the project.
  • src/, source/, core/: Doesn't communicate very well its purpose.
  • systems/ or components/: this sounds good but is an odd name since it suggests an Entity Component System when you may not be using that.
  • domain/: from the domain-driven software design, maby a bit too abstract for my taste, and you may not been very strictly using a DDD design, so not the greatest name in my opinion.

Currently LibreAim has a folder on its root called "scenes" this is because I created this project before I had this conversation with my coworkers and really thought about this. So this folder name should be changed.

Too much coupling and too little cohesion

Right now, some core parts of LibreAim have too much coupling, and too little cohesion, I'll try to explain why.

Right now the scenes/ folder looks like this, and this looks very bad:

├── autoload
├── game_world
├── main_menu
└── target

Let's start with main_menu this folder hast too many responsibilities, mainly the main_menu/settings/ folder that contains all the stuff related to user custom settings. Settings should be it's own module, since now I want to be able to show game settings on pause menu #19 but it feels wrong since it's currently structured as a sub-module of MainMenu instead of Settings been it's own thing.

The same thing happens to game_world/ in this folder we have many things like the main first person shooter Player controller, many UIs like the EndGameUI, GameplayUI, PauseUI, and many systems like the BulletHole that you leave when you shoot at, and sample_world_geometry.tscn which is the 3D level where player is during the game.

It can make sense that they are categorized all under the umbrella folder game_world/ since they are all indeed things that are only visible when you are in the "game world" but they are not properly modularized. This is not a collection of independent modules, this folder is a root game_world.tscn that connects to too many submodules so it hast little cohesion, and all those submodules are highly coupled to the main game_world.tscn scene.

As you can already tell that the target/ it's on its own folder while the rest of things like this are under game_world/, this is just odd.

All of this can be improved!

]]>
antimundo119275692: https://codeberg.org/Nokorpo/LibreAim/issues/23Sun, 05 Apr 2026 14:17:11 +0200
Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/4cf7c930963ff7d69d3c5eb2125980f9b6505133 <a href="https://codeberg.org/Nokorpo/LibreAim/commit/4cf7c930963ff7d69d3c5eb2125980f9b6505133">4cf7c930963ff7d69d3c5eb2125980f9b6505133</a> Add screen reader and navigation improvements4cf7c930963ff7d69d3c5eb2125980f9b6505133 Add screen reader and navigation improvements]]>antimundo119253507: https://codeberg.org/Nokorpo/LibreAim/commit/4cf7c930963ff7d69d3c5eb2125980f9b6505133Sun, 05 Apr 2026 12:56:32 +0200Aquileo | antimundo closed issue Nokorpo/LibreAim#22https://codeberg.org/Nokorpo/LibreAim/issues/22#issuecomment-12308040 Add screen reader supportantimundo116291295: https://codeberg.org/Nokorpo/LibreAim/issues/22#issuecomment-12308040Sun, 29 Mar 2026 16:33:00 +0200Aquileo | antimundo commented on issue Nokorpo/LibreAim#22https://codeberg.org/Nokorpo/LibreAim/issues/22#issuecomment-12308037 Add screen reader support <p dir="auto">Closed for now in f9333e24ed but this should be an ongoing effort</p> Closed for now in f9333e24ed but this should be an ongoing effort ]]>antimundo116291286: https://codeberg.org/Nokorpo/LibreAim/issues/22#issuecomment-12308037Sun, 29 Mar 2026 16:32:59 +0200Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/f9333e24ed3eb4ad0d195cc4baf2c68f8fd37e7a <a href="https://codeberg.org/Nokorpo/LibreAim/commit/f9333e24ed3eb4ad0d195cc4baf2c68f8fd37e7a">f9333e24ed3eb4ad0d195cc4baf2c68f8fd37e7a</a> Add screen reader improvementsf9333e24ed3eb4ad0d195cc4baf2c68f8fd37e7a Add screen reader improvements]]>antimundo116291226: https://codeberg.org/Nokorpo/LibreAim/commit/f9333e24ed3eb4ad0d195cc4baf2c68f8fd37e7aSun, 29 Mar 2026 16:32:21 +0200Aquileo | antimundo opened issue Nokorpo/LibreAim#22https://codeberg.org/Nokorpo/LibreAim/issues/22 22#Add screen reader support#Right now most of the game GUIs can be read with screen readers, except for the custom "SliderSettings" buttons and color pickers that are all over the place in the settings.

It would be nice if these could be used by screen readers for accessibility reasons using Godot Access Kit!

]]>
antimundo115711872: https://codeberg.org/Nokorpo/LibreAim/issues/22Fri, 27 Mar 2026 23:03:20 +0100
Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/4e9e484746ab761c06d210fe6a20d1f45ab9aa30 <a href="https://codeberg.org/Nokorpo/LibreAim/commit/4e9e484746ab761c06d210fe6a20d1f45ab9aa30">4e9e484746ab761c06d210fe6a20d1f45ab9aa30</a> Add accessibility focus mode to titles4e9e484746ab761c06d210fe6a20d1f45ab9aa30 Add accessibility focus mode to titles]]>antimundo115710882: https://codeberg.org/Nokorpo/LibreAim/commit/4e9e484746ab761c06d210fe6a20d1f45ab9aa30Fri, 27 Mar 2026 23:00:42 +0100Aquileo | antimundo pushed to main at Nokorpo/LibreAimhttps://codeberg.org/Nokorpo/LibreAim/commit/3df89dc61aea5d6a1526814c2e8b7f882a41a588 <a href="https://codeberg.org/Nokorpo/LibreAim/commit/3df89dc61aea5d6a1526814c2e8b7f882a41a588">3df89dc61aea5d6a1526814c2e8b7f882a41a588</a> Add focus GUI to some missing elements3df89dc61aea5d6a1526814c2e8b7f882a41a588 Add focus GUI to some missing elements]]>antimundo115708323: https://codeberg.org/Nokorpo/LibreAim/commit/3df89dc61aea5d6a1526814c2e8b7f882a41a588Fri, 27 Mar 2026 22:53:06 +0100Aquileo | antimundo closed issue Nokorpo/LibreAim#21https://codeberg.org/Nokorpo/LibreAim/issues/21#issuecomment-11955066 Retrieve screen refresh rate on first loadantimundo113742402: https://codeberg.org/Nokorpo/LibreAim/issues/21#issuecomment-11955066Mon, 23 Mar 2026 10:56:31 +0100