Summary
|
Herezh: Generation of Heroes is an open world multiplayer survival game that I worked on during a little less than 2 years as a lead developer. Sadly, the project got cancelled when the studio went bankrupt but it doesn't hinder how much I worked and learned during that period
I worked with two devs. A team of two artists and had to go to public events to promote the game. My tasks and responsibilities were split between management tasks and dev tasks. As well as some extra odd jobs like video editor because of the very small team size. The most of my main focus was on the management part, with regular sprint meetings and code reviews. The rest of the time, I was deving hard features to make or providing technical help to the whole team or insights providing my knowledge in video games. |
WARNING!
A lot of what you're about to see is "during development footage" and DOES NOT
reflect the latest product feel and look
Also a lot of my work was under NDA so I don't have as much visual support than
my previous entries
Game features
Procedural generationOne of the first task we gave me was to create a procedural generation workflow. Which I did using noises algorythm and image manipulation algorithm. Sadly other pressing matters happenned in the meantime and I wasn't able to finish it...
Skill systemUsing unreal's game tag system, I made a skill system similar the valheim. You have XP related to a specific skill providing you passive bonus, and you can use that XP to unlock more abilities in that specific field.
|
Aging systemWith the power of shading and the in game time system, I made this aging prototype that. This footage was captured as a video with the Unreal cinematic system, using timeline to change the values of shaders, giving this aging effect inspired by Red Dead Redemption 2
Character customizationWith the help of UI and 3D artist. I made this character customization screen. Changing in real time this high poly high textured character. We used a combination of models with the same skeletons and same skeleton sockets, as well as dynamic materials
|
CI/CD
Automate studio conventionsThese data validators will check if, depending on the file type, the file is named correctly. If not, the system will detect it and rename the file. Some files are only available in CPP and so the base was entirely CPP
I shared a project online that can constitue as a base for that kind of project. Sadly I didn't have the time to update it before buzuuk's bankruptcy Write and compute testWith such a small scaled team, we wanted to avoid technical debt and bug stacking. So we tested a lot our project in order to keep it in good shape
|
Compiling UE5 EASince UE5 at the begining of the project was Early access, it was very buggy and hard to work with as a final product. As a result, I accessed the UE5 git and tried to compile it regulary so we could work on the most stable and recent version as possible as well as compile UE4 plugin for UE5
Auto-buildsWe all know that testing in editor is way inferior than testing an actual build on a foreign computer. That's why we implemented auto build and auto launch of automation tests once the build was a success
|
Documentation
Tracking the project's developmentUsing Gitlab powerful tracking tools, we used commits to enforce tracking and easily track bugs and hunt them down. All that thanks to regular expression being implemented inside our git rules.
Accessible in-house documentationUsing our nas, I made a lot of documentation for the team, accessible at any time, allowing them to update it if needed, as well as being more independant. I tried to make it simple enough for anyone to pick up.
|
Visual tutorialsWith the power of amateur pixel art, i've been teaching complex algorythm in a very accessible way for both programers and designers
Clean code with commentsIn this character customization blueprint, you can see how readable we wanted our code to be. I don't have a visual to provide but we also used xml commentaries to generated auto documentation
|
Coordination between fields
Creating a workflowIn many crisis incident, I had to plan up for the whole team and respond to our needs. In those instances, efficient communication and clear instructions were important. I used a lot of visual queus and really took the time to do everything in my power to ease how much work was needed, and how feasable the project was going.
|
Providing tools and insightsOn top of documents, small .bat files and simplier tools for less technical field was provided by yours truly to reduce the number of instances where someone needed help.
This image for instance was taken out of a tutorial to setup shared cache and increase everyone's productivity |
Animating meetings
Tech meetingsAs I said above, I made documents to help people learning new technologies and how to use them, especially if the tech didn't provide documentation in the first place (like in-house tech)
But I also animated regular meetings where everyone that was going to interact with the tool would be able to ask me questions, and have a more interactive, and so more informative learning experience. |
Sprint meetingsIn the agile method, I also, as lead dev, animated the sprint meetings and prioritized task as well as distributed them along the team.
|
Video recording & Editing
Making videos through UnrealUsing unreals cinematic tool, we made a special game mode used to remove ui elements during the video capture
This screenshot comes from a tutorial I did to allow this video to happen. As you can see we only worked with one timeline and cutted the space in timestamp in order to have a perfect transition at the beginning of the video. |
Video editingDuring my studies I learned on the side how to edit, and most of the videos from buzuuk comes from my editing. The trailer on the summary section was edited by me as I worked with a musician for the sound design aspect.
I also edited and make all the sound design in the team presentation video (at the bottom of the kickstarter's page). |
So what went wrong?
A lot went wrong, but it was actually like usual communication.
I didn't realise how management wanted me to involve them. And I think it was a slow death from there.
We also had a lot of harrassing going on, and people getting crushed by the pressure.
Finally we didn't have a team that was big enough to reach our goals, despite my best efforts.
I learned to listen more, and to understand people better. I hope this experience will be useful someday
It wasn't all bad though, I made friends along the way, and I cherish those days and the oportunity Buzuuk software provided me...
Depsite all the drama!
Love to all the game devs struggling out there!
Feel free to contact me if you want to know more !
I didn't realise how management wanted me to involve them. And I think it was a slow death from there.
We also had a lot of harrassing going on, and people getting crushed by the pressure.
Finally we didn't have a team that was big enough to reach our goals, despite my best efforts.
I learned to listen more, and to understand people better. I hope this experience will be useful someday
It wasn't all bad though, I made friends along the way, and I cherish those days and the oportunity Buzuuk software provided me...
Depsite all the drama!
Love to all the game devs struggling out there!
Feel free to contact me if you want to know more !