Last updated 3 years ago
Virtual worlds such as Metaverses can often be lonely and boring, lacking a meaningful single-player experience with daily user engagement.
Create meaningful single-player experiences with stories that live on a persistent virtual world, storing historical events on blockchain.
This is the total amount allocated to Littlecube Valley (game project).
Create meaningful single-player experiences with stories that live on a persistent virtual world, storing historical events on blockchain.
Research and development experience on procedural world map generation and procedural grass generation using a custom voxel-based game engine solution.
Skills: Computer Science, Computer Graphics, Computational Geometry, Artificial Intelligence, Machine Learning
The solution we propose is an adaptation of a concept developed back in 2009 by Bart Stewart, known as The "Living World" Game [1]. This concept explores the blending of single-player RPG experiences inside a persistent virtual world that is commonly found in massively multiplayer online RPGs.
Simulations in a Living World
Our solution will use a simulation of a living world, where the game world will be dynamic and can change due to the passage of time. Settlements of various civilisations could rise, grow and become prosperous over time due to immigration and colonisation. These settlements could also fall due to factors such as disease, famine and war. Non-player characters and creatures will live and die, their behaviours can change and shape the game environment.
These dynamic and persistent game worlds will live and develop regardless of the actions of the player. Players will get to explore the game world and identify non-player characters from which they will form emotional connections with. While players will be able to change small portions of the game environment from which they interact with, the game system will adapt to the changes and rebalance the environment, replacing any content that had been previously depleted by a player.
The game project will be focused on using a medieval fantasy theme with magic, so there will be some limitations in the living world, where medieval age civilisations will not progress into the renaissance or industrial ages. The reason will be attributed to the existence of magic. Hence, the game solution itself is also a sandbox.
Our solution will also require extensive simulation capabilities to be built into our tools, before committing to the game server. These include macro-level physical phenomena such as continents and tectonics, landforms and oceans, lakes and rivers, weather and climate, day and night cycles, populations of flora/fauna and other physical geography.
The ecological simulation will also involve the lives, movement and reproduction of the living entities in the game world. Plants and animals will vary throughout the land and any changes in their habitat conditions may force them to migrate into another region. Humanoid populations will do likewise in search for food and water supplies.
A localised simulation for a settlement would involve construction of new buildings, occupation by the owners and releasing the gameplay content associated with them. Likewise, certain events may occur and some buildings may be burnt down or abandoned, even when no players are active around that area.
The social simulation would involve the opinions of the people residing in these settlements. The people living in one settlement may view other settlements differently, even if they are of the same faction. This can be escalated to larger settlements and between factions themselves, where it would also become possible to model other large-scale economic, military and cultural behaviours.
Storytelling with NFTs
Once there is sufficient simulation infrastructure, it will become possible to add complex storytelling into the game system, where many players will be able to discover and participate. The progress of the stories can possibly affect the physical and social structures of the game and the players, even if they are not participating in them.
Players who participate in major storylines will be rewarded with NFTs that record these historical events with their associated artwork. These NFTs will be used as an entry requirement for priority access to subsequent or upcoming story events.
Hence, our audience will be the players whom prefer games that have simulation, exploration and storytelling similar to those that are found in single-player games. The integration of the persistent world will allow such living world games to be played for years and the blockchain helps to store the history of the events of the game world that the players have participated.
This will be highly memorable for these players and they could show their NFT achievements on their social media. Players can return to the game at any time and feel a sense of belonging.
Players will also not be impacted by the negative experiences found in MMORPGs, such as griefing, cyberbullying and harassment as the game content for a living world game, is focused on single-player experiences.
References:
[1] The "Living World" Game, Bart Stewart, 2009
https://www.gamedeveloper.com/design/the-quot-living-world-quot-game
Our proposed solution addresses the challenge by focusing on user acquisition, engagement and retention. These will be the factors in determining whether players choose the Cardano blockchain as their preferred blockchain for gaming.
User Acquisition, Engagement and Retention
User acquisition can be easily done through the sale of NFT-artworks on jpg.store. Our project is aiming to launch our first NFT collection on jpg.store's launchpad for an upcoming cohort. Marketing of the NFT collection will be coordinated with the team at jpg.store.
Prospective players need to collect at least one NFT-artwork in order to gain access into the game world. These NFT-artworks will be in the form of profile-pictures, which depict two characters and a pet animal.
User engagement can be achieved through players participating in the storyline content. We can measure the engagement by analysing the participation and completion rates. The amount of rewards distributed and the number of minted NFT-events for storyline completion are other indicators for user engagement.
User retention can be achieved using a high quality graphics rendering solution such as realtime raytracing, which allows the players to have a sense of pleasure. The image attached to this proposal is a cottage scene that is rendered in Magicavoxel using path-tracing. That illustrates our visual concept of what it should look like under real-time raytracing conditions.
Platforms and Devices
Unfortunately, not all players have the necessary graphics hardware or devices that can run realtime raytracing solutions. In order to allow these players to run the application successfully with good performance, we will also have to identify existing graphical solutions that can approximate features of global illumination, such as precomputed radiance transfer (spherical harmonic lighting).
The game application will be implemented on mobile platforms(iOS & Android) first before porting over to desktop platforms. This is because our current infrastructure and applications are currently built for mobile(iOS). We use the mobile platform as a baseline implementation, before porting the application over to desktop platforms(PC & Mac).
Usage of NFTs
Our solution will use Cardano-based NFTs for additional authentication into the game server, so only investors in our NFT-artworks will have access into the game world.
The NFT-artworks we intend to create include world & regional maps that are to be generated from our procedural world map generation tool. This can be used to determine which game world the player wants to participate in and it can also be used to unlock access to specific storyline content that is related to the map.
Another category of our NFT-artworks is character professions, which will allow players to access a range of character skills and specific content that are related to the profession as specified in the NFT's metadata.
Since there is limited supply of these NFT-artworks, players will be able to trade them on the NFT-marketplace if they want to change their access to a different world/region or change their character profession or simply resell them to another buyer who wants to play the game.
With respect to the event-based NFTs that we mentioned earlier, these are for recording historical storyline events onto the blockchain, so they will not be sold directly on the NFT-marketplaces.
As mentioned before, these NFTs will be used as a prerequisite for access to subsequent or upcoming story events.
In order to differentiate with Metaverses which commonly allow land ownership using NFTs, we can allow ownership in the form of mercantile licenses using NFTs. This is because the game project uses a medieval fantasy theme where the nobility owns the land, similar to medieval history in our real-world.
Play-to-Earn
With regards to play-to-earn features, we will use only one deflationary fungible token that has a limited supply, that allows for staking and voting. In order to encourage players to invest in the fungible token, we can incentive it using staking rewards, dependent on the level of their NFT-characters.
These fungible tokens will be issued as rewards for major storyline completions. A fixed supply of these tokens will only be issued as rewards for a particular storyline and they will be rewarded to players who own specific NFT-characters. The fungible tokens are also used for unlocking premium character professions and to level-up the NFT-characters.
One of the main challenges is that our project is currently a solo project that is a work-in-progress. Development progress tends to be much slower when there is a lack of manpower. Furthermore, our project tends to be research-oriented and certain parts of our solution requires extensive reading of existing scientific literature. The project also require extreme programming with regards to the implementation of certain unique concepts that are not found in existing pre-bundled game engines.
To mitigate this problem, we can search among the numerous open-source projects and frameworks that focus on specific algorithms that we may require implementation. We can research on how the solutions from these projects are implemented and how we can integrate them into our own game engine. This will help to eliminate the reliance on specific manpower expertise for those areas.
Analyse Existing Projects & Literature
Next, we can also look at other projects that are not open-source and obtain some valuable information from their research blogs, such as the procedural generation of fantasy maps in Dragons Abound by Dr Scott Turner.
We can also obtain other valuable information from existing scientific literature found in books, such as GPU GEMS, GPU PRO, Graphics Gems, Game Programming Gems, AI Wisdom and others.
After that, we can also look at how other indie game projects have implemented their solutions, such as Cube World by Dr Wolfram von Funck. And its related open-source project known as Veloren.
Client-Server Networking
Another challenge is that our existing knowledge starts with Computer Science & Computer Graphics as opposed to Networking. So we will have to spend a considerable amount of time researching how server-client networking is being implemented for a persistent virtual world.
We can start from looking at existing frameworks that implement networking protocols such as Agones and Yojimbo. We will also need to setup and run a dedicated game server using Kubernetes from Digital Ocean. There will be an associated cost of running a persistent virtual world. Hosting on Digital Ocean seems to offer the lowest operational cost.
We can also research on how Veloren organises its networking solution for their server-client architecture, since their project is open-source.
Financial Resources & Sustainability
With regard to financial resources, a common challenge is raising sufficient capital over time in order to sustain the company's operational costs. To address this problem, we have identified that selling NFT-artworks will also be able to provide some amount of capital in Ada. As mentioned earlier, we will be aiming to launch our NFT-artworks on jpg.store's launchpad in one of their cohorts.
We intend to combine the revenue obtained from the sales of the NFT-artworks with the grant money from Project Catalyst and stake them together in one of the stake pools. The reason is that this strategy is more sustainable for the long term for indie projects as opposed to spend it all on manpower resources at one go.
We will also be able to launch subsequent NFT-artworks on jpg.store with an existing art collector base once the first collection is sold out. So we will get to accumulate Ada and increase the size of our stake in the pool over time. We will only do this in incremental phases.
The rewards from the staking will be used to pay the company's yearly operational costs and the Goods & Services Tax (Singapore) at 7%, which will be incurred from the sales of NFTs should the total sales revenue reach $1 million Singapore dollars within a 12-month period. Hence, we have to account for the taxes first before manpower costs.
Music
Another challenge is that the game project will require music. We will have to make use of music tracks with non-exclusive licenses first, before engaging a music production company to produce exclusive music tracks for the game project.
Interoperability
Lastly, the game project will also require a Haskell-Swift interoperability bridge. We will be searching for this functionality in the open-source community as well.
Main deliverables are the game server application for persistent virtual world and the game client application on mobile(iOS). Other outputs include tools for procedural world-map generation with cascades, living world simulation and storyline generation.
The timeline is about 20 months, between April 2022 and November 2023.
Procedural World Map Generation Tool (4 months)
Living World Simulation & Story Generation Tool (5 months)
Server-Client Networking & Blockchain Research (3 months)
Game Server Application (2 months)
Game Client Application (3 months)
Art Assets & Animation (3 months)
Manpower cost per month: US$2500
Number of months of development: 20
Number of hours per week: >60
Hourly rate: US$10.42
Total budget: US$50,000
Name: Edwin Zeng
Career: Research & Development Engineer
Skills: Computer Science, Computer Graphics, Computational Geometry, Artificial Intelligence, Machine Learning
Roles: Game Engine Technology & Development, Voxel Art Design & Animation
Twitter: https://twitter.com/doogyhatts
Past Research & Development
Procedural World Map Generation, Oct 2021
Summary:
This is the current state of our procedural world-map generation tool and it is a revision of a prior solution, based on the accumulation of previous research efforts.
The solution uses Centroidal Voronoi Tessellation. It simulates tectonic plates to generate continents and oceans. It classifies landforms from mountains to plains. It also simulates real-world attributes such as latitude, drainage, wind forces, temperature, moisture and rainfall. It also classifies biomes for land, wetland and water and determines the salinities of lakes.
The solution also features a river generation system that uses a modified A* search solution and K-means clustering for river sources and destinations. Next, the solution uses machine learning based on decision trees for classifying voxel tiles to simulate river meandering and braiding. The voxel tiles also allow the river generation solution to establish their connections to the oceans and lakes. This solution also achieves the implicit generation of river deltas and estuaries with landmass fragmentation near the rivers.
After that, the solution uses decision trees to classify the shorelines of coastal regions, beaches and lakes for jaggedness and the transition from shallow seawater regions to deep ocean regions. The solution also uses a similar classification to make jagged borders between different neighbouring biomes.
Blogpost:
https://www.littlecubevalley.com/single-post/procedural-world-map-generation-revised-1
Video:
https://www.youtube.com/watch?v=wS4jiExlTyU
Procedural Voxel Grass Generation, July 2020
Summary:
This is the current state of our client application with no dependency on a game server, which is meant for demonstrating procedural grass generation using voxels with character animation and grass deformation.
The solution first establishes different types of soil based on the land biome, with the appropriate material colours. The soil patches have been jagged along the borders of different soil types for better transitions.
Next, grass patches have different groups for representing their density and height and are used in conjunction with drainage and moisture attributes of the soil. The grass models are precomputed with varying combinations of densities and heights within each group to establish their growth stages. The health state of the grass is also modelled on the colour of the grass patches and it is being used in conjunction with the height to determine the type of the grass.
The grass solution simulates grass growth by starting from large connected flat regions due to better anchorage of grass rhizomes. It also segregates grass types from those with protruding blades and those that are of surface height. The borders of different grass patches are also being jagged similarly to how it is done for soil.
A flood-filling solution is used to fill up the grass regions with the appropriate voxel tiles and using its connectivity to larger prior tiles as an additional criterion. The grass models have also been precomputed with shorter heights to represent trampled grass. These are used for deformation purposes when a character is stepping on them.
Lastly, the solution uses precomputed ambient occlusion for the grass models, with additional quad-fins to be generated along vertical surfaces alongside the contours of coarse voxels. All coloured and ambient occlusion models are auto-generated using a custom-built mesh assembly tool during pre-processing.
Blogpost:
Video:
https://www.youtube.com/watch?v=RlL5ogHdFBw
Procedurally Cascade Rivers and Biomes, August 2018
Cascaded World Maps & River Network, April 2019
Summary:
These were the first two attempts at procedural world map generation with a river network and map cascading. The inspirations were primarily from Dwarf Fortress.
Initially, the solution started with a standard Voronoi cell network with continents derived from simple shapes with jagged borders. The rivers were being generated from an earlier A* search solution. The elevation was derived from a pixel-based height map before being updated to one that uses Voronoi cells directly. The climate attributes used were similar to those used in Dwarf Fortress and were used to determine the different land, wetland and water biomes that make up the world map.
The map cascades were done in a quarterly manner into a quad-tree. The cascading solution is first done on land, wetland and water regions before the river network. River lines from the parent network were propagated into the child network. After that new river lines are created.
The second attempt improves the classification for aquifers and added river widths, branching and flow directions. The solution was improved to include multi-sampling of rivers. The elevation within each map was also updated to use a min-max range for each Voronoi cell.
A simpler height field generation system based on repeated iterations of averaging and scaling with precomputed terrain geometry and constructive solid geometry techniques to form the local terrain topology.
Kindly note that the cascading, local terrain topology and aquifer solutions will be reworked eventually to remove redundancies and improve simplicity.
Blogposts:
https://www.littlecubevalley.com/single-post/2018/08/27/procedurally-cascaded-rivers-and-biomes
Cascaded Map Images:
We will measure the progress and the development of our game project using our research and development blog.
Alternatively, we can also make use of concept art and make increment development steps towards getting the overall development progress closer to them.
For example, we can aim to have player characters living in small villages with day/night cycles when the client application is ready for testing.
Success for this game project can be viewed by the completion of a vertical slice, which will allow our community and investors in our NFT-artworks to have a sufficient understanding of the features and functionalities of our game, which is based on the concept of a "Living World".
Another way to define success is to simply determine if the project has sufficient features and functionalities to be able to satisfy the project's description.
Littlecube Valley is an under-development voxel-based sandbox-RPG, set in a medieval fantasy-based living world, made of many colourful little cubes. Players get to explore a magical world that is full of life, procedurally generated, filled with civilisations and wilderness, adorable characters, perilous adventures and dangerous monsters.
This is my first proposal.
SDG Goals
Goal 8. Promote sustained, inclusive and sustainable economic growth, full and productive employment and decent work for all
Goal 9. Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation
SDG Subgoals
8.2 Achieve higher levels of economic productivity through diversification, technological upgrading and innovation, including through a focus on high-value added and labour-intensive sectors
9.5 Enhance scientific research, upgrade the technological capabilities of industrial sectors in all countries, in particular developing countries, including, by 2030, encouraging innovation and substantially increasing the number of research and development workers per 1 million people and public and private research and development spending
Key Performance Indicator (KPI)
9.5.1 Research and development expenditure as a proportion of GDP
9.5.2 Researchers (in full-time equivalent) per million inhabitants
Research and development experience on procedural world map generation and procedural grass generation using a custom voxel-based game engine solution.
Skills: Computer Science, Computer Graphics, Computational Geometry, Artificial Intelligence, Machine Learning