Hello friends. How are you?
Long time no see. Today i want to log my journey on learning Game Development using Ubuntu 26.04.1 LTS from scratch and as a beginner.
I am a long Debian user, for as long as 10 years or so. I am not a techy sys-admin person. Just a general everyday user that work in user land. Why i choose Debian before? Its a set and forget distro. We set it up once and forget that it never exist. No moving package, no suprise what so ever. Robust and reliable, but old. And i don't mind old. some-package-12.5.6.1 versus some-package-16.7.4.10 doesn't bother me as long as they work as intended. So why i want to switch into Ubuntu? One reason I decided to switch is that MonoGame provides dedicated Linux setup instructions for both Ubuntu and Arch Linux. I suspect Debian can work too, but hey, let's start fresh!"
MonoGame's official Linux setup documentation targets Ubuntu. Installing the .NET SDK (.NET 10), MonoGame.Templates.CSharp, and Wine works out of the box without hunting down mismatched library names.
And the bonus: Tutorials tagged with Ubuntu, MonoGame and maybe Godot is more available than some niche distro or niche game framework. I have an error? Maybe someone already have it before me, and the answer already there on step googling away.
Monogame documentation
For other linux distro, we can refer to .NET documentation.
After some test on usb flasdisk, all my hardware is good. Wifi, Touchpad, and everyday use is fine. Ready to install.
...and i particularly like this proprietary selection. So we are not doing a manual labor later.
So, what is Use Active Directory? Some googling work and i got the answer.
Active Directory is Microsoft's centralized account and device management system, commonly used by businesses, universities, and organizations.
For example:
- Employees log into company computers using their organizational accounts.
- IT administrators manage user accounts and permissions centrally.
- Computers can follow organization-wide security policies.
- Network resources can be controlled centrally.
Do we need it?
Absolutely not. Leave it disabled.
For our Ubuntu machine:
- Create a normal local user account.
- Choose our username and password.
- Leave Active Directory unchecked.
We only need Active Directory if you're connecting Ubuntu to an organization's managed network. We are keeping this machine independent.
Before clicking Next, one final checklist:
- [x] Windows partitions untouched.
- [x] EFI partition reused, not formatted.
- [x] Ubuntu / → 70.50 GB, format.
- [x] Ubuntu /boot → 3 GB, format.
- [x] Ubuntu /home → 110.22 GB, format.
- [x] Dedicated 34.36 GB partition → for setting a hibernation later on.
- [x] Bootloader → nvme0n1.
We'll configure hibernation properly after installation. Having a swap partition alone doesn't guarantee hibernation will work.
And yes, i choose ext4 everywhere.
Btrfs is interesting, but for our Ubuntu gaming-development machine, I'd choose reliability and simplicity over extra filesystem features.
ext4 vs Btrfs
Feature ext4 Btrfs
Reliability Excellent Excellent
Performance Consistent Good, workload-dependent
Snapshots Nonative snapshots Yes
Rollback Requires additional tools Built-in
Compression No native transparent compression Yes
Complexity Low Higher
Maintenance Minimal More considerations
Why ext4 for our setup?
1. MonoGame and C#: Both work perfectly with ext4.
2. Gaming: No meaningful gaming advantage from choosing Btrfs.
3. Development: No special filesystem features are required.
4. Simplicity: Easier troubleshooting and fewer things to manage.
5. Hibernation: Dedicated swap works independently of whether / uses ext4 or Btrfs.
I particularly like this slide.
Okayy.. finish line.
Now lets install VS Code. And i prefer apt over snap. Here what i found (my preferences):
| Consideration | APT | Snap |
|-----------------------|---------------------------------|-------------------------|
| Installation source | Microsoft repository | Microsoft Snap Store |
| Updates | Through `apt upgrade` | Automatic |
| Startup | Generally quicker | Can be slightly slower |
| Integration | Native .deb Debian package | Snap integration |
| Sandboxing | Traditional package permissions | Snap confinement |
| Development workflow | Excellent | Excellent |
Open the terminal and do:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/microsoft.gpg
Add microsoft repository:
echo "Types: deb
URIs: https://packages.microsoft.com/repos/code
Suites: stable
Components: main
Architectures: amd64,arm64,armhf
Signed-By: /usr/share/keyrings/microsoft.gpg" | sudo tee /etc/apt/sources.list.d/vscode.sources
Then install VS Code:
sudo apt update
sudo apt install code
If you want to download manually the .deb file, you can refer to this documentation:
https://code.visualstudio.com/thank-you?dv=linux64&build=stable
Next we need three things:
NET 10 SDK — required to compile and run C# programs.
C# Dev Kit — recommended VS Code extension for IntelliSense, debugging and project management.
MonoGame prerequisites — install when we start game development.
Lets install .NET. Open terminal again and do:
sudo apt update
sudo apt install dotnet-sdk-10.0
Official reference: Microsoft's .NET installation guide
Verify the installation:
dotnet --info
dotnet --list-sdks

Next: C# Dev Kit
Open VS Code:
1. Press Ctrl + Shift + X.
2. Search C# Dev Kit.
3. Verify the publisher is Microsoft.
4. Click Install.
C# Dev Kit – Visual Studio Marketplace
It should install the supporting C# extension as well.
Now lets test it with classic hello world:
Open terminal and type:
mkdir -p ~/csharp
cd ~/csharp
dotnet new console -n HelloGame
cd HelloGame
code .
VS Code Workspace Trust
When you open a new project folder in Visual Studio Code, you might notice a security warning or a Restricted Mode banner.
Don't worry. This is a built-in security feature called Workspace Trust.
VS Code uses this feature to protect your computer when opening projects from unfamiliar sources. Some projects contain scripts, tasks, extensions, or workspace settings that could execute code automatically. A malicious project could potentially use these features to harm your system.
In Restricted Mode, VS Code limits certain features, such as debugging, terminal access, tasks, and some extensions, until you decide whether to trust the project.
What should you do?
If this is your own project folder, which you created yourself, or a project whose contents and source you have reviewed and trust, you can select Trust this folder to enable the full VS Code experience.
However, if you've downloaded a project from an unfamiliar website or received it from an unknown source, leave it in Restricted Mode until you've checked that it's safe.
For our C# exercises, we'll be working with folders and projects that we create ourselves, so trusting those folders is perfectly reasonable.
You can also manage trusted folders later through the Command Palette:
`Ctrl + Shift + P` → `Workspaces: Manage Workspace Trust`
Remember: Only trust projects you trust, not every folder that VS Code asks you about.
Official reference: VS Code – Workspace Trust Documentation
Hello world!
System summary:
| Component | Configuration |
|---|---|
| OS | Ubuntu 26.04.1 LTS |
| Filesystem | ext4 |
| Desktop | GNOME |
| IDE | Visual Studio Code |
| Language | C# |
| SDK | .NET 10 |
| Framework | MonoGame (planned) |
| Architecture | x86_64 |
Next topic: Revisit C# and "Hello World!" for absolute beginner.
See ya later friends!
No comments:
Post a Comment