Summary
During my work at cyanide, I worked as a tool developper and worked on a small improvment on a dialogue system, and afterwards, designed and made a level building tool for level designers and environments artists.
It was a very fun and fulfilling experience. I learned a ton working on a bigger studio than I used to work with. And it is during this asignment that I understood my love for making tools! |
WARNING!
I can't show any artist meshes so you will only and sadly see block meshes instead of beautiful artsy ones :(
Had to show my worth while expending the dialogue toolThe code was real messy and it was kind of designed as a test for me to see if I know how to make external tools linked to unreal.
Also it served an exemple for my technical director about how to "not code". And the implication of bad code in a project and how it slows everything down. |
Redoing a tool but betterAfter that, I was offered the task to do a level building tool to help both level designer and environment artists based on an already but badly optimized existing tool.
That pre existing tool is what you can see up there. |
Learning unreal's editor's eventsAt first, I tested out the unreal calls on the editor side to see what it was possible to do when it came to execute logic based on the user's input within unreal.
|
Looking at the previous toolChecking with the team and seeing their turbulences with the previous tool. I took notes, feedbacks and designed a tool i presented to the entire team in order to answer their needs. Once confirmed I started working on the most import feature being freedom to do anything you want.
Above, you can see how different profile can produce different mesh allowing to use the same transform and information, but displaying different models based on the user's intent |
Implementing all the featuresDLittle by little, I implemented feature to really give level designers and artists the freedom to do whatever they wanted. If the setup was too long, it could be saved as a blueprint to be easily dragged down a scene and quickly customized
You can see in this slide show 1 - Mirror axis, individual dresser customization, and module size override 2 - Different rendering modes (the build strips away unused modes) 3 - Block instantiation rules (only extremities, fill the inside) + angle instantiation 4 - Reversed stair instantiation 5 - Double sided instantiation There are many more features that I can not show sadly, but you can see the tool was very complete |
Converting the old tool to the newest oneOne of the biggest challenge developping this tool was to, on top of allowing the tool to do more than the previous one, converting everyhting that use to be in the previous tool in the newest one to get rid of it. The previous tool used to load everything all of the time, clogging up the memory of every computer working on the project.
So I had to make an editor blueprint that would read information from the previous tool to the newest one. The previous tool code was messy and counter intuitive so it was really hard to make due for it, but in the end I managed to do it 1 - Simply removing the previous tool actor and placing the new tool actor at the correct position 2 - Questionning if we should keep mistakes from the old tool to the new tool 3 - The converting tool working on every different cases the previous one could do (if X axis gizmo is red, it's the old tool, if it's magenta, it's the new tool, yes I made color blind friendly gizmos) |