MaKiPL / OpenVIII-monogame

Open source Final Fantasy VIII engine implementation in C# working on Windows and Linux (Android and iOS planned too!) [Monogame]
MIT License
645 stars 59 forks source link
8 battle engine engine-reconstruction fantasy final final-fantasy-8 final-fantasy-viii game monogame viii

OpenVIII

Open source VIII engine implementation in C#

Check our website to find screenshots and more info at: https://makipl.github.io/OpenVIII-monogame/

Getting started (Windows)

Requirements: MonoGame + Visual Studio

  1. Download and install Visual Studio 2019 and NET Framework 4.7.2

  2. Clone the repository:

git clone https://github.com/MaKiPL/OpenVIII-monogame.git
  1. Download and install MonoGame 3.7.1:

  2. If you get an "Unable to load DLL 'FreeImage'" error, download and install:

  3. In Visual Studio 2019, while the solution is open, go to Tools > NuGet Package Manager > Manage NuGet Packages for solution. Make sure the required packages are installed and everything is up to date. There should be a notice on this screen if a package isn't installed. There will be a number in a box next to Updates if there are out of date packages.

  4. Make sure you add the Final Fantasy VIII path to the array at Core\GameDirectoryFinder.cs. On Windows the code tries to detect the install path via the registry. If it fails, it'll fall back to the array.

  5. That's all. You can now compile the executable.

Getting started (Linux/Mono) [Tested on Ubuntu]

  1. Clone the repository
git clone https://github.com/MaKiPL/OpenVIII-monogame.git
cd OpenVIII-monogame
  1. Make sure your Linux is up to date. Due to the FFmpeg dependency, we require Ubuntu Cosmos.

    sudo apt update
    sudo apt upgrade
  2. Install dependencies

    ## Installing ffmpeg and mono
    sudo apt-get --assume-yes install nuget mono-complete mono-devel gtk-sharp3 zip ffmpeg
    echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | sudo debconf-set-selections
    sudo apt-get --assume-yes install ttf-mscorefonts-installer
    ## Installing monogame 3.7.1
    wget https://github.com/MonoGame/MonoGame/releases/download/v3.7.1/monogame-sdk.run
    chmod +x monogame-sdk.run
    sudo ./monogame-sdk.run --noexec --keep --target ./monogame
    cd monogame
    echo Y | sudo ./postinstall.sh
    cd ..  
    ## Get missing Nuget Packages
    nuget restore
  3. Build from command line (optional):

    msbuild $Env:APPVEYOR_BUILD_FOLDER/OpenGL$Env:operatingsystem /property:Configuration=Debug$Env:operatingsystem  /property:Platform=$Env:platform
    #$Env:APPVEYOR_BUILD_FOLDER is just a folder you want to build to.
    #$Env:operatingsystem = Linux
    #$Env:platform = x86 or x64
    #please customize the command for what you want to do.
  4. Install an IDE

    1. Latest version of MonoDevelop for Linux
    2. The new version 3.8 of Monogame is recommending VSCODE. It may work with Monogame 3.7.1. This reddit post talks about getting things working. Though it might be easier to stick with Monodevelop. I haven't had a chance to test vscode out.
  5. Open FF8.sln with your IDE.

  6. If you encounter missing Microsoft.XNA... then please open NuGet package Edit/Packages/Add Package:

MonoGame.Framework.DesktopGL

MonoGame.Framework.DesktopGL.Core

MonoGame.Framework.OpenGL

  1. Make sure you add the Final Fantasy VIII path to the array at Core/GameDirectoryFinder.cs

Command-Line Arguments

  1. Enable log file.

log=true

  1. Force a FF8 Directory Path.

dir="Path_To_FF8"

  1. Force a different data folder.

data="Path_To_Data"

  1. Force language code.

lang=xx

Development guidelines

  1. This project is currently in active development, therefore you can make new pull requests directly to main branch.

  2. ??

PS. Required FFmpeg dlls. (available on Ubuntu Cosmos via sudo apt-get install ffmpeg)