Git Product home page Git Product logo

team-capture's Introduction

Logo

Team-Capture

License CI Build Discord YouTube

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:

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

  1. Get use to Volt Builder, you are gonna need it. We suggest docking it somewhere for convenience.

  2. Click 'Build Addressables'

  3. 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.

Links

team-capture's People

Contributors

ararem avatar hellohowisitgoing avatar voltstro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.