Limit Theory Q&A: Limitless Procedural Good Timiness
A few days ago, I was clued into a nifty looking Kickstarter campaign for a spacey game called Limit Theory. Unlike other campaigns, this one was well-pitched, and captivated me from the start. Even though I loathe to write Q&A questions (I can never think of good ones, I feel), I felt compelled enough to contact the game’s lone developer, Josh Parnell, and try to get more information. The Q&A below is the result. ;) I hope you enjoy the answers as much as I did. :)
Brian Rubin: Thanks for taking the time to answer my questions. Now, first off, please give us some background on the game, such as its inspiration, inception and so on.
Josh Parnell: Well thanks for taking interest in the project!
If I had to tell you in one sentence what inspired the game, I would say this: “Man, I just wish I could find a space game as easy and fun to play as Freelancer, as deep and dynamic as X3, and as procedural as Elite.” And there you have it. That’s the vision for Limit Theory, in terms of what already exists.
As for the inception, last summer I decided to spend a summer coding freely rather than working for someone. Naturally, given my love for space games, the code could lead me in only one direction – the direction of the space game that I’ve always wanted to play. Thus began the story of Limit Theory, one man’s dream to build the space game that he always wanted to play. After a solid three months of work over the summer, I decided that I was capable of making rapid enough progress to actually be able to finish the game in a reasonable amount of time. Now, through Kickstarter, I’m trying to do just that!
Brian: Now, there’s been much touting of the procedural generated universes, missions, AI and so on. That’s a lot of moving parts for a fully AI driven single player universe. Could you give us some insight as to how your procedural generation works, what it can generate, how detailed it is and so on?
Josh: The procedural generation works differently for each class of content that the game generates. For example, there is a specific algorithm for generating system backgrounds, a specific algorithm for generating asteroids, and so on. The amount of detail that the procedural generation can produce is totally a factor of how much time I spend working on the algorithm. I’ve probably spent the most time on system backgrounds so far, and I would say that they’re quite detailed. On the other hand, ships are still in an early stage, so you can probably tell that the geometric detail of the ships is not quite at the same level.
However, in general, there is not a limit to the level of detail that an algorithm can produce. In fact, one of the nice things about procedural generation is that the level of content detail does not necessarily scale with the time it takes for a developer to produce the content. For example, the algorithm that generates system backgrounds can just as easily generate a super-high-resolution version as it can a really low-resolution version (although the former will take your graphics card quite a bit longer to accomplish). Part of the beauty of this scheme is that it is inherently scalable to any level of detail.
Naturally, a huge chunk of my development time will be spent perfecting the procedural generation, so content will continue to get better and better as time goes on. One of the many great benefits of the procedural workflow is that, when I make an improvement to the code, it ends up affecting all assets of that type…so if, for example, I figure out how to make better ships, then, instantly, every ship in the universe just ‘magically’ looks better! It’s not like I have to go back and redesign every single model, as an artist-driven workflow would require.
Honestly, I could ramble on forever about how incredible and powerful the procedural workflow is. It’s the future of video games, I’ve got no doubt about that. But I’ll leave it there and spare you! :)
Brian: Now tell us about the universe itself. Even though it’ll be procedurally generated, will it be comprised of the same races, factions and so on each time, and if so, how can the user interact with these groups, if at all? Can we take sides in a war, for example? Will the player be able to join a pirate faction, for example, or enlist in a trading guild?
Josh: I’ve still have a lot to work out with respect to race and faction details, but I can talk a bit about factions. Factions will be a large part of the social interaction system in Limit Theory. They will, like all other content in each universe, be procedurally generated. That means that you will indeed find a different set of factions vying for control of territories in different universes.
Factions will be one of the primary mechanisms for allowing players to form relationships with NPCs in the game. Joining a faction will result in a quick gain of favor with NPCs aligned with the faction, as well as a quick loss of favor with opponents. This opens up some interesting gameplay potential. For example, it’s entirely possible that you could get better deals on equipment and goods in a certain system by joining a certain faction, but doing so may come at the cost of being able to travel through another system safely, if the other system is controlled by an opposing faction. On the other hand, a player that prefers neutrality can stay out of faction interactions altogether, possibly avoiding conflict, but also not reaping the benefits of membership.
Brian: Speaking of the player, will there be any kind of reputation or role playing system involved? For example, will the game track your kills and give you experience, as well as sour your reputation with whomever you’ve killed most, for example?
Josh: Yes, there will certainly be role playing elements. The game will track kills and other influential actions, as well as your reputation with factions. Your actions can and will influence the way NPCs view you, both at the individual as well at the faction level. On the other hand, there will be no experience or skill system – all skills must be learnt by you, the player, not by your character.
Brian: You said in your video you start with a small ship and can buy more, not just to fly in but to command. Ships are the bread and butter of a game like this, so let me ask, what are some of the types of ships we can fly and command, such as fighters, carriers, freighters and so on?
Josh: You can expect to see the full gamut of typical ship classes available for player purchase and command in LT, including all that you mentioned and more. Everything from scout to dreadnaught will be fair game. Given the procedural generation technology, you can also expect to have a wide variety of each ship type to choose from. I’m really excited about the gameplay potential with respect to choosing not only your ship type, but also the ships that make up your fleet. For example, perhaps you would prefer to whip around your fleet of battleships in a lightweight scout, watching your big ships do the dirty work, while remaining unscathed. Or, maybe you’d rather command the biggest ship in your fleet, charging into battle with escorts by your side!
Brian: You also mentioned you can buy upgrades for ships depending on where you land. Just how customizable are these ships, and can you give us some examples?
Josh: They are customizable to the extent that you would expect of a space sim. You’ll be able to purchase a wide variety of weapons, shields, thrusters, sensor modules, and so on, with which to outfit your ship. All of this customization will, of course, be subject to hardpoint and energy constraints as you might expect. At a lower level, you’ll also be able to adjust settings for individual components of the ship. For example, you can adjust your power generator’s routing to boost shields or thrust, or you can ramp-up the frequency on your pulse weapon to achieve a higher rate-of-fire, at the risk of overheating. Having the ability to customize both the components and the configurations of individual components will create a lot of neat choices for the player to make!
Brian: Planetary interaction is something I’m very excited about, especially since planets sound fairly detailed and unique with trading stations, factories and illegal locations different on each world. What more can you tell us about planets in the game? For example, will they have governments you can do missions for, for example?
Josh: I’m very excited about this aspect too! The aim of the planetary interaction system is to give every planet a unique “personality.” As you come to a deeper understanding of your local region, you will also learn how to best leverage each planet’s assets. I envision planets to be far more than simple pit-stops for players in LT. I’d like the player to be able to spend a significant amount of time just exploring the various locations, perusing vendors, and interacting with NPCs.
Although there will not be planetary “governments,” planets will generally be associated with a particular faction, which will have a headquarter building somewhere on the planet. Missions will usually be available at several locations on planets, including faction HQs. As you might expect, performing missions for a certain faction will boost your reputation with them. That’s the closest thing that we’ll have to planetary governments.
Brian: Speaking of which, missions are one of my favorite things about open space games such as these. Could you tell us what kind of missions the player will be able to undertake?
Josh: I, too, love missions – and I’m particularly excited to see quality procedural missions. You can expect to see all the mission types that you’ve come to love (or hate?) in space sims – trade, escort, courier, bounty hunting, smuggling, and so on. In addition, I hope to introduce some mission types that are not commonplace in the genre, for example, surveying, spying, patrolling, and more!
My goal is for the missions to arise naturally from the AI in the universe. For example, an NPC decides that he wants to make a trade run between planets X and Y, but notices that security along the route has been dubious as of late. As such, he posts up a request to hire an escort at planet X to help him get to planet Y. If you happen to land on planet X in the interim, you’ll have the opportunity to take the mission. Or, perhaps a faction notices that too many traders are getting attacked in one of the systems they hold. The faction might post up a patrol job on a space station in the dangerous system, in an effort to improve security so as to not lose trade business.
To me, this system makes the missions feel a lot more real and meaningful – by accepting a mission, you are actually interacting with the universe, facilitating or impacting it in a very real way.
Brian: Now let’s talk about control. Apparently you’ll be able to both control one single craft as well as zoom out and control multiple craft as in an RTS. Given all the pieces of this mechanism, from travel to combat to ship management and so on, what can you tell us about the interface that will help players manage everything?
Josh: I can tell you that a very substantial chunk of time is going into developing a full-featured, powerful GUI to help players mitigate the underlying complexity of the game. I find that many space simulation games have very limited or unintuitive interfaces. That will absolutely not suffice for a game with this level of complexity! LT will provide the player with specialized, streamlined interfaces for various tasks, rather than trying to solve everything with a one-size-fits-all UI. Playability is one of my top priorities in developing the game…and presenting the player with relevant information in an intuitive manner is key to playability.
Stay tuned for Kickstarter updates concerning interfaces, as I plan to do a good bit of prototyping in the coming weeks to show everyone what I have in mind for some of the UI components!
Brian: You mention that your universes are boundless and seamless, which is very rare even in space games. How is this accomplished? Is the universe generated on the fly as you move outward from your starting point, for example?
Josh: Yes, the basic idea is that the universe is generated on the fly as you move outward. The neat and technically-challenging part of this mechanism is that, even though the universe is generated on the fly, it’s still completely determined by the seed number chosen at the beginning of the game, so you’ll still get the same universe as someone else that chooses the same number, no matter how far out you go.
Also, please note that the universe is not “seamless” in the most general sense. It is comprised of discrete star systems, in which you can roam around freely and go wherever you like, but getting to other star systems requires finding a jump gate or wormhole. So yes, it is seamless within a system, but be careful not to mistake that for it being one massive, contiguous open space. Think Freelancer, except with an infinite number of regions and systems! Personally, I much prefer this method of partitioning space, as it feels more coherent to me.
Brian: What can you tell us about the engine you’ve created for this game? Is it custom-made, for example, and what are the tech specs and system requirements?
Josh: The engine is my baby! It’s custom-made (in raw c++ and OpenGL, for those that are curious). The great thing about the LT Engine is that it’s designed from the ground-up around procedural paradigms, so it supports the game in the most natural way possible. I don’t have exact system requirements yet, but I can tell you that the game will not take a lot of horsepower to play. To give you some context, the first three months of development took place exclusively on a laptop with a Core 2 Duo and an GeForce 9400M graphics card (in other words, a computer with basically zero gaming capability). To put it simply, the engine is quite efficient and uses fairly lightweight graphics techniques, so you should be able to play LT on a wide variety of systems! You won’t need a beastly gaming PC to enjoy these universes.
Brian: Are you allowing for moddability in your game, such as modding in new ships, planets, races and so on?
Josh: At the moment, nothing is moddable due to the procedural nature of the game, coupled with the fact that I have a sadistic love for writing code in c++ rather than a high-level scripting language. As much as it pains me to say, mod support is, realistically, probably not going to make it into the game. That’s not final, but I can’t make promises at present.
Brian: Finally, what has you most excited about Limit Theory that you would like to share with fans and potential backers?
Josh: Now there’s a tough question! I’ve always had this vision of living a life in space – I’m in a medium-small vessel, drifting about lazily in an ice field. I’m not very familiar with the system I’m in, but I know that it’s sparsely-populated and beautiful. As I drift there alone, in total silence, I casually peruse the news feed from a nearby planet. Just the usual stories. Lost couriers, greedy pirates, and corrupt politicians. I look out into the ice field. It’s simply beautiful.
I’m not really sure why that moment appeals so heavily to me – but it does. And in Limit Theory, I will be able to experience that kind of moment – and thousands of others. And so will you. Maybe that vision excites you, maybe not. Maybe you’d prefer to be staging a heist in a dusty pocket of space. Maybe you’d prefer to be managing an industrial empire. But I can almost guarantee you that, whatever your taste, you will find something in Limit Theory that will excite, inspire, and impact you.
Brian: Thanks so much for your time!
Josh: Thank you! See you all in space :)