Skip to content
Chris3606 edited this page Mar 1, 2019 · 21 revisions

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. The Table of Contents sidebar shows all the pages available on this Wiki.

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. The majority of the library falls under the core category. This category is composed of the root GoRogue namespace and basically 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. These structures and algorithms generally have corresponding wiki articles.

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.