Skip to content

Commit

Permalink
Updated readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Selinux24 committed Aug 5, 2024
1 parent a217b50 commit efff49f
Show file tree
Hide file tree
Showing 61 changed files with 267 additions and 107 deletions.
Binary file added Docs/Images/01_Cascaded.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_Lights.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_Materials.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_Menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_NormalMaps.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_Particles.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_StencilPass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_TestScene.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_UI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/01_Water.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_AnimationParts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_DeferredLighting.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_Gardener_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_Gardener_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_Instancing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_Menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_MixamoModels.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_SimpleAnimation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_SmoothTransitions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/02_Transforms.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/03_Crowds.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/03_Grid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/03_Heightmap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/03_Menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/03_ModularDungeon_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Docs/Images/03_ModularDungeon_2.png
Binary file added Docs/Images/03_ModularDungeon_3.png
Binary file added Docs/Images/03_ModularDungeon_4.png
Binary file added Docs/Images/03_ModularDungeon_5.png
Binary file added Docs/Images/03_ModularDungeon_6.png
Binary file added Docs/Images/03_ModularDungeon_7.png
Binary file added Docs/Images/03_ModularDungeon_8.png
Binary file added Docs/Images/03_PathFinding.png
Binary file added Docs/Images/03_PerlinNoise.png
Binary file added Docs/Images/03_RTS.png
Binary file added Docs/Images/03_Skybox.png
Binary file added Docs/Images/04_Physics.png
Binary file added Docs/Images/05_Menu.png
Binary file added Docs/Images/05_SelfDrivingCar.png
Binary file added Docs/Images/05_VirtualWorld.png
Binary file removed Docs/Images/1.png
Diff not rendered.
Binary file removed Docs/Images/10.png
Diff not rendered.
Binary file removed Docs/Images/2.png
Diff not rendered.
Binary file removed Docs/Images/3.0.png
Diff not rendered.
Binary file removed Docs/Images/3.1.png
Diff not rendered.
Binary file removed Docs/Images/3.2.png
Diff not rendered.
Binary file removed Docs/Images/3.3.png
Diff not rendered.
Binary file removed Docs/Images/3.4.png
Diff not rendered.
Binary file removed Docs/Images/4.0.png
Diff not rendered.
Binary file removed Docs/Images/4.1.png
Diff not rendered.
Binary file removed Docs/Images/4.2.png
Diff not rendered.
Binary file removed Docs/Images/5.png
Diff not rendered.
Binary file removed Docs/Images/6.png
Diff not rendered.
Binary file removed Docs/Images/7.png
Diff not rendered.
Binary file removed Docs/Images/8.0.png
Diff not rendered.
Binary file removed Docs/Images/8.1.png
Diff not rendered.
Binary file removed Docs/Images/9.png
Diff not rendered.
Binary file removed Docs/Images/Z.png
Diff not rendered.
18 changes: 10 additions & 8 deletions Engine/Logger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -214,17 +214,19 @@ public static void Write(LogLevel logLevel, string callerTypeName, string text,
return;
}

log[logIndex] = log[logIndex] ?? new LogEntry();
log[logIndex].EventDate = DateTime.Now;
log[logIndex].CallerTypeName = callerTypeName;
log[logIndex].LogLevel = logLevel;
log[logIndex].Text = text;
log[logIndex].Exception = ex;
var logEntry = log[logIndex] ?? new LogEntry();
logEntry.EventDate = DateTime.Now;
logEntry.CallerTypeName = callerTypeName;
logEntry.LogLevel = logLevel;
logEntry.Text = text;
logEntry.Exception = ex;

log[logIndex] = logEntry;

if (logLevel >= ConsoleLogLevel)
{
// Console logger
Console.Write(DefaultFormatter(log[logIndex]));
Console.Write(DefaultFormatter(logEntry));
}

logIndex++;
Expand All @@ -236,7 +238,7 @@ public static void Write(LogLevel logLevel, string callerTypeName, string text,
/// </summary>
public static bool HasErrors()
{
return Array.Exists(log, l => l.LogLevel == LogLevel.Error);
return Array.Exists(log, l => l?.LogLevel == LogLevel.Error);
}

/// <summary>
Expand Down
298 changes: 217 additions & 81 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,97 +12,233 @@ Skirmish is a collection of projects created for testing a simple game engine, t

There are several prototypes:

## 1 - SpriteDrawing

# Sprite tests
![screenshot](/Docs/Images/1.png?raw=true)

## 2 - ModelDrawing

# Particle drawing test
![screenshot](/Docs/Images/2.png?raw=true)

## 3 - SceneTest

# 3.0 - Scene navigation test

![screenshot](/Docs/Images/3.0.png?raw=true)

# 3.1 - Materials test

![screenshot](/Docs/Images/3.1.png?raw=true)

# 3.2 - Ocean shader test

![screenshot](/Docs/Images/3.2.png?raw=true)

# 3.3 - Stencil pass test

![screenshot](/Docs/Images/3.3.png?raw=true)

# 3.4 - Full scene test with all posible drawing components

![screenshot](/Docs/Images/3.4.png?raw=true)

## 4 - Collada

# Modular dungeon tests

![screenshot](/Docs/Images/4.0.png?raw=true)
![screenshot](/Docs/Images/4.1.png?raw=true)
![screenshot](/Docs/Images/4.2.png?raw=true)

## 5 - Skybox

# Little scene with skybox, particles, triangle picking and first person navigation

![screenshot](/Docs/Images/5.png?raw=true)

## 6 - Terrain

# Medium secen with skybox, instanced components, navigation and RTS style input capture

![screenshot](/Docs/Images/6.png?raw=true)

## 7 - Deferred

# Deferred rendering tests and crowd navigation test

![screenshot](/Docs/Images/7.png?raw=true)

## 8 - Heightmap

# Big scene with skyscattering component

![screenshot](/Docs/Images/8.0.png?raw=true)
![screenshot](/Docs/Images/8.1.png?raw=true)

## 9 - Animation

# Animation controller tests

![screenshot](/Docs/Images/9.png?raw=true)

## 10 - Instancing

# Skinned instancing test

![screenshot](/Docs/Images/10.png?raw=true)

## Game Logic
## 01 - Basic Samples

Several samples of built-in components drawing and input capture.

![screenshot](/Docs/Images/01_Menu.png?raw=true)

# Turn based RPG game logic tests
# Cascaded Shadows

Cascaded shadow mapping.

![screenshot](/Docs/Images/01_Cascaded.png?raw=true)

# Lights

Point lights and spot lights.

![screenshot](/Docs/Images/Z.png?raw=true)
![screenshot](/Docs/Images/01_Lights.png?raw=true)

# Materials

Built-in materials.

![screenshot](/Docs/Images/01_Materials.png?raw=true)

# Normal Maps

Simple normal maps.

![screenshot](/Docs/Images/01_NormalMaps.png?raw=true)

# Particle Systems

CPU & GPU particle systems.

![screenshot](/Docs/Images/01_Particles.png?raw=true)

# Stencil Pass

Stencil pass test.

![screenshot](/Docs/Images/01_StencilPass.png?raw=true)

# Test Scene

Full scene test with all Built-in components.

![screenshot](/Docs/Images/01_TestScene.png?raw=true)

# User Interface

Dynamic user interface test.

![screenshot](/Docs/Images/01_UI.png?raw=true)

# Water

Water shader test.

![screenshot](/Docs/Images/01_Water.png?raw=true)

## 02 - Intermediate Samples

Intermediate level samples. Including animation, deferred rendering, and instancing.

![screenshot](/Docs/Images/02_Menu.png?raw=true)

# Simple Animation

Simple animation test.

![screenshot](/Docs/Images/02_SimpleAnimation.png?raw=true)

# Transforms

Custom controller transforms test.

![screenshot](/Docs/Images/02_Transforms.png?raw=true)

# Gardener

Dynamic gardener test.

You can define a foliage map and a heightmap, and the gardener will plant trees and grass on the map.

![screenshot](/Docs/Images/02_Gardener_1.png?raw=true)

The gardener will show the foliage map, based on the player point of view.

![screenshot](/Docs/Images/02_Gardener_2.png?raw=true)

# Mixamo Models

Mixamo models test.

![screenshot](/Docs/Images/02_MixamoModels.png?raw=true)

# Deferred Lighting

Sample scene for deferred lighting tests.

![screenshot](/Docs/Images/02_DeferredLighting.png?raw=true)

## Credits
# Smooth Transitions

Interpolation between two animation clips of the same model.

![screenshot](/Docs/Images/02_SmoothTransitions.png?raw=true)

# Animation Parts

Independant model part transforms test.

![screenshot](/Docs/Images/02_AnimationParts.png?raw=true)

# Instancing

Instancing test.

![screenshot](/Docs/Images/02_Instancing.png?raw=true)

## 03 - Terrain Samples

Terrain samples. Including crowd navigation, heightmap, and sky scattering.

![screenshot](/Docs/Images/03_Menu.png?raw=true)

This project contains a full c# conversion of the [Detour & Recast](https://github.com/recastnavigation/recastnavigation) libraries of Mikko Mononen:

> copyright (c) 2009 Mikko Mononen [email protected].
Thanks a lot, Mikko. You are a genius!

# Crowds

Crowd navigation

![screenshot](/Docs/Images/03_Crowds.png?raw=true)

# A* Grid

A* grid test in a turn based game.

![screenshot](/Docs/Images/03_Grid.png?raw=true)

# Heightmap

Heightmap test with dynamic chunk load and path finding navigation

![screenshot](/Docs/Images/03_Heightmap.png?raw=true)

# Modular Dungeon

Modular terrain component test, with One Page Dungeon integration.

See https://watabou.itch.io/one-page-dungeon

![screenshot](/Docs/Images/03_ModularDungeon_1.png?raw=true)

![screenshot](/Docs/Images/03_ModularDungeon_2.png?raw=true)

JSon customizable dungeons too.

![screenshot](/Docs/Images/03_ModularDungeon_3.png?raw=true)
![screenshot](/Docs/Images/03_ModularDungeon_4.png?raw=true)
![screenshot](/Docs/Images/03_ModularDungeon_5.png?raw=true)
![screenshot](/Docs/Images/03_ModularDungeon_6.png?raw=true)
![screenshot](/Docs/Images/03_ModularDungeon_7.png?raw=true)
![screenshot](/Docs/Images/03_ModularDungeon_8.png?raw=true)

# Navigation Mesh

Navigation mesh test page. The navigation mesh is a custom porting of the original Recast Navigation

See https://recastnav.com/

![screenshot](/Docs/Images/03_PathFinding.png?raw=true)

# Perlin Noise

Perlin noise generator.

![screenshot](/Docs/Images/03_PerlinNoise.png?raw=true)

# Real Time Strategy

Real time strategy game test. AI with simple state machines.

![screenshot](/Docs/Images/03_RTS.png?raw=true)

# Skybox

Skybox test scene with spatial audio. The audio is based on the player position.

![screenshot](/Docs/Images/03_Skybox.png?raw=true)

## 04 - Physincs Samples

Physics sample, including rigid bodies and joints.

![screenshot](/Docs/Images/04_Physics.png?raw=true)

## 05 - AI Samples

AI samples inspired by Radu Mariescu-Istodor YouTube series.

See https://www.youtube.com/@Radu

# Self-Driving Car

[Self-driving Car :: Phase 1](https://youtube.com/playlist?list=PLB0Tybl0UNfYoJE7ZwsBQoDIG4YN9ptyY&si=jTJ4qaLbHhTqh0U8)

![screenshot](/Docs/Images/05_SelfDrivingCar.png?raw=true)

# A Virtual World

[A Virtual World :: Phase 2](https://www.youtube.com/playlist?list=PLB0Tybl0UNfZtY5IQl1aNwcoOPJNtnPEO)

![screenshot](/Docs/Images/05_VirtualWorld.png?raw=true)

## Other Credits

This project is a long time work, and I have used several resources from the internet. I want to thank all the people that have shared their knowledge and resources.

Although I have tried to keep track of all the resources, by adding the credits in the source code, I am sure that I have missed some of them. If you see your work here, please let me know, and I will add you to the credits.

## SonarQube Status

[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=Selinux24_Skirmish_dev&metric=reliability_rating)](https://sonarcloud.io/summary/new_code?id=Selinux24_Skirmish_dev)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=Selinux24_Skirmish_dev&metric=code_smells)](https://sonarcloud.io/summary/new_code?id=Selinux24_Skirmish_dev)

Expand Down
Loading

0 comments on commit efff49f

Please sign in to comment.