ProD

From RogueBasin
Revision as of 12:54, 25 September 2014 by TuncOfGrayLake (talk | contribs)
Jump to navigation Jump to search

Introduction

ProD is a versatile game development kit in C# designed for the Unity Engine. ProD gives you the essential tools for making games with procedurally generated content as well as various common tools for roguelike development.

ProD’s main features include random map generation, A* pathfinding, turn-based progression, object distribution, field of view and fog of war. The package supports use of both 2D and 3D assets even though the generation field is two dimensional.

Downloads & Versions

ProD is currently on version 4.0 and has two versions:

ProD requires Unity Engine: Download Unity Engine here.

Code Structure

Main components of ProD are the MethodLibrary and the Materializer. You can find more detailed information in the Manual here.

Cells, Maps, WorldMaps

Worldmaps are made out of maps. For example a worldmap can be, “the Ancient Dungeon Ruins”, and its maps can be individual levels in your game “Dungeon Ruins - Entrance”, “Dungeon Ruins - Maze” and “Dungeon Ruins - Lich’s Lair”. Maps are made out of cells. For example “Dungeon Ruins - Maze” will have Wall, Path, Trap, Entrance and Exit as some of its cells.

MethodLibrary.cs

WorldMap Generators use Map Generators. For example “the Ancient Dungeon Ruins” can use Generator_DungeonRuins.cs and Generator_Maze to make its individual maps. Map Generators always use MethodLibrary.cs methods: The MethodLibrary.cs contains all fundamental methods for making maps. For example Generator_DungeonRuins.cs uses the following and more:

  • MethodLibrary.CreateRooms(...);
  • MethodLibrary.CreateMaze(...);
  • MethodLibrary.SetCellsOfTypeAToB(...);
  • MethodLibrary.CloseDeadEndCells(...);
  • MethodLibrary.ReduceUCorridors(...);
  • MethodLibrary.ConvertUnreachableCells(...);

The MethodLibrary provides over 30 common methods to create and customize procedural worlds. In the Total version there are 12 distinct map generators including rocky hills, sinuous caverns, winding dungeons, shattered ruins, serpentine mazes, rustic villages and more all made possible by the library alone.


Materializer.cs

Materializer.cs uses the theme of a map and the resources folder to instantiate game objects. If a map has its theme as “Terminal Theme”, then the Materializer.cs will look into “ProD\Visual Assets\Resources\Terminal Theme\Cells” and search for respective Prefabs such as Wall, Path, Trap, Entrance and Exit.

The Materializer is the tool to instantiate the aforementioned maps.

ProD allows the user to be in full control of the visual representation of the tiles. Developers can place the map on any axis they like which makes builtin Unity Physics features available for play. Due to this functionality devs can make both platformers and roguelikes alike. Materializer also allows setting orientations for your tiles. Whether your visuals are 2D or 3D, the individual assets can be flagged for rotation in case your assets require that.

Main Features

Following is a feature list for ProD Total:

  • Over 30 base methods and algorithms to create maps
  • 12 distinct ready to use generators for a wide variety of maps
  • Infrastructure that allows use of both, 2D and 3D assets
  • Camera systems for player tracking and free movement
  • Turn based player movement and AI system
  • A*pathfinding
  • Fog of War with 7 different algorithms for different use-cases
  • Map to texture, for previews and minimaps
  • Capability to import and export maps using the popular .tmx format that allows editing randomly generated maps with third-party softwares such as third-party software Tiled.
  • Fully commented code that comes with online documentation made possible by Doxygen.
  • A vibrant community subreddit and a responsible dev team that promises immediate responses to all your inquiries and questions.


Development Team

The package is being developed by GrayLake Studios, an independent game design and development company that makes games.

Team members who worked on the package:

  • Tobias Hoffmann - Programmer
  • Wijnand van Tol - Programmer
  • Erhan Türel - Supervisor
  • Tunç Türel - Supervisor
  • Saverio Wielkens - Artist
  • Ies Wierdsma - Programmer

Special thanks to:

  • Tycho Henzen
  • The most wonderful contributors and supporters ProD Community at r/ProD

Games made with ProD

Prototypes made with ProD

Important links

Screenshots