Wednesday, April 12, 2017

Game Developer Interview - Jay Forbes - AI Programmer

Today, the developer team interview is with Jeanette Forbes, the AI programmer on the VRoom project. There's an audio version posted, and a transcript posted below it.
As usual, it's hosted by the producer, Robert.


Transcript:

[RB] Hi, my name is Robert Bailey and I'm the producer and lead designer on the VRoom Project. Here with me is Jeanette Forbes, one of the programmers on the project. Hey Jeanette.

[JF] Hey Rob!

[RB] So I've just got a couple questions for you, and then this will just go up on the website. What got you into games?

[JF] I've been into games since I started playing them around four years old. So I've never really gotten into games so much as I've slowly tumbled into making games.

[RB] Cool. Any particular game stand out as a favorite?

[JF] I always have to go back to Blizzard's Warcraft 3, It was the first time I actually started getting into making my own games. I really got into using their world editor to edit values, set up cut-scenes, and make cool things happen in a game that was more about RTS, but you could turn into anything.

[RB] Out of curiosity, did you try out those early DOTA versions on Warcraft 3?

[JF] Yes I did [laughs]. I played the original DOTA. I haven't actually played DOTA 2 or anything like that afterwards, but it was a lot of fun at the time.

[RB] Cool. So what type of stuff did you make in the Warcraft 3 engine?

[JF] The Warcraft 3 "engine" [laughs].

[RB] I guess world editor.

[JF] I would make sort of open world games. I got into a little bit of how to do procedural generation, but considering the world editor wasn't a full blown engine, it was difficult. But it did eventually got me into things like Alice and python, where you could do real, actual programming. It was a lot of fun.

[RB] Cool. So, besides that, with Warcraft 3, what other projects have you done in the past? More high school or college level projects.

[JF] I started out in python, and then moved onto Java. My very first game was actually in Java, using Java IFrames. It's been a long time since then. That was a huge mess. It taught me a lot - I learned how to program. I didn't necessarily learn how to program well from it. It got me into it, and then I moved on to make bigger and hopefully better things since then.

[RB] So what do you want to after getting your degree in Game Design. I forgot to mention at the start, we are both Game Design and Development students at RIT,

[JF] That we are.

[RB] What do you want to do after leaving school.

[JF] I'd love to get a job [laughs]. Specifically, I'd really like to get a job in web development, or alternatively in artificial intelligence development. I know the two aren't well related at the moment, but I think there's a lot of potential to do very simple AI and use the potential of neural nets to leverage browser technology. So not necessarily the two happening at once, but the two working together could be a potential field, a potential growing field for game development.

[RB] Almost like a Siri type thing for a browser to walk you through things.

[JF] Yeah, exactly.

[RB] Cool, one of my classes we're talking about how to use Alexa in all sorts of different things.

[JF] That sounds awesome.

[RB] Yeah. So with VRoom, what do you do specifically on the VR project?

[JF] I'm very specifically developing the AI for VRoom. I started out using very simple, not even AI at this point, but behavior to guide vehicles towards targets and make them behave in ways that seem intelligence, even if there wasn't necessarily any intelligence behind it beyond simple driving mechanics. Now I'm getting into Unreal's AI backbone using Blackboard, the AI controller, and a couple simple scripts to get things moving, essentially. [laughs].

[RB] Okay. So do you work with C++ at all, or is it primarily in that Blueprints and Blackboard environment?

[JF]  I've been using a combination of both C++ and Unreal's Blueprints. It's a little difficult getting the two to work together, as we're using a slightly outdated version with some bugs in Unreal's AI, that they haven't necessarily fixed, and aren't necessarily going to.

[RB] Yeah I remember a month into development 4.15 came out. "Now there's a button to go from Blueprints to code!"

[JF] Yeah, that was a little bit irritating.

[RB] I think I was in the same room as Fediaczko, the code lead, at the time. And we were like, "oh it came out. God dangit!"

[JF] [Laughs] What can you do though?

[RB]  Yeah, you gotta start working at some point. What are you looking, well, what got you interested in working on the project?

[JF] I think it was...towards the end of last semester. You came up to me and said you were working on this game. And I think we'd also had a couple of conversations about AI leading up to that. So it was sort of a natural lead into "Would you like to do the AI for this cool car game I'm making?" And I jumped on it, because absolutely. I enjoy working with you, I enjoy working on AI, so why not?

[RB] Cool. What are you looking forward to most on the project moving forward into these last couple weeks?

[JF] I'm looking forward to actually getting the Blackboard hooked up properly. Basically, the way a Blackboard works in Unreal is it stores a whole bunch of state information for each individual script to use and for the AI controller to keep track of so it can send the right commands out to scripts. Right now, it's not doing that, so I'm really looking forward to figuring out why, and implementing it properly in the game.

[RB] Okay, just getting that Blackboard to talk to everything else?

[JF] Yeah, basically.

[RB] Cool. Is anything standing out to you on the project? Positively or negatively?

[JF] I like the fact that we're using the Vive for this, rather than any other VR headgear, headwear, hardware, whatever you want to call it. Because the Vive has the smoothest controls, I think, in comparison to things like the Oculus or Sony's hardware for it. I like the people we're working with, so helpfully we come up with something good. We're a little too early into development I think to tell whether or not it's going to be good. We still have to add in a lot of the seamless intuitive UI and we still need to tweak the parts of the vehicle that make it feel really good. So we can't really tell if it's going to be good until we get there. But I think it will be.

[RB] Luckily, we're getting to this point where I can start playtesting, I can just grab anyone-

[JF] Yeah, exactly.

[RB] And be like, "No, I need you to put on this hunk of plastic and sit down in an imaginary car."

[JF] Start grabbing more professors and taking them down there.

[RB] Yeah, I think Jesse - he's like "Can I play?"Every time Jesse's come by asking "Oh, can I try it out?" it's "No, everything's on fire right now."

[JF] "We just broke it, gosh darn it Jesse."

[RB] I think the last time he asked, the car, when you first started the game the car would just launch into the air. We have a great plane game.

[JF] [laughs]

[RB] So what are you anticipating being a problem moving forward?

[JF] Right now, the problem I'm dealing with, with the Blackboard, is an issue. The other problem, is we're just running out of time. There's more I want to do with AI, and right now I'm taking it in incremental steps to make sure we have something working before I progress to the next one, and we're just running out of time. So I don't think I'll have the time to actually use the data we should start collecting from the behavior tree to start training a neural net. We don't have months. That's not a bad problem to have though.

[RB] Yeah [stutters]. That's gonna sound terrible. But it is always disappointing when you have to start cutting things. And that's always, I know Weeze has the "make sure you kill your darlings" type stuff, but it's not fun doing that.

[JF] We have discussed taking it into a bigger project over the summer, and that'd definitely be interesting.

[RB] And I'm definitely open to that, but everyone's going different places. But we can look at those proposals to work with Magic center to possibly continue it. So any parting thoughts on the project or interview?

[JF] Again, I wish I could do more, I wish there was more time. It's been difficult trying to balance this project, which wants to consume your whole life, with the rest of the semester, which wants to consume your whole life. But that's kind of what college is, so I think overall it's a pretty good experience. I've learned a lot. It's been nice working with Unreal - I'd actually never worked with Unreal before, so using the engine has been great.

[RB] So that wraps up the interview with Jeannette Forbes, the AI programmer on the VR VRoom project, and there will be more of these coming up for the rest of the semester for the last couple people.

[JF] Make sure you slow my voice down by at least like, twenty five percent, because I tend to ramble very quickly. Sorry about that guys.

[RB] It'll come out fine. So look forward to those things coming in the next few weeks.


As stated above, these will pop up about once a week, as the developers are available.