> Markdown version of [/videos/566-exploring-the-latest-features-of-net-and-c-by-building-a-game](https://www.wearedevelopers.com/videos/566-exploring-the-latest-features-of-net-and-c-by-building-a-game). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Exploring the Latest Features of .NET and C# by Building a Game Level up your C# 11 and .NET 8 skills by building a 2D isometric game. Master raw string literals, list patterns, and advanced JSON manipulation interactively. - **Speakers:** [Rainer Stropek](https://www.wearedevelopers.com/@rainer-stropek) - **Event:** WeAreDevelopers LIVE - **Published:** April 18, 2023 - **Duration:** 57:23 - **URL:** https://www.wearedevelopers.com/videos/566-exploring-the-latest-features-of-net-and-c-by-building-a-game ## Summary The video demonstrates the latest features in C# 11 and the .NET 8 preview by building a simple 2D isometric game. Rather than providing a rigorous guide to performance-heavy game development, the talk leverages game design—using WPF and the SkiaSharp rendering library—as a fun, interactive medium to showcase new language capabilities. The speaker walks through loading assets from a sprite sheet character and environment tiles to illustrate practical implementations of several modern enhancements. Notable topics involve refactoring traditional setup and syntax for greater efficiency and readability. Modern features explored include top-level statements, raw string literals, and the `u8` suffix for UTF-8 encoded string handling, which integrates smoothly with `System.Text.Json`. The presentation dives deep into advanced JSON manipulation through `JsonTypeInfoResolver` to deserialize data into Skia framework structs (`SKRect`) without directly modifying unowned or third-party types. Beyond core setup, the workflow highlights list patterns for collection filtering, robust pattern matching routines, and target-typed `new` expressions to eliminate redundant variable declarations. The speaker emphasizes best practices for basic tasks, such as leveraging `Random.Shared` for thread-safe random number generation and utilizing the new `IParsable<T>` interface for clean, generic string parsing. Lastly, the usage of `file`-scoped types provides tighter architectural access control alongside multi-line string interpolation to improve overall developer ergonomics. **Keywords:** c# 11 language features, .net 8 preview capabilities, skiasharp 2d rendering, WPF desktop applications, raw string literals, UTF-8 encoded string handling, JSON deserialization strategy, jsontypeinforesolver manipulation, file-scoped visibility modifiers, list pattern filtering, target-typed new expressions, random.shared thread safety, iparsable generic text parsing, ref structs memory allocation ## Chapters 1. **Setting up an isometric game using WPF and SkiaSharp** (00:03) — How to configure an isometric C# game effectively starting with WPF and Skia engine rendering assets. 1. **Creating game windows and using file-scoped types** (04:24) — How to encapsulate UI callbacks cleanly by combining new C# records with file-scoped class modifiers. 1. **Removing boilerplate using top-level statements and target-typed delegates** (09:47) — How to eliminate startup boilerplate by adopting top-level statements alongside modern natural delegate typing inference. 1. **Embedding asset payloads with raw and UTF-8 string literals** (14:34) — How to load JSON definitions straight into memory safely referencing multiline block formatting and UTF-8 string spans. 1. **Expanding JSON deserialization dynamically using type info resolvers** (21:17) — How to apply custom deserialization behavior against inaccessible third-party types via dynamic type info resolvers. 1. **Drawing components rapidly leveraging target-typed new expressions** (28:08) — How to accelerate coordinate mappings inside drawing routines without redundant object declarations by integrating target-typed new expressions. 1. **Employing thread-safe randomness and multi-line string interpolation** (32:34) — How to streamline concurrent game logic definitions using global random instances alongside multi-line data interpolation blocks. 1. **Filtering tile combinations utilizing list patterns in LINQ** (37:43) — How to filter complex sub-collections natively finding pattern matches by combining recursive list evaluation directly within LINQ queries. 1. **Crafting generic data routines using the IParsable interface** (43:20) — How to deserialize textual game layouts uniformly from generic alphanumeric character sequences implementing the IParsable abstraction layer. 1. **Insights on upcoming features and learning via games** (47:49) — How extending core framework APIs handling extension modeling paired with generative AI assists beginners grasping application workflows. ## Related Moments - [Overview of modern C# feature selections](https://www.wearedevelopers.com/videos/693-modern-c-a-dive-into-the-community-s-most-loved-new-features) (from "Modern C#: A Dive into the Community's Most Loved new Features.") - [Adopting new C# features and tracking updates](https://www.wearedevelopers.com/videos/693-modern-c-a-dive-into-the-community-s-most-loved-new-features) (from "Modern C#: A Dive into the Community's Most Loved new Features.") - [Exploring frontend development choices beyond standard JavaScript frameworks](https://www.wearedevelopers.com/videos/390-debugging-static-web-apps) (from "Debugging Static Web Apps") - [Learning modern programming techniques through hackable web games](https://www.wearedevelopers.com/videos/1309-wearedevelopers-live-the-weekly-developer-show-with-chris-heilmann-and-daniel-cranney) (from "WeAreDevelopers LIVE - the weekly developer show with Chris Heilmann and Daniel Cranney") - [Overview of the Java features presentation](https://www.wearedevelopers.com/videos/105-best-of-java-15-and-beyond-my-favorite-features) (from "Best of Java 15 and beyond—my favorite features") - [Introduction to speaker and software security concepts](https://www.wearedevelopers.com/videos/1126-programming-secure-c-net-applications-dos-don-ts) (from "Programming secure C#/.NET Applications: Dos & Don'ts") ## Related Articles - [Dev Digest 130 - The Diablo is in the details](https://www.wearedevelopers.com/magazine/470-dev-digest-130-the-diablo-is-in-the-details) - [Dev Digest 112 - The True Crime of AI Development](https://www.wearedevelopers.com/magazine/421-dev-digest-112-the-true-crime-of-ai-development) - [Dev Digest 136 - No JS(on) of mine](https://www.wearedevelopers.com/magazine/482-dev-digest-136-no-js-on-of-mine) - [Dev Digest 118 - not a total recall](https://www.wearedevelopers.com/magazine/452-dev-digest-118-not-a-total-recall) ## Related Jobs - [Principal Software Engineer, Enterprise AI Platform](https://www.wearedevelopers.com/jobs/ext/1467292-principal-software-engineer-enterprise-ai-platform) at **GitHub** - [Software Engineer Frontend (all genders welcome) in the field of Water Line Integrity Solutions](https://www.wearedevelopers.com/jobs/ext/127888-software-engineer-frontend-all-genders-welcome-in-the-field-of-water-line-integrity-solutions) at **Rosenxt Group** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/679408-remote-senior-full-stack-engineer) at **Edge Impulse** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/643342-remote-senior-full-stack-engineer) at **Edge Impulse** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/683045-remote-senior-full-stack-engineer) at **Edge Impulse** - [Remote Senior Full-Stack Engineer](https://www.wearedevelopers.com/jobs/ext/682327-remote-senior-full-stack-engineer) at **Edge Impulse**