NttSharp 1.0.1
dotnet add package NttSharp --version 1.0.1
NuGet\Install-Package NttSharp -Version 1.0.1
<PackageReference Include="NttSharp" Version="1.0.1" />
<PackageVersion Include="NttSharp" Version="1.0.1" />
<PackageReference Include="NttSharp" />
paket add NttSharp --version 1.0.1
#r "nuget: NttSharp, 1.0.1"
#:package NttSharp@1.0.1
#addin nuget:?package=NttSharp&version=1.0.1
#tool nuget:?package=NttSharp&version=1.0.1
Ntt# - An Entity Component System for C#
Ntt# is a small library for creating games easily and efficiently without sparing performance.<br/>
Introduction
Traditionally in game development inheritance is the key abstraction most developers go for when desiging their master-pieces. This approach, while solid, comes with many caveats that can heavily impact the performance and stability of games and programs alike. With this in mind developers have been experimenting with new ways to build their game logic that can meet the high performance and stability requirments of today's games. One of those many approaches is the entity-component-system (shorthand ECS), which is a pattern that favors a component based approach over an inheritance based one. This system seperates individual pieces of 'objects' into components and encourages a more dynamic yet performant way of structuring game data.</br>
Code Example
using NttSharp.Entities;
using NttSharp.Models;
namespace NttSharp.Example.Console
{
public struct Position
{
public int X;
public int Y;
public Position(int x, int y)
{
X = x;
Y = y;
}
}
public struct Velocity
{
public int X;
public int Y;
public Velocity(int x, int y)
{
X = x;
Y = y;
}
}
public partial class Program
{
static void Main(string[] args)
{
World world = new World();
foreach (int offset in Enumerable.Range(0, 10))
{
int entity = world.Create();
world.Assign(entity, new Position(offset, offset));
if (offset % 2 is 0)
{
world.Assign(entity, new Velocity(offset, offset));
}
}
world.Each((ref Position position, ref Velocity velocity) =>
{
//
});
world.Each((int entity, ref Position position, ref Velocity velocity) =>
{
//
});
View<Position, Velocity> view = world.View<Position, Velocity>();
foreach (var entity in view)
{
ref Position position = ref view.Get1(entity);
ref Velocity velocity = ref view.Get2(entity);
//
}
}
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net7.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.