Luke Mahoney (MLabs)
Project OwnerGrant Manager
Many video games, such as Rogue, Diablo, and No Man’s Sky use procedurally-generated maps to help build large worlds that offer fresh experiences with every new play-through. We believe that the non-determinism offered by MeTTa can facilitate an interesting approach to this task, and serve as an interesting demo. We aim to write a demo MeTTa program for generating and viewing randomly-generated maps. We believe that this will offer value in the fact that these algorithms are well-established and researched, and so they may offer a good way of comparing MeTTa to other languages. Additionally, viewing the output of a MeTTa program may help people understand the language better.
Create educational and/or useful demos using SingularityNET's own MeTTa programming language. This RFP aims at bringing more community adoption of MeTTa and engagement within our ecosystem, and to demonstrate and expand the utility of MeTTa. Researchers must maintain demos for a minimum of one year.
In order to protect this proposal from being copied, all details are hidden until the end of the submission period. Please come back later to see all details.
Create a system for representing tiles and their relationship to all other tile types. Typically each tile in a game map can only seamlessly integrate with a subset of the total number of available tiles. The first step is to represent tiles as atoms in a MeTTa Atomspace. We can do this with code such as `(tile "Foyer 1")` or `(tile "Tree on grass")`. We can then represent the possible neighbors of each tile type in this same Atomspace. This can be accomplished with code such as `(neighbors (tile "Beach") (tile "Ocean"))` or `(neighbors (tile "Beach") tile "Sand"))`. This will allow us to process the possible configurations for each generated map. For this milestone we will create atoms such as the ones listed above as well as any and all auxiliary functions and expressions needed to represent tiles of a map and the relationships they may have to other tiles.
MeTTa library plus examples for representing game map tiles in an Atomspace
$2,500 USD
1. A formal representation of game map tiles is created 2. All edge cases and use scenarios are accounted for
Translate pre-established generation algorithms into MeTTa for use with the atoms listed above. In this step we will write an algorithm in MeTTa for generating maps procedurally. Map-generating algorithms have already been well-established and researched. In particular to leverage MeTTa’s inherent use with non-determinism we will implement the “drunkard’s walk” algorithm (https://en.wikipedia.org/wiki/Random_walk). In this algorithm a random point is selected. We assign a tile to that point then move in a random direction. We then assign a suitable tile to that new point. We repeat this for a preset number of steps until we start from a new point and start over. To ensure that the algorithm completes every time we select a new starting point it will be at a new tile.
MeTTa library implementing drunkard’s walk algorithm
$17,500 USD
1. The drunkard’s walk algorithm is recreated in MeTTa 2. The code is clean and easily understood, with many comments explaining what is happening
Visually display the generated map to the user. Once we have generated the maps it would be good to visualize them. We can do this by using existing Python libraries such as matplotlib. We can use Python to generate the Atomspace containing the tiles and what neighbors each can have. We can then integrate this with the functions created in milestone 2 to create a full MeTTa program that can be run in Python’s MeTTa interpreter. We can then take that output and use it to construct an image that can be shown to the user. The user can then determine if the map is suitable or if a new one should be generated.
Python tooling around the MeTTa program for visualizing the output of the random walk algorithm
$5,000 USD
1. The output of the random walk algorithm is easily seen and understood by the user 2. The user is able to understand by looking at generated output how powerful MeTTa is
Reviews & Ratings
Please create account or login to write a review and rate.
Check back later by refreshing the page.
© 2025 Deep Funding
Join the Discussion (0)
Please create account or login to post comments.