I’m not sure where to put this topic, but this seemed to be the best place I could find. First off, I am in awe with the UE4 engine. I am a developer of 20 years, and the framework that has been developed for making games is incredible. I especially like the idea behind blueprints, learning a new language can be irritating(I’ve learned a few in my time!).
I noticed Epic offer grants to people extending functionality to the UE4 platform or for doing something creative with it. This is fantastic and sets the bar for how communities should be maintained. I have come across a load of videos from Epic explaining a myriad of topics which are very helpful, and also from the community. The thing is, convention doesn’t seem to come into any of them. By this, I guess I mean code style and approach/methodologies. How does one know they are writing good code/making good blueprints? Yea, the BP works, but you’ve nested a bunch of branches together when you could have used ‘OR’/‘AND’ nodes.
For example, I was writing a BP for a spell cast that was possible to run cancel. With this I assume I should have booleans to say ‘isCasting’/‘isMoving’ that I can query during my casting BP which are defined via some other event. The tutorial I was following just queried to see if the animation was playing, then disabled the user from moving until the animation was canceled, then enable the user to move. Don’t get me wrong, this is fine, however my BPs needs were very different. My end result worked but I had to refactor it a few times as every time I returned to it I found new ways to optimise the BP. Today I created a multiplayer server and learned about multiplayer replication. This was frustrating to me, because I have already created a couple of spells for my character. I now have to refactor again. Animations are not synced - you know the can of worms I’m opening!
This is where I feel mentorship would be very beneficial.
As a Senior dev I do code reviews on pull/merge requests. I could leave comments on the pull request, or I could discuss the code in a one to one with the guy who wrote it and explain to them where their work needs to be better and how they can future proof it, then leave notes from our call in a comment on the pull request. This is where I feel the community could work better. The 30-60 minutes I spend on a call with my devs is my mentorship time where I mold them into the developer that conforms to our inhouse standards… not the standards of a guy who has the most likes on StackOverflow which are not entirely relevant to the code required by the Junior! (can you see the similarity with the UE4 community?)
The idea here is similar to grants and (I assume) the support offerings for Unreal Studio. The expense comes from Senior Devs that are already on the payrole for Epic. It’s an hour long call, very much so informal, every 2 weeks to check in on a community members project and offer some guidance. Just hang out and talk, then try solve a problem. What are the benefits? For me, I would get an hour ever 2 weeks with someone who is an expert with UE4 and can guide me in the right direction while setting standards for my game. If the project is nearly complete, is good and has potential, Epic could offer to put some muscle behind it and help get it out there. That 5% you take when the game is shipped could be bumped to say 7.5 or 10%. This project has had a senior review the more complex sections of the game and set code standards. That muscle thrown into the game from Epic could also include QA. Another very important thing to consider here is the UX. For the interface I design/develop day to day, there is no better person to ask for feedback than the people who are using it. The Mentor on this call could record the session and your UX team would get first hand insight to how people are using the application and where they find difficulties while learning UE4 and help ease the learning curve. You will see patterns and be able to tackle these issues with new features for the UE4 engine. The list of benefits goes on!
People who are part of the program would essentially join the Epic team as a remote unpaid Intern with bi-weekly goals agreed upon by both the Intern and Mentor. This relationship spans over a fixed period of time and if your one to one time comes and you have not met your goals or at least come close to them, the Intern is removed from the program. The term can roll on if there is adequate momentum with it.
Anyway, if you decide to do something like this, sign me up first!