/Simulation-Game

In the game, players can assign tasks to their individually owned characters based on their professions like woodsman, miner. Additionally, players can craft items for themselves from the crafting menu, such as chests, beds, walls, and doors. Multiplayer functionality was implemented using Unity Netcode, allowing players can play games together.

Primary LanguageC#

Simulation-Game

We developed the prototype of a multiplayer simulation game for our university graduation project.

Multiple lobbies can be created, and players can interact with each other or experience the game individually. In the game, players can assign tasks to their individually owned characters based on their professions like woodsman, miner. Additionally, players can craft items for themselves from the crafting menu, such as chests, beds, walls, and doors. This part is currently only functioning on the client side.

We used the following in the project:

▪ Utilized the Lobby and Relay features provided by Unity Game Service for multiplayer, and developed the multiplayer functionality using Netcode. It includes more features such as public/private settings, maximum players, player information, and many others.

▪ Created our map using procedural map generation by determining seven different regions. While creating our map, we can adjust various properties such as width/height, noise scale, octaves, persistence, seed, lacunarity, and many more.

image

▪ There are 7 different regions in the game, each with its own characteristics. These regions are visible on the map and have their own unique features such as hunger rate, thirst rate, chill rate, which animal and raw material can instantiated.

image

▪ The generic object pool was implemented, and all objects on the map were instantiated using this pool. In addition, these objects are network objects, meaning they are instantiated on the server-side.

Adsız

▪ Characters like woodsman, miner, etc., in the game are instantiated on the server-side upon request from the connecting clients. In the game, the task system assigns tasks to characters based on the tasks selected from the submenu. The characters then start working on the assigned tasks.

image image

▪ We have A* pathfinding system in game to allow characters to reach their destinations. This system helps them find the most suitable path to the objects in the given tasks. During the map generation, our grid system marks non-walkable areas as false, preventing characters from finding paths over water, objects, and other obstacles.

▪ In the game, there are collectible resources such as wood, stone, food, and herbs. These resources can be used to craft different items and add them to the map.

image image image image image image image image