Team-Capture
This project is in a very early alpha, a lot of things are either broken or buggy, not implemented, or are in the process of being implemented!
Team-Capture is a multiplayer first person shooter game inspired by Quake, Half-Life 2: Deathmatch, Team Fortress 2 and a tf2 mod called Open Fortress (aka "Boomer Shooters").
Team-Capture is still in very early development and is developed by a very small team! Expect bugs and other random stuff to occur while playing.
Team-Capture is built using the Unity game engine, using Mirror as it's netcode.
Features
Please remember that this project is still in early development!
- In-Game Console
- With commands!
- Working weapon shooting/reloading
- Working weapon switching
- Working pickups (Weapons/Health)
- Lag Compensation
- Server Auth Movement
- Dynamic settings UI
- Dynamic settings save system
- Discord Game RPC integration
- Steam integration
- Steam Server Auth
- Server MOTDs (HTML or regular text)
- Full offline play
- Cross-platform play (Windows, Linux)
- Both headless server and player
- Well documented API
For a roadmap of what is either being worked on, or planed to come, check out the projects tab.
Unity Technologies Used
Unity has a lot of first-party packages, here are some that we use:
We will usually always use whatever is the latest release version of a package for the current Unity version we are using.
Team
Here is a list of people who work on the project:
And here are some people who have worked on the project in the past:
- Ararem (Formally EternalClickbait) - Programmer
- HelloHowIsItGoing - Testing & Ideas
If you think you can help out the team, please don't hesitate to email me (project lead)
Getting the project
Downloads
As this project is in an alpha state, a lot of things will constantly change, so it is recommended to build the project your self. We do also offer automatic "Nightly" builds (DevOps).
We also upload releases every version milestone. The builds may be more stable then the DevOps builds but are still an early alpha and may lack new features and improvements that the DevOps builds have.
Building
Prerequisites
Unity 2021.3.19f1
.NET 6+
Pre-Setup
You MUST FIRST build Team-Capture's .NET Source generator, which as the name suggests is responsible for generating some TC specific code.
Open up src/Team-Capture.sln
in your IDE of choice and build the solution.
Alternatively, you can run the dotnet build
command, like so:
dotnet build Team-Capture.sln
Once built, the generator will be copied to the correct location on successful build. It will be placed at src/Team-Capture/Assets/Editor/Plugins/Team-Capture.Generator.dll
.
Setup
Open up the project in Unity, and goto Tools -> Volt Unity Builder -> Volt Builder
-
Get use to Volt Builder, you are gonna need it. We suggest docking it somewhere for convenience.
-
Click 'Build Addressables'
-
Click 'Build Player'
- Building for the first time may take awhile (30~ mins), once the cache is built it takes about 90~ secs. This all depends on your computer.
Launching the project
While working on the project, remember that if you alter code that runs on the server you will need to recompile the player build. You will need to also re-build the player build if you alter the scene in any major way.
To launch the player, click on 'Start' in Volt Builder. By default, two instances of the player should start, one being the server and the other is the client. The client will also connect automatically to the server. You can now run around and get some frags.
You can launch a build from the editor by going to Team-Capture -> Build -> Launch Player etc.
Platform Support
Team-Capture plans to support most large x64-bit based desktop platforms.
OS | Client | Server | Notes |
---|---|---|---|
Windows (x64) | ✔ | ✔ | Native. |
Linux (x64) | ✔ | ✔ | Native. Some parts may require additional configuration. See Linux Terminal in the wiki for more info. |
macOS (x64) | ✖ | ✖ | No physical hardware to test or develop on. |
License
This project is licensed under the GNU AGPLv3 License - see the LICENSE file for details.
See thirdpartylegalcode.txt
and thirdpartylegalassets.txt
for third-party assets used.
Q & A
Q: Is this a serious project?
A: Nah, this is just a hobby project that was originally started as a way to learn networking in Unity.
Q: Will this game be free when it comes out?
A: Team-Capture will always remain free and open-source.
Q: Why did you use the Unity game engine? Why not engine x?
A: At the start of this project, Unity seemed link an obvious choice, it was C# and we knew how to use it. Sometimes I regret that choice of sticking with it.
Q: Why not use MLAPI?
A: When we started planning for this project, MLAPI was not apart of the Unity ecosystem. On top of that, at the time, MLAPI had really bad documentation, and a lack of community, so Mirror was the obvious chose. Now we are too far into development to change, not that we would.
Special Thanks
To these projects:
- Mirror - Networking Code
- FPSSample - Lots of code design inspiration, console backbone code and other stuff.
And as well as to:
- Family
- Friends
- Other fellow students and staff at school for suggestions, ideas and bug hunting.
- And I suppose Unity, for both making an engine that is good but will drive you insane.