Black Eye Galaxy
Explore a planet, Halo inspired
Currently in Progress! | Source code available upon request
Assisted in the set up source control with Git and Github
Implemented C++ code into a blueprint project and made the features available for designers to continue using blueprints
Implemented a C++ interface that was exposed to blueprints
Created and developed a Weapon Attachment system
A more technical look at what I accomplished
The project was originally a blueprint project and I wanted to add C++ code in a way that didn't interfere with the current state of the project. I developed modules in C++ code and made sure to expose everything that the designers need to blueprints so they could continue to add to the game even after I had left.
Implemented a weapon attachment system
I added a WeaponAttachmentComponent. It acted as a container to hold all the schematics. It had an Equip and Unequip functionality to change what is attached and it would loop through each of the schematics triggering the effect at specific times during the weapons attacks.
The BaseSchematic is setup in C++ with some blueprint callable functions so the Blueprint gun could trigger call upon the C++ code. That function couldn't be virtual due to the fact that it was a UFUNCITON so this blueprint exposed function called a virtual C++ only function. This way I could write unique C++ code for any component that inherited it and it would continue to be able to be called from blueprints
Exposing the Base Schematic to blueprints. I accomplished this by making a new class that inherited from the base schematic. This C++ overrode the original C++ virtual functions to call 'BlueprintImplementable' functions. This would allow the designers to implement their own versions inside of the blueprint event graph. I chose BlueprintImplementable, and not BlueprintNative, since I already had a C++ version to work with
Implemented a Blueprint exposed C++ Interact interface
After designing the Weapon Schematic System above, I still needed a way to interact with the attachments that the designers scattered around the world for the player to find. I created a C++ interface class that had 1 interact function that was BlueprintNative and BlueprintCallable. This function took in a Character pointer since the character in the game was a Blueprint only character. This way the function knew to work with an unreal character. This allowed the player to call do an interact function from blueprints, call this interface if it found an object that implemented it and then the designers could design a blueprint interact function, and I could design a C++ interact function.
Check out more projects below