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

- IDEAS MEGATHREAD - #390

Open
snouz opened this issue Apr 23, 2024 · 25 comments
Open

- IDEAS MEGATHREAD - #390

snouz opened this issue Apr 23, 2024 · 25 comments

Comments

@snouz
Copy link
Collaborator

snouz commented Apr 23, 2024

This thread is compiling every general idea which has no owner and no current plan, and is not currently considered a "problem". This is to better organize issues. If someone want to work on some of these, you can re-open the related ticket.

GAME

CARDS

CHEATS

LAUNCHER

META

@snouz snouz pinned this issue Apr 23, 2024
@snouz snouz changed the title IDEAS MEGATHREAD - IDEAS MEGATHREAD - Apr 23, 2024
@reverieAR
Copy link

21:9 ultrawide support would be nice

@snouz
Copy link
Collaborator Author

snouz commented Apr 25, 2024

21:9 ultrawide support would be nice

It's in the list, #186, I tried to add this feature recently, but I haven't found the right way to do it yet (couldn't make it stable and found that it multiplies the number of issues with specific backgrounds) and I put the idea aside as I think the benefits are debatable.

Are you still able to select a 16:9 resolution on a 21:9 screen? I don't own one, I can only emulate that aspect ratio.

@Naarin
Copy link

Naarin commented Apr 26, 2024

What about having the possibility that the characters join at level 1 ?

@Felipefpl
Copy link
Contributor

21:9 ultrawide support would be nice

This wouldnt create problems with moguri mod?

@reverieAR
Copy link

reverieAR commented Apr 27, 2024

FFNx manages to do 21:9 on Final Fantasy 7 with AI upscale backgrounds.

@snouz
Copy link
Collaborator Author

snouz commented Apr 27, 2024

FFNx manages to do 21:9 on Final Fantasy 7 with AI upscale backgrounds.

21:9 ultrawide support would be nice

This wouldnt create problems with moguri mod?

It depends what you mean by 21:9.

  • If you're talking about not changing size/width of images and just make battles/worldmap/very wide backgrounds 21:9, this is very achievable, just temporarily shelved due to code complexity.
  • If you're talking about zooming on screens that are not widescreen, this is not easy but feasible. It could be a feature, I could see it as an option, I don't yet know what would be the consequences of it though (camera panning problems? scenes with custom code? invisible actors? backgrounds where you'd never see the top of?)
  • If you're talking about generating the missing pixels with AI... I don't see it happening in FFIX... That's herculean, this engine was not made to support that at all (due to the specific structure of background images and how they're stored), it would also be quite disrespectful IMO.

I don't see the problem with Moguri though, which is just texture replacement. I'm working on these features in Memoria to then update Moguri (which is coming soon too)

@Felipefpl
Copy link
Contributor

Good to know, thanks for the explanation. 👍

@Albeoris
Copy link
Owner

Albeoris commented Apr 28, 2024

@snouz , @Tirlititi

Since Alternate Fantasy is the gold standard right now, my idea is about that, as there's no point in making multiple massive mods that change the difficulty of the game.

However, it seems to me that to implement this idea, changes are required in Memoria: I would like to have a convenient framework for customizing all fights (especially boss fights) and using it to make the battles less standard.

@DV666
Copy link
Contributor

DV666 commented Apr 30, 2024

For my part, here are the ideas I'd like to implement for Memoria:

  • Way to change a command via AbilityFeature.txt (mentioned the idea to Tirlititi).
  • Make it possible for the “Item” command to be double-cast (not tested, but I don't think this is currently possible right now) => The goal is to create a “Mix” command like FF5's alchemist.
  • Create a music playlist for a track (e.g.: battle music offers 4 or 5 different tunes, in order or random).
  • Set up Triple Triad's special rules (in progress on my side...)

And maybe a few other things, but that's mostly what's on my mind right now.

@Albeoris
Copy link
Owner

@DV666, do you plan to do some kind refactoring with QuadMist? :)
I checked it yesterday and it looks terrible (I spent 2+ hours to get that "I can play minigame" is a flag on NPC object, but reference to the player in DB is a part of script in event engine, and another hour to find where we filling Enemy and Player Hands x.x)

I guess we can introduce Memoria.CardGame project, and move all types to it except Unity-classes like MonoBehaviour and ScriptableObject

// Memoria.CardGame.dll
public interface IQuadMistGameView
{
    public TextMesh WinScore { get; }
    public TextMesh LoseScore { get; }
    public TextMesh DrawScore { get; }
    public TextMesh CardTypeCount { get; }
    public TextMesh CardStockCount { get; }
    // ...
}

// Memoria.CardGame.dll
public sealed class QuadMistGameImplementation
{
    private readonly IQuadMistGameView _view;

    public QuadMistGameImplementation(IQuadMistGameView view)
    {
        _view = view;
    }
    
    public void OnStartMonoBehaviour()
    {
        // Moved spagetti-code
        QuadMistGame.main = this;
        InitResources();
        preBoard.InitResources();
        board.InitResources();
        ClearHands();
        ClearGameObjects();
        ClearStates();
        ClearInput();
        FF9Snd.ff9minisnd_song_play(66);
        StackCardInfo = new QuadMistCard();
        StackCardCount = 0;
    }
}

// Assembly-CSharp.dll
public class QuadMistGame : MonoBehaviour, IQuadMistGameView
{
    private readonly QuadMistGameImplementation _impl;

    public QuadMistGame()
    {
        _impl = new QuadMistGameImplementation(this);
    }
    
    private void Start()
    {
        _impl.OnStartMonoBehaviour();
    }
    
    public TextMesh winScore;
    public TextMesh loseScore;
    public TextMesh drawScore;
    public TextMesh cardTypeCount;
    public TextMesh cardStockCount;

    TextMesh IQuadMistGameView.WinScore => _winScore;
    TextMesh IQuadMistGameView.LoseScore => _loseScore;
    TextMesh IQuadMistGameView.DrawScore => _drawScore;
    TextMesh IQuadMistGameView.CardTypeCount => _cardTypeCount;
    TextMesh IQuadMistGameView.CardStockCount => _cardStockCount;
    
    // ...
}

After we hide unchangeable Unity-code beyond the interface, we can start the refactoring of logic.

    // Before:
    private void Start()
    {
        // Moved spagetti-code
        QuadMistGame.main = this;
        InitResources();
        preBoard.InitResources();
        board.InitResources();
        ClearHands();
        ClearGameObjects();
        ClearStates();
        ClearInput();
        FF9Snd.ff9minisnd_song_play(66);
        StackCardInfo = new QuadMistCard();
        StackCardCount = 0;
    }
   
    // After:
    public void OnStartMonoBehaviour()
    {
        var ctx = GetTetraMasterContext();
        InitializeGameMode(ctx.Mode);
        InitializePlayer(ctx.PlayerData);
        InitializeOpponent(ctx.OpponentData);
        InitializeBackgroundMusic(ctx.Music);
    }

Something like that.
But it must be definitely done when no one is working with this place. :)

@Felipefpl
Copy link
Contributor

Just an idea: wouldnt be better to fix (if it's possible) or close all oldest issues before this one to give at least a feeling of closure to the ppl who posted them? Just some food for thought. ;)

@Albeoris
Copy link
Owner

Albeoris commented May 1, 2024

Just an idea: wouldnt be better to fix (if it's possible) or close all oldest issues before this one to give at least a feeling of closure to the ppl who posted them? Just some food for thought. ;)

That is what @snouz did in the beginning of this thread.
But we still have our own wishes, and they do not always overlap with existing issues, but some of them are too important to be closed.

@snouz
Copy link
Collaborator Author

snouz commented May 1, 2024

Just an idea: wouldnt be better to fix (if it's possible) or close all oldest issues before this one to give at least a feeling of closure to the ppl who posted them? Just some food for thought. ;)

I've done the cleaning, but of course if an issue becomes a real project, lets reopen that thread.

I'm myself opening ideas, adding them here and closing immediately, this way the ideas are here to be explored in the future by anyone, but the "issues" board stays usable as a "current" issue/progress tracker.

@Felipefpl
Copy link
Contributor

That is what @snouz did in the beginning of this thread.

I know but i'm talking about the other issues not mentioned there. ;)

@DV666
Copy link
Contributor

DV666 commented May 8, 2024

@DV666, do you plan to do some kind refactoring with QuadMist? :) I checked it yesterday and it looks terrible (I spent 2+ hours to get that "I can play minigame" is a flag on NPC object, but reference to the player in DB is a part of script in event engine, and another hour to find where we filling Enemy and Player Hands x.x)

I guess we can introduce Memoria.CardGame project, and move all types to it except Unity-classes like MonoBehaviour and ScriptableObject

// Memoria.CardGame.dll
public interface IQuadMistGameView
{
    public TextMesh WinScore { get; }
    public TextMesh LoseScore { get; }
    public TextMesh DrawScore { get; }
    public TextMesh CardTypeCount { get; }
    public TextMesh CardStockCount { get; }
    // ...
}

// Memoria.CardGame.dll
public sealed class QuadMistGameImplementation
{
    private readonly IQuadMistGameView _view;

    public QuadMistGameImplementation(IQuadMistGameView view)
    {
        _view = view;
    }
    
    public void OnStartMonoBehaviour()
    {
        // Moved spagetti-code
        QuadMistGame.main = this;
        InitResources();
        preBoard.InitResources();
        board.InitResources();
        ClearHands();
        ClearGameObjects();
        ClearStates();
        ClearInput();
        FF9Snd.ff9minisnd_song_play(66);
        StackCardInfo = new QuadMistCard();
        StackCardCount = 0;
    }
}

// Assembly-CSharp.dll
public class QuadMistGame : MonoBehaviour, IQuadMistGameView
{
    private readonly QuadMistGameImplementation _impl;

    public QuadMistGame()
    {
        _impl = new QuadMistGameImplementation(this);
    }
    
    private void Start()
    {
        _impl.OnStartMonoBehaviour();
    }
    
    public TextMesh winScore;
    public TextMesh loseScore;
    public TextMesh drawScore;
    public TextMesh cardTypeCount;
    public TextMesh cardStockCount;

    TextMesh IQuadMistGameView.WinScore => _winScore;
    TextMesh IQuadMistGameView.LoseScore => _loseScore;
    TextMesh IQuadMistGameView.DrawScore => _drawScore;
    TextMesh IQuadMistGameView.CardTypeCount => _cardTypeCount;
    TextMesh IQuadMistGameView.CardStockCount => _cardStockCount;
    
    // ...
}

After we hide unchangeable Unity-code beyond the interface, we can start the refactoring of logic.

    // Before:
    private void Start()
    {
        // Moved spagetti-code
        QuadMistGame.main = this;
        InitResources();
        preBoard.InitResources();
        board.InitResources();
        ClearHands();
        ClearGameObjects();
        ClearStates();
        ClearInput();
        FF9Snd.ff9minisnd_song_play(66);
        StackCardInfo = new QuadMistCard();
        StackCardCount = 0;
    }
   
    // After:
    public void OnStartMonoBehaviour()
    {
        var ctx = GetTetraMasterContext();
        InitializeGameMode(ctx.Mode);
        InitializePlayer(ctx.PlayerData);
        InitializeOpponent(ctx.OpponentData);
        InitializeBackgroundMusic(ctx.Music);
    }

Something like that. But it must be definitely done when no one is working with this place. :)

... Ugh... I'm very touched by your message my dear @Albeoris but you underestimate my level in C# ahahah xD I'm just doing some tweaking or small corrections... I'm doing my best for this Triple Triad feature ^^’.

@Echokiss
Copy link

Echokiss commented May 17, 2024

Fix the problem with the 3 forced battles in Pandemonium are not escapable; To have the battles not give any exp or to remove the monsters immunity to any status effects, so that we can have a full lvl 1 party without having to a level 30 Zidane or 3 member having level 22, 22,23. This is for lvl 1 runs

@snouz
Copy link
Collaborator Author

snouz commented May 29, 2024

Removing #250 as it was implemented in the latest update

@Albeoris
Copy link
Owner

the "issues" board stays usable as a "current" issue/progress tracker.

@snouz you can try to use Milestones for this. Not sure if it'll help but you can try.

@SpicyCactuar
Copy link

SpicyCactuar commented Jun 1, 2024

@notdodgeball
Copy link

notdodgeball commented Jul 6, 2024

Request: I wish we could make just the battle music a little bit quieter. It's been bugging me for years and I'm sure I am not the only one, just chilling on one of the greatest soundtrack e... BAM! In some dungeons like Mt. Gulug with a chill music it's almost unbearable...

@dfmodius
Copy link

dfmodius commented Jul 27, 2024

Request: some way to manipulate the number of nobles impressed, and whether Queen Brahne is impressed in the sword play minigame. This could either just focus directly on the result or simply relax the constraints on mistakes or reaction time. Either is perfect IMO.

#630

@DennySunshine
Copy link

Will there be a multiplayer mod at some point?
It would be wonderful if I could play the game together with my girlfriend.

@WarpedEdge
Copy link

WarpedEdge commented Oct 22, 2024 via email

@DennySunshine
Copy link

Yes exactly, that would be really nice.

Of course it would be awesome if a 2nd player could also run around in the world, but that's probably far too time-consuming or even impossible.

(In general I'd think it would be cool if the whole party could run after the player, I still don't understand why this wasn't done in FF1-FF10, then you wouldn't feel so alone^^)

I also want to say a huge praise, the Memoria Mod is really amazing :D

Translated with DeepL.com (free version)

@canesalato
Copy link

canesalato commented Nov 30, 2024

Since I am playing this game in Japanese, in order to better study the language, I would love for a way to stop dialogues from automatically skipping. I understand this is done for style and they are generally not important dialogues, but it can be a little frustrating. :)

The crazy thing is that such dialogues skip even if you pause the game, which is something I have never seen in any other game. If that could at least be addressed, I would just pause and read at my pace.

Thank you for this wonderful project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests