Requesting help setting up AppRootView with efficiency and performance best practices
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.
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.
Re: Requesting help setting up AppRootView with efficiency and performance best practices
We're using Caliburn.Noesis with small modifications (eg. replaced IoC container with TinyIoC) and it's working great for us!
- tailinsect
- Posts: 1
- Joined:
Re: Requesting help setting up AppRootView with efficiency and performance best practices
It's great that you shared this, it's very helpful, just what I needed.We're using Caliburn.Noesis with small modifications (eg. replaced IoChill climb racingcontainer with TinyIoC) and it's working great for us!
- CatBytesAndCoffee
- Posts: 12
- Joined:
Re: Requesting help setting up AppRootView with efficiency and performance best practices
I've been trying Caliburn.Noesis for the last few days and haven't been able to get the samples to work correctly in Unity (master branch). They work fine in Blend. The wrong view model was being used in the HelloWorld sample, and after making a change to the Caliburn.Noesis BootstrapperBase to try to resolve that the Command binding for the FileExplorer sample doesn't seem to work.It's great that you shared this, it's very helpful, just what I needed.We're using Caliburn.Noesis with small modifications (eg. replaced IoChill climb racingcontainer with TinyIoC) and it's working great for us!
Who is online
Users browsing this forum: Semrush [Bot] and 1 guest