Skip to content

Commit

Permalink
Unarchive Old Documents (#74)
Browse files Browse the repository at this point in the history
* Unarchive collision docs

* Unarchive content manager extensions docs

* Unarchive entities docs

* Unarchive particles docs

* Unarchive scene-graphs  docs

* Unarchive screen-management docs

* Unarchive serialization docs

* Unarchive tweening docs

* Unarchive tiled docs

* Correct sidebar for collision docs

* Update documents table

* Add up-to-date notice

* Add markdown preprocessor
Preprocessor will replace global variable keys such as `mgeversion` in documents.
  • Loading branch information
AristurtleDev authored Sep 30, 2024
1 parent a289d53 commit e6696bf
Show file tree
Hide file tree
Showing 63 changed files with 277 additions and 64 deletions.
24 changes: 12 additions & 12 deletions docs/about/introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,18 @@ Some of the main features of **MonoGame.Extended** include:
| [2D Animations](/docs/features/2d-animations/spritesheet/spritesheet.md) | Offers utility class such as `SpriteSheet` and `AniamtedSprite` for creating and managing 2D sprite animations. |
| [Fonts](/docs/features/fonts/bitmapfont/bitmapfont.md) | Provides support for Bitmap Fonts created with BMFont or Hiero. |
| [Input](/docs/features/input/keyboardextended/keyboardextended.md) | Utility classes that extend the base input states provided by MonoGame as well as an `InputListener` for event based input events instead of poll based. |
| [Camera](/docs/features/camera/camera.md) | Class wrapper for viewport objects. Allows easily moving the viewable area of your world. |
| [Collections](/docs/features/collections/collections.md) | Containers for data with efficient insertion, removal, and memory usage. Each with unique reasons usage. |
| Collisions | ⚠️ Documentation is being updated, please check back soon. |
| Content Management | ⚠️ Documentation is being updated, please check back soon. |
| ECS | ⚠️ Documentation is being updated, please check back soon. |
| Graphics | ⚠️ Documentation is being updated, please check back soon. |
| [Object Pooling](/docs/features/object-pooling/object-pooling.md) | Collection types that reduce performance issues related to things like Garbage Collection. |
| Particles | ⚠️ Documentation is being updated, please check back soon. |
| Serialization | ⚠️ Documentation is being updated, please check back soon. |
| Screen Management | ⚠️ Documentation is being updated, please check back soon. |
| Tilemap | ⚠️ Documentation is being updated, please check back soon. |
| Tweening | ⚠️ Documentation is being updated, please check back soon. |
| [Camera](/docs/features/camera/camera.md) | Class wrapper for viewport objects. Allows easily moving the viewable area of your world. |
| [Collections](/docs/features/collections/collections.md) | Containers for data with efficient insertion, removal, and memory usage. Each with unique reasons usage. |
| [Collisions](/docs/features/collision/collision.md) | ⚠️ Documentation needs updating |
| [Content Management](/docs/features/contentmanager/contentManager-extensions.md) | ⚠️ Documentation needs updating |
| [ECS](/docs/features/entities/entities.md) | ⚠️ Documentation needs updating |
| [Graphics](/docs/features/scene-graphs/scene-graphs.md) | ⚠️ Documentation needs updating |
| [Object Pooling](/docs/features/object-pooling/object-pooling.md) | Collection types that reduce performance issues related to things like Garbage Collection. |
| [Particles](/docs/features/particles/particles.md) | ⚠️ Documentation needs updating |
| [Serialization](/docs/features/serialization/serialization.md) | ⚠️ Documentation needs updating |
| [Screen Management](/docs/features/screen-management/screen-management.md) | ⚠️ Documentation needs updating |
| [Tilemap](/docs/features/tiled/tiled.md) | ⚠️ Documentation needs updating |
| [Tweening](/docs/features/tweening/tweening.md) | ⚠️ Documentation needs updating |

## How to Use These Docs
On the left side of the screen, you will find the documentation navbar. On mobile devices, this can be accessed by clicking the hamburger menu in the top left. Since **MonoGame.Extended** is a set of utilities and not an engine, the documentation does not need to be read in a specific order however the documentation within each category may be ordered to build off of the previous document.. Each section or document is an isolated topic, so you can skip ahead or read only the ones relevant to your use case.
Expand Down
4 changes: 4 additions & 0 deletions docs/features/2d-animations/animatedsprite/animatedsprite.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ import IdleAnimation from './idle_animation.gif'
import AttackNoIdle from './attack_no_idle.gif'
import EventTrigger from './event_trigger.gif'

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

In the [previous document](/docs/features/2d-animations/spritesheet/spritesheet.md) about `SpriteSheets` we went over how to create a `SpriteSheet`, define animations, and retrieve the animations from it. Doing this only gives use the `SpriteSheetAnimation` instance for that animation, which we then have to create an `AnimationController` with to manage that single animation.

However, typically a `SpriteSheet` is going to contain several animations related to a single concept, like all of the animations for a player. To better manage controlling the animations from the `SpriteSheet` we can use the `AnimatedSprite` class.
Expand Down
4 changes: 4 additions & 0 deletions docs/features/2d-animations/spritesheet/spritesheet.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ import AdventurerSpriteSheet from './adventurer.png'
import AdventurerAttackFrames from './attack-frames.png'
import AttackAnimation from './attack_animation.gif'

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

A `SpriteSheet` is a wrapper around a [Texture2DAtlas](/docs/features/texture-handling/texture2datlas/texture2datlas.md) that provides additional methods for defining frame based animations based on the regions within the `Texture2DAtlas`.

Take a look at the following example texture atlas of an adventurer character.
Expand Down
4 changes: 4 additions & 0 deletions docs/features/camera/camera.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ description: A virtual 'camera' to view
import FreehandCamera from './camera.svg'
import CameraExample from './cameraExample.png'

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

The purpose of a camera is to provide a quick way show the game world from a different position in space. The way the camera does this is by using a transformation matrix that changes the way a sprite batch is rendered to the screen. This allows no movement of objects, and instead, moves the projected image on screen space.

<figure>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ sidebar_label: Orthographic Camera
title: Orthographic Camera
---

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

This camera type creates a view with no depth perception. Exactly what is wanted for a 2D game. Below are some of the common actions you might want to take with the camera. There are many other methods and attributes on the class you can use and modify to get different behavior.

## Creating the camera
Expand Down
4 changes: 4 additions & 0 deletions docs/features/collections/collections.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ title: Collections
sidebar_label: Collections
---

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

## What is a collection?

A collection is a data structure with functionality built around it. Think about a collection as a grouping of similar things. All the enemies in a game, the items in the inventory, the textures being drawn, images in an animation, or bullets on the screen.
Expand Down
File renamed without changes
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
---
id: collision
title: Collision
sidebar_label: Collision
title: Collision
description: 2D grid-based collision system.
---
The MonoGame.Extended.Collisions library contains a 2D grid-based collision system.

## Installation

[MonoGame.Extended.Collisions](https://www.nuget.org/packages/MonoGame.Extended.Collisions) is distributed via a NuGet package. You can add the NuGet package to your C# project through your IDE of choice (Visual Studio, Xamarin Studio, Rider, etc) or through the Command Line Interface (CLI) using the dotnet command.
```
dotnet add MonoGame.Extended.Collisions
```
:::warning[Not up to date]
This page **is not** up to date for MonoGame.Extended `@mgeversion@`. If you would like to contribute to updating this document, please [create a new PR](https://github.com/craftworkgames/craftworkgames.github.io/pulls)
:::

## Usage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@
id: contentManager-extensions
title: ContentManager extensions
sidebar_label: ContentManager extensions
description: Extensions for the MonoGame ContentManager class.
---

:::warning[Not up to date]
This page **is not** up to date for MonoGame.Extended `@mgeversion@`. If you would like to contribute to updating this document, please [create a new PR](https://github.com/craftworkgames/craftworkgames.github.io/pulls)
:::

# ContentManager extensions

## ContentManager.OpenStream
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@
id: entities
title: Entities
sidebar_label: Entities
description: High performance, Artemis based, Entity Component System (ECS)
---

The Entities package is a modern high performance Artemis based Entity Component System. Many of the features found in this implementation were inspired by artemis-odb. Although, many others were also studied during development. As you'll see the systems are designed to feel familar to MonoGame developers.

## Installation
:::warning[Not up to date]
This page **is not** up to date for MonoGame.Extended `@mgeversion@`. If you would like to contribute to updating this document, please [create a new PR](https://github.com/craftworkgames/craftworkgames.github.io/pulls)
:::

[MonoGame.Extended.Entities](https://www.nuget.org/packages/MonoGame.Extended.Entities) is distributed via a NuGet package. You can add the NuGet package to your C# project through your IDE of choice (Visual Studio, Xamarin Studio, Rider, etc) or through the Command Line Interface (CLI) using the dotnet command.
```
dotnet add MonoGame.Extended.Entities
```
The Entities package is a modern high performance Artemis based Entity Component System. Many of the features found in this implementation were inspired by artemis-odb. Although, many others were also studied during development. As you'll see the systems are designed to feel familar to MonoGame developers.

## What is an ECS?

Expand Down
4 changes: 4 additions & 0 deletions docs/features/fonts/bitmapfont/bitmapfont.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ title: Bitmap Font
sidebar_label: Bitmap Font
---

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

This is an overview of the `BitmapFont` feature in **MonoGame.Extended**. `BitmapFonts` are font files (`.fnt`) created using the [AngelCode BMFont](https://www.angelcode.com/products/bmfont/) format. You can generate these files with tools like the [BMFont](https://www.angelcode.com/products/bmfont/) tool or alternatives such as [libGDX Hiero](https://libgdx.com/wiki/tools/hiero).

In this article, we'll explore why `BitmapFonts` are a great alternative to the built-in `SpriteFont` in MonoGame. Whether you're facing limitations with SpriteFont or seeking more control over your game fonts, `BitmapFonts` provide a robust solution.
Expand Down
4 changes: 4 additions & 0 deletions docs/features/input/inputlistener/inputlistener.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ title: InputListener
sidebar_label: InputListener
---

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

**MonoGame.Extended** offers input listeners that can be used to subscribe to input events instead of having to poll for input changes. These listeners include

- `KeyboardListener`
Expand Down
4 changes: 4 additions & 0 deletions docs/features/input/keyboardextended/keyboardextended.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ title: KeyboardExtended
sidebar_label: KeyboardExtended
---

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

`KeyboardExtended` is an extension of the `Microsoft.Xna.Framework.Input.Keyboard` class. Unlike the default MonoGame one, `KeyboardExtended` will internally track both the keyboard state of the previous frame and the keyboard state of the current frame. This allows for easy comparisons between the previous and current state to check for single frame key presses.

`KeyboardExtended` also contains the `KeyboardExtended.GetState()` method which returns back a `KeyboardStateExtended` struct. This struct provides the standard utility methods of checking if a key is down or up, but also extends this functionality with methods for checking for single frame key presses.
Expand Down
3 changes: 3 additions & 0 deletions docs/features/input/mouseextended/mouseextended.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ title: MouseExtended
sidebar_label: MouseExtended
---

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

`MouseExtended` is an extension of the `Microsoft.Xna.Framework.Input.Mouse` class. Unlike the default MonoGame one, `MouseExtended` will internally track both the mouse state of the previous frame and the mouse state of the current frame. This allows for easy comparisons between the previous and current state to check for things like single frame button presses and tracking mouse position delta between frames

Expand Down
4 changes: 4 additions & 0 deletions docs/features/object-pooling/object-pooling.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ title: Object Pooling
sidebar_label: Object Pooling
---

:::tip[Up to date]
This page is **up to date** for MonoGame.Extended `@mgeversion@`. If you find outdated information, [please open an issue](https://github.com/craftworkgames/craftworkgames.github.io/issues).
:::

Object pooling is an optimization pattern. It's used to improve performance, in certain cases, by re-using objects instead of allocating memory for them on demand. In C/C++, one the things object pooling has to offer is a solution to avoid [memory fragmentation](http://stackoverflow.com/questions/3770457/what-is-memory-fragmentation). In C#, we don't have to worry about memory fragmentation thanks to [garbage collection](https://msdn.microsoft.com/en-us/library/ee787088). However, garbage collection can be still be too expensive for certain parts of real-time applications, especially on mobile devices with slower CPUs and simpler garbage collectors. [More details on object pooling here](http://gameprogrammingpatterns.com/object-pool.html).

:::note[Abstract Analogy]
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,16 @@
id: particles
title: Particles
sidebar_label: Particles
description: Particle engine, ported from Mercury Particle Engine.
---

:::warning[Not up to date]
This page **is not** up to date for MonoGame.Extended `@mgeversion@`. If you would like to contribute to updating this document, please [create a new PR](https://github.com/craftworkgames/craftworkgames.github.io/pulls)
:::

MonoGame.Extended.Particles is ported from the Mercury Particle Engine.
A particle engine helps you simulate phenomena, which are otherwise very hard to reproduce with conventional rendering techniques. examples include replicating fire, explosions, smoke, moving water, sparks.

## Installation

[MonoGame.Extended.Particles](https://www.nuget.org/packages/MonoGame.Extended.Particles) is distributed via a NuGet package. You can add the NuGet package to your C# project through your IDE of choice (Visual Studio, Xamarin Studio, Rider, etc) or through the Command Line Interface (CLI) using the dotnet command.
```
dotnet add package MonoGame.Extended.Particles
```

## Quick start

We start by including the required namespaces.
Expand Down
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
Loading

0 comments on commit e6696bf

Please sign in to comment.