Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add AnodyneSharp.FNA.sln #28

Closed
5 tasks
flibitijibibo opened this issue Feb 8, 2023 · 4 comments
Closed
5 tasks

Add AnodyneSharp.FNA.sln #28

flibitijibibo opened this issue Feb 8, 2023 · 4 comments

Comments

@flibitijibibo
Copy link

This is less a request and more a task for me to look at eventually, so this can be assigned to me!

Tasks:

  • Add solution, Framework-based rather than Core
  • Add script to compile effects with wine fxc.exe /T fx_2_0 /DOPENGL
  • Adjust InitGraphics to be called in the constructor, adding a bool to not call ApplyChanges so startup avoids creating multiple GraphicsDevice objects
  • Quick packaging script for Linux builds, pulling in both MonoKickstart and fnalibs
  • Maybe some MG ABI breakage fixes

Not Doing:

  • Rebuilding content, can either use the raw assets or reuse MGCB
  • macOS build
  • Windows build script, just download fnalibs!
@SephDB
Copy link
Collaborator

SephDB commented Feb 8, 2023

I'm wondering what the advantage of moving to FNA is? (Also, you can just fork this repo and put this issue in there if it's a thing you want to do)

@flibitijibibo
Copy link
Author

flibitijibibo commented Feb 8, 2023

I'd like to have this for our test suite in particular, having another trace for FNA-XNA/FNA3D#72 will be helpful, and it's nice for us to have more FNA games with source available.

Secondarily, it allows for single-assembly portability (D3D11/Vulkan/OpenGL are all in one binary), and would fix things like native Pro Controller support on Windows (FNA exclusively targets SDL, including on consoles). I probably won't go as far as replacing MG unless it turns out the port provides some kind of substantial perf improvement or something, but it's definitely a nice-to-have on our end.

@SephDB
Copy link
Collaborator

SephDB commented Feb 8, 2023

Please make your own fork of our project and track the progress on your project there. We might archive this github soon since this project is done and we're moving on to our next games.

@SephDB SephDB closed this as completed Feb 8, 2023
@flibitijibibo
Copy link
Author

Repo is here: https://github.com/flibitijibibo/AnodyneFNA

Most of the work didn't involve FNA as much as .NET versions, since I still ship with Framework rather than Core. Aside from the above task list I also ended up moving from NVorbis to stb, but I could have technically skipped that - no big deal though!

A cleaned up version of this diff would likely add an FNA def for Vorbis as well as the InitGraphics timing issue, as well as a couple extensions used in the engine (FNALoggerEXT and GetGUIDEXT I think are the only two?). It would also add a compatibility file to cover stuff like MathF and some of the maskable MG ABI breakages.

For now though, going to make sure this actually works all the way through, and report back if anything unusual shows up.

Repository owner locked and limited conversation to collaborators May 16, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants