Flyby is a MonoGame powered flight game, originally started as a homework using the XNA Framework for a university course in 2012.
- .NET Core SDK 3.1.100 or newer
- MonoGame Content Builder as .NET Core global tool, aka
dotnet-mgcb
- 1.4 GHz x86 processor
- 512 MB memory
- Shader Model 2.0 / OpenGL 2.0 capable video card with 128 MB memory and working OpenGL driver
- .NET Core Desktop Runtime 3.1.0
git clone git@github.com:laszlolukacs/flyby-xna.git <LOCAL_WORKING_DIR>
dotnet tool install --global dotnet-mgcb --version 3.8.0.1375-develop
- (on UNIX) Copy the
Assimp64.so
from the/home/[username]/.dotnet/tools/.store/dotnet-mgcb/3.8.0.1375-develop/dotnet-mgcb/3.8.0.1375-develop/tools/netcoreapp3.1/any
directory to the./res/Content
directory, this is a MGCB quirk - (on Windows) Copy the
Assimp64.dll
from theC:\Users\[Username]\.dotnet\tools\.store\dotnet-mgcb\3.8.0.1375-develop\dotnet-mgcb\3.8.0.1375-develop\tools\netcoreapp3.1\any
folder to the.\res\Content
folder, this is a MGCB quirk - Install the fonts from the
./src/Flyby.Application/Contents/Fonts
directory - Invoke
build.ps1
to compile the application - Invoke
dotnet ./bld/application/Flyby.Application.dll
The current version utilizing MonoGame and .NET Core is accessible using the ./Flyby.sln
VS solution.
- A/Z - Increase/decrease thrust, which affects aircraft speed and climbing ability
- Up/Down arrows - Pitch up/down the aircraft
- Left/Right arrows - Roll left/right the aircraft
- Enter - Resets the aircraft to the starting position
- Escape - Quits the game
- (Only during debugging) F2 - Toggles aircraft collision hit boxes
- The explorable area is too small, quite easy to fly out of the playable area
- Currently used physics implementation is a way too quick and dirty
- No ability to fire any weapons of the aircraft
- Lack of unit tests
- Compiling Custom Effects on UNIX systems can be tricky as it requires a valid Wine installation
A version using the classic XNA Framework is still available by opening the ./Flyby.Xna.sln
VS solution. It uses the MSXNA
conditional build symbol for code branching and the resources exclusive for the classic XNA Content Pipeline have either the .xnacompat
or the .xna
suffix in their file names.