Skip to content

Commit

Permalink
Merge pull request #254 from stride3d/master
Browse files Browse the repository at this point in the history
Initiating deployment of latest website updates to staging
  • Loading branch information
VaclavElias authored Feb 1, 2024
2 parents dafb184 + aecf9ec commit 789ab22
Showing 1 changed file with 65 additions and 62 deletions.
127 changes: 65 additions & 62 deletions posts/2024-01-05-announcing-stride-4-2-in-dotnet-8.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,55 @@ Table of Contents:

[[TOC]]

A massive thank you to the open-source Stride community for your dedicated contributions. This release saw X contributions from over Y amazing contributors, each playing a crucial role in making Stride 4.2 a reality.
A massive thank you to the open-source Stride community for your dedicated contributions. This release saw over 75 contributions from more than 22 amazing contributors, each playing a crucial role in making Stride 4.2 a reality.

## Download and Upgrade

You can [download the Stride 4.2 Installer](https://www.stride3d.net/download/) today. Release notes are available [here](https://doc.stride3d.net/latest/en/ReleaseNotes/ReleaseNotes.html).

Make sure you read the [guide to update Stride and projects properly]([text](https://doc.stride3d.net/latest/en/manual/get-started/update-stride.html)).

## Unity Licensing Model Impact: A Catalyst for Change

The game development world has seen quite a stir with recent changes in Unity's licensing model. These shifts have led many in our community to rethink their choice of development tools. Stride 4.2 steps up in this scenario as a solid, C#-based alternative, offering a familiar yet distinct approach for game developers.

### Stride's Rising Popularity

It's been an exciting time for us. We've noticed more and more developers giving Stride a try, a trend clearly reflected in our growing user numbers. During the carzy unbity days, we were number 3 in the popularity rankings, just after Godot and Bevy. Also a big shoutout to gamefromscratch for his video "[Stride For Unity Developers](https://www.youtube.com/watch?v=u_ksFlHHXYU)", which definitely helped.

### The Heartbeat of Stride: Our Community

What really makes Stride tick is you – the community. Your feedback, contributions, and ideas have been the driving force behind Stride 4.2. It’s your hands-on experience and insights that have helped shape this release, making Stride not just a tool but a community achievement.

## Addressing the Pace of Updates in Stride

Let's talk about how often Stride gets updated. We know it's something on your mind, and there's a story behind it.

### The People Behind Stride

Stride is kept alive by a group of passionate developers, much like yourself, who contribute in their free time. This means our pace might not match that of other engines backed by full-time teams, but it also means every update is a labor of love.

### Facing the Realities: Funding and Resources

Here’s the deal: our funding levels shape how much we can do. We’re grateful for every bit of support we receive, but we’re still on our way to having a full-time development force. This financial reality does affect how fast we can roll out updates.

### Making Every Update Count

Although we might not be the fastest out there, we focus on making each update meaningful. Quality, stability, and usability are what we aim for every time we release a new version of Stride.

### Join Us on This Journey

We’re always excited to welcome new contributors to the Stride family. Whether it’s through code contributions, spreading the word, or donations, every bit helps us grow stronger. If you’ve got skills in .NET, Android, and iOS development, there’s a special place for you here. [Support us on OpenCollective](https://opencollective.com/stride3d).

### The Impact of Your Support

We believe that every donation has a substantial impact, perhaps more so than in some other projects. Why? Because C# as a language offers high productivity, and the Stride codebase has a great architecture. This means that every dime you contribute goes a long way.

Imagine how much we could do if Stride got as much financial support as other big engines. With C#'s easy productivity and Stride's well-organized code, your donations could help us improve way faster. It's not just about keeping the lights on; it's about making Stride better and faster than many other projects. Your support can take Stride to new heights!

### Looking Ahead

With your support, we’re optimistic about picking up the pace. Our goal is to bring you new features and improvements more regularly, making Stride even better with each release.

## What's new in Stride 4.2
Stride 4.2 includes numerous enhancements and improvements.
Expand Down Expand Up @@ -51,85 +94,45 @@ Stride 4.2 includes numerous enhancements and improvements.
- We recommend storing assets within your project's resource directory to avoid issues that may arise when sharing the project or moving files around.
- Whenever users import assets that are located outside of the resource directory, they will now be presented with a dialog box asking them whether the file should be copied to that directory.

## Stride 4.2 Feature Overview

### F# and Visual Basic Integration

A pivotal PR has enabled **F#** and **Visual Basic** support for game development in Stride. This feature is currently limited to a code-only approach. Detailed insights and tutorials will be provided in upcoming blog posts.

We will use the [Stride Community Toolkit [WIP]](https://stride3d.github.io/stride-community-toolkit/), with further details to be covered in a separate post.

Below is a simple example of rendering a capsule using F#:

```fsharp
open Stride.CommunityToolkit.Engine;
open Stride.CommunityToolkit.ProceduralModels;
open Stride.Core.Mathematics;
open Stride.Engine;
let game = new Game()
let Start rootScene =
game.SetupBase3DScene()
game.AddProfiler() |> ignore
let firstBox = game.CreatePrimitive(PrimitiveModelType.Capsule);
firstBox.Transform.Position <- new Vector3(0f, 2.5f, 0f)
firstBox.Scene <- rootScene
## Fixes
Although there have been [many fixes](https://github.com/stride3d/stride/pulls?page=2&q=is%3Apr+merged%3A%3E2023-10-10), we like to point out some of them out:
- [Runtime rasterized fonts are broken #1750](https://github.com/stride3d/stride/issues/1750)
- [Game Studio doesnt reload sub projects after changes #1703](https://github.com/stride3d/stride/issues/1703)
- [Changing the comparison project related and not UPath related #1704](https://github.com/stride3d/stride/pull/1704)
- [Translations fix #1717](https://github.com/stride3d/stride/pull/1717)
- [C# Beginner Tutorial Build Errors #1652](https://github.com/stride3d/stride/issues/1652)
- [Can not create "C# Beginner" project #1650](https://github.com/stride3d/stride/issues/1650)

[<EntryPoint>]
let main argv =
game.Run(start = Start)
0
```
See the full list in the [Release Notes](https://doc.stride3d.net/latest/en/ReleaseNotes/ReleaseNotes.html).

{% img 'Example basic 3d scene with a capsule' '/images/blog/2023-11/stride-game-engine-example01-basic-3d-scene.webp' %}
## Exciting Development in Stride Physics

The equivalent Visual Basic example:
Stride 4.2's release isn't just about what's in the box; it's also about what it enables for the future. A standout development in this context is the integration of a new physics package in Stride.

```vb
Imports Stride.CommunityToolkit.Engine
Imports Stride.CommunityToolkit.ProceduralModels
Imports Stride.Core.Mathematics
Imports Stride.Engine
### Introducing Bepu Physics in Stride

Module Program
Private game As New Game()
Our Discord community is buzzing with the news of Bepu physics, a project initiated by our user [Nicogo1705](https://github.com/Nicogo1705).

Sub Main()
GameExtensions.Run(game, Nothing, AddressOf StartGame)
End Sub
[BepuPhysics v2](https://github.com/bepu/bepuphysics2) is a high-performance, multi-threaded physics library, written entirely in C#. Its compatibility with Stride's C# ecosystem offers the perfect alternative to the Bullet 3D physics engine, which relies on C++ Interop.

Private Sub StartGame(rootScene As Scene)
game.SetupBase3DScene()
game.AddProfiler()
With additional support from [Doprez](https://github.com/Doprez) and [Eideren](https://github.com/Eideren), the efforts in integrating Bepu physics have already shown impressive results, especially in editor compatibility and performance. As you can see in this video, running on almost 10 year old harware:

Dim entity = game.CreatePrimitive(PrimitiveModelType.Capsule)
entity.Transform.Position = New Vector3(0, 8, 0)
entity.Scene = rootScene
End Sub
End Module
{% youtube '1OqtaVqSP78' %}

```
Nicogos YouTube channel features [some more demo videos](https://www.youtube.com/@Nicogo17/videos).

These examples showcase how F# and Visual Basic can be utilized in Stride. The Stride Community Toolkit provides a set of helpers and extensions designed to enhance your experience with the Stride Game Engine.
Github: [Nicogo1705/Stride.BepuPhysics](https://github.com/Nicogo1705/Stride.BepuPhysics)

## Fixes
Although there have been [many fixes](https://github.com/stride3d/stride/pulls?page=2&q=is%3Apr+merged%3A%3E2023-10-10), we like to point out some of them out:
- [Runtime rasterized fonts are broken #1750](https://github.com/stride3d/stride/issues/1750)
- [Game Studio doesnt reload sub projects after changes #1703](https://github.com/stride3d/stride/issues/1703)
- [Changing the comparison project related and not UPath related #1704](https://github.com/stride3d/stride/pull/1704)
- [Translations fix #1717](https://github.com/stride3d/stride/pull/1717)
- [C# Beginner Tutorial Build Errors #1652](https://github.com/stride3d/stride/issues/1652)
- [Can not create "C# Beginner" project #1650](https://github.com/stride3d/stride/issues/1650)
### Future Prospects and Discalimer
Currently an independent package, Bepu physics is charting a course towards deeper integration within Stride. While it stands as a potential future replacement for Bullet physics, the package is still evolving. Future updates may necessitate adjustments to projects using its current version. We encourage users to stay updated and adaptable as we continue refining Bepu physics with with the community's support.

## Also good to know
Although not directly tied to Release 4.2, we have made some other big changes. For instance to our website and documentation. We also had another community meeting to address all those new members.
- [Website and documentation revamped and build process updated](https://www.stride3d.net/blog/announcing-website-update/)
- [Contributor section moved to docs](https://doc.stride3d.net/latest/en/contributors/index.html)
- [Community meeting October 2023](https://www.stride3d.net/blog/community-meeting-october-2023/)


## Links
- GitHub: [{{site.links.github-stride-url}}]({{site.links.github-stride-url}})
- Website: [{{site.links.stride-url}}]({{site.links.stride-url}})
Expand Down Expand Up @@ -159,4 +162,4 @@ In particular we want to thanks these donors:
* {% include sponsor-org.md key:'lucid' emoji:'🥇' %}
* {% include sponsor-user.md key:'skidvis' emoji:'🥇' %}

This article was co-authored by [Aggror Jorn](https://github.com/Aggror).
This article was co-authored by [Aggror Jorn](https://github.com/Aggror) and [Tebjan Halm](https://github.com/tebjan).

0 comments on commit 789ab22

Please sign in to comment.