Kirkules
Topic Author
Posts: 3
Joined: 06 Aug 2023, 15:58

Requesting help setting up AppRootView with efficiency and performance best practices

15 Dec 2023, 16:55

Hello NoesisGUI/Unity gurus!,

We are looking for help in creating responsive UI using the MVVM pattern for our Unity prototype 3v3 multiplayer MOBA.
Specifically the AppRootView.xaml, and the AppRootView.xaml.cs and RootViewViewModel.cs files

The Goal
- The goal is for the AppRootView (UserControl) to contain all the references and app level resources to the Views and a ViewModel to load/unload them as needed.
- utilize best practices based on the Optimizing NoesisGUI Performance document https://www.noesisengine.com/docs/Gui.C ... izing.html


The following is for context.

Existing functional Views

AppRootView.xaml - this is the one we need you to design with your expertise to accomodate the view use cases listed below.
- root content container for the app, loads/unloads the appropriate View(s) appropriate for the app state.

ConnectView.xaml
- Host/Join radio control group
- Spectator Checkbox
- Endpoint Textboxes (host/port)
- Host Button
- Join Button

GameSessionView.xaml
- The main game session view with the match state, local player UI, etc.

LobbyView.xaml
- List of Team 1 Players
- List of Team 2 Players
- Switch Team Button
- Ready Button
- Start Match Button

CharacterSelectionView.xaml
- Allows the player to select a character to use
- 3 Character Buttons
- Ready Button
- Start Match Button

RoundView.xaml
- display pre-round, post-round, and combat phase, slightly animated content for round transitions and damage/event notifications
- Round Starting, Round Ended: Victory!, Defeat!
- Round Number
- Time Remaining (seconds)

MatchOverView.xaml
- Match Over teams statistics
- List winning team players match stats: PlayerIcon, PlayerName, Score, Damage
- List of losing team players match stats.
- Lobby Button
- Disconnect Button

ConfirmView.xaml
- Message ex “Disconnect?”
- Confirm Button
- Cancel Button

Application States for View Use Cases

Foyer State
- AppRootView.xaml
– ConnectView.xaml

GameSession State
- AppRootView.xaml
– GameSessionView.xaml
— Lobby SubState
- LobbyView.xaml
— Match SubState
- RoundView.xaml (will display short lived messages during round transitions)
- ConfirmView.xaml (“Disconnect?” user may want to disconnect during the match”, show on disconnect keypress)
— MatchOver State
- MatchOverView.xaml

Expectations:
- Build all .xaml files consistent with the MVVM pattern
.xaml.cs backing files for root and all views
*ViewModel.cs for bindings and interactions
- Bind all Views and ViewModels (We will collab here)
- Framework allows for dynamic loading/unloading of views as needed
- We would like a Functional Pass
— get everything working properly.
— We do not need styling, animations, etc. on the content/controls.
 
User avatar
nadjibus
Posts: 32
Joined: 24 Feb 2022, 04:09

Re: Requesting help setting up AppRootView with efficiency and performance best practices

19 Dec 2023, 18:49

We're using Caliburn.Noesis with small modifications (eg. replaced IoC container with TinyIoC) and it's working great for us!

Who is online

Users browsing this forum: Ahrefs [Bot] and 3 guests