#18: Sean Edwards on porting Lunar Flight to VR & updating it for DK2, designing Zombie VR, & funding challenges for indie VR developers

Sean Edwards (aka /u/Sh0v) of Shovsoft talks about the process of porting Lunar Flight to console, and how he ended up having to rewrite a lot of the user interface and interaction model from scratch in order to work with VR. He also talks about his next project of Zombie Virtual Reality (ZVR), and his game design considerations and intentions for the scope of that project including getting something completed early that’s highly polished, fun, and a low price point with a balanced replayability cycle.

Sean-Edwards-200x200Sean talks about some of the challenges he faced with dealing with scale when porting Lunar Flight to VR, and what he had to do to solve those issues. He also discusses what he needs to do to upgrade Lunar Flight to be ready for DK2 including increasing the graphics resolution as well as integrating positional tracking and figuring out how to deal with clipping issues that result from that. He also discusses his take on limb tracking, and other potential new features for Lunar Flight.

Finally, he talks about the challenges of sustaining the path of working as an independent VR game developer, and the risks of asking for enough budget for a crowd-funded project in order to be realistic and viable. He talks about developing games while having a day job, and making a bet on VR by transitioning to full-time indie VR developer.

Reddit discussion here.

TOPICS

  • 0:00 – Intro & the inspiration for porting Lunar Flight to VR. Interface problems & iterations to figure what does and doesn’t work. Redo the entire user interface and rework the user interface with a contextual interaction system from scratch. Using a curved mesh for some UI elements. Lunar Flight has been recognized as a good example of VR experience. It conforms to the Oculus best practices. VR sales will exceed non-VR sales of VR sales. Adding new features for DK2. ZVR is a Zombie Virtual Reality fixed position torrent shooter game. Have ideas to keep it from getting too boring. Inspired by Infinity Blade, not long and nice replayable cycle and in the process of raising some funding for it.
  • 4:18 – How do you make it more engaging? or is it a 10-minute game? Interactive and short and high-impact that you’ll play on shorter times. Perhaps up to 2 hours long to have a nice replay loop. Refer back to old arcade games that you could finish in a couple of hours. Get into VR early, make it highly polished and fun, and a low price point. Goal is to set up Lucid VR for bigger projects in the future
  • 5:50 – Most surprising thing in the process to porting your 2D game into VR. Scale was a big issue in Lunar Flight since it was 0.3x scale. Lunar module was only 1m scale, and default Oculus prefabs are built to scale. Could rebuild everything, but that wasn’t practical. By altering the inter camera distances, then you can alter the perception of scale. Reduce it makes is large, and increasing it will make it small. Turned out to a simple solution. People’s sense of scale must be different based upon their IPD. Need to get objects scale right relative to the reference objects that you have in the scene. Lunar Flight is a one-suit fits all
  • 9:23 – Will you be adding new features for DK2? Resolution increase will be a process and redo the design and scale so that it works. Buttons are large because it uses colliders in his contextual interaction model, and they need to be big enough to select. Translation traction will be interesting. Clipping will be an issue for how to deal with. Players will need to accept this. Shouldn’t turn off translation traction. Not adding new translation tracking features.
  • 11:53 – What about limb integration? Building for the most accessible way, and if had money and time then he would, but the market is too small at the moment. Potentially integrate Hands On Throttle-And-Stick (H.O.T.A.S.) for those who have flight sim equipment. Potentially integrate limbs in that context. People like to see the XBox controller within the game to help with the immersion.
  • 13:29 – What will you be talking about at the indie VR game developer panel? Funding is an issue for a lot of developers
  • 14:05 – How have solved the funding issue? Been able to live off the earnings from Lunar Flight, but doesn’t have a lot of money to hire others. Won’t last forever, and so working on ZVR on the next step. Question size of Kickstarter budgets. Worked a day job while creating Lunar Flight. It was a long year with late nights.
  • 16:08 – Best place to keep in touch? Oculus subreddit and keep an eye on /u/Sh0v.

Theme music: “Fatality” by Tigoolio

Rough Transcript

[00:00:05.452] Kent Bye: The Voices of VR Podcast.

[00:00:12.033] Sean Edwards: I'm Sean Edwards. I have a little company called Shelfsoft, if you could call it a company. It's really just me and a couple of friends who helped out on the project. So Lunar Flight was developed about two, nearly three years ago, and it was just a little small niche physics-based lunar module simulator, which I managed to get released on Steam. And when the Oculus Kickstarter came about, like a lot of people, you know, I jumped on it thinking not purely because I actually wanted to do the integration with Lunar Flight, but I wanted to try it VR like most people, and it looked really promising. So I backed it, got a kit, and then I tried a demo called Heli-Hel 2, I think it was called. It was like a little helicopter you could fly around an island, and there was a battleship and things. And that was the moment where I was like, yeah, I've got to get this into Lunar Flight. And to do that I had to do a lot of things. You straight up identify all the interface problems that you're going to have and how is this going to actually work and what do you need to do to make it work. So I went through this process of pretty much trial and error and iteration of trying to work out what things work, what things don't work, what would I like to do to make it work. And then you keep working on it and you go, okay, there's this feature in the game that's already in the game, but I don't have an easy way to interact with it at this stage, what do I need to do? So then I would add another feature and then another feature and it kind of eventually got to a point where I was like, you know, I've got to do the whole game, I've got to redo the entire user interface, I've got to come up with a new interaction model. And it turned out pretty good. In particular, it has a contextual input system in the cockpit, so in the normal game there's like 50 keys that you can bind for pretty much every function in the game. And with the contextual system, it's actually made the game much simpler. You literally just look at something in the cockpit that you can interact with and use the same button for all things that you can interact with, so that makes it very simple. And in the context of the game, it also makes sense. So you feel like you're looking around in the cockpit and you're looking at buttons and you're pressing them and interacting with them. So that works really, really well. And then all the kind of traditional 2D UI stuff, the menus and things like that, some of that stuff ended up in the cockpit and some of it has a curved space that pops up in front of you, a curved screen basically, and you navigate that through the game pad. That was one area I'd like to improve or change. So it's also driven just by looking at objects and it's contextual as well. So Lunar Flight's done pretty well, at least within the small VR community it's been recognised as a good example of good VR integration. So that's been great and since doing that I've pretty much decided that's what I'm going to do from now on, I'm going to keep doing VR stuff. I'm a big believer that, like many people I guess now, it's happening and it's coming and I have a nice advantage of already having a title that It's a seated experience that pretty much conforms to all the standards that Oculus has laid out, so it's good for me. I estimate potentially sales to VR consumers could exceed existing sales for the game in its lifetime quite significantly, largely because there won't be a huge selection of titles. So, moving on from Lunar Flight, it still has a little bit of work to go once we get the final consumer kit. Dev Kit 2 is coming out. You know, we've got to add support for position track or translation tracking, get all that stuff working. Potentially some more features, more polish. But I also have a new project which is called ZVR or Zombie VR Apocalypse. Again, it's a built for VR title. It's a zombie shooter. A lot of features of the game are kind of still quite nebulous but we know some things that it's a fixed position turret shooter with some interesting kind of progression systems for getting through the levels. A lot of people are kind of curious about why you're fixed in position or whether it would get boring from just shooting from one location. But we have some ideas for some things that will break that mechanic up. So one of the games we kind of refer to often is Infinity Blade. In Infinity Blade, you have your sword fight, your battle, and then when you're finished, you progress further into the level. The actual duration or the scope of the game isn't very, very long. They have a nice replayable cycle. One of the things we're trying to keep in mind is the scope of our game, and we're trying to get funding for it. So we're trying to build this really nice, short, sweet, highly polished, made-for-VR experience.

[00:04:19.956] Kent Bye: Yeah, so that was the exact thought that I had when I watched the demo, was like, OK, I kind of get it. I'm not in the VR, so I don't get that sense of how long I would want to play it. So I'm curious, like, what type of things would you do to kind of make it more engaging? Or is it just a 10-minute game where you play it and you kind of move on?

[00:04:38.057] Sean Edwards: Well, we still have things to add to the core shooting component of it, so we want to have zombie behaviours that respond to certain things that you do, things in the environment that could explode. We want it to be a kind of a fun, short, high-impact kind of experience. So yes, it's not something that you sit and you play for hours or even sit for an extended play session like you would do with maybe a story-based first-person shooter. But, you know, at this stage we're thinking the game might only be two hours long at tops. It may not even end up that long. It's all down to how long it feels like it needs to be to have that nice replay loop. And we refer pretty much to, like, designs of old arcade machines and games in the arcade, which if you could sit and play through, you could, like, double drag and you could finish that in an hour and feel good at it in one play session. we're kind of looking at it from that standpoint. The whole scope thing is a big risk in terms of budget, so we want to be sane about that. So we think being such a new medium, getting in early, having something that's really highly polished and fun, it's not a very expensive game to buy, and in terms of a value proposition, I think people will be okay with that. And hopefully the goal is ultimately to set this new company, LucidVR, up to secure more funding to make bigger and better projects.

[00:05:49.840] Kent Bye: I see. And what was the most surprising thing when you first threw in the Oculus camera into your Unity project and saw what it looked like in terms of adapting this game that was sort of designed for a 2D screen and bringing it into virtual reality?

[00:06:05.569] Sean Edwards: Scale was probably the most obvious thing that you really have to think about. How large objects feel and interestingly, we've talked about this before in some other interviews, but lunar flight, it's a simulation and you kind of expect things have to be built to scale. So, you know, all your information about your velocity and speed and all the physics related things is accurate. And it turns out that lunar flight is actually like 30% scale, like 0.3 of one unit of scale. And the reason that happened is when I first started the project, due to my lack of experience with Unity, I imported some of the models, and in Unity you can specify the import scale when it comes in. And I didn't find this out until much later, and when I first put the Oculus controller into one of my scenes, And I walked up next to the lunar module, and the lunar module felt like it was about a meter tall. And I was like, I don't understand why. Because the default prefabs that Oculus provide are pretty much built to scale for what, a person of about 1.7 meters high and 64 millimeter IPD. So that was quite shocking and when I realised what was going on I was like, oh no this is really bad, how do I solve this problem? And I started thinking about, well I'm going to scale my entire level again and when I started thinking about doing that I realised that was a really bad idea because you could do it but it would create lots of problems because there's so many objects in the scene and stuff would probably get misaligned and that didn't really feel like a practical solution. But getting back into scale perception, What I realized was that by modifying the ICD or the inter-camera distance, the distance between the cameras in the scene, not the actual IPD of the person, you can quite dramatically alter the perception of scale. So if you reduce the distance, it makes everything look really large, and if you increase it, everything looks really small. So I've worked out all I had to do was really multiply the ICD by the scale of the world, which was 0.3. As soon as I did that, it literally went into the SDK and multiplied by 0.3, and suddenly it was fine. So that was really interesting and it started me down that whole path of thinking about scale and perception and how big the cockpit would feel to different people with different IPDs because everybody must perceive the world quite, not dramatically differently, but their height and their IPD must impact the way they perceive the world and it's probably impossible to understand what another person, what their scale of the world feels like. But to me, it made me start thinking that they must be different. Like, tall people, big people, everything does obviously look small to them, right, because they're big, but particularly because of that reason. So, yeah, you then start to have to think about, well, if you're going to provide an IPD through the hardware, which they do, you know, they accommodate for configuring profile to whatever IPD you have, so that it feels correct to you and how you experience the world. And if you have reference objects in the world that you can relate scale to, then you need to get that right. And then you'll have knock-on effects back through the way you build your game because you need to accommodate that scale variability, I guess. So if you have a big person get in it and they want it to feel right for them, do you then have to scale their character avatar or any of the other things? At the moment, Lunafly has a fixed spacesuit size, and it's one size fits all. So, yeah, that's probably the most obvious thing that I spotted.

[00:09:22.982] Kent Bye: And so with the DK2 and positional tracking, have you thought about how you're going to integrate that in terms of just adding an additional gameplay element, or is it just merely making sure that people can kind of lean around and look up close at something?

[00:09:36.643] Sean Edwards: Yeah, well two things. One is the resolution increase. One of the things I spent a lot of time on in Lunaflight was making it accommodate the constraints of the first dev kit in terms of resolution. So font sizes and the distance of objects and the scale of objects in the cockpit were kind of built to look nice with that limited resolution without looking too pixelated. When the resolution increases, I wasn't too sure about whether or not I need to go back and potentially revise the scale of those things so that they don't need that size anymore. Things could be smaller. So, you know, the buttons in the cockpit are massive, they're quite large, and they have to be. For one other reason, because of the interaction model, it uses colliders, and because you're using your head to stare at these things, they need to be a reasonable size so that they're not too fidgety or too difficult to look directly at. So I may go back and change those things, I may not, but the translation tracking is definitely something that's going to be interesting and what impacts it has. Everybody's going to encounter this issue of clipping through objects in their scene. So if you walk up to a wall and you lean forward and your head goes through the wall, in Lunar Flight you could lean backwards and put your head back through the back seat. those sorts of things. So I'm not too sure what the best solution to that. I think at this stage it's going to become one of those things people have to accept. You can probably come up with some kind of visual aesthetic that reminds the player that that's happening like fading the screen down or doing something like that. or turning the translation tracking off which is probably a bad thing, that's one of those things you suddenly, you have translation then suddenly you turn it off, you're gonna notice that straight away. A bit like if you do translation now without translation tracking, you notice it straight away. So we will have IK for the body so it'll be IK'd from the head position so when you lean, the torso and the model will actually move around in the cockpit to match up so it's not disjointing from the neck, if you know what I mean. But other than that, we're not really looking at adding any specific features that utilize the translation tracking in any way. You'll just feel cooler, right? Like you'll just be able to lean forward and look out the window or look forward and look down through the glass and see objects below. I'm really excited about just the resolution increase, really, because being a sim, you have pretty big draw distances and things get pretty murky with the DevKit 1 in terms of resolution. So, yeah, it should be a lot of fun.

[00:11:53.725] Kent Bye: Have you thought about any hand integration as well, in terms of using STEM controllers to be able to actually press the buttons?

[00:11:59.746] Sean Edwards: You know, I love all that stuff, but it's one of those things for me where I'm building for the most accessible way. So I don't want to spend time adding support for these things, which is such a small market of people that are going to actually have it. So if I had money and time and I could put some money on that, I'd definitely put it in there. But I don't, and it's like I've got to choose my battles about what I spend my time on. One of the things I would like to do is have a, what they call a HOTAS, hands off throttle and stick, or hands on throttle and stick, you know, the joystick and the throttle and the pedals for flight simulations. And I originally wanted to have models of those in the cockpit, so you'd have a joystick in the right hand, you'd have a throttle in the left hand, and you'd have the pedals. And the pedals, because I can get their direct import, I can feed them back through the legs, so you would actually see your legs pushing the pedals. I thought that would be really cool. Same for all your hands, all the things would be connected. that would be really, really cool. But again, that's like, it'll probably go down really well with a lot of flights in communities, because they own those equipment and they're already out. There's lots of people that already have those things. So I may end up putting in that as an option for people who have that hardware. Currently I've got the Xbox controller in your hands, which originally I was going to take it out, but it turned out that a lot of people actually really like it because it connects the experience, even though in some sense it's an immersion break. It's like, why is the pilot holding an Xbox controller? But after a while, it feels right because that's what you're actually doing. You're sitting in a chair holding an Xbox controller. So you kind of stop worrying about it. You just stop thinking about it. You just enjoy the game.

[00:13:29.156] Kent Bye: Yeah, all that I've heard is that people really love having that extra element of immersion of actually having the controller there. You are going to be on a panel here at the SVVR conference on indie game developers. And I'm just curious, what are some of the things that you want to really communicate to this entire community?

[00:13:46.257] Sean Edwards: You know, I'm not sure. The session's moderated by Somatic Bruce, so I guess a lot of the questions are just about the process of developing for VR as an indie, I guess, and I imagine some of the discussion will be about funding and how do you afford to do that. So, yeah, it should be good talk. Some great guys on that panel.

[00:14:04.691] Kent Bye: How have you solved that issue of funding?

[00:14:07.399] Sean Edwards: Well, luckily enough, for me in particular, I've been able to pretty much live off the earnings from Lunar Flight since it got released. So we managed to get onto Steam, so it's a pretty niche game and it doesn't make a huge amount of money in terms of... I can't employ people and, you know, anybody that's helped me out with the project, there've been very small contract payments or in some cases, you know, they did it for free for me. And so I'm in that lucky situation where I have the luxury, I can just sit at home all day long and do whatever I like. But that can only last for so long, and particularly in a niche game like Lunaflight, I have to get something else underway. So ZVR is kind of the next thing for me that I'm betting on, and I'm betting on VR succeeding for that bet to pay off. and so are my partners, so we're just going to wait and see how that turns out. But yeah, it's a big problem for a few other guys that I talk to, like, how do you take such a big risk? And particularly for people who are trying to get funding, you know, I think a lot of these people going to Kickstarter as well, I question the size of their budgets. I think in a lot of cases they don't have enough money to do what they're trying to do realistically. I worked in the games industry for 10 years before I went indie and I kind of know the scope of works involved in all aspects of development and when I see how much they end up with or how much they're asking for and then you factor in all the other things that they have to cover their cost for licenses and software and hardware and the Kickstarter options where they're giving t-shirts away and all these other things that cost money to produce there's not a lot of money left and you look at the burn rate for a couple of guys over just a couple months The amount of stuff that they could put out on that amount of money, I felt, was quite small. But I guess the good thing is that they can start. They can do something. It's just very difficult for people who have to have a day job. Lunar Flight, for me, I developed it while working. The majority of it, I developed it while working a day job. And that was a very long year with a lot of late nights and a lot of sleep deprivation. But it's kind of paid off.

[00:16:07.025] Kent Bye: And finally, what's the best place for people to get more information about all the work that you're doing?

[00:16:12.058] Sean Edwards: Well, obviously, you can go to ShoveSoft.com. It doesn't get updated very often. Probably the place where I'm most active is on the Reddit, subreddit for Oculus these days. And yeah, that's probably my first call when I announce anything or show any new features or any new content for ZVR or any announcements about Lunar Flight. So yeah.

[00:16:31.848] Kent Bye: Great. Well, thank you.

[00:16:32.608] Sean Edwards: Thanks, Kent. Cheers, mate.

More from this show