Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/qhdwight/voxelfield
Server authoritative multiplayer shooter game with fully destructible terrain
https://github.com/qhdwight/voxelfield
game game-development marching-cubes multiplayer unity voxel
Last synced: about 2 months ago
JSON representation
Server authoritative multiplayer shooter game with fully destructible terrain
- Host: GitHub
- URL: https://github.com/qhdwight/voxelfield
- Owner: qhdwight
- License: gpl-3.0
- Created: 2019-12-07T22:53:49.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-11T02:53:30.000Z (7 months ago)
- Last Synced: 2024-10-29T20:07:18.605Z (2 months ago)
- Topics: game, game-development, marching-cubes, multiplayer, unity, voxel
- Language: C#
- Homepage: http://www.voxelfield.com/
- Size: 92.5 MB
- Stars: 36
- Watchers: 6
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Voxelfield
Voxelfield is a multiplayer shooter game where the terrain is completely destructible.
Video: https://youtu.be/m-gB7DvBCo4
Itch.io: https://shaweewoo.itch.io/voxelfield![Screenshot 1](screenshot_1.jpg)
![Screenshot 2](screenshot_2.jpg)### Development
- Clone this repository and run `git submodule update --init --recursive`
- Open in Unity, all packages should resolve automatically
- To build use the Menu item Build/(Type and Arch Here)
- Steam authentication is turned on by default, to disable execute `authenticate_steam false` in console (open with `~`)### Technical details
- Written in C# using the Unity game engine and LiteNetLib networking library
- Authoritative network model supporting 16 players with 120 packets per second
- Custom hybrid ECS system to ensure determinism
- Integration with AWS GameLift, authentication with Steam API, stat tracking with AWS DynamoDBThis is by far my biggest project, `cloc` output (counts lines of code):
```
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C# 218 3221 4791 19558
-------------------------------------------------------------------------------
```### Code Layout
Modularity is achieved using Unity packages and assembly definitionsVoxelfield Specific Scripts:
- [Voxels](Assets/Scripts/Voxels)
- [Chunk](Assets/Scripts/Voxels/Chunk.cs)
- [ChunkManager](Assets/Scripts/Voxels/ChunkManager.cs)
- [MapManager](Assets/Scripts/Voxels/Map/MapManager.cs)
- [Rendering](Assets/Scripts/Voxels/VoxelRenderer.cs)
- [Voxelfield](Assets/Scripts/Voxelfield)
- [Components](Assets/Scripts/Voxelfield/Session/Components.cs)FPS General Packages:
- [Session](Packages/Swihoni.Sessions) - Modifying the game, clients, servers
- [Server](Packages/Swihoni.Sessions/Runtime/Server.cs)
- [Client](Packages/Swihoni.Sessions/Runtime/Client.cs)
- [Client Prediction](Packages/Swihoni.Sessions/Runtime/ClientPrediction.cs)
- [Common Session Components](Packages/Swihoni.Sessions/Runtime/Components/SessionComponents.cs)
- [Common Player Components](Packages/Swihoni.Sessions/Runtime/Player/Components/PlayerComponents.cs)
- [Component](Packages/Swihoni.Components) - Defining game data
- [LiteNetLib](Packages/LiteNetLib) - Forked networking library by [RevenantX](https://github.com/RevenantX/LiteNetLib)### Gamemodes
- CTF (Capture the Flag)
- Secure Area
- Deathmatch### Weapons
- Rifle
- Deagle
- Sniper
- Grenade Launcher
- Missile Launcher
- Sand Bomb
- C4
- Grenade
- Molotov
- Shotgun
- Pickaxe
- Pistol
- SMG
- Impact Grenade
- Boomstick
- Flashbang