Three months in at Electronic Arts

Published October 07, 2022
Advertisement

It's been a while since I posted updates:

I recently started a new contract job at Electronic Arts in July 2022.

Prior to that, I was a contracted VR developer at Raytheon for six months.

Prior to Raytheon, I was a Graphics Programmer at Facebook Reality Labs for two years working on AR/VR research programs. I wrote a rendering plugin to create camera and sensor simulations for various AR/VR hardware rigs and ran them through various environmental conditions to help other teams benchmark their computer vision work. I ended up building a render farm with 80 render nodes, created a render farm app for distributed computing, and worked to streamline and automate the rendering pipeline so that we could easily manage render jobs at scale. We rendered millions of frames ?

So, I've been busy. I am currently working on the Frostbite Engine at Electronic Arts, specifically on the UI team. Frostbite is an internally developed game engine used across all of EA by various teams working on games (EA Sports, Battlefield franchises, Sims, etc). Initially when I started, I was strongly biased to favor Unreal Engine because I was familiar with it and thought it was the leading game engine in the world (IMHO, it still is). I couldn't understand why EA would still be using an inhouse engine as opposed to using Unreal Engine? The answer I discovered is that some game teams do use Unreal, but most teams use Frostbite because they are experts at the engine and can get rapid engine support and features developed in a rapid turn around time. Over the course of several months, I've also learned that Frostbite, while very complicated, also has some interesting features I haven't seen in publicly available game engines. The engine code is designed for performance first, usability second. Engineers will spend considerable effort to squeeze out extra performance from the engine by shaving off 0.1ms from performance. When you need your games to run blazing fast, it's challenging to compete against Frostbite. I have begrudgingly come to respect the Frostbite engine and believe in some ways, it's better than publicly available game engines. EA leadership believes in the long term future of Frostbite and are continuing to invest in its development by hiring more staff to help build out its feature set & push technology to the next generation.

I am new to the team, but I feel like I'm one of the dumber people in the room. Granted, I'm a frostbite noob, but my coworkers are so smart and experienced that it demands a lot from me to keep pace. That's always a good thing, professionally speaking. Sometimes I get a shadow of imposter syndrome, but when I start to dig into code and get to work, I realize that I have a pretty good idea on what I'm doing and don't really need a lot of support. Before I started, I had some reservations about working for EA because of their past history with crazy crunch time (see: EA_Spouse). That happened an eternity ago and EA has since reformed itself as an organization to have a really healthy work life balance. I have yet to work any more than 40 hours a week or heard of anyone who has. My job is really low stress. I work remotely. My coworkers are all very smart and wonderful. The meetings are few and far between, so there are few distractions from focusing on work (at facebook, I had some days where it was meetings for half the day every day, which really annoyed me – but you're a victim of your own success when you advertise the cool things you're doing). The compensation is good too. Overall, it is my opinion that EA is a really good company to work for and I'm happy to be here. Actually, Raytheon and Facebook had also been really good companies to work for as well (though, not everyone who worked there will agree with my experiences).

In other news, I did a mini hackathon last weekend at Niantic in Bellevue, Washington to get a sense for their beta Lightship VPS technology. I was a little on the fence on whether it would be worth my time to attend the event because I didn't really know what I'd get out of it. I finally convinced myself that I had nothing better to do over the weekend and this would be an opportunity to learn about something new & interesting which might be useful in the distant future. If you aren't familiar with Niantic, they're they company who produced the Pokemon Go AR app which has had millions of downloads around the world. The idea is that you walk around your city / town and use your phone to find pokemon out in the wild, capture them, train them, and then battle them against pokemon owned by other trainers. During the game launch, it became a craze where you could walk down a street in Seattle and pretty much every pedestrian with a phone out was out hunting for pokemon (myself included). Anyways, they used your phone GPS and computer vision to figure out where you're at and to place various pokemon. However, the precision of GPS isn't very precise and it uses a lot of battery to use GPS, so Niantic worked hard to create a new way to spatialize people in the real world (without GPS) by using “Waypoint Anchors”. The idea is that you've got some sort of landmark, such as a statue, which you know the precise location of and you have created a 3D mesh of it via crowdsourced scans. A user can use their phones to scan a waypoint, that mesh data gets sent to a datacenter in the cloud, which then figures out what stored mesh corresponds to the users mesh, and then figures out your phones position and orientation relative to the scanned object. Niantic claims that it's precise down to 1 centimeter accuracy and they have a video of an AR app which has some airship attaching a chain to some anchor eyelet. It's a pretty cool idea, not entirely unique, but still interesting. My goal for the weekend was to stress test the tech to get a better sense of its strengths and limitations – with that understanding, I could see if its actually viable for other potential projects requiring SLAM. I found that the tech is very tightly coupled with Unity and only works on the latest versions of Android and iPhones. If you want to develop for the iPhone, you need a mac in order to write XCode. So, there's some pretty demanding platform constraints. How about the tech itself? Well, in the field, when you localize to a waypoint, you steadily start to lose precision the father you move away from it. At about 20-30 feet, you'd be off by up to a meter. Overall, my assessment is that the tech isn't very viable in its current state – I've seen much better SLAM performance at facebook without requiring a waypoint to anchor off of (but, AFAIK it's not publicly available).

The other thing I'd complain about is the format of “hackathons”, especially a “mini-hackathon”. The idea is that you spend a weekend crunching hard to create an app, and then it gets judged and a winning team is selected. It's impossible to create anything worthwhile and with polish in that short amount of time. And for what, to deprive yourself of sleep for the privilege of participating? During our teams work period, we struggled for 4 hours to just get a build deployed to one of our phones. I have an iPhone, but no mac. Another member had an android, but it was so old that Google didn't even support it anymore with software updates. Working with Gradle can be flaky. You can spend a considerable amount of precious dev time just trying to get a working build deployed to a phone, and if you don't have the right combination of hardware, updates and operating systems, you're just out of luck. You can also end up with a team where the skills and experience levels of members is lacking – I had never used Unity before but I was pretty much the sole developer, so nobody could legit carry the team. The event itself was fun, but the hackathon format needs some rework. Maybe instead of rushing to build an app, it can be a “playathon” where you dig into some tech and play around without a set deliverable objective? I hesitate to participate in hackathon events.

3 likes 1 comments

Comments

JoeJ

Very interesting, thanks for sharing.

That's good news i think. I'm glad Frostbite is still considered faster than UE, because if everybody used the same engine, games wouldn't be that interesting anymore. And i'm glad to hear AAA devs still enjoy their work, opposed to the impression we get from media. : )

October 07, 2022 10:47 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement
Advertisement