Moller’s Aim Trainer Build 124 & 125

Build 125

Build 125 Changes

This build changes how targets spawn in reflex and popup targets room. Before they spawned completly random, which made users score a bit lucky depeneded. The new way changes the so it has equal amount of short/mid/far distance spawns from the previous target.

What that change it also means that the highscores on those  rooms have been reseted.

Build 124

This build contains a lot of UI fixes, and also added a new zoom sensitivity option, you can easily set your set your zoom sensitivity correctly and practice sniping.

Build 124 Changes

  • Now shows patchnotes ingame.
  • Added Relative Zoom Sensitivity. When you zoom in your sensitivity becomes “normal sensitivity*  Relative Zoom Sensitivity). This is what Overwatch and other games are using. So for example, if you have 38 in Overwatch, then you should have 0.38 here.
  • You can now set horizontal FOV directly.
  • Improved color picker.
  • Fixed input boxes so they are easier to use.
  • Minor UI changes.
  • Default FOV is now 70.53 (103 horizontal). So it’s the same as Overwatch. (Only affects new users)
  • Default zoom FOV is now 30.04. So it’s the same as Overwatch. (Only affects new users)
  • Fixed so local leaderboard updates correctly when changing preset.

Download page.

Join the discord


Moller’s Aim Trainer Build 123

This patch adds the option to save your own setting preset in rooms. So now you can save your warmup settings, or practice settings. So you don’t have to re-enter the settings everytime you launch the game.

Build 123 Changes:

  • Added presets.
  • Fixed reaction room, so it actually works.
  • Improved leaderboard loading, again…
  • Fixed bug where you had lower fire rate on tracking room when having lower fps.
  • Fixed bug where bullet decals got stuck midair when shooting at destoryable targets.

Download page.

Join the discord


How Overwatch’s crosshair work and what they can do better.

When working on my game, I wanted a way for players to quickly make a crosshair they like. That also works with showing spread. So I started by looking how Overwatch did theirs, but I noticed they had a lot of flaws they could improve upon.

All images used are up-scaled to four times size using nearest neighbour, and saved using a lossless format. So all the images are shown exactly how they are shown in-game.

Color Bleed

Overwatch’s crosshair has color bleed, which I’m gonna guess is because they used a texture then just scaled it to the right size. And let the engine figure it out

What they have done is taken a texture and just scale it down to the right width and height, which works okay when you are just doing it with a solid color. But when you want outlines and you do that, then pixels start bleeding over to each other, and what you end up with a blurry crosshair.

Take a real close look at the line, its color is a bit everywhere and also colors a bit outside itself also.

What they should have done instead, is to split up the fill color and outline color and having each as a separate sprite and color.  What you end up with then is a solid crosshair and as a plus side, you can change outline thickness and color really easy.

But my way have its own downsides as you can see. While my dot sticks out more and is more visible, it can look pixelated when using bigger dots. To fix that we change the fill texture to a dot that fades out at the edge, so we get a more smooth dot while still having a solid outline.

Overlapping parts

In Overwatch, each “part” of the crosshair is rendered as one object, with the outline and the main part being part of the same object. While that makes it quick and easy to move around part of the crosshair, the problem becomes when the parts overlap. Since the draw order mixes the white and black colors, which ends up looking really bad as you can see below.

(Note the artefacts you see in these images are actually how they are rendered in-game)

How Overwatch render the crosshair.

What they should have done instead is first render the outline then render the fill part on top of it.  Which results in a better-looking crosshair.

How they should render the crosshair.

It allows enables you to set outline thickness and color separate from the fill color. Below is a example of what kind of crosshair you can make with that.

Half pixel gap

In Overwatch when you set the center gap to an uneven number, it doesn’t actually move the crosshair. Because you can’t move half a pixel, so what they do instead is trying to fake that the gap got bigger when in reality it didn’t. They do that by making each line one pixel longer and apply fading at both ends of the line. The fading also overlaps unto the outline. So what you end up with is a slightly blurred version of the crosshair.

Scales with resolution

So you might say that is a good thing, but the way Overwatch scales its crosshair makes the end result look bad. It just seems to have a sprite then set the scale to what they want it to be.  And when it doesn’t fit exactly right, then it starts to make the crosshair a bit transparent.

The image below has same crosshair settings as the image above, but having the game in 1024*768 resolution. The crosshair now nearly blend into the background. The colors it should have is white (255, 255, 255) and black (0, 0, 0), instead they are (198, 188, 161) and the outline is hard to even say it’s color, since it’s different all around. If you want the same crosshair colors at 1920*1080 resolution (not that I think anyone would want to) then you need to set crosshair opacity to around 50. So playing at lower resolution basically forces you to play with 50% transparent crosshairs.

Lacking options

This is something pretty much everyone knows but I’m including it anyways.

  • Allow setting crosshair color to any color, not just some preset colors.
  • Allow setting crosshair outine color.
  • Having a separate color option for the crosshair and the dot part.
  • Outline thickness.
  • Choose which parts of the crosshair to render, so you can, for example, make a T crosshair.
  • Hitmarker color, size, and offset from the middle.

But the biggest thing of all, because no matter how many crosshair options you add there will always be someone that can’t get the crosshair he wants. So supporting loading in a png file for a crosshair, would be huge.

My version

So what you can see below is how my version ended up being, you can play around with the slider and colors to test it. My game also has support for loading any png, but it’s not included in the demo.

You can find the code for my crosshair here.
I wrote this system for my aim training game.

Moller’s Aim Trainer Build 122

This build introduces a new crosshair system, while the old one was super customizable, it was to much effort for doing small changes. The new one allows you to make fast changes while still being pixel perfect. The old system will still be there, for the people who wants more customizable.

Build 122 Changes:

  • Added more crosshair options.
  • Fixed so the leaderboard loads correctly at first load.
  • It now shows which preset is in use.
  • Fixed so the room dosn’t reset when changing options.
  • Minor UI changes.

Join the discord (I’m giving out steamkeys here.)


Möller’s Aim Trainer Build 121

This build is for Steam only, these changes are coming to the non steam version in the weekend update.

Steam Build 121 Changes:

  • Fixed bug where the FOV was always lower then it should had been.
  • Fixed a bug where Steam leaderboards didn’t include duration when saving. This fix sadly wipes out all current scores, but that shouldn’t happen again.
  • Steam leaderboards now saves hits/misses.
  • Fixed Steam leaderboards so they work on first load.
  • Fixed titles on leaderboards, and allow room to override the titles with their own.

Join the discord (I’m giving out steamkeys here.)


Möller’s Aim Trainer Build 120

Build 120 Changes:

  • One new room,  Sphere targets room. It’s similar to popup targets room, but works more in a 3d space.
  • [Bigger smaller room] Added one new option, hold time. How long it should stay at max size before getting smaller.
  • [Left to Right Room] Fixed missing presets.
  • Steam leaderboards now updates faster.
  • Fixed bug where it added to local leaderboard twice.
  • Fixed bug where escape didn’t close the menu on first press.

Download Möller’s Aim Trainer Build 120 (Windows)

Join the discord (You can request a steam key there)