Questions Concerning porting the UPBGE Standalone Player to Wii Homebrew

I am part of the Wii homebrew community and have intermediate experience with Python and C++. As my first big project, I’m considering porting UPBGE’s standalone player so that I can develop games on my PC and then play them on my Wii, and potentially release this to the public.

With that in mind I have several questions concerning the standalone player, so that I know what to expect.

  1. Where in the source code is the standalone in UPBGE? Is a specific set of source files needed to compile the executable and its libraries or does the entire source get recompiled into *.EXE form with some arguments switched on? do I also need to write a separate plugin for this, like the current standalone publishing tools do, or is that not necessary?
  2. What are all of its dependencies? The only ones I know of are OpenGL 3.2 and Bullet (which I’ve read is a custom version 2.88). Is the rest of the code aside from the parts that use these self-contained (or use standard language libraries), or are there other different libraries UPBGE is built off of that need to be ported as well? I ask this because I want to change as little of the game engine’s source code as possible so that if something goes bad I know where it is.
  3. Is there documentation that lists every feature of UPBGE (i.e. visual effects, physics simulations), so that I know which features to keep and which to cut? The Wii has a relatively weaker GPU compared to other consoles of its generation, so deleting the code that won’t work anyway will decrease file size and improve performance.
  4. I doubt that Nintendo would come after this (if/when this port come to fruition) since the Wii is a more-or-less dead console, but for the sake of safety, would the release of a completed engine to the public constitute legal concerns I should be worried about?

Thanks for any input, and if there’s anything else I need to know, please tell me.

-Jako

1 Like
  1. When you export a game as standlone, the blend file gets inserted into the blenderplayer.exe file. Also in the directory, all the dll files are included. You can also run a blend file with the blenderplayer through the command line rather than actually exporting the game (as long as you still have all the dll’s of course).

  2. To be sure you have all the dependencies, include all the dll files like i mentioned above.

  3. https://doc.upbge.org/

  4. No, because blender is open source and has a GPL license so you can do whatever you want.

In terms of sources for the standalone player, I think it will pick most of the libraries from the standard/embedded engine sources. But I am not really a core dev so I wouldn’t know for sure.

I guess it would be simplier to understand what is fetched/linked if you looked at the CMakeList.txt:
https://github.com/UPBGE/blender/blob/master/source/blenderplayer/CMakeLists.txt#L26

Then the sources are mostly located in the gameengine folder (unexpected) with some includes from other places, not really sure which or why:
https://github.com/UPBGE/blender/tree/master/source/gameengine

Yes, this is a rather big project indeed, but who knows, maybe it is easier than it seems :stuck_out_tongue:

Good luck :slight_smile: