Difference between revisions of "ProD"

From RogueBasin
Jump to navigation Jump to search
Line 1: Line 1:
ProD is a versatile tool, capable of making procedural generated 2D maps.
== Introduction ==
The [https://www.assetstore.unity3d.com/en/#!/search/prod Unity package] was intended to be a base system for those who were interested in making rogue-likes and dungeon crawlers, yet ProD is capable of use for all sorts of games and applications.
ProD supplies you with several scripts that help you create procedurally generated environments using a two dimensional grid system.
The package is designed with rogue-like development in mind and has the means to support both retro­style dungeon crawlers and contemporary rogue-likes together.


== Structure ==
ProD is a versatile game development kit in C# designed for the [http://unity3d.com/ Unity Engine]. ProD gives you the essential tools for making games with procedurally generated content as well as various common tools for roguelike development.  
The main components of ProD are the MethodLibrary and the Materializer.  


The [http://graylakestudios.com/graylakestudios/prod/Doxygen%20Output/html/class_pro_d_1_1_method_library.html MethodLibrary] provides over 30 different methods to create and customize procedural worlds.  
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.
There are multiple example Generators included, which use these methods to produce various maps, each with their own distinctive features.
Ranging from rocky hills and sinuous caverns to winding dungeons and shattered ruins, these generators provide a good base for games and act simultaneously as a template to create own compositions.


The [http://graylakestudios.com/graylakestudios/prod/Doxygen%20Output/html/class_pro_d_1_1_materializer.html Materializer] is the tool to instantiate these maps.
== Downloads & Versions ==
This allows the user to be in full control of the visual representation of the tiles.
He can individually design walls, paths, doors and every other type of tiles he choose to have in his maps.
Remarkable is the orientation system, which allows to differentiate straight walls, corners, crossroads on paths, etc.
In upcoming versions, the player will also be able to choose the orientation of the whole map, allowing to use Unity's build-in physic system either for top-down or side-scroller games.


The package also includes several utilities, commonly used in rogue-likes.  
ProD is currently on version 4.0 and has two versions:
This includes a movement system, a top-down camera system and in future versions a customisable Fog of War / Field of View system.  
* [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_assetstore.html ProD Free] ProD Free is the free version that has limited functionality. [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_assetstore.html Download ProD Free here].
Those utilities are designed to be ready to use for rogue-like developers, but can be adapted and modified easily for individual use-cases.
* [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_assetstore.html ProD Total] ProD Total is the complete version that has all available functionality and requires a license to use. [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_assetstore.html Learn about ProD Total here]


== Features ==
ProD requires Unity Engine:
* Over 30 base methods and algorithms to create maps
[http://unity3d.com/unity/download Download Unity Engine here].
* 10 different ready to use generators for a wide variety of maps
* Easily customisable visual representation, with 1 basic rogue-like theme included
* Camera systems for "follow the player" and free movement
* Rogue-like player movement
* [http://graylakestudios.com/graylakestudios/prod/Doxygen%20Output/html/index.html Full Online Documentation]
* [http://www.reddit.com/r/ProD/ Community] with constant developer support


Upcoming:
== Code Structure ==
* Fog of War with different algorithms for different use-cases
Main components of ProD are the MethodLibrary and the Materializer. You can find more detailed information in the [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_manual.html Manual here].
* File ex- and import, using the popular tmx format, editable with [http://www.mapeditor.org/ third-party software]
* Improved algorithms for faster generation
* Map to texture, for previews, minimaps and more
* Turn based movement for easy AI integration
* more themes
* more generators


== Development ==
'''Cells, Maps, WorldMaps'''
The package is being developed by [http://graylakestudios.com/ GrayLake Studios], an independent game production company that focuses on technology and aesthetics.
 
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 [http://graylakestudios.com/graylakestudios/prod/Doxygen%20Output/html/class_pro_d_1_1_method_library.html 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 [http://graylakestudios.com/graylakestudios/prod_doxygen/ProD%20Total%204.0%20Doxygen%20Output/html/class_pro_d_1_1_materializer.html 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 [http://www.mapeditor.org/ third-party software Tiled].
* Fully '''commented code''' that comes with [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_doxygen.html online documentation] made possible by [http://www.stack.nl/~dimitri/doxygen/ Doxygen].
* A [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_community.html 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 [http://graylakestudios.com/ GrayLake Studios], an independent game design and development company that makes games.


Team members who worked on the package:
Team members who worked on the package:
* Tobias Hoffmann - Programmer
* Tobias Hoffmann - Programmer
* Wijnand van Tol - Programmer
* Wijnand van Tol - Programmer
* Erhan Türel - Supervisor
* Tunç Türel - Supervisor
* Tunç Türel - Supervisor
* Saverio Wielkens - Artist
* Saverio Wielkens - Artist
* Ies Wierdsma - Programmer
* Ies Wierdsma - Programmer


Special thanks to
Special thanks to:
* Tycho Henzen
* Tycho Henzen
* The [http://www.reddit.com/r/ProD/ community]
* The most wonderful contributors and supporters[http://graylakestudios.com/graylakestudios/graylake_redirect/rd_community.html ProD Community] at r/ProD




== Games made with ProD ==
== Games made with ProD ==
* [https://play.google.com/store/apps/details?id=com.graylakestudios.krogue Auto-Rogue]
* [[Rogue Station]]
* [[Rogue Station]]
* [http://globalgamejam.org/2014/games/shifting-bricks Shifting Bricks]
* [http://globalgamejam.org/2014/games/shifting-bricks Shifting Bricks]
* [http://jurvanoerle.nl/zombieappocalypse_blog.html ZombieGame, in progress]
----


== Prototypes made with ProD ==
*[http://jurvanoerle.nl/zombieappocalypse_blog.html Zombie Apocalypse]


https://lh4.googleusercontent.com/-ObHsukaUfxc/U_XFvGmGGdI/AAAAAAAABQQ/Jzm0uT5ydzI/w1598-h899-no/ProD4.0Leaked.png
== Important links ==


This is a screenshot of the example scene in the upcoming version ProD4.0.
* Try the [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_assetstore.html free version].
* Check the [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_webplayer.html browser demo.]
* Learn about [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_assetstore.html ProD Total].
* Download [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_manual.html the manual].
* E-mail us your questions, feedback and more at Unity3D@graylakestudios.com.
* Join the [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_community.html community subreddit] and ask others.
* [http://graylakestudios.com/graylakestudios/graylake_redirect/rd_subscribe.html  Subscribe] to our mailing list and get informed about updates, releases and contests.

Revision as of 12:22, 25 September 2014

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


Games made with ProD

Prototypes made with ProD

Important links