An open API service indexing awesome lists of open source software.

https://github.com/mgradwohl/modernlife

Conway's Game of Life in C++/WinRT/WinAppSDK/WinUI 3
https://github.com/mgradwohl/modernlife

gsl help-wanted looking-for-contributors winappsdk windows winrt winui3 xaml-winrt

Last synced: about 1 month ago
JSON representation

Conway's Game of Life in C++/WinRT/WinAppSDK/WinUI 3

Awesome Lists containing this project

README

          

ModernLife Project Overview
========================================================================
Conway's Game of Life and other Cellular Automata
Coded with C++/WinRT, WIL, WinUI3, Win2D, GSL

## Why?
I learned C++ on C++/98 so
- This is a great way to learn about improvements in C++ from C++
11/14/17/20
- This is a great way to learn our recommended Windows App Development path
- Cellular Automata is something that interests me
- The project includes many good opportunities for learning
- XAML, XAML binding
- Multithreading
- Synchronization
- Timers
- Canvas and drawing
- std:: and gsl:: and wil::
- Class design and much more

## Recommended reading
- https://abseil.io/tips/
- https://google.github.io/styleguide/cppguide.html
- http://isocpp.github.io/CppCoreGuidelines/

## Requires
- Visual Studio 2022 Preview https://visualstudio.microsoft.com/vs/preview/
- Git https://git-scm.com/downloads
- GitHub account

## Included in the Solution
- WinUI3 https://www.nuget.org/packages/Microsoft.WinUI
- CppWinRT https://www.nuget.org/packages/Microsoft.Windows.CppWinRT
- Win2D https://www.nuget.org/packages/Microsoft.Graphics.Win2D/
- WIL https://www.nuget.org/packages/Microsoft.Windows.ImplementationLibrary
- GSL https://github.com/microsoft/GSL

## Learn More
- Win2D http://microsoft.github.io/Win2D/WinUI3/html/Introduction.htm
- Windows App SDK here https://docs.microsoft.com/windows/apps/windows-app-sdk/
- WinUI3 here https://docs.microsoft.com/windows/apps/winui/winui3/
- C++/WinRT here http://aka.ms/cppwinrt/

## Contributing
Pick an issue from the list, fork the repo, make your changes, and submit a pull request.
If you find a problem, file it. Use the Performance Profiler to find bottlenecks and file issues. Run on different screen
resolutions and DPIs. Build and debug on ARM devices. Write tests. Write documentation. Write code. Write more code. Run Code Analysis
and file and fix issues. Clean up the class design. Go for it.

## Updating submodules
From Windows Terminal
In the butternut root
execute git submodule update --remote --merge