r/RocketLeague • u/BathroomCode9914 • 3h ago
FLUFF Update: My application to work at Epic on Rocket League was rejected. Oh well.
Follow your dreams and such.
Attached is the "unhinged" cover letter I submitted with my application. Hopefully it's for some laughs and such.
Thanks for any and all interest. It was a "good effort" :)
---
Dear hiring manager at Epic,
I care about efficiency, accessibility, and doing things in a way that embodies the spirit of doing it ārightā. I care about making Rocket League fun and enjoyable for everyone. I care that Rocket League is seen as something people want to support, instead of something they think Epic is trying to push onto people.
I have experience with modding the underlying engine and using Wwise to modify sounds and soundbanks. I donāt have as much experience with Adobe ScaleForm and the UDK editor for map making with UE3. I am definitely willing and excited to learn more about those things to make Rocket League a better game. I have ideas to provide accessibility options, color differences, sound customization, giving the player the ability to make playing the game easier, more accessible, and more enjoyable.
BACKGROUND
Iāve been working on Rocket League and have wanted to work on Rocket League for a long long time. Iāve been studying the game and have been kind of obsessed with Rocket League for a long time, at least, 5-ish years, by the amount of time I play and the amount of time Iāve spent modding it.
My journey with modding started with an interest in changing things that annoyed me about the game and learning that modding was possible through the popular avenue: BakkesMod plugins. Knowing that I have the capability to work and tinker on things, with a background and major interest in Computer Science, I dove into trying to change aspects of the game to increase my enjoyment. BakkesMod exposes an API for interfacing with the game, but I wanted to know if there were a way to get more control than was provided by the aging interfaces.
Using search engines and reverse engineering forums, I looked up how reverse engineering worked for Rocket League. UE3, the engine Rocket League is built on, came out in like 2004, so by 2020, there were a lot of resources were available. Unfortunately, it was such a headache since no one was generally forthcoming with this information, and I had no experience modding a game prior. Regardless, I was able to generate my own API library based on information available through community resources.
Even before BakkesMod, I was using Wwise to modify soundbanks to manipulate sounds in game because SOME OF THE SOUNDS ARE KIND OF ANNOYING! (e.g. squeaking wheels on particular hoops maps, the āair resistanceā noise while rolling in the air, etc).
I started a giant project called BakkesModPlayground where I tested a bunch of different ideas, including lots of projects and project ideas that I either imagined on my own or have seen on the Rocket League subreddit. Utilizing BakkesMod, and its advised build tools (Visual Studio and its assortment of tools mainly), and a reverse-engineered Rocket League UE3 API, I worked on the following plugins (in alphabetical order)ā¦
- Anonymizer ā This used to be a thing in BakkesMod, but it ābrokeā. I tried working on this myself and made modifications that I was happy with. Someone else in the community made a more robust plugin, and I relied on them. (THE GAME NEEDS AN ELEMENT HIDER! Or āStreamer Modeā! Hiding names, club tags, club names, team names, titles, scores, pings, stats notifications, friends, own name, own title/score/pings, avatars, recent players, party invites, forfeit votes, etc⦠If chats can be hidden, why not other elements?!)
- Access Enabled ā Someone in the modding community pointed out that thereās a flag in the menus that toggle if a playlist card is able to be accessed from within different game modes. I turned that on. I understand that some interface elements arenāt configured correctly to be seen from other areas, but being able to access Tournaments from Free Play is such a nice convenience that I enjoyed being able to access menus from anywhere in the game.
- AutoForfeit ā Automatically forfeiting, based on either certain conditions in game (like after a particular score or time threshold, or when your teammate forfeits). It also provided a bind for forfeiting, because making it easier to reach was nice. (I donāt think I would support implementing this into the game, because people need the opportunity cost to reconsider the decision.)
- BakkesModPlayground ā Different ideas with protoypes for future plugin ideas tested for the game, like manipulating skeletal properties on some assets.
- Color Blind Color Changer ā There used to be interface color customization through BakkesMod, but that broke and wasnāt fixed for a while. It turned out though, through color blind mode, you could change the colors of nameplates, the scoreboard, the boost meter, and stat notifications at the top right. (When nameplates were changed to a certain color, it would even use the alternate angular nameplate! It looked incredible!!! I was so happy I was able to adjust these colors!!! It made the game less bland to look at and made things less homogenized aesthetically, so I could actually see things more clearly. I get that clubs are kind of meant for this, but not everyone is in a club and club matches are only applicable to clubs and not individually. I would love to bring interface customization available for everyone!)
- Controller Overlay ā FOR AN ESPORTS GAME, PEOPLE ARE OBSESSED WITH THE CONTROLLER AND INPUT SETTINGS! MAKING THIS INFORMATION ABLE TO BE SEEN IN GAME WAS GREAT BECAUSE THE GAME IS NOT 1:1 WITH CONTROLLER READINGS FROM THE OPERATING SYSTEM!
- Dodge Overlay ā SAME THING AS CONTROLLER OVERLAY BUT WITH DODGE INPUTS
- Fix Training Game Speed ā There was something in BakkesMod that didnāt work correctly with setting the game speed through the training menu and through BakkesMod (the BakkesMod setting was too aggressive). I wrote a plugin to basically fix that.
- Freeplay Checkpoint ā An INCREDIBLE mod made by NitrOP that gave people the ability to create set shots and plays in free play, allowing the ability to rewind to particular states and save them. I worked on it for a bit and offered help in some areas, particularly in registering binds.
- Instant Suite ā A very useful plugin that was kind of replaced by the additions of `FastFreeplay` and `PostMatchRequeue` actions. I didnāt work on it myself, but I intended to replace its failing functionality at some point.
- Loadout Logger ā It would be nice to easily find out information quickly about the loadouts of the people youāre playing with/against instead of trying to ask them or from trying to ask the subreddit from a replay. (Just make the loadout information available from a replay! If I think someoneās items are cool, I want to know the name of them!)
- Log Goal Replay Time ā At some point someone asked for some hard numbers on how long in-match replays and things took, so I wrote a plugin to track that. Iām sure itās hard-coded with slight variance in the replay director, but I found some reliable numbers.
- Multi-bind ā Rocket League doesnāt allow a player to bind multiple keys to one action. Sure you can do it through modifying the āTAInput.iniā file, but instead of that, I wrote a plugin to inject it into the input list to make things easier for the end-sure. (I REALLY WISH THE INTERFACE WOULD ALLOW YOU TO BIND MORE THAN ONE KEY TO AN ACTION! OR TO BIND KEY-COMBOS TO AN ACTION! (or concessions were made for such things).)
- Party Invite Notification ā Party notifications were broken at some point, and I had the intention of writing a plugin to mitigate my problem with the issue. I think this has been fixed since.
- Pause Menu Brightness ā I wanted to be able to set the brightness on the pause menu, because even though itās just dimmed, I wanted to make it darker. I never followed through with this idea, and Iām just adding it here.
- Radial Quickchat Wheel ā I canāt comfortably fit the four chat options for different chat group binds, since I use many bindings and use them on the DPad. Therefore, I wanted a way to make it so I could just have one button bring up a radial menu that let me select which quick chat options I wanted with the right stick. I got so far as creating an overlay as a proof of concept. I couldāve finished it, but I moved on to other things.
- Readirects Plugin ā The first plugin I tried working on. I didnāt get very far, but the point was to automate redirects (like the wallhit plugin) to build up memory for reading bounces off of different surfaces and angles.
- Reverse Camera Plugin ā Because the only option is a āRear Cameraā bind and thatās dumb! I want to be able to just turn the camera around, despite being in ball cam or not!
- Science Plugin ā I touched up this plugin to add values I was interested in when testing things in game to understand controller/game inputs and the physics system.
- Server Preferrer ā I wrote a way to ping servers intended to be joined when a player is joining a game, and if that ping was over a particular value, the player backed out and rejoined the queue. It would be great to see server pings or discriminate against servers where you have a bad connection over a certain ping value. Future goals included black/whitelisting particular servers, but I kind of dropped this idea because of lack of trust in adopting this when considering the TOS.
- What if⦠- Was a plugin I worked on to provide to others a way to see for themselves like: 1. What if we had a āReverse Cameraā bind?, 2. What if we had a āFlip Cancelā (Pitch Momentum Cancel) bind?, 3. What if we could change the threshold for āflip cancellingā (because the values necessary on the y-input-axis are kind of extreme), 4. What if Directional Air Roll took PRIORITY OVER Free Air Roll? (because the `ToggleRoll` action overrides directional air roll inputs right now.)
ADDITIONAL IDEAS TO ADD VALUE AND WORK ON
- Input range widgets for the settings menu
- Remove āmultiple selectionā from playlist selections and make it all āquick playā
- Enable the PostMatchRequeue action for casual modes
- Maybe add ball customization to be sold as a part of peopleās loadouts
- Maybe expand the item shop
- Add seeing loadouts for other players in replays or in the scoreboard menu. (Maybe linking that to the item shop? Perhaps in a way that allows people to purchase the item they see someone else using from the item shop?)
- Consolidate and generalize the garage menu so that seeing that many multitude of items and loading them isnāt so overwhelming
- Propose a āminimal installation modeā for systems that donāt have a lot of resources
- ANONYMIZER MODE (STREAMER MODE?), or equivalent functionality.
- EXPAND SOUND CUSTOMIZATION (the standard boost override is a good start!)
- EXPAND INTERFACE CUSTOMIZATION UNDER THE DIRECTION OF ACCESSIBILITY
- Make the in-game menus more fun and intuitive to navigate and use. (Theyāre kind of a mess right now.)
- UNDERSTAND THE IMPACTS OF `TASystemSettings.ini` ON THE GAME
- Multiple bindings per action, or opening up the capabilities of `TAInput.ini` modifications to all players on all platforms.
- CUSTOM GAMEPLAY SERVERS! (like with counter-strike. Think rings maps with timer trackers, leaderboards, or zombie modesā¦)
- Expanding knowable information through options on the interface
- ALLOW CHANGING THE DODGE DEADZONE SHAPE FROM x+y(diamond) to x^2 + y^2 = z^2 (circular)
- EXPOSE CAMERA SETTINGS / LOADOUTS FOR STREAMERS TO INTEGRATE WITH TOOLS BECAUSE THEY GET ASKED FOR THINGS ALL THE TIME
- āFast return to last activityā action/bind. (We have the technology to track where a player is before getting into a match (like custom training on a particular shot or at a specific time in a replay), why not just put them back there after a match?)
- ā¦
FINALLY
I have lots of thoughts, comments, opinions, questions, concerns, and will continue to play and work on Rocket League related things. Iām likely to work on editing UPK files and packages to manipulate assets within those packages (BECAUSE I REALLY WANT THIS ONE PARTICULAR ITEM TO BE A CERTAIN WAY. IF I COULD DO THAT I WOULD BE SO HAPPY.) Iām probably still going to help people in the Rocket League subreddit with my esoteric knowledge of the gameās inner workings, even trying to offer help when tech issues come up.
Iām sure youāre aware of the EAC related issues with Windows 11. Iād love to help with that, so people have less headaches with just trying to play the game.
If I got a job working on Rocket League for Epic, so I can continue working on and modding the game in ways that would make me happy, that would make me so happy.
Thank you.