Skip to content
Chris3606 edited this page Jul 7, 2019 · 21 revisions

WARNING: Deprecated

The articles on this wiki are outdated with respect to the 2.x version of GoRogue, and are in the process of being moved to the new documentation website. The articles on the wiki are only present for the sake of preservation in the meantime and will be removed once this is complete.

Overview

Welcome to the GoRogue wiki! This wiki is designed to provide some getting started instructions, as well as overviews and examples that should help you get started with GoRogue. While the wiki examples are not comprehensive overviews of all functions of every feature (the API docs can be helpful in this regard), the pages are generally meant to provide you with a basic understanding of the feature they cover, and some examples that will help you get started using the library. The Table of Contents sidebar shows all the pages available on this Wiki.

Upgrading from 1.x

If you are a GoRogue 1.x user looking to upgrade to 2.0, a wiki page detailing the changes and upgrade process can be found here

Other Documentation

In addition to this wiki, GoRogue has a few other forms of documentation.

API Documentation

The API docuementation for GoRogue is hosted online here. While the API documetation generally does not contain extended usage examples, it provides a useful source for comprehensive documentation of the capabilities of a feature.

Subreddit

GoRogue has a subreddit r/goroguelib. Feel free to post there with questions, improvement suggestions, etc.

Discord

GoRogue does not have its own discord server (yet), however for SadConsole users, SadConsole's discord does have a gorogue-integration channel that can be useful for getting questions answered or problems solved.

Library Design Concepts

Generally, GoRogue is designed to provide a set of tools that are minimally intrusive upon your own architecture. More specifically, there are two basic categories of GoRogue features -- "core" features, and "game framework" features.

Core Features

The majority of the library falls under the core category. This category is composed of the root GoRogue namespace and all sub-namespaces except GoRogue.GameFramework. These core features are designed to provide generic data structures and algorithm implementations that may assist you in creating your game. These features, by design, work without asserting much of anything about what your game is or how it works, or what your code architecture looks like. While some data structures, like ISpatialMap implementations, can be used to hold data related to a map or game, they purposefully avoid relying concrete data structures for maps, objects on maps, or even game data. This ensures that these features can be used in the widest possible array of use cases, without the library needing to "specify" what your game architecture must be and how your data is stored. These structures and algorithms have corresponding wiki articles.

Game Framework Features

The second category of features is the game framework category. These features are all contained within the GoRogue.GameFramework namespace. Unlike the core features, their purpose is to combine GoRogue core features into a coherent, concrete structure that can be used as a framework for your game, and build upon those features to create functionality that may apply to many use cases. These features are detailed in the corresponding wiki article.