A pixel-art platformer in F#, where you must fight your way to the portal, collecting coins and slaying orcs along the way!
Switch branches/tags
Nothing to show
Clone or download

README.md

MiniKnight

A pixel-art platformer where you must fight your way to the portal, collecting coins and slaying orcs along the way! Features five levels (each loaded from pixel bitmaps), sound effects, music, enemy AI etc. Somewhat difficult, but quite forgiving. Also includes high score functionality.

demo capture gif

Coded in F# on dotnet core 2.1. Developed using VS Code 1.25.1 on Windows 10. Game loop engine is MonoGame 3.7

To run:

  • Ensure you have the dotnet core sdk installed from here: https://www.microsoft.com/net/download
  • From the base directory of the repo, run the command dotnet run
    • If you encounter issues and are not on Windows, try the steps in the 'supported platforms' section below
  • It can also be opened in VS via the .sln - I've tested this on VS2017 Community 15.6.4. You will probably still need the SDK installed
  • To compile an exe (or platform equivalent) use dotnet build -r [rid] where [rid] is the appropriate runtime identifier from here: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog

Acknowledgements

All code is my own, and available under Unilicense. I am using the following additional assets, all sourced from https://opengameart.org:

Additionally, I used ScreenToGif to create the screencapture: https://github.com/NickeManarin/ScreenToGif

And the coders crux font: https://www.dafont.com/coders-crux.font

Supported platforms

Being dotnet core 2.1, it should work on all platforms that supports (Windows, Linux, Mac). Tested (and largely coded on) Windows 10. A full list of dotnet core supported platforms can be found from here: https://github.com/dotnet/core/blob/master/release-notes/2.1/2.1-supported-os.md

I built this using VS Code, but have also tested opening and running on Visual Studio 2017.

A note for mac users: part of the compilation of this game involves building the content, done using a MonoGame content builder referenced via Nuget. On OSX, this component does not work with just dotnet core. I have managed to get it going by doing the following:

After the build succeeded, a sudo dotnet run started the game without issue.

A note for mac AND linux users: the map loader uses System.Drawing, which on non-windows means you need to install libgdiplus. Details can be found here: https://github.com/CoreCompat/CoreCompat#running-systemdrawing-for-net-core-on-os-x-or-linux

They suggest there that I could add Nuget packages to get around this, but I had mixed success doing so on my OSX test machine.

Note on development sequence

This project was developed after Tetris here.

The next project developed after this, and using the lessons learned, was DungeonRaider here.