Skip to content
This repository has been archived by the owner on Sep 15, 2024. It is now read-only.

A set of scripts / modules to kick start your C# Godot 3.x game.

License

Notifications You must be signed in to change notification settings

CSharpRedotTools/GodotModulesCSharp-Old

Repository files navigation

Godot Modules

Godot Modules is a collection of modules developed in Godot 3.x. Current project version is Godot 3.3.0.

Notice

Development of Godot Modules has come to a halt. This project will be used as a reference for future projects. I've recently tried upgrading this project to Godot 4.x but after seeing what I would have to do to the hotkey manager scripts I just decided no lets not do that lol (not to mention the other scripts that have to be converted)

Some things I learned from this project that I thought I should highlight here

  • Dependency Injection can get really messy and you may be better off having a all-in-one static GameManager class where everything is linked through your GameManager script. GameManager should not extend from Godot.Node as then you will see all the properties and functions from Godot.Node, rather all the linking should be done in a separate script called Linker or MainLinker
  • All of these "modules" don't really feel modular at all, you can't just copy out a folder and plop it in your own project without getting several other dependent nodes and scripts. I'm still not sure how to tackle this problem without creating duplicate assets
  • Multiplayer can make the codebase a confusing mess and it's best to really take your time when implementing it
  • Really not the best idea to make your own wrapper classes when Godots still in beta because Godot is always pushing new breaking changes

Table of Contents

Why make this?

I was thinking to myself, I want to make a bullet hell game, but I am also going to be making more then just one game in the future.

I do not want to redo the same things over again. If I want multiplayer, I can just grab it from here. If I want a modloader, I can find it here. If I want hotkeys, I can just get it from here. And so on.. That is the motivation behind this project!

⚠️ A lot of things showcased here are not on the main branch. Check out the main branch for a working multiplayer scenario and the dev branch for everything else. The main branch is where all the old code is at, dev branch is where all the latest and the greatest is at. Eventually the dev branch will be merged with the main branch.

Menu
Quick look at the menus

Cat with sword
Attack animation

2DDungeon
Dungeon environment

inv
Working on a inventory

eve.mp4

Attempting to make a FPS

Modules

Core

There is an in-game console (shown by pressing F12) that supports custom commands, useful for in-game testing and debugging.

image

There are also popup error and message windows. The bottom right corner of the screen shows a small red box which notifies you of any errors (along with the total error count every second).

image

image image image image

server-and-client-simulated-positions-preview.mp4

Click here to see an attempt at trying to sync enemy physics with server and client

Tech Tree

Tech tree where nodes in tree are positioned automatically via script

The code for this has not been merged to this repository yet and can be found here

Contributing

See CONTRIBUTING.md

Credit

Thank you to the following wonderful people who helped make this project become something even greater!

Programming

Testers