Well, basically, you have "/" (root parition, like "C:"), where all global stuff is installed.
Games go into /usr/games, typically.
There is also place for global proprietary stuff, which goes into /opt/ directory. But its for globally available installs (all users of your machine).
If you do a local installation, you have your profile in /home/$your_user_name/
Unfortunately, only just recently there was agreement at Freedesktop standard, that LOCAL (your user) configuration fo should go into /home/$your_user_name/.config/..., and any DATA (like, notes for notetaking software) goes into /home/$your_user_name/.local/share/... which reflects the global paths (/usr/share/... for global data and /etc/... for global config).
Previously a LOT of software just wrote into /home/$your_user_name/, with directories starting with a dot ".example_of_dir", which hide them, but caused irritation if you turn ON the "show hidden files".
That said,... I create a "bin" directory in /home/$your_user_name/bin/.
Its actually standartized in Debian (should also be in Ubuntu) for per-user installed software...
Example: /home/$your_user_name/bin/KerbalSpaceProgram.
The rest does not matter.
The "Desktop links/Menu links" are just files, which go into likewise standard location:
/usr/share/applications - globally (to all users) available links to applications, and
/home/$your_user_name/.local/share/applications/
They just name the application, set category, icon and then point out where the binary is located.
No magic here.