Stellar Conquest [Game]
Stellar Conquest
... in development
Video [https://bit.ly/2SqkpPq] 60mb
Name: Stellar Conquest
Online Multiplayer Strategy Game
Noesis Version 2.2.3
Number of Screens/User Controls: 76
SC is a passion project that I started developing in my free time. In 2018 I won Dream Build Play and a few months back I took the plunge and started development full-time to prepare the title for release. Noesis has been a very important part of my daily development because it simplifies the effort of creating beautiful cross-platform UIs that works across many devices. By using Noesis I felt free to convert my game's existing UI to support multiple platforms.
When I initially started development with Noesis I questioned whether it had enough API surface area to replicate my existing XAML project for PC/XBOX. Nonetheless, I was able to successfully convert 76 XAML screens (and user controls) from UWP/XAML to Noesis with truly minimal effort. I'd like to share some of the benefits of this conversion as well as a little detail around challenges and my next steps for UI development.
Benefits:
Performance
I am in awe of Noesis runtime performance. In UWP/XAML, highly complex screens required about 100-200 ms to load. This load time in UWP would lock the main UI thread and cause brief pauses. On slower platforms such as XBOX, the UWP performance issue worsened and became a real optimization challenge. (Side note... I'm pretty savvy with threading and separating UI from backend I/O -- which was not a factor for UWP performance on XBOX. The UWP UI slowdown was due to the UWP layout and rendering engine.) OK, but in Noesis the same screens load instantly without skipping a frame. It's glorious and really a fantastic thing for game development.
Challenges:
Wish List:
Features Used
UI Work Remaining
You can follow Stellar Conquest on twitter (@StellarConquest - https://twitter.com/StellarConquest) and I recently setup a Discord channel to solicit for feedback from players. (http://www.stellarconquest.com/Community).
Thanks for reading all of this!
-Shaun
... in development
Video [https://bit.ly/2SqkpPq] 60mb
Name: Stellar Conquest
Online Multiplayer Strategy Game
Noesis Version 2.2.3
Number of Screens/User Controls: 76
SC is a passion project that I started developing in my free time. In 2018 I won Dream Build Play and a few months back I took the plunge and started development full-time to prepare the title for release. Noesis has been a very important part of my daily development because it simplifies the effort of creating beautiful cross-platform UIs that works across many devices. By using Noesis I felt free to convert my game's existing UI to support multiple platforms.
When I initially started development with Noesis I questioned whether it had enough API surface area to replicate my existing XAML project for PC/XBOX. Nonetheless, I was able to successfully convert 76 XAML screens (and user controls) from UWP/XAML to Noesis with truly minimal effort. I'd like to share some of the benefits of this conversion as well as a little detail around challenges and my next steps for UI development.
Benefits:
- The game's XAML is no longer tied to UWP and XAML for PC/XBOX and the game now supports multiple platforms.
- Through use of XAML and code behind classes my UI has clean separation of concern between presentation and game logic.
- My toolchain for creating declarative UI is simplified by using Microsoft Blend.
- Compared to Unity's built-in (and forthcoming UI), more powerful capabilities are available (layout, transforms, animation, skinning and themes).
- Excellent resources for learning (WPF and XAML is widely popular and written about)
- Significantly improved performance (instant load time)
Performance
I am in awe of Noesis runtime performance. In UWP/XAML, highly complex screens required about 100-200 ms to load. This load time in UWP would lock the main UI thread and cause brief pauses. On slower platforms such as XBOX, the UWP performance issue worsened and became a real optimization challenge. (Side note... I'm pretty savvy with threading and separating UI from backend I/O -- which was not a factor for UWP performance on XBOX. The UWP UI slowdown was due to the UWP layout and rendering engine.) OK, but in Noesis the same screens load instantly without skipping a frame. It's glorious and really a fantastic thing for game development.
Challenges:
- No automatic generated code-behind for XAML variables. You must define these local variables. This isn't hard, but for 70+ screens it was time consuming.
- Achieving compatibility with Blend required some manipulation of code behind files. I wasn't trying to maintain WPF compatibility and so these steps were a minor annoyance.
- Encountering quirks relating to the Noesis XAML build pipeline. Most of the issues were addressed quickly a long time ago.
Wish List:
- Configuration of text character spacing, i.e. kerning (UWP)
- Simple effects stack for entire screen (gaussian blur effect)
- A native XAML editor in Unity
- Unity buys Noesis and makes it the built-in declarative UI system
Features Used
- Animation (Opacity, Tweening, Transitions)
- Embedded RenderTextures
- FullHD and 4K support with identical layout using ViewBoxes.
- Multiple UI layers via multiple cameras -- for gaussian blur and modal windows
- Custom UI theme with triggers
- Gamepad and touch integration
UI Work Remaining
- Texture Atlasses for improved performance. ...but no performance issues have been encountered yet.
- Testing on mobile platforms
You can follow Stellar Conquest on twitter (@StellarConquest - https://twitter.com/StellarConquest) and I recently setup a Discord channel to solicit for feedback from players. (http://www.stellarconquest.com/Community).
Thanks for reading all of this!
-Shaun
Last edited by stonstad on 03 Aug 2020, 17:56, edited 1 time in total.
Re: Stellar Conquest
First of all, THANKS for writing this extensive report. Your project is awesome!
There is a non-official solution for this at viewtopic.php?f=3&t=1670, and we plan to officially support something like that in the future for all the SDKs.No automatic generated code-behind for XAML variables. You must define these local variables. This isn't hard, but for 70+ screens it was time consuming.
Re: Stellar Conquest
I just wanted to drop in and say thank you for creating Noesis! Here's a video showing off some of the latest UI. http://stellarconquest.blob.core.window ... zation.mp4
Who is online
Users browsing this forum: No registered users and 1 guest