Ismoh / NoitaMP

WIP! Not working, atm! NoitaMP, Noita Multiplayer: First synchronous multiplayer mod for Noita!
GNU General Public License v3.0
116 stars 12 forks source link

Overhaul process and gui for setting up/connecting to a server #93

Open ofoxsmith opened 1 year ago

ofoxsmith commented 1 year ago

Is your feature request related to a problem? Please describe. The process for entering server details, viewing server statistics, and starting/connecting to a server is not very intuitive. The setup process is split between mod settings and NoitaMP GUI. In addition, the buttons for Start Server and Connect to Server are not clearly marked - I first missed them when going over the GUI.

Describe the solution you'd like Moving the majority of NoitaMP config to use the in-game NoitaMP gui. In addition, we could also add a setup wizard that walks someone through the process of creating and starting a server, as some users may not understand the technical details used during connection.

Additional context @Ismoh mentioned this before - Since NoitaMP is an unsafe mod we should switch to using ImGUI.

ofoxsmith commented 1 year ago

Might create breaking changes depending on how we change the setup process.

Ismoh commented 1 year ago

Caption this! Dude, awesome! I am happy to see this!

Noita ModSettings are horrible. Not reliable and pretty annoying to go into mod settings menu to change ip for example. Initial reason for this was, that we arent able to type when in a run, unless we are using unrestricted mode. As we do. I tried EZGUI, but it's abandoned and not really user friendly or better to say easy to implement.

ImGui is the way to go!

There will be breaking changes, that for sure!

In addition: Setup wizard is planned to use. Simple as that:

server

  1. Server or Client?
  2. Server! Choose port:
  3. Port chosen: 1337
  4. Start server and tell your friends (hidden ip - will be shown when clicked. Copied to clipboard by default)

client

  1. Client or Server?
  2. Client! Paste ip and port!
  3. Pasted!
  4. Have fun!

ModSettings will be moved to a lua file: config.lua

Ismoh commented 1 year ago

As we discussed, we're going to use GusGui instead of imGui, because imGui is pretty much a huge overhead: https://discord.com/channels/747169041457872917/1031679439274246195/1081343753299689482

Ismoh commented 1 year ago

Overwrite error with a custom error,

Ismoh commented 1 year ago

Can we type with gusgui? Like cheatgui maybe, because people are used to it? There is a hint icon like i when showing or typing ip Address (which is hidden), like: streamer tip: you can change your ip settings in file explorer for not spoiling your ip, BUT don't change anything else in the file or don't change ips when server is running or connected tona server!

In addition, we need our custom modsettings ui!

ofoxsmith commented 1 year ago

Can we type with gusgui? Like cheatgui maybe, because people are used to it?

I've been working on more advanced features for when unsafe is enabled so there is typing.

Ismoh commented 1 year ago

https://github.com/dextercd/Noita-Dear-ImGui https://github.com/ocornut/imgui/tree/master/docs contains the actual imgui docs and how to use it

Ismoh commented 1 year ago

93 based on 67 branch

Ismoh commented 1 year ago

If I remember correctly NSEW only works on noita.exe and in addition to that noita_dev.exe keeps being slow af! For testing we need two noita instances. I already began to convert some ModSettings into NoitaMPSettings. I am going to prepare some changes to be able to have our own mod settings named 'CustomModSettings.lua' which overwrites NoitaAPI ModSetting.. functions to save and load NoitaMP settings in a different file called 'settings.lua' per processId, because if there are two noita.exe instances, both uses the same NoitaAPI ModSettings.. where GUID is stored and then networking is going crazy.

This is why it would be good to start with some ugly and simple imGui text inputs for player name and other settings. Afterwards server start and Client connect can be implemented with imGui.

Ismoh commented 9 months ago

Already done in #67. Double check this branch, when #67 was merged into develop.

Ismoh commented 4 months ago

Should already be done in #133, besides overwritten error function.