Since we decided to take the plunge into becoming Oculus Rift compatible we needed to update to the most recent version of Unity Pro (upgrading from 3.5 to 4.0). This was something we knew needed to be done, but it resulted in over 150 errors in our project that needed to be cleaned up to comply with new standards in the engine. Not only has this been a headache for the development side of things, it has also left a sizable hole in my personal finances (The upgrade cost $750 on top of the $300 Rift devkit). It will still be awhile until we get our Rift devkit, but when it comes we will be ready. There’s no telling just how much work it will be to adapt the current game to be Rift compatible, but we are hopeful that it will be well worth the effort.
Lacuna Passage - Devlog #12 - Soundtrack Preview #2
We are very excited to share another sample of music from the Lacuna Passage soundtrack. All credit goes to our talented composer Clark Aboud.
You will probably notice the new flood lights in the video. This is just one of many new assets that we are beginning to import into the game. These flood lights are interesting visual markers that can help you find your way at night. Some cloth physics are also on display here which we hope to use on things like flags and tarps sparingly throughout the game. We think that bit of movement makes the world feel more alive and reactive.
Lacuna Passage - Devlog #11 - In-Game Photography
Our first video devlog! This week we talk about some adjustments to the atmospheric effects to make them a little more realistic and our new photography system.
Lacuna Passage - Devlog #10 - Pre-Alpha Gameplay Teaser
What’s that? In-game footage you say? Yes! We have released our first pre-alpha gameplay footage.
I had considered doing some commentary over the video to explain some of what is going on, but I didn’t want to talk over the awesome music. So instead I will try to break down some of the new stuff here.
The biggest addition to the game in the last couple weeks has been the datapad. This is one of the tools that will be an invaluable resource for you as you explore and document the planet’s surface. We are trying to keep all the HUD and UI elements as immersive as possible, so nearly all the game’s menu screens will be contained within the physical datapad.
Audio playback is one of the datapad’s many functions (some others I’m sure you can gleen from the other menu items). In this video we hear an audio log from a previous crew member who discusses a drilling site where he accidentally left behind some tools. Despite his intentions he never did return to collect them as we find out later in the video (hmm, what happened to him?). Luckily he gives us the exact coordinates of the drilling site. In the final game you will have the option to input these coordinates as a custom marker on your compass, but for the purposes of this example the compass marker is automatically displayed.
On our way to the site we come across a decent sized dust devil which makes for some cool moments with the dynamic soundtrack. Moving on, we trek across the lowest point in the valley, eventually making our way to the drilling site. The music builds as we reach our destination and indeed we find the wayward tools. At several points you will notice a blue outline around the tools. This is an optional feature to help some players find key objects and locations. It can be turned on and off at any time just as is demonstrated in the video.
Finally we look upon the setting sun. We have sped up the passing of time just to show the full range of lighting effects. In the game time will pass quickly, but not quite this quickly. One real-world second will equal about 1 in-game minute. And as you might expect, Mars can be a foreboding place in the dark of night.
Thanks for watching our first gameplay video. We would love to hear your thoughts in the comments.
Lacuna Passage - Devlog #9 - The Power of Unity Plugins
One of the things I love about Unity is the immense amount of community support it has garnered. There really is a wealth of resources at your fingertips. The Asset Store is an excellent place to find some of these resources and we have utilized several packages quite extensively while creating Lacuna Passage. This week I thought we might share some of our favorites.
Ultimate FPS Camera - by VisionPunk
I can’t recommend this script package highly enough. If you are creating any first-person game at all then you owe it to yourself to at least check it out. This package adds some incredible dynamic camera movement that makes everything feel much more organic. And if you are making a shooter then you will have some excellent customizations available for any kind of gun-play you can imagine.
Unistorm - by Black Horizon Studios
I’ve had to make some fairly significant changes to the Unistorm scripts to get exactly what I was looking for, but they were an excellent starting point and still serve as the backbone for the day/night cycle in the game. There is decent documentation to help you along also.
GlareFX Dirt Lens Effect - by Red Dot Games
You might argue that these effects are a bit cliche now after seeing them in games like Battlefield 3, but they fit perfectly in a game like Lacuna Passage. We always want the player to feel somewhat trapped and enclosed in their stuffy space helmet and these glare effects go a long ways towards achieving that. They have some great customization options that allow you to make the effects as bombastic or as subtle as you desire.
Hard Surface Shaders Free - by Bruno Rime
If you don’t want to bother with writing your own shaders for metal or plastic, then no worries. This shader pack has you covered. I originally considered using them as a placeholder until we completed our own, but there really isn’t anything else I need. If you want even more out of your shaders there is a Pro version on the asset store as well.
ats Colormap ULTRA Terrain Shader - by forst
This shader is absolutely instrumental to the look and feel of Lacuna Passage. The terrain in the game is one of the most important visual elements and this shader makes a world of difference. With the improved terrain materials system in Unity 4.0 the shader is easier to use than ever before. I described more about our terrain creation methods in a previous devlog.
Probuilder 2.0 - by SixBySeven Studio
Most of my level design experience was gained in Hammer Editor and the Unreal Editor so Brushes and BSPs were a huge part of my prototyping workflow. With Probuilder I’m able to get some of that familiarity back and quickly generate graybox test environments directly inside of Unity. Probuilder is honestly flexible enough that I can see how some projects might utilize it for their actual game geometry and not just for testing.
Playmaker - by Hutong Games
Last but certainly not least is Playmaker. I don’t think Lacuna Passage would be possible without it. I’ve never been a strong programmer, but Playmaker allows me to create game logic quickly and easily. Almost 90% of the game will be done entirely in Playmaker and the other 10% is mostly just hooking it up to our other plugins and miscellaneous scripts. For example, we wanted to have the colors of our dust particle effects managed by the Unistorm day/night cycle so I simply inserted Playmaker global variables into the Unistorm scripts with very little effort. This visual scripting system is incredibly powerful and I think it would be a mistake for even master programmers to overlook it.
Lacuna Passage - Devlog #8 - Soundtrack Preview #1
We are very excited to share a sampling of music from the Lacuna Passage soundtrack today. The video above showcases some of the main themes you will experience while exploring the landscapes of Mars.
Music will have a very important role in the game and we hope to never loop or repeat any tracks during a single play-through. The progression of the soundtrack will respond to how you explore the environment, with new layers and movements triggered by your actions.
We are working with the very talented Clark Aboud to create these soundscapes and we plan to share more samples as we move closer to a Kickstarter. The funding from a Kickstarter would allow us to develop the full soundtrack that we think the game deserves. If you like what you hear make sure to share the video with others! We greatly appreciate your interest and support.
Lacuna Passage - Devlog #7 - Creating an immersive HUD
Last week we shared a mini-tutorial on how to create effective first-person 3D HUD illusions with only a 2D plane. This week we are going to talk about the important information that the rest of the HUD will convey.
The helmet HUD is one aspect of the game that we are taking very seriously when it comes to balancing believability. We need to provide the player with relevant, contextual information at all times without overwhelming the player or breaking our fictional ruleset for immersion.
There are dozens of background survival and navigational stats in Lacuna Passage that the game is keeping track of; however, not all of these are relevant to the player and some are simply unbelievable. We have a distinct variable that measures your exhaustion level, but it wouldn’t make much sense for your space suit to relay this variable to you directly. Though our game is set in a science fiction universe, we are trying to constrain ourselves by the realities of modern space travel. How would a space suit measure a trait like exhaustion? Well, we can instead filter this information and display it in other ways, like blood pressure, heart rate, and other bio readings that a space suit might be very capable of measuring. In creating an immersive HUD we are trying to avoid abstract forms of information like health bars.
The helmet HUD in Lacuna Passage is your source of primary information - things that are most immediately relevant to the you. Fictionally, we have created a UI that is displayed via light projection onto the inside of your space helmet (think Google Glass, but across your entire visual field). You may notice in screenshots that the projected text is actually a bit pixelated and monochrome. This is accurate to existing technologies that favor function over form (simpler displays require less power and have fewer points of potential hardware failure). This is technology that is not only believable, but highly effective in conveying the information the player needs. It’s bright and stands out from the Martian landscapes extremely well. Right now these are the stats that we are displaying with this method:
1. Battery Levels
We have a very simple battery indicator for instant recognition of current battery levels as well as a percentage to give you more granular updates.
2. Oxygen Levels
Perhaps one of the most important survival stats in the game. Keeping this information visible at all times in the helmet HUD ensures that the player won’t be surprised when they run low on oxygen.
3. Compass Heading
Navigation in an open-world environment is critical. This age-old method of wayfinding is made even more useful with the inclusion of the diamond-shaped waypoint to lead you to known locations; however, if you are searching for unknown locations then you are on your own.
4. Latitude and Longitude
Another useful tool for navigation. When traversing terrain with no visible landmarks it can be easy to get lost. With Lat and Long headings you can know exactly where you are at all times. There may also be a need to record Lat and Long headings that you want to revisit later (or add as a waypoint on your compass).
5. Time and Date
Despite the fact that the Martian day is 2.7% longer than a day on Mars, it still has a 24 hour clock. Knowing the exact time allows you to more accurately estimate how long your battery or oxygen might stay within safe levels. It can also be useful to know how much time you have left before dark when temperatures drop to dangerous levels.
The important thing about these stats is that they are constantly updated and available at a glance. Many of our other secondary stats will be displayed via a wrist display that can be brought up to your visor for viewing when necessary. Both our helmet and wrist displays are fictionally and internally consistent helping to create a more immersive experience for the player.
Lacuna Passage - Devlog #6 - Using highly detailed 3D components in your first-person HUD
This week’s devlog is a bit more of a tutorial where we cover our method for creating dynamic, highly detailed 3D HUD elements. The basis for our pipeline involves rendering complex high-poly models onto flat, single polygon planes with a normal map for light interactions.
Pros of this method
- You effectively have an unlimited polycount for your HUD. By rendering your high poly model to a flat plane you will have no noticeable polygonal curves or sharp edges (if you don’t want them, that is)
- Extremely low poly count in relation to the quality of the illusion
Cons of this method
- A change in HUD design requires re-rendering of all your texture bakes
- The HUD cannot move in relation to the camera or the illusion breaks
So, let’s get started:
1. Setting up your camera angle
In order to model your HUD components you need to setup a camera in your modeling software that is exactly the same field of view as your first-person camera in your game engine. This will help you preview what your HUD will look like in game. It’s also going to be very important later when we need to render out a normal map.
2. Build your model according to the view you want in game
This part just comes down to whatever style you are looking to have with your particular game. In our case we are creating a small visible portion on the inside of a space helmet.
3. Create a plane to project your model onto
Once your model is finished (no need to texture it yet) you need to create a plane that completely encompasses your model from the point of view of your first-person camera.
4. Orient the plane to your camera angle
Make sure that the plane is exactly perpendicular to the origin point of the camera. Check the image to see a visual.
5. Quickly unwrap your plane
No frills here. Just unwrap the plane however you like.
6. Render your normal map
Use Render to Texture with a projection modifier on your plane that encompasses your model to create a normal map of the original model. If you’ve never done a normal map bake from a high poly model before check out this guide.
7. Create your textures
You can create your textures in Photoshop or texture your original model and do another render to texture for the diffuse instead of the normal map.
8. Create an alpha mask for the model’s texture
Since our projection shape does not perfectly match our plane we need to have an alpha channel somewhere that determines areas of transparency.
9. Import your plane and your textures
Bring everything into your game engine and align the plane exactly as you had it in your camera preview in your modeling software. In our case we are using Unity so here are some tips to help you out.
Unity specific directions:
- Have your plane parented to a HUD camera that is distinct from your scene camera
- Have the HUD camera render last and mask only the HUD elements
- Make sure the clear flags are set to Depth Only to preserve your depth buffer
- Use the same HDR settings on all cameras if you are using image effects
Lacuna Passage - Devlog #5 - Approximating real survival challenges in a virtual world
Before I started working on the survival mechanics in Lacuna Passage I did a lot of research about space travel and specifically the difficulties involved with a manned mission to Mars. There has been extensive research done on the topic including simulated missions here on Earth. Wikipedia’s Manned Mission to Mars article presents us with a concise list of the challenges associated with such a mission.
1. Physical effects of exposure to high-energy cosmic rays and other ionizing radiation.
2. Physical effects of a prolonged low-gravity environment, including eyesight loss.
3. Psychological effects of isolation from Earth.
4. Psychological effects of lack of community due to lack of real-time connections with Earth.
5. Social effects of several humans living under crowded conditions for over one Earth year.
6. Inaccessibility of terrestrial medical facilities.
7. Equipment failure of propulsion or life-support systems.
8. Basic human needs (I added this one, because I think the rest of the list just assumes it)
Now let’s see how these survival challenges apply to our game:
• 1 and 2 are fairly irrelevant to Lacuna Passage since the game takes place after landing on Mars and in reality these hazards really only increase the astronaut’s chances of getting cancer during their lives by about 1-2%.
• 3 and 4 are very real contributors to the story and gameplay. Exhaustion and isolation have very real psychological effects in the game, including disorientation and perhaps even hallucinations.
• 5 is also not relevant because the story explores the concept of a solitary “shipwrecked” astronaut. There were other crew members on Mars at one time, but a huge part of the game is discovering why they lost contact with Earth and what exactly happened to them.
• 6 is certainly not an insignificant hurdle for space exploration but it is relatively unimportant in Lacuna Passage. You won’t be worrying about getting sick or breaking a leg as these are typically things that are the result of random chance. Being randomly afflicted with a potentially game-ending health issue is not the type of experience I am looking to create. All of the survival aspects of the game involve planning and concepts of conservation. You won’t be breaking a wagon axel here.
• 7 and 8 are probably the most important mechanics in the game. The amount of time you have to explore is directly related to how well you manage your technological and biological needs.
I’ve broken down these survival systems into three primary categories:
1. Technological
Technological survival systems in the game include Oxygen and Battery. If you run out of oxygen while exploring that’s it… you die. If you run out of battery power while exploring your headlamps will no longer function and your digital maps and diagnostics will no longer be visible (perhaps you can use the sun’s position to find your way back).
2. Biological
Biological survival systems include Starvation, Dehydration, and Exhaustion. You would have to try pretty hard to die of starvation in the game (basically just sit around for 3+ weeks) but that’s not saying that it can’t be done. There may be ways to synthesize oxygen and water from the Martian environment, but food is a little harder to come by. Dehydration though is more of a daily survival concern. About three days without water and you’re done. Last but not least, exhaustion can contribute to some ill effects in our third survival category, psychological survival.
3. Psychological
Continued strenuous activity (running and jumping), on top of inadequate nutrition and lack of sleep, will drastically affect your state of mind. You may start hallucinating or become disoriented. The symptoms you exhibit might be different every time you play.
Hopefully this gives you a little better idea of the survival mechanics we are working on and how they will impact your exploration habits. At some point we will discuss how these survival mechanics are communicated to you the player through GUI indicators in your helmet and contextual and environmental clues.
Early Buzz for Lacuna Passage
We are very lucky to have had some recent interest in Lacuna Passage from a few news outlets. The first story came from Indie Game Magazine where they shared some details about the game from our devlogs. After that came an interview and article from Mashable.com that has been shared far and wide. We are very thankful to both outlets for their coverage and hope that this is only the start of great things to come!