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: 33
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!
 
tailinsect
Posts: 1
Joined: 06 Jun 2024, 05:58

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

06 Jun 2024, 06:11

We're using Caliburn.Noesis with small modifications (eg. replaced IoChill climb racingcontainer with TinyIoC) and it's working great for us!
It's great that you shared this, it's very helpful, just what I needed.
 
CatBytesAndCoffee
Posts: 12
Joined: 23 Mar 2024, 18:08

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

06 Jun 2024, 17:16

We're using Caliburn.Noesis with small modifications (eg. replaced IoChill climb racingcontainer with TinyIoC) and it's working great for us!
It's great that you shared this, it's very helpful, just what I needed.
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.

Who is online

Users browsing this forum: Semrush [Bot] and 1 guest