Rainer Stropek

Exploring the Latest Features of .NET and C# by Building a Game

What if you could parse complex data with just a few lines? Discover how C# 11's list patterns make it possible while building a game in .NET 8.

Exploring the Latest Features of .NET and C# by Building a Game
#1about 4 minutes

Setting up the .NET 8 game project with SkiaSharp

The project is configured with .NET 8, WPF for the window, and SkiaSharp for 2D rendering, using a sprite sheet for game assets.

#2about 7 minutes

Building the game window using file-scoped types

The main game window is created using file-scoped types to restrict visibility, along with modern null checking and extension method deconstructors.

#3about 3 minutes

Using top-level statements and natural delegate types

The application entry point is simplified using top-level statements, and natural types allow passing method groups directly to parameters expecting delegates.

#4about 7 minutes

Using raw string literals and UTF-8 for JSON data

Raw string literals simplify embedding multi-line JSON, and the u8 suffix creates an efficient UTF-8 byte span directly from the literal.

#5about 7 minutes

Customizing JSON deserialization with JsonTypeInfoResolver

Use JsonTypeInfoResolver to programmatically apply custom converters to external types during deserialization, avoiding the need for intermediate DTOs.

#6about 4 minutes

Implementing player movement and drawing logic

The core drawing loop is implemented to render the player, and target-typed new() expressions simplify object creation within switch expressions.

#7about 11 minutes

Filtering collections with list pattern matching in LINQ

List patterns are used within LINQ queries to filter collections based on the properties and sequence of their elements.

#8about 14 minutes

Creating generic parsing logic with the IParsable interface

The IParsable<T> interface enables writing generic algorithms for parsing strings, with list patterns used to implement the parsing logic for a custom type.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles
BR
Benjamin Ruschin
What Developers Really Need to Create Great Code Demos
Every developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
What Developers Really Need to Create Great Code Demos
CH
Chris Heilmann
WeAreDevelopers LIVE days are changing - get ready to take part
Starting with this week's Web Dev Day edition of WeAreDevelopers LIVE Days, we changed the the way we run these online conferences. The main differences are:Shorter talks (half an hour tops)More interaction in Q&AA tips and tricks "Did you know" sect...
WeAreDevelopers LIVE days are changing - get ready to take part
CH
Chris Heilmann
With AIs wide open - WeAreDevelopers at All Things Open 2025
Last week our VP of Developer Relations, Chris Heilmann, flew to Raleigh, North Carolina to present at All Things Open . An excellent event he had spoken at a few times in the past and this being the “Lucky 13” edition, he didn’t hesitate to come and...
With AIs wide open - WeAreDevelopers at All Things Open 2025

From learning to earning

Jobs that call for the skills explored in this talk.

C# Net Developer

C# Net Developer

Developerstrategicsiq Ltd
Bramley, United Kingdom

.NET
REST
Azure
NoSQL
DevOps
+4
Developer (C# .NET SQL)

Developer (C# .NET SQL)

Clerkenwell
Charing Cross, United Kingdom

API
.NET
Azure
Microservices
Continuous Integration
C# .Net Developer

C# .Net Developer

Dynamtiv People
Glenrothes, United Kingdom

37-44K
MVC
GIT
Azure
DevOps
+1