Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

Question Multiple .exe in a single project vs. Nintendo Switch / Console port

Discussion in 'Editor & General Support' started by Garien, Oct 11, 2023.

  1. Garien

    Garien

    Joined:
    Oct 11, 2018
    Posts:
    32
    Hey all!

    I have a very specific question, couldn't find anything about it online. Hopefully someone here will be able to help :)

    I'm working on a project that works as a bundle of short games. It consists of multiple short games that players can select through the main menu, and each one of those games has a unique art style and gameplay, varying from hand-drawn to pixel art, to 3D.

    Our initial approach was to make a different project for every short game, because it makes it easier to setup render pipelines and is overall more organized.

    Then, we would make builds of each project, and put all builds inside a new "master" project, which would just act as the main menu, where the players can select the game they will play. Once the player selects their game of choice, it would run the .exe of that project's build, closing the master project build and opening the short game build. If a player wants to return to the main menu, then we would close the current game build and open the master project build.

    That would work fine for PC. However, we have plans to port it for consoles, Nintendo Switch first. I was wondering how this would behave on Nintendo Switch and other consoles like the ps4? Would this approach work?

    The other approach would be to have all short games under the same project, but this is something we would like to avoid as it would be harder to manage rendering pipelines & assets, would require a very tight project management and whatnot, but if our current approach is a blocker to console porting, then we must consider it.

    Thanks in advance!
     
  2. Kurt-Dekker

    Kurt-Dekker

    Joined:
    Mar 16, 2013
    Posts:
    36,797
    I would make them all in one project, each mode in its own scene with its own set of assets.

    Otherwise managing X projects sounds like far more of a nightmare.

    Just use good source control practices and off you go.
     
  3. CodeSmile

    CodeSmile

    Joined:
    Apr 10, 2014
    Posts:
    4,106
    Single project is the way to go, always. You're wasting at least app size by using multiple projects because every duplicate asset exists as a duplicate in each project, rather than as a shared resource. And you will definitely have shared assets, scripts for sure but also things like company logos, fonts, audio ...

    Sharing assets between projects adds time-consuming overhead. You need to make builds separately and you're going to have to implement launching and returning from external processes on different platforms. What if these apps need to share data in a cross-platform compatible way? Don't underestimate the issues that go with a multi-project approach, this is most certainly going to be a more time-consuming, error-prone workflow than all in one project.

    Please explain what you mean by "easier to set up render pipelines"? Most of that configuration is actually done per-scene, like lighting and post-processing.

    Specifics about the console SDKs are under NDA so cannot be discussed publicly.
     
  4. Garien

    Garien

    Joined:
    Oct 11, 2018
    Posts:
    32
    Hi all, thanks for the swift and insightful replies.

    Indeed, some assets would be shared, but the vast majority would not, since the gameplay and art style varies wildly per project. We wanted to avoid project clutter, reduce the risks of breaking finished projects while working on the new ones, each project would require specific packages that wouldn't necessarily be used in others, and so on. Overall, multiple projects seemed like a good idea at the start...

    Oh, I didn't mean the lighting configuration per se, but the scriptable render pipeline asset under graphic settings that's being used: upload_2023-10-12_11-51-7.png

    Each project will most likely require their own of this asset with their own settings, due the vast gap between artstyles on them. It's okay though, it's possible to change this in runtime via code, so we should be fine.

    Once again, thanks for the replies. We'll probably switch to single project as it seems to be the safer approach.
     
  5. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,507
    Can't discuss consoles here but my advice would be to make your game work on iOS (note: not Android). It has many platform restrictions you might see elsewhere.