Skip to content

Commit

Permalink
Add docs (#224)
Browse files Browse the repository at this point in the history
Co-authored-by: Lucas Girouard-Stranks <[email protected]>
  • Loading branch information
lithiumtoast and lithiumtoast authored Sep 2, 2022
1 parent acac4f5 commit 5e96f06
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 2 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Katabasis is a fork of [FNA](https://github.com/FNA-XNA/FNA) adapted to be more

## Developers: Documentation

For documentation, see [docs/README.md](docs/README.md). This includes architecture, development logs, how to build from source, NuGet packages, samples, migration guides from MonoGame/FNA, and versioning.
For documentation, see [docs/README.md](docs/README.md). This includes frequently answered questions (FAQ), architecture, development logs, how to build from source, NuGet packages, samples, migration guides from MonoGame/FNA, versioning, and more!

## License

Expand Down
11 changes: 11 additions & 0 deletions docs/FAQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Frequently Answered Questions (FAQ)

## What's the difference between Katabasis and FNA?

Katabasis is a fork of FNA. ImGui is built in.

As of right now there is isn't much difference as Katabasis is mostly just a vanilla fork with some minor changes, some code removed, some things cleaned up a bit, and some additional C libraries. For a guide of effective changes you need to worry about for your game code see [MIGRATION-GUIDE-FNA.md](MIGRATION-GUIDE-FNA.md).

Under the hood the biggest difference to FNA right now is that all the C# code that binds to native libraries via `DllImport` for `SDL`, `FNA3D`, `FAudio`, `Theorafile` are using automatically generated C# code bindings using [C2CS](https://github.com/bottlenoselabs/c2cs) instead of the manually written C# code bindings provided by FNA. While there is no real "effective" advantage for using C2CS for FNA's dependecies of C libraries, in the future if FNA is no longer to be used the C2CS tool makes using other C libraries quick and easy from C#. Using C2CS does add the nice advantage that all of SDL library's functions are added to C# automatically while FNA does not consider adding C# bindings for SDL if not necessary or automatically. It is also great to add additional C libraries to Katabasis such as `imgui`.

There is plans to add extensions and features in the future which will make Katabasis differentiate from FNA more such: additional 2D and 3D primitives; better content pipeline; hot reloading workflows; feaatures from MonoGame.Extended such as Tiled, etc.
3 changes: 3 additions & 0 deletions docs/GETTING-STARTED.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Getting Started

Clone the template on GitHub: https://github.com/bottlenoselabs/katabasis-game-template. This template is a fully functionally super small and minimal game which you base off of.
8 changes: 8 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Documentation

## Getting Started

For a quick and easy guide for getting started with Katabasis: [GETTING-STARTED.md](GETTING-STARTED.md).

## Frequently Answered Questions (FAQ)

Frequently answered questions from GitHub issues / pull requests, Discord, or elsewhere about Katabasis: [FAQ.md](FAQ.md).

## Architecture

Details about how C# is viable for game development, which graphics APIs are used, and which platforms are supported:
Expand Down
2 changes: 1 addition & 1 deletion docs/VERSIONING.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,4 @@ For a complete list of the release versions, see the [tags on this repository](h

## Pre-Releases

Rolling builds are the *next minor* version with a prefix of the build. E.g., if the current version is `0.1`, the next version would be `0.2`. So, the version of a pre-release would look something like `0.2-alpha0158`.
Rolling builds are the *next minor* version with a prefix of the build. E.g., if the current version is `0.1`, the next version would be `0.2`. So, the version of a pre-release would look something like `0.2-pre0158`.

0 comments on commit 5e96f06

Please sign in to comment.