Git Product home page Git Product logo

jediknightchan / eternalcrusaderesurrection Goto Github PK

View Code? Open in Web Editor NEW
201.0 10.0 53.0 232.33 MB

Unreal Engine 5 multiplayer shooter C++ project, resurrection of Warhammer 40K: Eternal Crusade. Developed using "UE best practices" from Lyra for a more complex behaviour

C# 0.92% C++ 91.08% C 0.51% Python 7.27% Jupyter Notebook 0.22%
unreal-engine-5 game game-development ue5 ue5-game ue5-project ue5-shooter lyra lyra-starter-game unreal-games

eternalcrusaderesurrection's Introduction

Eternal Crusade: Resurrection

Open Source? Yes! Website eternal-crusade.com Discord Codacy Badge

ECR is the resurrection of an online third-person shooter video game Eternal Crusade.

This project can be used as a template for creating a similar genre game, and ECRCommon module contains functionality that may be useful for a wide range of games.

Check out our Wiki for using this game code "core" and some useful UE dev tips!

Features

  • C++ Unreal Engine 5 project
  • Customization system for modular characters (material customization, mesh customization)
  • Epic Online Services P2P matchmaking (users can create their own matches), including Linux Dedicated Servers
  • Python Scripts for automation of restoring non-exportable or hardly-exportable data for an unpacked UE4 game (socket data, maps data, materials, references to materials within meshes)
  • Enhanced Input Subsystem is used for input (borrowed from Lyra)
  • 3rd person multiplayer shooter and melee combat system based on Lyra's GAS, including combat vehicles
  • Plugin for HTTP requests
  • Replay Subsystem with all needed functions for Blueprint replay setup
  • Gameplay Analytics Subsystem in a separate plugin for collecting them and sending to API endpoint
  • Cross-platform code (was built for Windows, Linux, Android)

GAS differences from Lyra (5.0)

Large changes

  • Vehicles are supported as pawns (ECRWheeledVehiclePawn)
  • Ability Queue System allows to grab input while another ability (like stun) is active
  • PawnData elements are defined in GameState and on Character as a spawn option, so it can be customizable, unlike Lyra, where it's defined by experience and is the same for all players

Medium changes

  • Several attributes are used to consume damage (First shield, then health, then bleeding health)
  • QuickBar component has multiple channels (e.g. one for ranged weapons, one for melee), can make many "quick bars"
  • ECREquipmentManagerComponent is capable of hiding equipment by visibility channels (e.g. LeftHand, RightHand for two-handed weapon)
  • Gameplay Abilities can asynchronously load montages for different skeletons using cosmetic tags without having to create multiple ability instances for them
  • Can temporarily limit yaw and pitch in Pawn Control Component (former Hero Component), Lyra always limits pitch in camera mode
  • Advanced interaction system allows interaction options to be set by actors in blueprints, makes possible interactions via input tags and overriding input mappings
  • Advanced melee combat prediction system

Fixes and small changes

  • A better nested directory structure
  • Fixed a bug with improper spread cooldown activation on ranged weapons
  • Shooting uses advanced tracing to get a point on the camera vector where pawn should aim from weapon actor, unlike Lyra, where shooting is done from camera
  • GAS debugger correctly works on 3rd page, checking costs on abilities CDOs without producing errors in the log

GIT policy

In both this repo and ECRContent (in private access) master branch is locked, all work should be done after creating a new branch based on dev

Related repositories

Currently maintained

  • ECRLauncher (Public): Launcher for the game, can show news, patch notes, install the whole game and patches, verify integrity
  • ECRTools (Public): Docker wrapper around Linux dedicated server, discord bot for running / stopping dedicated server, launcher data, game versioning data, scripts for statistical processing of gameplay analytics, deployment
  • ECRContent (Private): Content folder of the game
  • ECRFModSounds (Private): FMod project for the ECR sounds

Archived

  • ECRSoundSorting (Public): Code of the site which was used for labeling unsorted sounds extracted with basic .bnk .wem converters. Django + Vue.js (CoreUI) + Nginx + Docker compose
  • WWise-IntegrationDemo-EventExtractor (Public): WWise integration demo turned into an extraction tool (knowing the name of the WWise event, such as Play_Fire in the sound bank SNB_DefaultBolter, can extract it)

eternalcrusaderesurrection's People

Contributors

jediknightchan avatar waagheur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eternalcrusaderesurrection's Issues

My stupid question about Content

I didn’t understand this text a little, that is, no one can access the Content, or is there just something that needs to be done to get it?

Notice that this project is only the code base, while Content folder is not available for public distribution.

License?

Hi,

Are there any plans to include a software license for the codebase?

Cheers!

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.