Pro-D

From RogueBasin
Revision as of 09:51, 9 October 2014 by TuncOfGrayLake (talk | contribs)
Jump to navigation Jump to search

Introduction

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

Pro-D’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

Pro-D is currently on version 4.0 and has two versions:

Pro-D requires Unity Engine: Download Unity Engine here.


Code Structure

Main components of Pro-D 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 “Pro-D\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.

Pro-D 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 Pro-D 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 Pro-D Community at r/ProD


Games made with Pro-D

Released:

Prototyped:


Important links


Screenshots

aLLYi8d.jpg

cUswNmm.jpg

cTON5Ve.jpg