Search the Community
Showing results for tags 'Programming'.
As promised in Update #30, it's time to meet the people making the game. In today's update, we interview Steve Weatherly, a programmer on Project Eternity. Q:Steve, can you tell us what you do on Project Eternity? A: I'm a gameplay programmer primarily responsible for making combat happen. What that means is that I look at what Josh and Tim design for the game, and tell them it can never be done. After that, they tell me it has to get done, so then I figure out a way to make it happen. I spend most of my day writing code, either for AI (to make the enemies act like they know what they're doing), or the underlying code that makes characters fight and take damage, etc. I'm also our chief Reddit ambassador, which I sort of fell into but it has been a lot of fun. Q:What are you currently working on today? A: Today I'm actually working on building our equipment system. When I'm done, designers will be able to take a weapon that an artist models and drag it onto a character. The character will then hold it in their hand, swing it, and cause damage to their enemies. My weapon of choice is currently the flail, which Unity made surprisingly easy to create. Q: What’s your typical work day like on Project Eternity? A: When I start my day in the morning the first thing I do is check email and make sure there aren't any outstanding issues or meetings I need to think about. I frequently also log into Reddit to see if I have any fan questions. After that I fire up Unity, update my build to see everyone else's work, then run the game to make sure it still works like it did when I left the night before. If there are any major issues I'll take care of them, otherwise I'll start working on whatever the next thing is that I need to build. I usually head off to the gym at lunch because my office is a dark cell and I need sunshine (or the fluorescent lights of the gym). Then more programming after lunch. Around 3:30pm I'm about ready to fall asleep, so each day all of the programmers gather up and walk across the street for coffee. That might seem like a waste of time to some, but it gives all of the programmers a chance to talk about what they are working and bounce ideas off of each other. Also coffee. Q: What feature are you most looking forward to programming? A: I got into the game industry wanting to be an AI programmer. So, while I enjoy the challenges of engineering other systems, AI is where my heart is. I can't wait until we have a full complement of spells so I can write some cool wizard AI and give people an epic wizard battle! Q: What's been one of the largest challenges so far? A: So far the biggest challenge has really just been getting familiar with Unity and building stuff so that when the design team starts making levels they will have a solid set of tools, easy to use and ready to go. Q: What other projects have you worked on at Obsidian? A: I've been at Obsidian almost 7 years, so there's been a lot. I started out as tools programmer on the Neverwinter Nights 2 toolset, followed by my first job as an AI programmer on the cancelled Aliens RPG project, after that I helped out with Alpha Protocol's AI system doing bug fixes. Then I moved to Dungeon Siege 3 where I was responsible for building the AI systems both for the game and our Onyx engine. I served a tour of duty on South Park integrating the Onyx combat system with the turn based design of that game. They hired Tim Cain to replace me on South Park and I moved over to the (now cancelled) North Carolina project. Between North Carolina and Project Eternity I worked on various prototypes we were doing to try and pitch games. Q: Where do you like eat for lunch? A: Being a California native I really love Mexican food. We tend to go to Wahoo's Fish Tacos a lot because we can walk there from the office and it's pretty good. Q: Who's your favorite programmer? A: Well, I would say Adam Brennecke, but he's a producer now and is dead to me. So it's going to have to be Tim Cain. I definitely envy his ability to design, code, and bake well. He's a triple threat and that's also earned him a spot on my list of most job threatening co-workers. Fortunately I know his weakness... Q: What's your favorite game? A: That's easy, my favorite game of all time is Baldur's Gate. It was the first RPG I played and the first time I felt like I was in another world that I could explore. I'd never experienced that before and it's what inspired me to want to make games for a living. Q: What do you like to do when you aren't programming? A: Drink... heavily. Preferably whiskey, but I'm also happy with vodka. Q: How many push-ups can you do? A: More than the average programmer, but significantly less than Chris Avellone. Q: What's your favorite Thanksgiving dinner dish? A: Cornbread stuffing! Thanks for reading. We want to have weekly updates on Tuesdays from now on, so be sure to drop by every Tuesday for the next Project Eternity update. If you have any additional questions for Steve - post them on this thread and he will be happy to answer some of them!
Update by Adam Brennecke, Lead Programmer and Executive Producer Over a year ago, in Update #49, we showed you the first movie of Pillars of Eternity. The movie showcased a beautiful scene in the Dyrwood complete with dynamic lighting, per-pixel occlusion, dynamic water and waterfall, and a day-night cycle. In this update I would like to give you an inside look on how these images are put together and rendered in the game, and I will cover new rendering features that we've added over the past year to address feedback from our backers about how our characters look in the scene. Warning: things might get technical! E3 We are going to be going on update hiatus for the next three weeks as we prepare for E3 in Los Angeles. After E3, the next update will feature the final classes covering The Front Line (fighters and barbarians). At E3, the team will be showing Pillars of Eternity at the Paradox booth behind closed doors. To avoid spoiling what we will be showing, we will be saving these moments until you get to play it. Because we want to include you in the experience, we will be taking photos at the booth, and in a future update we will be sharing more screenshots from the demo. To give you a small taste, here's a sneak peek at a scene that will be shown at E3: Rendering TimeBackgrounds As we mentioned previously, our beautiful backgrounds are rendered out of Maya as a 2D image. They are very large images, sometimes over several gigabytes of raw data, and before the images get into the game we run a program that compresses the data. Maya renders out the backgrounds in four layers or "passes": final, depth, normal, and albedo. These passes are combined together in Unity for per-pixel occlusion of 3D objects, and for real-time dynamic lighting. When we bring the backgrounds into the game, they look like a flat 2D plane, and when viewed in Unity's editor the whole world has an awkward skewed look to it. The illusion comes together only when an orthographic camera is placed at the perfect angle. Characters Next we overlay the 3D world on top of the 2D rendered image. The characters are dynamic 3D skinned meshes that are animated and then rendered into the scene with a variety of shaders and materials. Our default material that we use on most characters includes a normal map (adds tiny variations in surface detail), specular map (adds shininess), and an albedo map (adds the base color). The default material also supports a tint map, which allows our designers and you to customize the colors of armor, hair, and skin. We have other shaders that can change the look and feel of characters. For example, we have a metal shader for armor that adds an extra level of shininess and can reflect the environment via an environment map. A Cloth shader removes the shininess, and allows the character artists to make outfits made up of cotton, wool, and satin. We have special materials, like an emissive shader that isn't affected by light, used for the fire-godlike, ghosts, spectres, and the windows seen in the screenshots and video. Because the characters are 3D, they need to be lit differently than the background image. We use a system with two directional lights. The first directional light is the key light and typically matches the sun color and intensity in outdoor scenes, and this light can be modified by the day-night cycle to cast moonlight at night. The second directional light is used as a fill light to make sure the "back side" of a character isn't in total darkness. The two lights are adjusted per scene depending on the pre-rendered light settings to match the sun direction, mood, and desired atmosphere. In addition to the directional lights, we use dynamic deferred lights that can affect the background and characters. For example, if a torch is placed in a scene, the torch can illuminate both the 2D environment and a 3D character standing nearby. In addition, deferred lights are used for spell effects; a fireball explosion emits a burst of light, brightening up a dark dungeon room. Bringing it all together We noticed, and so did many of you, after releasing our first few screenshots, the 3D characters were not matching the 2D rendered scene as much as we would have hoped. So we put our thinking caps on, and we came up with new features since our first batch of screenshots, including dynamic ambient and a shadow control system. To really make sure the characters fit in the scene, we came up with an ambient system that samples color from the 2D background, simulating a quick and dirty global illumination model. Characters pick up subtle color variations depending on where they are standing and what type of environment they are in. If a character is standing in a lush green jungle, it will pick up a subtle green hue from the light reflected off the environment. Game programmers love fast and cheap methods, and the ambient system gives us great results with little impact on rendering performance. Ambient before and after: Another feature that we've added recently to solve the issue of grounding characters into the scene is a system to shadow 3D characters when traversing into dark shadowy areas in the 2D image. The new system samples a low resolution image map which controls the contribution of the directional sunlight on the character, and to avoid double shadows, the same image controls the value of the dynamic shadow map. Lastly, to better match the 2D and 3D shadows, we color the dynamic shadow to match the 2D rendered shadow color (which often has a blue hue to it). Shadow Blending before and after: To tie everything together, we can optionally add post process effects. In this scene, we've added a very subtle bloom effect that effects both the environment and characters. I hope you didn't get lost in all the technical talk! The important thing is that we hope you like the end result. We are satisfied with where we are at, but we always have a few ideas on how to improve the look and quality of the graphics. Improving the look of the game will be an ongoing process until we ship... and beyond. If you have any questions, please ask in our forums! Thanks for reading.
By Tim Cain, Senior Code Wizard and Systems Designer Hello! I have spent much of my time for the last few weeks devoted to making the game’s stronghold system, which was one of our Kickstarter project’s biggest stretch goals, into one of the best systems in the game. Josh has created an amazing and detailed stronghold design, with lots of upgrades and activities and random events that really make owning a stronghold fun and exciting. I want to spend this update explaining what we have made in the game, but first, let’s talk about the stronghold itself. First, a caveat: I am going to describe the stronghold as it is currently designed. This design is mostly programmed already too, but as with all development, it might change as we finish the art and audio, fix any bugs, and tune the game play. So please view this as a snapshot of the stronghold development as it exists today. You will be offered the stronghold early in the game, before you finish Act 1. But the stronghold itself is old and dilapidated, and you will want to upgrade it as soon as you can. These upgrades will, in turn, open up new activities and events that can happen, which will make the stronghold a dynamic and fun place to own. So let’s go through the many reasons why you will want to have a stronghold. Bonuses There are five bonuses you will receive for getting and upgrading your stronghold. Resting bonuses. Some of the upgrades to your stronghold will grant temporary bonuses to your attributes or non-combat skills when you rest there. As examples, you can build Training Grounds to improve your Strength or a Library to improve your Lore skill. Some of these upgrades are expensive, but you’re worth it. Adventures for idle companions. You will eventually have more companions than will fit in your party, so you will have leave some of them behind. While they are idling away at the stronghold, they can take part in their own adventures, earning additional experience for themselves and extra money, items and reputation bonuses for you! Ingredients. Many of the stronghold upgrades will generate ingredients used by non-combat skills. For example, Botanical Gardens create Survival ingredients over time, and a Curio Shop produces ingredients for use by both Lore and Mechanics. Special offers. Sometimes visitors to your stronghold will have rare items for sale, or perhaps they will offer you items in return for something else. Pay attention to these visitors. Some of these items may be nearly impossible to find any other way! Wealth. Don’t forget that by owning a stronghold, you also own all of the surrounding lands and impose a tax on all of the inhabitants. It will feel nice for a change to have someone recognize your high standing and give you the money that you so richly deserve. These bonuses all sound great, right? Well, they are great, but they are just the passive benefits from owning and upgrading a stronghold. There are a lot of activities you can do too, once you take possession of your stronghold. Tim in his typical Stronghold creation attire. Activities First and foremost, when you get your stronghold, you are going to want to upgrade it. Upgrades are improvements to various parts of the castle, usually to add to the security or prestige of the place. Security affects how much taxes you collect as well as helps reduce the number of “bad” random events, while prestige increases the number of “good” random events as well as increasing tax collections, too. Upgrades can also serve as prerequisites for other upgrades. For example, you cannot build your Training Grounds (and get your Strength bonus after resting at the stronghold) until you have repaired the inner bailey of the stronghold. Every upgrade costs money and takes time to build, but as long as you have the prerequisites completed, you can have as many upgrades building simultaneously as you can afford. And you don’t have to wait at the stronghold while they are built, either. You can continue adventuring, and you will be notified when they are built. You can begin collecting taxes from your populace as soon as you gain the stronghold. The amount of taxes you collect increases with your prestige (because people know of you and like you), but the amount also increases with higher security, since some taxes are lost to banditry. You will want to keep both of those values high. You can also employ hirelings to stay at your stronghold. These people will provide bonuses to your prestige and security, but they cost money to employ. Some will leave your castle if you stop paying them, but others will wait around to get paid again (but not provide any bonuses until they are). If you have cleared the dungeon and built a prison under your stronghold, then when you are fighting some of the named NPC’s in the game, you will be given an option to take them prisoner instead of killing them. Prisoners are kept in a cell in your prison, where you can visit them and talk to them, and occasionally use them as leverage later in the game. But you will need to keep your security level high, or you might suffer from a prison break! Finally, several upgrades will produce ingredients used by non-combat skills. This feature, along with upgrades that can improve your skills, makes your stronghold a great place to craft and store items. You can stop by your castle occasionally and make food, potions, scrolls, armors and weapons, and any that you don’t need immediately can be stored in chests and other containers in a variety of places around the stronghold. You know, in case of an emergency. Which brings us to random stronghold events. Random Events As you play the game after getting the stronghold, whether or not you are physically there, you will be told if a random event happens at the stronghold. Sometimes, you will need to deal with the event immediately, but usually you are given some time to decide what to do. The most common event at your stronghold is having a visitor arrive. There are all kinds of visitors, but they all share one thing. They can adjust your prestige and/or security just by being at your stronghold. Some visitors are wonderful and give good bonuses, and you will want them to stay as long as possible. Some of these visitors can even be employed as hirelings and will stay on as long as you pay them. Others are not so great, and you will want to offer them one of your companions to act as an escort to their next location, or perhaps simply pay them to leave. Some visitors will offer rare items for sale, and some might even offer a very rare item in exchange for one of the prisoners in your dungeon. As you can see, visitors require some decision making on your part. As mentioned above, your idle companions can take part in adventures as those events arise. You will be informed of what adventures are available, how long they will last, and what the rewards will be (in general terms). If you send a companion on an adventure, he or she is unavailable until they complete it and return with the rewards. You can recall any companions early, but then they earn nothing. Why would you ever want to recall them then? Because your stronghold can get attacked! Attacks are the most potentially dangerous of all stronghold events. Occasionally troublemakers (of various sorts) will decide to attack your castle. You will be warned ahead of time of any such attack, so you can return to the stronghold and take part in it directly, if you want. Otherwise, the attack is simulated and you are told the results. A well-defended stronghold can repel any but the most concerted attacks, but there is always a chance of damage which can destroy upgrades, kill hirelings, and cost money. The threat of attacks is the most important reason to keep your security level as high as you can afford. I hope you have enjoyed this sneak peek into the world of Project Eternity and the role your stronghold will play in the game. No matter how you play the game, your stronghold is certain to provide many benefits and also be a lot fun too!
I think the project eternity will be using the Unity framework as its basis. Just a little curious, why Unity? Does anyone have a link to an article or an interview where the devs specifically discussed the reasoning behind their decision? I'm always interested in new game development technologies, and it would be interesting to hear what kind of reasoning went into deciding on Unity for project eternity.