Jump to content

Sprony

Members
  • Content Count

    6,022
  • Joined

  • Last visited

  • Days Won

    209

Reputation Activity

  1. Awesome
    Sprony got a reaction from mryeah for an article, Interview with Thiago 'Minos' Klafke, Blizzard Environment Artist   
    Oilá! You recently released your very impressive “Sampa” scene for UE4. What gave you this idea? Hello! I already had a pretty good idea of what I wanted to work on as a new personal project: a near-future city with architectural influences from the cities of Sao Paulo and Tokyo (among other sources).
    I didn't settle for a specific city or country in order to have total creative freedom though.
     
        You made everything from scratch. It would be very interesting to go through your entire process for creating “Sampa”. Could you walk us through it? Of course! But before we start, I want to add that this is by no means a how to guide on how to make environments but more of a general breakdown of my process and the many lessons I learned during this production.
    Blockout
    The very first thing I did was to blockout the entire space in 3ds max. I didn't want to spend too much time on this, so I avoided thinking too much about how I would build this and instead just focused on making cool shapes. By importing everything as one single file into the engine, I could quickly check out how the map looked ingame.
     

     
    As game artists, we tend to get too technical so modeling blockouts is a great exercise to let creative juices flow freely and focus on art and gameplay. This blockout also enabled me to get the correct scale from the start which is very important when working on urban environments. I always work with a scale model from the ingame character inside my modeling program, this way I can quickly check how high a door handle or a handrail should be for example. The blockout level took me about 3 days to complete and even though the final scene looks nothing like it several ideas did make it into the final level, including geometry pieces.
     

     
    Production
    The initial production phase for this environment was in fact the hardest part that I went through. I started to seriously question if I would be able to realize the full blockout in a timely manner. Learning how to work with PBR materials also took a bit longer than I had anticipated.
    I initially explored making every building uniquely on top of my blockout, but after working for days on a single building I decided to go for a mix of unique geometry and modular "lego pieces". I made sure all my unique pieces fit the same grid as my modular pieces so I could mix and match different pieces to get more variation easily.
     

     
    Mood
    One of the things that was very clear in my mind when I started this environment was that I wanted it to take place early in the evening and leverage indirect lighting and ambient occlusion more than harsh shadows. With this in mind, the basic mood was one of the first things I set up in Unreal. Some people like to do this at the end of a project and while it might be more time consuming to do it as you go (since you will probably be noodling quite a lot more!), this enabled me to learn Unreal's post processing system much better and in the end I managed to get the exact mood I was looking for.
     
    Some of the lighting iterations
    At this point I was pretty much certain on what style to go for and how to build this level so I spent the next weeks building modular pieces and small test scenes.
     
    Materials & Textures
    This scene makes heavy use of tiling textures, one big generic trim sheet and a few unique textures. I struggled a bit with PBR materials at the beginning (as was expected) but eventually got the hang of it, and while my materials were not looking stellar they did the job for a while…
     

    Some material examples
     
    Normal maps were created for each asset as I saw fit. Some of them were baked from high poly models from 3ds max, some were sculpted in Zbrush and some were made entirely with nDo. Normal maps are even more important these days than they used to be, since PBR relies heavily on good normal mapping for lighting. Gone are the days where details had to be faked in the diffuse and specular maps.
     

    Sidewalk sculpt
     
    At one point I finally decided that my materials were lacking definition and fine detail and started experimenting with the new Quixel Suite tools. I fell in love with dDo immediately because it gave me exactly what I wanted: Great material bases. I could just add my flavor on top of them.
    My process with dDo usually goes like this: I create an ID map to define all the different materials in the texture. I then apply a few basic presets (which give you perfectly calibrated Roughness/Metalness/Albedo values) and once I'm happy with the base I add my own hand-painted details. This proved to be a win-win situation, as it made my materials look much more believable and I was also able to reuse 100% of all the hand-painted layers I had done on the old textures.
     

     
    A comparison of the original sidewalk texture (made by hand) vs the dDo version
    Tip: You can get much sharper looking textures in Unreal by changing the “Mip Gen Settings” to Sharpen under the textures’ Level Of Detail settings (double-click a texture map to access this).
    Working with PBR can be pretty daunting, especially when it comes to metals, so I definitely recommend exploring dDo or some other automatization tool for texture production, even if you have to tweak them heavily to match your style.
     
    Material Instances
    One of the best features of the Unreal Engine is that you can create Material Instances very easily from regular materials. These instances are much easier to work with and save you a lot of time setting up new materials since you don’t have to build a node network everytime you need a new material. One extra benefit of using Instances, is that you can also fine tune your materials much faster because changing instanced parameters don't force a shader reload, whereas saving a regular material does.
     

    A simple material with Albedo, Roughness/Metallic/AO and Normal map support. Original material on the left vs material instance on the right.
     
    I didn't want to create one big material to fit all my needs (not very performance friendly), so every time I created a new material type I also made sure that it could be used for instances.
     
    Some of the material bases I created
    Architecture_Parallax_3Layers: A material with parallax mapping support, mostly used for windows.

     
    The actual Parallax node network is pretty simple:

     
    Asphalt: This special material uses World Space mapping with a "stain" texture multiplied on top for large scale details. This material was later reused on a "Wet" version (described below) for the roads.

     
    Architecture_Wet_Dirty: This material uses vertex colors to blend the base material with two other materials: A "dirty" version of the albedo map and a flat 100% reflective material (to simulate water puddles). Explaining what each individual node does is beyond the scope of this article so I'll just leave the shader network here:

     
    The wet material in action:

     
    Creating Variation With Symmetry
    You can create lots of variations quickly using symmetry. The AC kit consists of two base pieces and several variations created with the Symmetry modifier in 3ds Max:

     
    I also used this trick to make more variations out of this Storefront:

     
    Lighting & Post-Processing
    To light this map I used standard lightmaps. While making fully dynamically lit environments in Unreal 4 is a possibility I found that the performance loss is not worth the time saved by not baking lightmaps.
    I kept the lighting simple, contrasting small "gold" light sources with the ambient blue color. Instead of lighting the level as a whole, I created several "small" scenes. This makes the level look less "art directed" and more like a real city would. I also placed some strategic light sources to highlight the wet look in some areas. While I imagine this kind of "wet" look will be abused until everyone hates it in the near future I kept it very simple and restricted to where it made sense and would look good.
     

    Carefully placed water puddles close to strong light sources
     
    When it comes to Post-Processing, I like to keep image adjustments outside the engine to a minimum. I really took the time to tweak the exposure values to get a good range of details in shadows and also to avoiding bright areas being way too bright. This can be accomplished by a combination of tweaking exposure and Tint/Contrast settings under a Global Post Process volume.
    One of the last steps to finalizing this scene was to bring a few screenshots into Photoshop, tweak the levels and saturation values until they were exactly what I wanted, and then create a lookup table for the color correction. However, for some reason I was getting horrible banding with the color correction enabled, so in the end I just placed my screenshots from Photoshop next to the viewport and tweaked the post-process values until both of them looked exactly the same.
     
    Wrapping Up
    This is the 10% part of the process that makes everything look 200% better. During this phase, I created small interest areas and dressed them with props, particles and decals. I also scavenged several pieces from unfinished scenes and from my initial blockout. One of the examples is the News Stand which I just polished the geometry from the blockout and applied final materials on it:
     

    Again, never discard any ideas/assets, you never know when they might come in handy!
     

    The light glows are simple particle emitters consisting of two emitters: A regular "round" glow and a horizontally scaled one to simulate anamorphic flares.
     
    Example of decal usage:

     
    Some of the pieces used in the level:

     
    Now that was a very detailed break down. I’m sure people will really benefit from the information you just shared. Thank you for that! In the beginning of this interview you said that you learned a lot of lessons during the production of this scene. Could you share those as well? Yes, I learned quite a few lessons with this project. Namely:
    Modeling a blockout level without thinking too much about clean geometry or precise dimensions enabled me to focus purely on art and architecture instead of processes and tools. Never underestimate how much time consuming it is to make current gen art. My initial blockout turned out to be way too ambitious for the amount of time and resources I had for this piece. Never discard any ideas! Several pieces I made for the blockout level were actually polished later on to be used in the final level. Don't try to find a one rule that fits all when it comes to asset production. As long as you work with reasonable dimensions that adhere to the grid you can mix unique and modular pieces easily. The same applies for using Unique or Tiling textures, find a balance to use either where it makes sense. Don't think twice about pausing work on something when you feel you are noodling too much or if it isn't going anywhere. It's usually better to trust your instincts than trying to make up for the "wasted" time by forcing yourself to finish it. Don't be a dinosaur and embrace progress! My initial reason for not using dDo at first was because I thought that all my textures would look the same but this is not the case if you use it wisely. A texture artist needs to be versed in several different tools to get good materials. Don't stick to just one, explore all options to find the one that’s best suited for each specific situation. There's no such thing as wasted time or wasted work. Even if imperceptible at first, every time you work on something you are making progress towards being a better, more experienced artist. Most of the time this means working on "failed" projects. But if you really think about it they are not failures at all as we learn both from mistakes and from the things we get right. Several ideas that I spent hours and hours on didn't make it to the final level but that's fine. In the end, they gave me a broader perspective at environment creation which enabled me to make the right choices towards the end of the project. Fun fact: I've been trying to make this environment for over a year now, exploring several ideas before. I'd say this is the third iteration of this idea and the good thing is that in the end, with a bit of polish, I managed to use most of the stuff I made for the previous iterations. This is a bit cliché but very important: Don't be afraid of making stuff. Work on a lot of crap and only show what's worthy showing (usually a small percentage of what you make). That's the only way to find your own style and gain confidence in your abilities.  
    Very motivational and inspiring Minos. I’m sure it will be appreciated. Before we wrap this up I have to ask about something terrible that happened. Something unforgivable (even though the above makes up for it but just a bit). There’s an Polycount logo in scene but Hurg is missing. What blasphemy is this? Haha! Yeah my mistake… While polishing the assets for the final version I removed the Mapcore sign from the building I was using it on (so that not every instance in the map had the sign) and completely forgot to add it back while rushing to finish the scene. I only noticed that when I was publishing the video.
     
    It’s really a shame because that logo looked awesome in the level!
    Just kidding Minos. I think everybody will agree that the time you took to write this down will be appreciated by and helpful to all (aspiring) designers. So in short, thank you again. Thanks for the opportunity Sprony and I hope you guys learned a thing or two with this!
    Fly-through of the scene on YouTube Minos' portfolio  



  2. Like
    Sprony reacted to FrieChamp for an article, Finding your own path as a professional Level Designer   
    The following article contains quotes from interviews with Todd Papy, Design Director at Cloud Imperium Games, Geoffrey Smith, Lead Game Designer at Respawn Entertainment, Paul Haynes, Lead Level Designer at Deep Silver Dambuster Studios and Sten Huebler, Senior Level Designer at The Coalition. A big heartfelt 'thank you' goes out to these guys who took the time out of their busy schedules to answer my questions!
    On the MapCore.org forums many amateur level designers ask for feedback on their portfolios or for advice on how to break into the games industry. But once you have signed your first contract and you have your foot in the door you will realize that this step marks merely the beginning of your journey. It is a winding path with many diverging branches and without much information available on the road ahead. This is the reason why I decided to interview professional designers in Senior, Lead or Director positions to share their personal experiences and advice with others trying to navigate this field. It is worth mentioning that the questions were not selected and phrased with the goal in mind to compile a ‘how to get promoted fast’ guide. Instead I wanted to give level designers insights into the careers of others - who have stood at the same crossroads before - in hopes that they get the information to pick the path that is right for them.
    Hands-On VS Management
    At the beginning of his career, Todd Papy started out as a “designer/environment artist” – a job title that dates back to times when team sizes were much smaller and one person could wear both hats at the same time. As the project complexity and team size grew, he specialized in level design at SONY Santa Monica and worked on the God of War titles. During his time there he moved up the ranks to Lead Level Designer, Design Director and eventually Game Director. From level design to directing a game - a career thanks to careful long-term planning and preparation? “It wasn’t even on my radar” says Todd. “I just wanted to build a game with the team and soak up as much information from the people around me as possible.” 
    So how do level designers feel who step into positions where the majority of their daily work suddenly consists of managing people and processes? Do they regret not doing enough hands-on-work anymore? Todd says he misses building and crafting something with his hands, but instead of going back to his roots, he decided to look at the issue from a fresh perspective: “As a Lead or Director, your personal daily and weekly satisfaction changes from pride in what you accomplished to pride in what the team has accomplished.“ Today Todd is designing the universe of 'Star Citizen' as Design Director at Cloud Imperium Games.
    Geoffrey Smith - who created some of the most popular multiplayer maps in the Call of Duty and Titanfall series and who is now Lead of the ‘Multiplayer Geometry’ team at Respawn Entertainment - says his output of levels remains unchanged thus far, but he can “easily see how being so tied up with managing would cut into someone's hands-on work”. Geoffrey calls for companies to provide the necessary training to employees new to management positions: “Managing people and projects is hard work and is normally a vastly different skill set than most of us in games have. Maybe that is why our industry has such problems with meeting deadlines and shipping bug-free games. A lot of guys work for a long time in their respective disciplines and after many years they get moved into a lead position. They certainly know their craft well enough to teach new guys but managing those guys and scheduling would be something brand new to them. Companies need to understand this and get them the training they need to be successful.” At Respawn Entertainment, the studio provides its department leads with training seminars, which helps the staff immensely, according to Geoffrey.
    Sten Huebler, currently working as a Senior Level Designer at Microsoft-owned The Coalition, in Vancouver, says he definitely missed the hands-on work when he worked in a Lead capacity on 'Crysis' and 'Crysis 2': “I was longing for a more direct creative outlet again. That is why coming to The Coalition and working on Gears of War 4, I really wanted to be hands on again.” To Sten it was the right move because he enjoyed working directly on many of the levels in the game’s campaign and could then experience his fruit of labour with others close to him: "After Gears 4 shipped, playing through the campaign, through my levels with my brother in co-op was a blast and a highlight of my career. He actually still lives in Germany. Being able to reconnect with him, on the other side of globe, playing a game together I worked on...So cool!"

    'Gears of War 4'  developed by The Coaliation and published by Microsoft Studios
    Paul Haynes, Lead Level Designer at Deep Silver Dambuster Studios, encourages designers to negotiate the amount of organizational tasks and hands-on work before being promoted into a position that makes you unhappy: “I always told myself that I wouldn’t take a Lead position unless it could be agreed that I retain some hands-on, creative responsibility, after all that’s where I consider my strongest attributes to lie. I agreed to both Lead positions (Cinematic/Level Design) under that principle - I never understood the concept of promoting someone who is good at a certain thing into a position where they potentially don’t get to do that thing anymore, as they spend all their time organising others to do it. So far I’ve managed to maintain that creativity to some degree, though I would imagine it’s never going to be quite the same as it used to be, as I do have a team to manage now. On the flip side though, being able to control and co-ordinate the level design vision for a project and having a team to support in fulfilling that is quite an exciting new experience for me, so not all the organisation and planning is unenjoyable.”
    Specialization VS Broadening Skillsets
    For the level designers who aren’t afraid of management-related tasks and who are willing to give up hands-on work for bigger creative control, what would the interviewees recommend: specialize and strengthen abilities as an expert in level design further or broaden one’s skillset (e.g. getting into system design, writing etc.)? Paul believes it doesn’t necessarily have to be one or the other: “I think it’s possible to do both (strengthening abilities and broadening skillsets) simultaneously, it would really depend on the individual involved. I would say that a good approach would be to start with the specialisation in your chosen field and then once you feel more comfortable with your day to day work under that specialisation, take on work that utilises different skillsets and experiment to see if you find anything else you enjoy.” He started out as a pure level designer but subsequently held roles that involved game and cinematic design at Codemasters, Crytek and Dambuster Studios. “I’ll always consider myself a level designer at heart”, says Paul, “though it’s been incredibly beneficial for me to gain an understanding of multiple other disciplines, as not only has it widened my personal skillset but it has enabled me to understand what those disciplines have to consider during their day to day job roles, and it has helped me to strengthen the bond with those departments and my level design department as a result.” This advice is echoed by Todd who encourages level designers to learn about the different disciplines as “that knowledge will help solve issues that arise when creating a level.”

    'Homefront: The Revolution' developed by Dambuster Studios and published by Deep Silver
    Sten also gained experience in related disciplines but ultimately decided to return to his passion and do level design. He explains: “It’s a good question and I feel I have been wondering about this myself regularly in my career. I think those priorities might change depending on your current situation, your age, your family situation, but also depending on the experience you gain in your particular field. (…) In my career, I was fortunate enough to try out different positions. For example, I was a Level Designer on Far Cry (PC), Lead Level Designer on Crysis 1 and Lead Game Designer on Crysis 2. Each position had different requirements and responsibilities. As a Lead Level Designer I was more exposed to the overall campaign planning and narrative for it, while on Crysis 2 I was more involved in the system design. However, my true passion is really on the level design side. I love creating places and spaces, taking the player on a cool adventure in a setting I am crafting. My skills and talents also seem to be best aligned on the level design side. I love the combination of art, design, scripting and storytelling that all come together when making levels for 1st or 3rd person games.”
    Picking The Right Studio
    As you can certainly tell by now, all of the interviewees have already made stops at different studios throughout their career. So each one of them has been in the situation of contemplating whether to pass on an offer or put down their signature on the dotted line. This brings up the question what makes them choose one development studio over the other? To Geoffrey it depends on what stage of your career you are in. “If you're trying to just get into the industry for the first time, then cast your net wide and apply to a lot of places. However, ideally, someone should pick a studio that makes the types of games they love to play. Being happy and motivated to work every day is a powerful thing.”
    This is a sentiment that is shared by all interviewees: the project and team are important aspects, but as they have advanced in their career other external factors have come into play: “It’s not just about me anymore, so the location, the city we are going to live in are equally important.” Sten says.
    Paul is also cautious of moving across the globe for a new gig. “The type of games that the company produces and the potential quality of them is obviously quite important – as is the team that I’d be working with and their pedigree.  More and more over the years though it’s become equally important to me to find that balance between work and life outside of it. Working on games and translating your hobby into a career is awesome, but it’s all for nothing if you can’t live the life you want around it.”
    And it is not just about enjoying your leisure time with family and friends, but it will also reflect in your work according to Todd: “If my family is happy and enjoys where we live, it makes it a lot easier for me to concentrate on work.” He also makes another important point to consider if you are inclined to join a different studio solely based on the current project they are working on: “The culture of the studio is extremely important. I consider how the team and management work together, the vibe when walking around the studio, and the desk where I will sit. Projects will come and go, but the culture of the studio will be something that you deal with every day.”

    'Star Citizen' developed and published by Cloud Imperium Games; screenshot by Petri Levälahti
    But it goes the other way around, too: When it comes to staffing up a team of level designers, these are the things that Todd looks for in a candidate: “First and foremost, I look for level designers that can take a level through all of the different stages of development: idea generation, 2D layouts, 3D layouts, idea prototyping, scripting, tuning, and final hardening of the level. People that can think quickly about different ideas and their possible positive and negative impacts.  They shouldn’t get too married to one idea, but if they feel strongly enough about that specific idea they will fight for it. People that approach problems differently than I do. I want people that think differently to help round out possible weaknesses that the team might have.  People who will look for the simplest and clearest solution vs. trying to always add more and more complexity.“
    For lead positions, it goes to show yet again how important a designer's professional network is, as Todd for example only considers people that he already knows: “I try to promote designers to leads who are already on the team and have proven themselves. When I am building a new team, I hire people who I have had a personal working relationship before. Hiring people I have never worked with for such positions is simply too risky.”
    Ups & Downs
    While the career paths of the designers I interviewed seem pretty straightforward in retrospect, it is important to note that their journeys had their ups and downs as well. For instance Geoffrey recalls a very nerve-wracking time during his career when he decided to leave Infinity Ward: “We had worked so hard to make Call of Duty a household name but every day more and more of our friends were leaving. At a certain point it just wasn't the same company because the bulk of the people had left. The choice to leave or stay was even giving me heart palpitations. (…) After I left Infinity Ward, I started working at Respawn Entertainment and by work I mean - sitting in a big circle of chairs with not a stick of other furniture in the office - trying to figure out what to do as a company.” But he also remembers many joyful memories throughout his career: Little things like opening up the map file of multiplayer classic ‘mp_carentan’ for the first time or strangers on the street expressing their love in a game he had worked on. To him, shipping a game is a very joyful experience by itself and the recently released Titanfall 2 takes a special place for him. “The first Titanfall was a great game but we had so many issues going on behind the scenes it felt like we weren't able to make the best game we were capable of. (…) After all the trials and tribulations of starting a new game company, Titanfall 2 is a game I am very proud to have worked on.”

    'Titanfall 2' developed by Respawn Entertainment and published by Electronic Arts
    As a response to the question of what some of the bigger surprises (good or bad) in his career have been thus far, Paul talks about the unexpected benefits of walking through fire during a project’s development and the lessons he learnt from that: “It surprised me how positively I ended up viewing the outcome of the last project I worked on (Homefront: The Revolution). I’d always thought I would aim to work on big, successful titles only, but I guess you don’t really know what’s going to be a success until it’s released. Obviously it was a disappointing process to be part of, and a lot of hard work and effort went into making it, despite the team always knowing that there were some deep lying flaws in the game that weren’t going to be ironed out. We managed to ride the storm of the Crytek financial issues in 2014, coming out on the other side with a mostly new team in place and yet we carried on regardless and managed to actually ship something at the end of it, which is an achievement in itself. I see the positives in the experience as being the lessons I learnt about what can go wrong in games production which stands me in good stead should I decide to take a more authoritative role somewhere down the line. Sometimes the best way to learn is through failure, and I don’t believe I’d be as well rounded as a developer without having experienced what I did on that project.”
    Last Words Of Advice
    At the end I asked the veterans if they had any pieces of advice they would like to share with less experienced designers. To finish this article I will quote these in unabbreviated form below:
    Geoffrey: “I guess the biggest thing for guys coming from community mapping is figuring out if you want to be an Environment Artist or a Geo-based Designer and if you want to work on Single-Player or Multiplayer. Each has its own skills to learn. I think a lot of guys get into mapping for the visual side of things but some companies have the environment artists handle the bulk of that work. So figuring out if making the level look great is more enjoyable to you or thinking it up and laying it out is, will help determine which career you should follow. Other than that, just work hard and always look to improve!”
    Todd: “BUILD, BUILD, BUILD.  Have people play it, find out what they liked about it and what they didn’t.  Build up a thick skin; people will not always like your ideas or levels. Try out new ideas constantly. What you think looks good on paper doesn’t always translate to 3D.  Analyse other games, movies, books, art, etc. Discover what makes an idea or piece of art appeal to you and how you can use that in your craft.”
    Paul: “The games industry is not your regular nine to five job, and everyone is different so it’s difficult to lay down precise markers for success. Different specialisations have different requirements and you can find your choices leading to different routes than your fellow team members. You need to make sure you carve your own path and try everything you can to achieve whatever your personal goals are within the role; success will come naturally as a result of that. You need to be honest with yourself and others, open to criticism and willing to accept change. I’ve seen potential in people over the years hindered by stubbornness, succeeding in the games industry is all about learning and constantly adapting. Also it’s important to keep seeing your work as an extension of a hobby, rather than a job. The moment it starts to feel like a means to an end, you need to change things up to get that passion back.”
    Sten: “I always feel people should follow their passion. I firmly believe that people will always be the best, the most successful at something they love. Of course, it is a job and it pays your bills, but it’s also going to be something you are going to do for gazillions hours in your life, so better pick something you like doing.”
    Written by Friedrich Bode for mapcore.org
    What are your personal experiences? Do you agree with the statements made by the interviewees? Any advice you would like to share with fellow level designers or game developers in general? Let us know in the comments!
  3. Like
    Sprony reacted to Puddy for an article, Dynamic levels - in Payday 2 and beyond   
    Payday 2 is a cooperative first person shooter where players band together to commit various crimes in the endless pursuit of wealth, infamy and cool masks to cover their criminal faces with. The game recently celebrated it’s third birthday, yet it still retains a steady player base. How then has the game kept players engaged throughout the years? The many and regular content updates are surely a big part of it. Another draw must be the fleshed out progression systems that offer tons of customization. I would argue that the lifeblood of the game is its dynamic level design; it is what keeps the game replayable and fun. In this article I will discuss what dynamic level design is and how it was used to build “Hoxton Breakout”, one of the game’s most popular missions.
     

    Payday 2, Left 4 Dead 2 and even XCOM2 all use some form of dynamic level design.
     
    What is dynamic level design?
    Dynamic level design is all about creating levels that are as replayable as possible; it is about retaining the challenge and keeping players on their toes. This is achieved by introducing elements that change between playthroughs, things that make the level a bit different each time you play. Dynamic levels are still designed and built by hand, so to speak, which makes them different from procedural levels which are created from automated algorithms.
      Dynamic levels are useful in games where the developer wants the levels to provide more gameplay than a single playthrough would. This approach has the added benefit of allowing different players to come together and enjoy the same level, irrespective of whether they have played it many times before or not at all. This can make dynamic level design ideal for co-op games and it can be essential for retaining players over longer periods of time, just like Payday 2 has done.
    Building a dynamic level
    The process of building a dynamic level certainly differs from more traditional single player level design. Instead of crafting a linear experience in meticulous detail, a designer must seek to create a broader structure of what will happen in the level and then design dynamic elements, things that change between playthroughs, within that structure. These dynamic elements need to be designed with care, so that the level actually changes in meaningful ways between playthroughs. The process of making a dynamic level will vary from game to game; it all depends on the game's mechanics, setting and other details. By sharing the design of a Payday 2 level I hope to illustrate what a dynamic level can look like and also showcase the overall possibilities of dynamic level design.
     
     

    Hoxton in all his glory, featured here in this promotional art. Shortly after his breakout, he leads a daring break-in at the FBI to uncover who ratted him out.
    Hoxton Breakout
    In the Payday 2 mission “Hoxton Breakout” players are tasked with breaking their old heisting comrade Hoxton out of custody. During the breakout Hoxton shares his suspicion that his capture was caused by an unknown snitch. To uncover the truth, the PAYDAY gang set their sights on the headquarters of the Federal Bureau of Intervention (not to be confused with any real life organization...). This sets the stage for the mission’s second level and the one I will be discussing here.
     
    Level Structure
    In this level, the players will enter the FBI headquarters together with Hoxton (an NPC). They will fight their way to the “Operations Room”; the place where the FBI servers are kept and where the Payday gang is hoping to find the information which reveals the identity of the snitch. Hoxton will search through the servers and when he has found what they need, the gang will escape. No matter how many times you play the level, the overall structure will stay the same. Instead, it’s the dynamic elements within this structure that change and make it replayable. What are those, you ask? Let’s take a look!
     

    Clockwise from top right: The FBI HQ lobby, a central area in the level. The FBI director hides behind his desk. Hoxton and the Payday gang enter the lobby.
    The Operations Room
    Players will spend a lot of time in the FBI Operations Room. Hoxton will be hard at work searching through the servers, leaving players to defend him from relentless police assaults. The combat space will change in a number of ways between playthroughs.
      Entrances - Most of the entrances to the Operations room are selected dynamically in various combinations, which changes which choke points the player must defend.
    Windows - The ‘Operations’ room is two floors in height and the second-floor windows overlooking the room are placed in different positions. Players must watch them for enemy fire.
    Fuse box - The fuse box, which enemies use to cut the power to the servers and pause your progress, can be placed in a few different positions. Players must defend it.
    Ceiling breaches - SWAT troops can breach the ceiling of the ‘Operations’ room and rappel down right into the thick of it! There are a few places where this can happen (it doesn't always).
      These dynamic elements will vary and change independently. This can be very desirable, as it will give you a large set of different combinations and improve the replayability of the level. For example, even if the fuse box is in the same location in two separate playthroughs, the positioning of the entrances and windows will change how the players approach the situation, which will help reduce level fatigue.
     

    The Operations Room. The Servers are kept in the room under the illuminated FBI logo. 
    The Quests
    There are four servers Hoxton must search through in the Operations Room. Between the searching of each server, Hoxton will need the player's assistance and send them on a “quest”. There are five different quests, though only three are selected and used in each playthrough. They can be selected in any order and combination. Each quest and its gameplay have been designed to have a slightly different flavor.
      Security Office - The next server happens to be heavily encrypted. You need to break into the Security Office, download the encryption keys and get them back to Hoxton.
    IT Department - The next server is missing and the log states it was taken to the IT Department for maintenance. You must locate the IT Department, find the missing server and bring it back to Hoxton.
    Archives - Hoxton finds a reference to some physical files kept in the archives. You need to go down to the basement, search through the archives and bring the paper files to Hoxton.
    Forensics - Hoxton learns that the FBI has evidence related to the traitor. Players need to break into the evidence locker, find the right piece of evidence and then scan it in the nearby laboratory for clues before returning to Hoxton.
    Director’s Office - Hoxton encounters some files on the next server that can only be accessed by gaining direct approval from the FBI Director. You must head to the director’s office and use his computer to approve all of Hoxton’s security clearance requests.
      What this means is that players won’t know exactly which “quests” they will tackle each time they play the mission, or in which order they will face them. As the difficulty slowly ramps up during the mission and the players’ supplies generally are lower towards the end, completing the same quest as either your first or last one can become quite a different experience, even though the quest itself doesn’t change that much. Allowing the quests to be arranged in any order and combination simply gives the mission a slightly different flow each time.
     

    The five quests, clockwise from top right: IT Department, Security Office, Archives, Forensics. Center: Director's Office
    The Combat Now, it’s about time we talked about the combat. It is essential for the replayability of a level that the combat isn’t static and that encounters vary between playthroughs. To solve this, Payday 2 has a spawning system that serves up dynamic enemy encounters. The system unburdens individual level designers and creates a consistent and tweakable way for the game to spawn enemies in all levels. For those of you who have played the Left 4 Dead games this may sound very familiar. The system isn’t completely automated and the level designer can control a few variables.
      Difficulty - The player selects the overall difficulty of a level before starting, but a designer can tweak the difficulty to a factor between 0 and 1. This can be adjusted at any point during the mission and can be tied to certain events.
    Spawn locations - A designer designates spawn locations manually. The designer can toggle spawn locations on and off, change how often they can be used to spawn enemies and which kind of enemies are allowed to spawn from them.
    Enemy Wave Mode - Police assaults occur regularly and this is generally handled by the system, but a designer can force a police assault or a complete break from them.
    Snipers/Harassers - The placement of snipers and so called harassers, regular SWAT troops who harass players from vantage points, is done manually. It is up to the designer to place them in challenging, but fair, positions and script logic which decides when and if they appear.
      What this all means is that while the spawning system does the heavy lifting and creates varied combat encounters, a designer can fine-tune the experience and still direct the combat somewhat. For example, in Hoxton Breakout the difficulty is slowly ramped up after each completed server, the spawn locations are continuously tweaked throughout the mission to make fights fair and when it is time to escape an endless police assault is forcefully triggered to increase the stakes!


    A dynamically spawned enemy squad moves towards the Payday gang.
    The keycard economy
    In Payday 2, keycards are single-use items that are occasionally used to open certain doors. In order to add depth and strategy to the level, I added something to this level which I like to call “the keycard economy”. In every playthrough, players can find 3-4 keycards which can be used, i.e. “spent”, on a variety of options like overriding doors to seal them off from enemies, unlocking rooms that contain precious resources or opening doors that lead to objectives. The value of the different options can change between playthroughs, depending on dynamic variables and which loadouts the players have. Since players can’t have all the options, they must choose wisely. This allows players to refine their strategy over the course of multiple playthroughs, adding to the level’s replayability.
      The little things We’ve discussed all the major dynamic elements of the level at this point, but it is worth mentioning that replayability also arises from smaller dynamic elements too. These smaller surprises can throw players off and force them to adapt accordingly. A good example can be found in the Security Office, where the police sometimes pumps in tear gas when players are trying to complete the objective inside. This forces players to leave the relative safety of the room and charge head first into the police forces which are surely waiting outside. Part of making a dynamic level should be to identify and implement these little game changers!
     

    Clockwise from top right: The Security Room fills with gas. A keycard has been used to seal a security door. An innocent keycard. A SWAT team rushing to thwart the payday gang.
    Discussion
    To summarize, the level we’ve looked at is about defending a location and completing short “quests”, with both activities changing in different ways between playthroughs. In addition to this variety, enemies are dynamically spawned, occasional surprises appear and players are able to learn and master the keycard economy over the course of multiple playthroughs. These dynamic elements, this variety between playthroughs, is what turns the level into a dynamic one.
      This level was made for Payday 2 and, as mentioned, dynamic levels will look a bit different depending on the game and its needs. The Left 4 Dead games have less emphasis on objectives and focus more on linear progression through a level, with dynamic enemies, items and minor path changes along the way. The Killing Floor games have arena levels that suit the game’s wave-based horde mode and these levels feature fairly simple dynamic elements: enemy and item spawning as well as the location of the weapon and item shop. The revived XCOM franchise uses levels which have designated areas or “slots” where different buildings and structures can fit in and shift the layout accordingly. The XCOM games also allow different missions to be played on the same level, enabling levels to provide even more gameplay mileage.
      The dynamic level design approach may fit these games, and others like them, but it is not suitable for all kinds of games and it definitely comes at a price. Since dynamic levels are designed to be replayable, heavily scripted story moments and set pieces may have to be deemphasized or removed outright. Playing through such sections may be thrilling once or twice, but they generally lose their appeal very quickly. Furthermore, some degree of polish is generally lost in the process of making dynamic levels. The fact that you are making an experience that can’t just happen “in one way” means you can’t necessarily polish, and control, every moment of gameplay to an insane standard, like you would expect in an Uncharted game for example. Additionally, an incredibly strong core gameplay loop is almost a requirement for a game with dynamic level design. Since the levels can’t be overly scripted, directed and set-piece heavy, the levels can’t compensate and “lift up” a slightly weaker core gameplay. Finally, one must also consider that creating dynamic elements in a level takes time, time which could be spent polishing or making more non-dynamic levels.
      These drawbacks must be weighed against the potential benefits. After all, the value of replayability should not be underestimated. As I mentioned in the beginning of the article, dynamic levels seem to be almost ideal for co-op games. Playing games together definitely adds something to the experience and this can help to compensate for some of the potential drawbacks like the lack of set-pieces. Adversarial multiplayer games, i.e. player vs player, don’t necessarily stand much to gain with the dynamic level design approach as the element of human unpredictability and challenge is usually enough to keep players engaged and entertained. By looking at XCOM, we can see that dynamic levels can be used to great effect in a game that isn't a shooter nor a cooperative one. And if we compare them to procedural levels, dynamic levels requires less sophisticated technology to create, but more human labor, and can offer something that feels a bit more handcrafted and unique. Ultimately, game makers need to look at the dynamic level design approach, its pros and cons, and ask themselves: is it the right approach for us?
  4. Like
    Sprony reacted to will2k for an article, Optimizing An Open Map in Source Engine   
    An open map?
    Source engine, which is funnily a Quake engine on steroids (a bit of exaggeration but still), inherited the same limitations of its parents in terms of visibility calculations: BSP and PVS. This fact makes Source, as was Quake engine before, more suitable to rooms and hallways separated by portals where the BSP shines in all its glory.
    Inheritably, Source does not like large open maps where the PVS is of considerable size and the over-rendering is a real issue.
    If you work with Source engine, then you already know the importance of optimization in a large, detailed map. Optimization becomes even more imperative when the said map is open.
    What’s an open map? Good question. The word “open” is an umbrella term to denote any map that does not have traditional hallways and corridors that connect indoors to outdoors. The map is mostly large, outdoors with an unbroken skyline; in other words, the same stuff that source engine nightmares are made of in terms of PVS and BSP.
    In a traditional “hallway’d” map with twisted corridors leading to open areas followed by other hallways, and even if you “forgot” to place hints and areaportals, the geometry itself allows the engine to cut visleaves and limit visibility; granted the visleaves’ cuts will be subpar and messy and the PVS will be in excess, but still, the visibility and fps will be relatively under control. A twisted hallway is a remedy to long sight lines after all.
    In an open map, and without hallways and enough geometry to help the engine, the PVS risks to be huge and the whole map could be rendered at once from any point (over-rendering). We are talking here about a severe fps killer and a potential slideshow on a medium to low range computer. Source does not like over-rendering; I repeat, Source does not like over-rendering.
    I believe a screenshot should be welcome at this stage to illustrate an open map. I’ve chosen a nice medium-size map from CSGO to showcase the issue: de_stmarc.

    The shot is taken in Hammer obviously, and you can immediately see that the skybox is one big unbroken body from one edge of the map to the opposite one. This is the classic definition of open map.
    Let’s see this map in 2D view from the side.

    I have highlighted the skybox in blue so you could see the continuous sky body all over the map. Please note that an open map can have varying skybox shapes but I’ve chosen the simple and classic one to showcase my point where it is easier to see and visualize the concept of open map.
    In contrast, a “traditional” map will have several skyboxes, often not connected directly but rather through a system of indoor rooms or hallways, varying in size and shape.
    I will have my map de_forlorn as example here.

    I have also highlighted the skybox in blue and you can easily notice several skyboxes for CT spawn, T spawn, and Mid/bombsites. These skyboxes are not directly connected to each other but the areas related to them are linked on the lower levels through various indoor locations, some vast (like garage, tunnels…) and some small (like lab hallway…).
    If you are not that comfortable with source optimization or feel that certain terms are alien to you, then please read my previous optimization papers and articles before proceeding further in this article (Previous papers can be found here Source Engine Optimization roadmap).
    The necessary tools
    I’m not revealing a secret when I tell you that the same tools used to optimize any map in Source are exactly the same ones used for optimizing an open map. If you were expecting some magical additional tools, I’m sorry to bust your bubble.
    Since the tools are the same (nodraw, func_detail, props, hints, areaportals, occluders…), it is more about how to use them in open maps that makes all the difference.
    So, how to properly optimize an open map? Well, you could always pay me to do so for you (joking…not…maybe…I dunno!!)
    If the above option is off the table, then read on the rest of this article .
    Horizontal hints
    While in a traditional map one might get away without using horizontal hints, it is virtually impossible to skip them (pun intended) in an open map unless you want to witness single digit fps burning your eyes on the screen. They are of utmost importance to negate the "tall visleaves across the map" issue.
    In a traditional map, even if you bypass adding horizontal hints, the damage in fps will mostly be local since the skyboxes are not connected and areas are mostly autonomous in terms of PVS. In case of my map “Forlorn” and referring to the 2D diagram above, if I remove horizontal hints from CT spawn, then only this area will suffer from tall visleaves and over-rendering. Obviously, this is not cool in terms of optimization, but at least the effect will be somehow restricted to this area only.
    In the case of “Stmarc”, you can certainly see that not including horizontal hints will have tall visleaves seen from across the map as the skybox is one unit. The PVS will grow exponentially and the over-rendering will take its toll on the engine.
    Let’s move on to some screenshots and diagrams, shall we.

    This is our glorious open map in side view. The blue lines denote the skybox, the dark grey one is the ground, and the green rectangles represent solid regular world brushes such as building bases for example. The red starfish little-man-with-arms-wide-open is the player. The orange hollow rectangles denote the various visleaves that the engine would probably create in the map (most go from ground level to skybox level and this is what I refer to as “tall visleaf”).
    If you know your optimization, then you certainly remember that BSP relies on “visibility from a region” approach (for a refresher, please consult my papers Demystifying Source Engine Visleaves and Source Engine PVS - A Closer Look. This simply translates to the following: the player is in visleaf A and visleaf A has direct line of sight to visleaves B, C, D, E, F, and G. The PVS for A in this case would be stored as BCDEFG. Once the engine recognizes that the player is in A, and regardless of the exact position in A, it will proceed to render the whole PVS content. Everything in visleaves BCDEFG will be rendered even though the player is at the extreme end of A and has no line of sight to most of this content.
    You can immediately notice the extent of damage you will inflict on your open map if you neglect adding horizontal hints: excess PVS with additional useless content to be rendered at all times.
    Now that we established the importance of these horizontal hints in open maps, the question remains: where shall I put these hints?
    In the diagram above, the most logical places would be on top of the 3 green rectangles.

    We added 3 horizontal hints (H1, H2, H3) on top of the 3 regular brushes in our map (the hint face neatly resting on the top of the regular brush while other faces are textured with “skip”). This will create more visleaves as can be clearly seen in the above diagram, and vvis will take more time to calculate visibility due to the increased number of leaves and portals but this is done for the greater good of humanity your map’s fps.
    Now the player is in visleaf A1 and the PVS is reduced to (sit tight in your chair) A2, A3, A4, B1, B2, C3, C4, D1, E4, F3. On top of the nice result of a greatly reduced PVS (and therefore content to render), keep in mind that leaves A4, B2, C4, D1, E4, and F3 are mostly empty since they are way up touching the skybox.
    Some folks will start complaining and whining: what the hell dude, I don’t have 3 green rectangles in my map; where would I put my hints?? My answer would be: deal with it!!
    Joking aside, open maps will greatly differ in size, shape, geometry, and layout. What you need to do is choose 1 to 5 common height locations in your map where you would implement these hints. Medium maps with mostly uniform building heights can get away with 1 horizontal hint, while complex, large maps with various building heights can do with 4-5 hints.
    If your map has a hill made of displacements that separates 2 parts of the map, then it is also a candidate for horizontal hints. You just need to insert a nodraw regular world brush inside the displacement to be used as support for the horizontal hint (the same technique can be used if you have a big non-enterable hollow building made mostly of func_detail/props/displacements).
    Vertical/corner hints
    These might not come into play as much as their horizontal siblings, however they could see a growing potential use depending on the map’s layout, geometry tightness versus openness.
    I cannot go through all combinations of open maps obviously to show you how to lay vertical and corner hints; what I will do is choose one diagram representing a typical open map scenario with some scattered houses, streets, and surrounding fields. Once you see how I proceed with these hints, it will become a lot easier for you to implement them in your own map regardless of the differing geometry and layout.

    Here’s our typical map viewed from top with grey lines being map borders, green rectangles being houses (solid world brushes), and our tiny red player at the rightmost part of the map. The map has a main street that goes in the middle between houses but the player is not restricted to this path only.
    The diagram below shows how I would proceed with my hints for such setup.

    This is basically what you get when you give a 5-year-old some crayons.
    Seriously though, I just gave each hint a different color so you could discern them on the spot, otherwise it would be hard to tell where each one starts and ends.
    Most of these hints go from one side of the map to the other while going from ground level to skybox top; don’t be afraid of having big hints that cross your entire map.
    Notice that we have both straight vertical hints (shown from above in the diagram obviously) and corner hints; what I did is that I compartmentalized the map so wherever the player is, chances are they will have the least amount of leaves to render in the PVS (this is just a basic hint system and more fine tuning and additions could be done but you get the gist of it).
    To get more details on hint placement, please refer to my paper Hints about Hints - Practical guide on hint brushes placement
    Areaportals
    If your map has enterable buildings, then it is imperative to separate indoors from outdoors using areaportals; this is top priority.
    Make sure to slap an areaportal on each door, doorway, cellar door, window, roof opening, chimney, etc. that leads inside the house in question.
    What about outdoor areaportals? Good call. In an open map without much regular world brushes to maneuver, it could get very tricky to set up an outdoor areaportal system to separate areas. However, you should always strive to have one, even if it is one or two areaportals across the map. The reason is very simple: the view frustum culling effect, which, coupled with hints, will yield the best results in cutting visibility around the map.
    Continuing with our previous diagram, a simple outdoor areaportal system setup could be as follows (top view).

    This setup will make sure that the map is split into 4 areas and whenever you are in one of them as player, the view frustum culling effect will kick in to cull as much detail as possible from the other areas.
    Let me show you the setup from a side view to make it easier to visualize.

    This is the same areaportal that was closest to the player in the top down view diagram but this time viewed from the side. Unlike hints where it’s fine to have one big hint going across the map, for areaportals, it is best to have several smaller ones that tightly follow the contour of the geometry eventually forming one big areaportal system.
    Another possibility for outdoor areaportal system is to have a combination of vertical and horizontal (yes horizontal) areaportals.
    If your map is a village for example with a highly detailed central square where most of the action takes place, a potential system could be made of several vertical areaportals that sit in every entrance to the square from adjacent streets, and a horizontal areaportal that “seals” the area and works as a “roof”.
    For a practical guide on areaportals placement, please check out my article Practical guide on areaportals placement
    Props fade distance
    This is a really, really important tool when optimizing large open maps. In case you got distracted while I was making the announcement, I’ll go again: props fading is definitely vital when tackling open maps optimization.
    What you need to do is to set an aggressive fade distance for all trivial props that do not contribute to gameplay. Players will look closely at how detailed your map is when they check it out solo on the first run; however, when the action starts and the round is underway, adrenaline, focus, and tunnel vision kick in, and all the details become a blur.
    During an intense firefight, players will not notice small props and details up close, let alone at a distance. We need to use this to our advantage to fade props thus releasing engine overhead; a faded prop is not rendered anymore and engine resources will be freed and allocated elsewhere.
    Your map geometry will dictate the proper fade distances, but as a rough guideline, small props could have a fade distance anywhere from 800 to 1200 units (flower pot on a window sill, small bucket at the back door, a bottle on the sidewalk…), while medium props could do with 1400-1800 range (a shrub, a power box on the wall, an antenna on the roof, wood plank, gutter pipe, fire hydrant…).
    Be very careful though not to prematurely fade critical props used for cover or game tactics (car in the middle of the street, sandbags, stack of crates, dumpster on the sidewalk…).
    Cheap assets
    Many people forget about this technique which is more than needed when it comes to open maps that tend to have larger average PVS than traditional maps.
    I showcased in a previous article of mine the fps cost of cheap and expensive assets (Source FPS Cost of Cheap and Expensive Assets).
    Get in the habit of using the low-poly model version as well as the cheap texture version in the distant non-playable areas and the high unreachable areas where players won’t have much of close contact with the environment. Potential candidates could include a distant field, the unreachable opposite bank of a river, a garden behind hedges/walls, high rooftops, the 3D sky…).
    Fog/Far-z clip plane
    This technique, when correctly used, can provide a big boost to your frame rate as parts of the world beyond the opaque fog won’t be rendered at all.
    For this technique to work properly, your map should have a foggy/rainy/stormy/dusty/hazy/night setting (use as applicable) where a fully opaque fog won’t appear out of place. Obviously, if your map takes place in a sunny and clear day, this technique won’t work much and it will look inappropriate.
    Using this is simple: For example, if your map is set in a rainy and foggy day, you just need to set the fog end distance while having its density set to 1. You will then set the far-z clip plane to something slightly higher than the maximum fog distance (if the fog end distance is 8000 units for example, the far-z could be set to 8200).
    3D skybox
    This is another good technique to reduce engine overhead and the cost of rendering.  
    It is true that the 3D sky is used to expand the limits of your level and decorate its surrounding, however, since it is built at 1/16 scale (and expanded in-game), it is also a nice way to decrease rendering costs. Use this to your own advantage and relocate assets in the non-playable areas with limited player interaction to the 3D sky.
    One thing to keep in mind though, the 3D sky’s visleaf is rendered at all times on top of the PVS in the playable area. Do not go overboard and make an extra complex, highly expensive 3D sky or you would be defeating the purpose of this optimization technique.
    Occluders
    You thought I forgot about occluders? Not a chance as these are the big guns when it comes to large open maps with little world brushes to use for other optimization techniques.
    Let’s clear one thing first; if your map is made mostly of brushwork and displacements with little to no props, then there is absolutely no need to resort to occluders as they’d be totally useless in this case. Only when the map is loaded with models and props in an open setup with little regular world brushes that occluders come to play in force.
    To place occluders, you would search for areas where these occluders could make the most impact (low fps, high traffic, props abundance) since they run in real time and are expensive, otherwise their cost would outweigh their benefit in terms of frame rate variation.
    Remember that occluders rely on the player’s position and field of view relative to the occluder to calculate what gets culled. You need to place them in a way to maximize the number of props to be culled behind them when the player stands in front of these occluders.
    Let’s see some examples.

    We go back to our famous top down diagram; the occluder is dark blue placed on the left wall of the large house while the little black stars represent various props and models. The 2 diagonal black lines denote the player’s FOV relative to the occluder. Anything behind the occluder and within the view frustum will be culled.
    That’s nice; we are able to cull 4 props but is it enough? It is not optimal as we can still do better. What if we move the occluder to the right wall of the house?

    Much better if you ask me. 5 additional props were added to the culling process meaning less overhead and fewer resources to render for the engine. That is why I said earlier it is all about maximizing the impact of the occluder by placing it in a way relative to the player’s position that maximizes the number of culled models.
    Here’s another example (still top down view).

    The player has moved to the middle of the central street, and beyond that L-shaped house is an open field with a lot of props scattered around. One way to implement occluders is as showcased in the above diagram. Notice how I arranged 2 perpendicular occluders along the walls for the maximum occlusion effect as all of these props in the field are not rendered from that player location.
    Another way to arrange occluders in this case would be diagonally across the L-shaped house (split into 2 or 3 occluders if needed to accommodate the nearby geometry; they can be floating without the need to seal an area).
    If you’re feeling brave enough (you should be after reaching this far in this article), you could also add an extra occluder along the wall of the house to the left of the L-shaped house to further enhance the view frustum occlusion effect and cover more props in the field.
    The most common places to add occluders in open maps include a displacement hill that separates parts of the map, a hedge that stands between a street and a field full of props, a floating wall between a house garden and the street, the walls of a large house, the walls of a tall building, a ceiling when it separates multiple levels…
    To read more about occluders placement and cost, please consult my article Practical guide on occluders placement
    In conclusion
    The foundation of optimization in Source engine will be the same whether it is a traditional map or an open one. You will heavily rely on func_detail, nodraw, displacement, props… to achieve your goals but it is the way you use these tools in an open map that makes all the difference.
    One might get away with being a bit sloppy with optimization in a traditional map, however, make no mistake that an open map won’t be any forgiving if you decide to skip a beat in your optimization system.
    Talking about different open maps and formulating varying optimization systems for them could fill articles; I hope this article has shed enough light on the open maps optimization approach to let you easily design a system for your own map.
  5. Like
    Sprony reacted to Alf-Life for an article, Creative Airlocking: streaming in action games   
    Creative Airlocking: streaming in action games
    This article will discuss the loading and unloading of areas in linear single-player action titles, and look at contemporary examples of how the best games mask these so they appear seamless.
    Background
    When designing levels, Level Designers and Environment Artists must consider that their assets all have to fit within memory at once. While older action games like Wolfenstein 3-D and Doom would load the entire level with a Loading Screen at the start of each map, games like Half-Life started a trend of loading smaller sections gradually so they could squeeze in more detail and also provide a more seamless experience for players, making the game feel like one long adventure.
    At the time, going from one space to the next in Half-Life resulted in a seconds-long hitch with the word “Loading” on screen. There was no warning that it was going to happen, although Valve’s Level Designers oftenplaced these level transitions in smart places; usually down-time between combat and in a natural chokepoint. In later years, with faster computers, these load times decreased and are now almost seamless.

    Half-Life displays a small loading message when transitioning between levels.
    Currently, blockbuster series like Gears of War and Uncharted provide truly seamless transitions. After one long initial load for a new chapter with a completely new location (with new art) – sometimes masked behind a pre-rendered movie – “buffer” Streaming Sections are used, in which the previous area is unloaded, and the next loaded, on the fly. Since a lot of the globally-used entities are already loaded, and the environment is usually the same, assets can be shared, which can reduce these transition load times to much less than the initial level load.
    Essentially, these games take the smaller loading bar/screen of a more continuously-laid-out game like Half-Life, Portal 2 or Fallout 4 and make the player spend that time in the game world. If done creatively, players won’t even notice it. They might even enjoy the down-time if it’s well-paced, like The Last of Us where it can be spent on a thought-provoking puzzle or with the characters discussing something interesting.
    Overview
    Most action games budget out large areas, and then connect those with these smaller Streaming Sections.
     

    Section (A) is a huge space with lots of combat, Section (C) is another. Players in Streaming Section (B) can’t see into both (A) and (C) at once. Section (B) is where Section (A) is dropped from memory and (C) starts to load in. Section (A) being dropped shouldn’t happen in view of the player, and unless the game supports backtracking it is wise to place a back-gate to stop players returning, for maximum efficiency. As soon as Section (A) has been dropped, Section (C) can start loading in. It must have been loaded by the time the player exits Section (B), so it is also wise to front-gate players in case they rush through.
    The best way to think of a Streaming Section is as an airlock; the “door” behind the player is locked, the next area is loaded, and the “door” ahead opens. Ideally, these sections aren’t literal airlocks but instead nicely-disguised puzzles or narrative spaces between the action.
    Back-gating, and Unloading
    Back-gating, as the term suggests, is when the player is prevented from returning to a previous area. The ‘gate’ behind them is closed, in a lot of cases locked. This doesn’t have to be a literal gate or door, though. A ceiling can collapse causing debris to block the path behind the player, the player can fall through the floor and not be able to climb back up, they can pass through a one-way portal and not get back.
    Back-gating after entering the Streaming Section is usually done around a corner where the player can’t see Section (A) being unloaded.
    One-way animations are the main manifestation of these in modern action titles. Think of how many doorways your player character has held open, only to have it collapse behind them. The level section behind that door is now being unloaded, to make space in memory for the next large section. In co-op games, these animated interactions are a great way to bring players back together so that Player 2 isn’t left behind, only to fall through the world, in the section that is just about to be unloaded!

    The Last of Us has a huge variety of bespoke, painstakingly-animated back-gates.
    A cut-scene can also serve as a good back-gate, as long as it makes sense in the context and/or story so as to not feel tacked on, and is within development budget!
    One-way drop-downs are also a great and less flow-breaking back-gate. If the L-shaped area just before the drop-down can be kept in memory, as soon as the player drops down a ledge they can never climb back up, the previous area can be unloaded. The only down-sides to this softer back-gate are that they can feel contrived unless the game’s art and world can support it (terrain and collapsed structures are great for this), and that co-op players may have to be teleported to the dropping player so that they don’t fall through the world when Section (A) is unloaded.
    Slowing the player down, and Loading
    As Streaming Sections are usually connectors between two larger areas, they naturally make for slower-paced breaks in the action. Since Section (C) is being loaded in, slowing the player down in (B) – either literally as with Gears of War’s infamous forced walks or cerebrally with light puzzle gameplay – can be more efficient and interesting than just making a large footprint which has to cater for a player, say, sprinting for 30 seconds.

    Even when rushed, this plank puzzle in The Last of Us takes time and offers a nice respite.
    “Popcorn” encounters with just 1-2 enemies can be a good trick to allow loading to finish and slow players down and prevent them from simply rushing through a short Streaming Section. They also keep players on their toes and vary the flow from, for example, combat to puzzle to combat.
    Interactive Objects such as the slow-turning valves in Killzone 2 and the Gears of War games can also buy some loading time, as can environmental obstacles such as jumps or mantles or animations where the player’s buddy looks around for, and then finds, a ladder to kick down for the player to climb (also a good front-gate).

    Interactions like the valve in Gears of War slows players down and can also act as a front-gate.
    These approaches can also be combined in ways that fit the feel of the game, such as a Grub locking the player in a room and flooding it with frightening enemies in the first Gears of War game.
    Batman Arkham Asylum does a great job with additional ‘softer’ methods of slowing players down by playing a captivating well-acted taunt on a monitor from The Joker, or by encouraging exploration with The Riddler’s location-specific riddles or any number of collectibles.
    Front-gating, and Loaded
    As with Back-gates, front-gates are quite self-explanatory – the exit to the area the player is currently in is locked until certain conditions, such as all the enemies in the room being dead or the next area having loaded in, are met. Again, this doesn’t have to be a literal gate or door, just an obstacle in the world that can change its state from closed and locked to open.
    A lot of games from the Call of Duty series to Killzone 2 to The Last of Us extensively use friendly characters to unblock a front-gate; chain-link fences are cut through, doors are kicked open, wooden beams are lifted. New waves of enemies can also open a front-gate for the player and offer the bonus in that noisy, gun-firing AI attract players, like carrots on a stick, to the newly-opened exit. Many action games have excellent examples of enemies blow-torching open a door to get in or a huge monster bursting in through a wall; not only are these cool enemy entrances, but oftentimes their new unorthodox entrance-ways become cool exits, sign-posted by their un-gating event.

    Previously-locked doors in Halo often flash and make noise when opened by new enemies.
    Not all games front-gate the exits of their Streaming Sections because the time needed to load a Section (C) can usually be accurately gauged, and the acceptable fallback is a slight hitch. However, front-gates do provide that extra failsafe to ensure the next area is loaded before leaving a Streaming Section – in this case, a player with a scratched disk or corrupted file could see out of the world, at best, or get stuck or fall out of the world, at worst (though it could be argued someone with a scratch or corrupted files might see worse issues regardless).
    The biggest issue here is that front-gates need to fit the game or the level art – neat doorways or bottlenecks aren’t always possible. The other big issue is repetition; if a specific door interaction animation is always used, the game needs to provide a lot of variety in that animation!
    One trick that can be used to alleviate repetition, however, is if the front-gate is out of sight near the end of the Streaming Section (A). A check can be done to see if Section (C) has loaded, and if it has, the door can potentially be pre-opened saving the player another potentially-repetitive interaction but also holding as a true front-gate if a player does rush through.
    Batman Arkham Asylum had an interesting front-gate in the penitentiary sections; a security camera scanned Batman once before opening the door. Given the backtracking-heavy structure of the game, when racing through at full pelt, if the next area had not finished loading, the camera would loop the camera’s scanning animation. This is a great compromise because the camera scan completely fits the fiction of the world, and an extra scan animation would probably go unnoticed by many players.

    Batman Arkham Asylum’s Penitentiary’s doors only open when loading is complete.
    Conclusion
    In most linear action games, keeping the player immersed in the world is preferable to seeing a loading screen. If developers can create interesting activities, take advantage of slower pacing through narrative, or just make smart use of assets and an interesting space to traverse, Streaming Sections can be part of the world and not feel like generic winding corridors that stand out even to uninitiated players as padding.
    Copyright © Martin 'Alf-Life' Badowsky 2016
  6. Like
    Sprony reacted to Mapcore for an article, Day of Infamy Mapping Contest   
    Participants have from the 15th of September 2016 until Midnight (GMT) on the 22nd of December 2016 to create, test and upload an original or Day of Defeat inspired map for Day of Infamy (www.dayofinfamy.com)
     
     
     

     
    Prize Structure
     
    1st place
     
    $3,000 cash
    Map included officially in game
    Corsair Hardware
    Void Surround Sound Headphones
    Strafe Keyboard
    Katar Mouse
    M330 Mouse Pad
    All Wall Worm Source Modelling Tools
     
     
     
    2nd place
     
    $1,500 cash
    Corsair Hardware
    Strafe Keyboard
    Katar Mouse
    M330 Mouse Pad
    All Wall Worm Source Modelling Tools
     
    3rd place
     
    $1,000 cash
    Corsair Hardware
    Katar Mouse
    M330 Mouse Pad
    All Wall Worm Source Modelling Tools
     
    4th place
     
    $500 cash
    Corsair Hardware
    Katar Mouse
    M330 Mouse Pad
    All Wall Worm Source Modelling Tools
     
    (*All prizes are subject to participant eligibility. No cash value. The contest Organizers and Sponsors reserve the right to change or remove the prize structure at any point with or without reason.)
     
     
     

     
    Sub-Prizes
    In addition to the prizes stated above, GameBanana will also be offering a sub-prize for the best development blog, work in progress or tutorial created throughout the process. 
    This is an entirely optional part of the contest and is open to members of all communities.
    To enter simply create either a development blog / work in progress page OR a level design tutorial / guide for Day of Infamy on either GameBanana, MapCore or the Insurgency Forums.
    Entries must be uploaded on or before Midnight (GMT) on the 22nd of December 2016, and include “[DoI Contest]” in the title. Entries will be judged by members of the GameBanana team, as they appeared at the deadline.. No changes or updates are permitted during the judging phase.
     
    Rules and Frequently asks Questions
     
    The submission must be a playable map for the PC version of Day of Infamy.
    Remakes of existing maps are not allowed, however maps inspired by classic DoD maps are encouraged.
    Entries must be submitted to the Day of Infamy mapping contest section of BOTH GameBanana.com and the Steam Workshop before the deadline.
    Multiple entries are permitted, however submissions will be judged on individual quality rather than quantity.
    Team based entries are permitted, however the entrants will have to agree how to split any prizes awarded, prior to prize claim and dispatch.
    It is essential to thoroughly test your submission before the deadline as entries cannot be modified during the judging phase.
    Exceptions: Changes to the submission profile are permitted after the deadline, provided they are purely aesthetic and that the map file does not change. (E.g. Editing the description / screenshots)
    Maps that were under creation prior to the announcement of this contest can be entered, provided a completed version has not been released for public Download.
    All custom textures, models or code must be contained within the download file or embedded into the .bsp.
    Authors are free to share their content on any other websites or services they wish, however the file must remain free to download and play, without requiring membership or payment.
    If the submission is distributed on an external website or service, it must clearly state that the submission was created for the "GameBanana / MapCore Day of Infamy Mapping Contest 2016”.
    Authors must be able to accept cash payments via paypal and will be required to fill in a prize claim form prior to payment. Winners of hardware and physical products will also be required to provide a valid shipping address.
    Judges and individuals associated with organising this contest cannot enter or assist entrants.
    Entries must clearly state which game mode the level is designed for.

     
    Eligibility
     
    Participant eligibility: The “GameBanana / MapCore Day of Infamy Mapping Contest 2016” is open to any individual, or teams of individuals, provided they comply with the following:
    Participants may not be an employee of the “Organiser” or “Sponsors”.
    Participants may not have taken part in the preparation or announcement of this
    Contest.
    Participants may not be a direct relative, spouse, direct employee, or long term
    partner of any of the above definitions (a - c).
    Legal Age: This contest is open to any individual who meet the above “participant eligibility” criteria. In the event of participant who has not reached the legal age in his/her state winning one or more prizes defined below, he/she must provide contact details for the legal guardian who will claim the prize(s).
     
     
    Submitting
     
    TWO (2) copies of the map are required for this contest, and must be uploaded on or before the deadline. The primary version (used for judging) must be submitted to GameBanana.com and placed in the “Day of Infamy > Mapping Contest 2016” category.
     
    http://gamebanana.com/maps/cats/8989
     
    The second version must be uploaded to the Day of Infamy Steam Workshop
     
    http://steamcommunity.com/app/447820/workshop/
     
    No changes to the downloadable file can be made during the judging phase. Please remember to ensure that all relevant custom content is included, and that your map is thoroughly tested.
     
     
     

     
    Judging Criteria
     
    Maps will be judged by the developers at New World along with the staff at MapCore and GameBanana. Each map will be scored on the following categories, and given a total score out of 100.
    Gameplay (40 marks)
    Visuals (30 marks)
    Originality (15 marks)
    Performance / Optimization (15 marks)
  7. Like
    Sprony reacted to PeteEllis for an article, Creating a Single-Player Combat Space   
    This article is the first installment in a three-part article that looks at the considerations for creating a single-player combat space, using a walkthrough of the first battle in ‘Killzone Mercenary’ as a working example.
    Creating a Single-Player Combat Space Part 1
    This article will explain how to create a combat space for a single-player campaign, using my work on ‘Killzone Mercenary’ (hereon referred to as KZM) as an example.  There is already a fair amount of literature on the different methods you can use for creating a combat encounter, but I felt that none of it really discussed how to arrange the layout in closer detail, nor did they discuss where the different elements were appropriate.  In my early work I tried to jam in all the concepts for encounter design without fully understanding how they affected the player’s experience.  As strange as it sounds, I discovered there were times when it was better to restrict the number of elements being used to provide a much more focused and coherent experience; sometimes less is more. I will take you through an example to explain what I mean and how this can be the case.
    I will use the very first combat arena in KZM as it’s a small encounter where I can explain in depth what goes into even the most basic combat space. This encounter is a fight against assault troopers who are trying to stop the player from escaping the building and reaching the objective building; the ‘Halls of Justice’. I designed bigger encounters that featured many flanking opportunities and complex circular navigability but focusing on a simple encounter allows me to explain certain techniques in detail and where I purposely removed some elements to balance the difficulty and give the player different experiences.
    First of all I will explain two important aspects that must be considered for combat creation; AI metrics and weapon choice. I will then take you through a step by step walkthrough of this first encounter explaining in detail the reasons how it was designed and constructed for optimum player experience.
    Metrics
    The design mantra ‘form follows function’ should be the basis when creating an arena layout; that is that the arrangement of geometry should derive from its purpose. The arrangement should support the function not only of the style of experience you want to create (is it a tight corridor section with close quarters combat or an open space with multiple routes and options, for example) but it should also support the main element that makes up the combat encounter; the enemy AI.
    When considering the layout for the AI or non-player characters (NPCs) that will populate your environment you have to consider their metrics. These are the numerical values for how the NPCs move around and use the environment and the differences between various NPC enemy classes. This isn’t something people tend to talk about and so it can be easily forgotten or missed, yet it directly affects how your enemies will move and react.
    For example, in KZM the standard enemy NPC class were the Assault Troopers. These soldiers could be given patrols and animations to perform whilst they were in an ‘unalerted’ state, just like every other enemy class.  However, when they were in an alerted state their behavior changed so that they used cover points to move around the combat space. The maximum distance between cover points that an assault trooper would move was 10 meters. This meant that any cover point that was further away would not be considered, so we needed to make sure when creating combat spaces which used assault troopers that there were enough cover islands so they could move around. If there weren’t, the assault troopers would just stay in the same spot and could risk looking less intelligent.
    The assault troopers also tried to maintain a distance of 15m whilst they were trading shots with the player. The behavior was that if the player got closer than this range, but not so close that they were in melee combat distance (5m), the assault troopers would retreat to this mid-range distance of 15m. They would also never choose a cover position that was closer than 15m to the player, so when we created combat spaces we had to make sure that there was enough variety of cover positions in the >15m range.
    For the production of KZM we used the ‘Killzone 3’ engine and modified it for the PS Vita. In ‘Killzone 3’ the assault troopers picked their cover within a range that was further than 25m from the player, but we discovered that this was too great a distance for the enemy to still be clear and readable on the PS Vita screen. In our modified version of the KZ engine we had to reduce the combat distance to 15m, which meant that the original combat spaces we had created using the ‘Killzone 3’ metrics also needed adjusting in order for the NPCs to still work. It is an unfortunate truth that the game metrics, be it for the AI or otherwise, can change within a game’s development, which means that your combat arenas will also need to be adjusted.
    Weapon Consideration
    The metrics for both the player and enemy weapons were also considered. As this is the start of the game we can be more certain that the player is using the default starting weapons, at least on their first playthrough, before they have earned enough credits to buy a new arsenal. Therefore, the combat distances of enemy placement were considered to be comfortably within range for the player’s assault rifle.
    The enemy assault trooper archetype used assault rifles that were balanced to have a short range of <10m, and a long range of >20m. This meant that their behavior was to try and keep the player within these ranges and would thus move around the environment to try and maintain this. This was important to consider when building the environment so we could determine the amount of movement the troopers were likely to perform. This is important for balancing difficulty as a moving target is harder to hit.
    Foreshadowing
    As this was the opening of the game, we wanted to make it compelling in order to grasp and hold the player’s attention; we wanted to start with a bang. If the first lot of encounters in the game only included assault troopers with nothing else to differentiate them it may not have been so compelling. Therefore, we decided to include a significant Killzone enemy vehicle; the Helghast Dropship.  Of course it would have been far too difficult to fight a Dropship at this point in the game, so instead it was used as an impressive introduction of enemies into the arena using the rappel ropes from the ship itself.
    Using the Dropship at the end of the encounter, it was important to foreshadow its existence prior to its introduction. The level’s opening cut scene introduces the buddy character, Ivanov, and the narrative that he and the player are infiltrating the building whilst trying to avoid the searching eye of the Dropship.

    The foreshadowing of the Helghast Dropship
    Once the player has control they make their way up a flight of stairs learning how the movement works and feels whilst being in a safe environment. Once at the top of the stairs they enter through a door where they are introduced to the new melee attack which utilizes the touch screen on the PS Vita.
    First Wave
    After a successful melee attack the player enters through the door to the first combat area. The composition shows the exit of the arena in the top left third of the frame.  Central to the player’s view is where the first pair of enemies enter from, ensuring that their arrival is not missed.

    The exit to the arena is in the top left section of the opening composition
    Starting on the level above, the two assault troopers vault down into the gameplay space, to give their presence a more dramatic opening than merely walking in through a door. Their animation and movement also ensures that they catch the player’s eye if they aren’t looking in the desired direction. These vault down animations were 4m high, the standard height for a room in KZM, which meant this was a metric we had for the balcony and floor above.

    Two assault troopers drop into the environment from the level above
    Once the assault troopers had landed in the arena they became a lot less mobile than their standard behavior so that they were easier to shoot because, as previously mentioned, a moving target is harder to hit.  As this is the very first section of combat the player encounters in the game it was important to ensure that it was easy to get to grips with.
    None of the enemies were waypoint/navmesh restricted to certain areas in order to limit their movement as this could potentially lead to NPCs not behaving correctly under differing circumstances. In fact, there were only a very select few instances where we waypoint/navmesh restricted any characters in the whole of KZM; we instead crafted the environments to support the behavior we wanted from the NPCs. This was important for consistency; if you restrict areas and zones for the AI then they won’t behave consistently with what the player has learnt. This would lead to the player not being able to predict their behavior and therefore won’t be able to plan how to attack effectively.
    Here, in this first section, the two assault troopers took cover at two upright pillars of high cover and an overturned sofa of low cover. They didn’t tend to venture further into the environment unless the player had for some reason retreated to the edges of the level. The reason they wouldn’t move and advance on, or flank the player was because the other cover options in front of them were within 15m of where the player was likely to be stood. This caused them to be more static and thus easier targets to allow the player to get to grips with the shooting mechanics.
    I also chose to mainly use higher cover here so that when the enemies lean out of cover their shooting positions allowed the player to shoot their full body, which was a bigger target than when they poked their heads over the top of the low cover positions.
    Low cover positions are great for seeing the enemies move around and change their positions, as the tops of their helmets are visible over the top of the cover. Enemies are much harder to track when they use high cover as it breaks line of sight to them, so this is usually the harder option. However, as they have restricted cover positions and weren’t moving around in this specific situation, it was the best option to use for less difficulty.
    First Combat Front
    A ‘front’ is the perceived line or boundary that faces the enemy and is the nearest position which combat should be engaged from. The ‘fronts’ used here create boundaries between the two sides; a front for the player and the buddy character and an opposing front for the two assault troopers. This was the simplest setup to start the player off with and it only required two sets of cover points as I didn’t want to encourage the enemy to flank the player at this stage. This section of the encounter only needed these few pieces of cover (in the image below) in order to work and the other pieces of cover were actually for further waves of combat.

    The two fronts and the cover setups providing it
    It’s also worth noting that the cover object which the buddy character crouches behind is positioned further forward than the arrangement of cover that the player is drawn to. This is so that the buddy character is in the player’s view so they always see the buddy’s actions and involvement. It wouldn’t be optimal to have a buddy NPC that the player rarely saw. The buddy is also kept near to the player in order to maintain a close relationship and the feeling of being a team. Empathy is directly related to proximity between characters, so if the buddy was further away from the player they would experience a much more detached feeling towards them.
    Continue to part 2 or go back to the homepage. 
    Index:
    Creating a Single-Player Combat Space Part 1
    Creating a Single-Player Combat Space Part 2
    Creating a Single-Player Combat Space Part 3
    Copyright ©Peter Ellis 2016. Killzone™ Mercenary is the property of Sony Computer Entertainment © 2013. Killzone is a trademark of Sony Entertainment Europe. Killzone: Mercenary is a trademark of Sony Computer Entertainment America LLC.
  8. Like
    Sprony reacted to will2k for an article, Source FPS Cost of Cheap and Expensive Assets   
    A new question?
    After successfully solving the eternal mystery of func_detail vs. displacement in my last article (here), I was contacted by the High Council of Source Engine Optimization. Apparently, there seems to be another enigma to be uncovered and a major question to be answered.
    What is the fps cost of cheap and expensive assets in Source engine? Is there a significant difference between the two in terms of frame rate? (that’s 2 questions but I’ll let this one slide)
    The study
    As with the last article, this one is also going to be a short but sweet article; fewer words, more numbers and screenshots. The systematic approach is also going to be very similar: 2 similar test maps where one contains expensive assets while the other has cheap versions of these assets. The assets will be the same and will be located in the same locations in both test maps.
    The recent assets added with the new de_nuke update in CSGO will be the perfect candidates for our study as Valve made most of these in cheap and expensive versions. For props, the expensive version is high-poly models while the cheap one is low-poly. For textures, the expensive version gets a normal map (up to 2), specular map, advanced reflections, detail map, and Phong shading in some cases; the cheap version is basically the diffuse map with the occasional detail map.
    I will record the localized fps in both versions and compare, then draw conclusions that will hopefully answer the High Council’s question(s).
    The testbeds
    The first map to test is the one made of cheap assets. It’s basically a simple map consisting of 4 walls and a floor on which are spread several props and textured blocks at predetermined locations. Textures are mostly concrete while props contain crates, cars, pipes, wires, doors, and vents.

    The fps recorded is 330 fps. The expensive version is exactly the same but with props replaced with their high poly versions and textures swapped with their expensive versions.

    The fps is now 286 fps; interesting. All right, let me call the High Council to relay the news.
    Hold your horses right there. We are men of Science and you know that…yes, yes, I know, one map is not enough to draw conclusions.
    I’m going to take this map and quadruple it, in area and in content, and test again (Nobel prize here I come). The new map will have 4 times the amount of props and textured brushes (the same ones of the initial map cloned into the new areas) as well as having its total area increased fourfold. We start with the cheap version that we will refer to as test map (4x).

    The fps decreased to 279 (from the 330 in the simple cheap map) due to the extra content that the engine has to render. Our main point of concern would still be to compare this version against the expensive one.
    You know the drill by now; we will also create the (4x) expensive version.

    The fps is 229. The decrease in (4x) version is more or less in line with the one in the simple version. Let’s recap in a table for easier viewing.

    As you can see, the fps dropped 44 fps in the simple version and 50 fps in the 4x version, between the cheap and expensive maps respectively.
    We can draw 2 conclusions from the above table:
    There is a significant drop between the cheap and expensive version (44/50fps), and there is also a substantial drop within the same version (51/57fps) when you add much more content that is all visible in the PVS.
    These results can shed some light on the latest update of de_nuke where the overall fps is lower than the rest of the stock maps in CSGO. The high amount of props/details that can be seen/rendered from one location coupled with the expensive assets in the playable area contribute to further decrease in the overall fps in that map (in addition to the open skybox/layout). I have tackled a revised optimization system for de_nuke in a topic of mine last month that can be read here (https://www.mapcore.org/topic/19909-de_nuke-a-revised-optimization-system/)
    As a bonus, I’ll throw in the compile times of the above maps so you can witness the effect of cheap vs. expensive, and the additional content in (4x) versions, on the compile time, especially on vrad since it will mostly be affected by the extra faces in the high poly models and the additional vmt switches in the expensive materials.

    You can clearly see that vrad times increased considerably between the cheap and the expensive versions, as well as within the same version when we quadrupled the area/content.
    Now if you’ll excuse me, I still have a phone call to make; the grand council woman cannot wait any longer.
    The final cost
    Expensive assets bring visual eye candy to the map in hand which is a necessity in today’s ever-growing and continuously pushed graphics boundaries. Relying on low poly models and cheap textures won’t fare well on the visual fidelity front. However, expensive assets come at a cost of taxing the rendering engine and decreasing the overall fps in the map.
    These expensive assets are a requisite if you want your map to shine (pun intended) but one has to be careful not to overuse them. Use them wisely in the playable area and resort to cheap versions when decorating the non-playable areas of the map or any place that the player cannot see up close to discern the difference.
     
  9. Like
    Sprony reacted to will2k for an article, Displacement Vs. Func_detail - A comparative fps study   
    What is the question?
    Ever since the dawn of humanity, this question was the center of a colossal debate. Greek and Roman philosophers tried to solve it to no avail. Alchemists in the Middle Ages gave it a go and failed miserably. Even Industrial Age scientists touched on the subject with no big breakthrough.
    Luckily for everyone, I am here today to answer this question and put an end to a centuries-long argument: What is better in terms of fps, func_detail or displacement, in the context of the Source engine? If you were expecting an existential question, I am deeply sorry to disappoint you but hey, life is full of disappointment.
    The study
    This is going to be a short but sweet article; fewer words, more numbers and screenshots. The study is pretty straightforward and systematic. To make things fair and square, I will create 2 exactly identical test maps: In one, everything will be turned to func_detail while the other will have everything switched to displacements. I will then proceed to record the localized fps in these maps from a preset location and compare. Pretty simple, isn’t it? Well, it should be as the whole purpose of this study is to compare func_detail vs. displacement in absolute terms while keeping all other parameters constant.
    The cases
    The first map to test is the one made of displacements. Here is the screenshot showcasing the fps.

    The map itself is very simple consisting of 7 identical houses placed at predetermined locations and surrounded by 4 walls. The houses are detailed enough to put some slight pressure on the rendering engine. For the skeptics among you, here is a wireframe in-game shot to show that everything is made of displacements.

    To refresh your memories, in Source engine wireframe mode, green is displacements, pink is brushes (world, func_detail, brush entity, etc…), blue is props, and yellow is decals/overlays. The recorded fps in this map is 289. We now move to the second map, the func_detail version to check how the frame rate is faring. Here is the awaited screenshot.

    Surprise, surprise. The fps is 330, much higher than the displacement version. Here’s the wireframe shot to put your mind at ease.

    Honestly, I was thinking the figures would be more on par as the engine handles both details and displacements pretty well, but in the end, Source is about BSP so I guess brushes would get a slightly preferential treatment over polygon meshes (conspiracy theory ensues).
    The question that forces itself now is: Should we rely solely on func_detail in our maps? Of course not. Both func_detail and displacement have their advantages and inconveniences and leaning exclusively on one will inevitably lead you to a dead end. The best thing to do is get the best of both worlds by using them together.
    In our little test map, how about we mix things up in a third version: let us make the house walls out of displacements while having the doors, windows, frames, and roofs made of func_detail. Incoming screenshot, brace yourselves.

    Much better, isn’t it? We have now 311 fps, a very nice middle ground between the 330 fps of func_detail and the not-so-bad 289 fps of displacements. The mandatory wireframe shot follows.

    So, what can we learn from all this? Well, apart from the obvious places where displacements are mandatory for the organic mesh sculpting (rock formations, cliffs, bumpy/twisted roads…), it is a good idea to spread some more displacements around your map to alleviate the total brush-count that you will inevitably hit the maximum in a highly detailed map. Your fps will remain high and you will enjoy the margin to keep adding structures to your map without fear of reaching the maximum allowed total brushes (substituting brushes with models/props is another viable solution that is not in the scope of this article).
    I’m a man of science and I know that one example is not enough to draw conclusions. That’s fine, I have a second test map to investigate what we established before. The concept of having 2 identical maps is still the same, however, this time, we will spice things up by adding some static/physics props and some decals here and there. We will start with the displacement version.

    230 fps, not too shabby. Let’s check another angle.

    220 fps, more or less, on the same level as the previous number. Now for the wireframe shot.

    The tree cards in the background are func_brush in both maps (the detail and displacement versions), so it’s a level playing field in this case.
    Now for the moment of truth you all have been waiting for: will the detail version have better fps to support my earlier findings or will I be publicly embarrassing myself? A screenshot to the rescue.

    I knew I was right, never breaking a sweat (apart from the nervous cold sweat I just wiped off my forehead). 255 fps for the first location A. Let’s check the other angle or location B.

    250 fps. Bam, sweet victory…sorry I got carried away a bit. Ahem…Let’s get back to being scientific, shall we. Here’s the wireframe proof.

    Let’s recap all the action and numbers in a nicely formatted table.

    You can notice the fps gap between the func_detail and displacement versions in both test maps whereas the “mixed” version considerably narrowed this gap. The numbers have spoken.
    The bottom line
    The bottom line is, if you rely only on func_detail, you will hit the maximum brush-count allowed in Source and severely limit your map and creativity. You might also run into T-junction issues as well as parts of your geometry flickering and disappearing from certain angles in densely func_detail’ed areas.
    On the other side, if you stick to displacements alone, then you will have lower fps than a func_detail map version. You might also run into visible seams and un-sewn displacement issues.
    Having a clever distribution of both func_detail and displacement in your map is the way to go. You will have high fps, better lighting around the edges, and organic sculpting while not getting anywhere near the total brush limit; the best of both worlds.
     
  10. Like
    Sprony reacted to will2k for an article, Viability of Hostage Rescue Scenario in CS:GO   
    This level design article is about the past and the present of the hostage rescue mode in Counter-Strike. Showcasing the inherent issues that accompanied the scenario allowing the bomb/defuse mode to gain traction and popularity. This article will also present what can be done, level design wise, to remedy some of the shortfalls and allow the scenario to be viable.
    A historical background
    Counter-Strike officially started life in June 1999 with the release of beta 1, and it shipped with four maps, that’s right, four whole maps. They were all hostage rescue maps and the prefix used for these maps was cs_ as opposed to the standard deathmatch maps starting with dm_. This prefix was an abbreviation of the game’s name (Counter-Strike) which hints to this hostage-rescue scenario being the only one in the minds of Gooseman and Cliffe, the creators of CS, at the time of launch.
    Fast forward a couple of months, beta 4 rolled out in November 1999 bringing to the table a new scenario, bomb defuse. The new maps carried the prefix de_ and while one would think that the hostage rescue maps would be switched to hr_ prefix, they kept the same prefix which started to be referred to as the “Classic Scenario”. Counter-Strike was built on hostage rescue scenario.
    I started playing CS in beta 2 in August 1999 (I totally missed beta 1, screw me) and maps like Assault and Siege were all the rage at LAN parties. The nearest LAN/internet café was a 5-minute drive from my place, and LAN parties with friends used to be a blast full of shouting, cursing, bluffing, noob-trashing; the standard menu for a CS session. Good times.
    Siege, the oldest CS map (beta 1), and Assault (beta 1.1) were the epitome of the game. You had to dive in as a CT deep into the T stronghold to rescue the hostages and bring them back to safety. These maps were the most played on LANs and embodied the style of early CS gameplay. At the LAN place where I used to wage my virtual battles, Assault equaled CS, literally. A fun fact is that when Dust came out, I started a LAN session with this map and everyone in the room shouted at me: "What the hell is this? We wanna play CS!" For my friends, Assault was CS.
    However, those rosy days for hostage rescue began to turn into grim grey when folks started playing bomb defuse scenario and realized how…fun it was. A map like Dust almost single-handedly pushed the scenario into higher ground with its bright environment/textures, clear/wide paths and its ease of use and noob-friendliness. A year later, around Summer 2000, Counter-Strike was now equivalent to Dust for my friends.
    How did this happen? What went wrong?
    Inherent flaws of hostage rescue
    Hostage rescue is a very delicate and tough scenario for law enforcement operators in the real world. It puts the assailing team at a great disadvantage against heavily-armed barricaded hostage-takers who are probably using civilian hostages as human shields and as a bargaining chip for a later escape.
    As you can deduce, transferring this scenario as realistically as possible into the game will not fare well, and this disadvantage will carry on for the CT team. The problem is only exacerbated when you add the more or less “flawed” game mechanics to the scenario. This is exactly what went wrong with hostage rescue scenario in case you are still wondering about the rhetoric questions at the end of the historical background introduction. The popularity of cs_ scenario started dwindling and the rise of the bomb/defuse scenario only made things worse.
    Almost all the early cs_ maps featured a relatively tiny hostage zone/room having one entryway usually sealed with closed doors that the CT must open to get access inside. This room was typically located behind T spawn which made the area a camping ground and made camping that zone an obvious and rewarding tactic for Ts. The doors having to be manually opened with a loudening sound made things worse and negated any surprise or sneaky rush towards the hostages. A classic example is the hostage area and T spawn in cs_assault.

    I dare not think of how many Ts are camping behind those doors
    Another equally important camp fest occurred in the hostage rescue zone. Early designs made the rescue zone relatively small with one or two access paths that can be defended from one location. If the CT team manages to reach the hostages and rescue them, the Ts could easily fall back to the rescue zone to camp and patiently wait for the CTs to show up. The hostage rescue zone in cs_italy is a nice example to showcase how one T could camp in the southernmost spot in the zone allowing him to monitor both entryways, from market and from wine cellar, within the same field of view. CT slaughter was almost a guaranteed thing to happen.

    A CT will show up any second now; imminent slaughter commencing in ...3, 2, 1
    A third flaw was the hostages themselves. They were difficult to escort and protect and were easily stuck or left behind in various parts of the maps between their initial hostage zone and the final rescue zone. I lost count of how many times I rescued the hostages and ran as fast as I could to the rescue zone, reaching it with a big grin on my face only to turn around and find out that only one or two of the four hostages actually followed me; the others were randomly stuck on a ladder, door frame, window ledge, vent, chair, table…I could go on but my blood is starting to boil just thinking of this.
    To add insult to injury, hostages could also be killed or “stolen” for ultimate trolling. When Ts were stacked on money, they could easily kill all the hostages, basically turning the round to a frustrating terrorist hunt for CTs. In early CS versions, a CT teammate could press the “use” key on a hostage that you were already escorting to steal it. This would leave you helplessly wondering where the hell did the 4th hostage go in case you did not catch the teammate performing the action.
    Lastly, maps themselves contributed to the issues that were piling up against hostage rescue scenario. If you are a CS veteran and you were around the early betas in 1999, you would most certainly remember how quickly hostage rescue maps were pruned from one beta to another; some maps even had a life span of 1 week before being discarded out of the official roster. Most of these early cs maps featured dark, nightly environments that were unfriendly to both newcomers and established players. Other maps had a confusing-as-hell labyrinthine layout that confused even the most great-sense-of-direction players, and made remembering paths nigh impossible. Some of these maps had narrow twisted paths and choke points, vents, and ladders that not only frustrated players (especially CTs) but also made rescuing and escorting the hostages more of wishful thinking. The icing on the cake was the different gimmicks introduced in some maps that made a frustrating gameplay/layout even more annoying: some maps had a machine gun nest in T spawn allowing Ts to master and perfect the art of CT slaughtering while other maps had flammable drums that could be shot and blasted for the ultimate carnage right next to the hostage zone. Good example maps include cs_prison, cs_bunker, cs_iraq, cs_hideout, cs_facility, cs_desert, among many others.
    Meanwhile, bomb/defuse scenario was gaining grounds at an increased rate and before too long, hostage rescue was relegated to a distant second place in terms of popularity among players and level designers alike.
    As a small experiment, I tallied the number of custom hostage and defuse maps submitted on Gamebanana for Counter-Strike Source and Global Offensive. For CS:GO, there are 761 de_ maps against 157 hostage maps while for CS:S, the figures are 4060 de_ for 1244 cs_ maps. The disparity is rather meaningful as the ratio in CS:GO is 4.85:1 while for CS:S the number is 3.26:1. This means that for each hostage map in CS:GO there are almost five maps of bomb/defuse whereas this number drops slightly to almost three maps for CS:S. With CS:GO putting extra focus on competitive gameplay, this ratio is bound to further grow widening the rift between bomb/defuse and hostage rescue maps.
    That’s it? Is it done for cs_ maps? Shall we prepare the obituary or is there a magical solution to breathe some fire and life in them?
    Solutions for viability
    There is a magical solution that involves you transferring a large sum of cash to my bank account, then my “guys” will contact your “guys” to deliver the “solution”. The drop point will be at the…apparently, there has been a mix-up, this is for another “deal” …nervous chuckle.
    Seriously though, while there is no magical solution that will lift hostage rescue onto the rainbow, there are a couple of things that level designers can do to start injecting some momentum to the scenario. Luckily for us, Valve has already paved the way (so these “Volvo pls fix pls” do work after all?). In March 2013, Valve introduced a major CS:GO update that completely overhauled the hostage rescue scenario mechanics and introduced cs_militia as well. The update was a game changer and a much needed tweak towards a better hostage rescue gamemode.
    We now have two hostages instead of four, and the CTs only need to rescue one of them to win the round. Moreover, the hostage does not stupidly follow the CT but instead is carried on the CT’s shoulders. Obviously the movement speed of the CT carrying the hostage is decreased but this “inconvenience” is countered with added bonus round time and the fact that the CT doesn’t have to glance over his shoulders every five seconds to make sure the hostages are still following him (this kind of distraction can prove fatal to the CT escorting the hostages). The hostages’ spawn location is randomized and can be controlled by the level designer. A nice change is that hostages don’t die anymore thus cutting any chance of Ts trolling (you still lose money when you shoot a hostage – shooting a hostage is pretty pointless now akin to shooting yourself in the foot).
    This is all good news if you ask me; hostage rescue is on the right path to become popular and viable again. With Valve doing the first half of the change, level designers have the duty to continue with the second half.
    Hostage defuse?
    As a first suggested solution, let us start treating hostage rescue as bomb defuse. Let’s be honest, bomb defuse works really well, so why not transfer this “experience” into hostage rescue. What we can do is to have a hostage rescue map’s layout mimic one of bomb defuse – that is have two hostage zones that are similarly placed as two bomb sites. We need to start treating a hostage zone like a bomb site with all accompanying techniques of rushing, pushing, faking, peeking, holding, smoking, flashing, etc. The good thing about this is that whatever knowledge, skill, and layout awareness that players have acquired from defuse scenarios will transfer effortlessly to the hostage rescue scenario; you do not need to learn new tactics and strategies. The roles will be inversed: instead of Ts rushing bomb sites and CTs defending, CTs will push hostage zones and Ts will defend and rotate.  
    Sounds logical, right? Some people might argue that having 2 separate hostage zones is not “realistic” and my answer is Counter-Strike was never about realism (carrying and running around with a 7 kg (15.5 lb), 1.2 m (47.2 inch) AWP sniper rifle with 25x telescopic sight, quickscoping and headshotting opponents is the epitome of “realism”). If you want a realistic hostage rescue scenario, then you are better off playing the original Rainbow Six Rogue Spear and SWAT 3 from 1999, or the more recent ARMA and Insurgency for a realistic military setting. I practice what I preach and I already implemented this technique in my last map “cs_calm”. The map was a remake of my CS 1.5 map from 2003 and obviously I made the “mistake” at that time to follow the trend set by official maps of having one hostage zone right behind T spawn. A playtest on Reddit CS:GO servers back in March 2015 confirmed that this setup won’t work well as Ts will inevitably abuse the hostage zone.
    I made some radical layout changes towards T spawn and hostage zone and created two new hostage zones on the upper and lower levels of the map that are connected by a back hallway to allow quick rotations (in addition to the one through T spawn). Obviously, there is no direct line of sight between hostage zones to prevent 1-zone camping. Ts have absolutely no incentive to camp one zone as CTs can reach the other one, rescue the hostage and head back to the rescue zone without being spotted from the other zone. CTs actually have a chance of winning the round by rescuing the hostages.
    I like to believe the new layout worked well. Only time and more hostage rescue maps will tell.

    Layout of the map "cs_calm"
    Rescue zone anti-camping
    We have remedied the hostage zone camping but we still need to tend to the rescue zone camping issue. A solution to this is to have two rescue zones in a similar setup to what is nicely done in cs_office. While Ts can still camp one zone, they risk a big chance of having CTs reach the other rescue zone. Again, CTs will have a viable option to save the hostages without being shredded by camping Ts. If the layout does not allow or facilitate having two rescue zones, then one big rescue zone with multiple entrances (three is a good number) should work fine. The trick here is to have the entrances not easily covered within the same field of view to prevent camping.
    Into the zone
    Just as we established that we should treat hostage zones like bomb sites, it goes without saying that each hostage zone should have at least 2 to 3 entry points. It’s pretty pointless to have only one entrance as this totally defeats the purpose of spreading hostages into two zones. The different entryways should also not be covered within the same field of view of one T; if a T decides to camp the zone, then he should be able to cover two entrances from one point leaving the third one more or less at a dead angle and viable for a CT rush or stealth/sneak surprise. 

    Showcase of Hostage Zone A on the map "cs_calm"
    The above screenshot showcases “Hostage Zone A” in cs_calm. A terrorist will typically camp near the hostage covering the two encircled entrances. The third entrance from upper level denoted by the arrow is not in the direct FOV, and is prone to a surprise attack by CTs that could catch the camping T off guard. If possible, try to spread the entrances on different vertical levels to spice things up and keep Ts on their toes.
    Lastly, it is a good idea to have a connector between hostage zones to allow fast rotations but without having a direct line of sight between hostage zones. We want to make the scenario fairer to CTs but not at the expense of Ts, inadvertently making it unfair for them.
    Conclusion
    Hostage rescue is a fun scenario if you ask me. It had many inherited and added flaws that contributed to its waning but it’s nothing that can’t be reversed. We, as level designers, need to push some changes to put the scenario back on track. What I just showcased in this article might not be the only viable solutions but they certainly are a step in the right direction. Level designers are intimidated by players who shun away from cs_ maps, and this turns into a vicious circle where players avoid hostage rescue maps and mappers in return avoid designing them. We need to break this cycle and designers need to bravely embrace the solutions I presented here or come up with their own solutions. The more cs_ maps that come out and get tested, the more we could validate these solutions as viable.
    In either case, we need to get proactive towards hostage rescue scenario; after all, this is the cornerstone that Counter-Strike was built upon.
  11. Like
    Sprony reacted to leplubodeslapin for an article, Source Lighting Technical Analysis: Part Two   
    This is the second part of a technical analysis about Source Lighting, if you haven’t read the first part yet, you can find it here. 
    Last time, we studied the lightmaps, how they are baked and how VRAD handles the light travel through space. We ended the part 1 with an explanation of what the Constant-Linear-Quadratic Falloff system is, with a website that allows you to play with these variables and see how lighting falloff reacts to them. We will now continue with basic examples of things you can do with these variables. 
     
    Examples of application
    Constant falloff
    The simplest type of falloff is the 100% constant one. Whatever the distance is, the lighting has theoretically the same intensity. This is the kind of (non-)falloff used for the sun lighting, it is so far away from the map area, that light rays are supposed to be parallel and light keep its intensity. Constant falloff is also useful for fake lights, lights with a very low brightness but that are here to brighten up the area.
     
     

     
    Linear falloff

    Another type of falloff is the 100% linear one. With this configuration, light seems to be a bit artificial: it loses its intensity but goes way further than the 100% quadratic falloff. It can be very useful on spots, the lighting is smooth and powerful. Here is an example:
     

     
    Quadratic falloff

    This is the default configuration for any light entity in Hammer, following as we said before the classic Inverse-Square law (100% Quadratic Falloff). It is considered to be the most natural and realistic falloff configuration. The biggest issue is that it boosts the brightness so much on short distances, that you can easily obtain a big white spot. Here is an example, with a light distant of 16 units from a grey wall:

     
    This can also happen with linear falloff but it is worse with quadratic. Simple solutions exist for that, the most common is not to use a light entity but a light_spot entity that is oriented to the opposite direction from the wall/ceiling the light is fixed to. You can make the opening angle of your light_spot wider, with the inner and outer angle parameters (by default the outer one is 45°, increase that to a value of 85° for example). If needed, you can also add a light with low brightness to light the ceiling/wall a bit.

     
    50% & 0% FallOff
    A second light falloff system exists, overriding the constant-linear-quadratic system if used. The concept is much simpler, you have to configure only 2 distances:
    50 percent falloff distance: Distance at which light should fall off to 50% from its original intensity 0 percent fall off distance: Distance at which light should end. Well ... almost, it actually fall off to 1/256% from its original intensity, which is negligible. The good thing with this falloff system is that you can see the 2 spheres according to the 2 distances you have configured in Hammer. Just make sure to have this option activated: 

     
    Models lighting
    An appropriate section for models lighting is needed, because it differs from brush lighting (but the falloff stays the same). In any current game engine, lightmaps can be used on models, a specific UV unwrap is even made specifically for lightmaps. But on Source Engine 1 (except for Team Fortress 2) you cannot use lightmaps on models. 
    The standard lighting method for models is named Per-Vertex Lighting. This time, light won’t be lighting faces but vertices, all of the model’s vertices. For each one of them, VRAD will compute a color and brightness to apply. Finally, Source Engine will make a gradient between the vertices, for each triangle. For example:

    If we take a simple example of a sphere mesh with 2 different light entities next to it, we can see it working.
                
    With this lighting method, models will therefore be integrated in the environment with an appropriate lighting. The good thing is that, if a part of the model is in a dark area, and another part is in a bright area, the situation will be handled properly. The only requirement for this is that the mesh must have a sufficient level of detail in it; if there is a big plane area without additional vertices on it, the lighting details could be insufficient. 
    Here is an example of a simple square mesh with few triangles on the left and a lot on the right. With the complex mesh, the lighting is better, but more expensive. 

    If you need a complex mesh for your lighting, you don’t want your model to be too expensive, you have to find a balance. 
    Two VRAD commands are needed to make the Per-Vertex Lighting work:
    StaticPropLighting StaticPropPolys You have to add them here. You can find more information here.
    Another system exists, that is much cheaper and simpler. Instead of focusing on the lighting of all the vertices, the engine will only deal with the model’s origin. The result obtained in-game will be displayed on the whole model, using only what has been computed at the model’s origin location. This can be an issue if the model is big or supposed to be present in an area with lots of contrast in lighting. The best example for that is at the beginning of Half-Life 2 with trains entering and exiting tunnels. We can see the issue: the model is illuminated at the beginning, but when it enters the tunnel it suddenly turns dark. And this moment is when the train’s origin gets in the shadow. 
    This cheap lighting method will replace the per-vertex lighting for 3 types of models:
    For prop_dynamic or any kind of dynamic models used in the game (NPCs, weapon models in hand, any animated models...) For prop_physics For ANY MODEL USING A NORMAL MAP (vertex lighting causes issues with normal maps apparently), EVEN IF USED AS A PROP_STATIC
    The big problem with these models is their integration in the map, they won’t show any shadow and their lighting will be very flat and boring (because it’s the same used for the whole model). But hopefully there are 2 good things with this cheap lighting method. 
    First, the orientation from which comes light is taken into account, if blue light comes from one direction, therefore all the faces oriented toward this direction will be colored in blue. And if you have different lighting colorations/intensities coming from different sides of your model, they should appear in game. 
    Here is an example of a train model using a normal map with 2 lights on both side. If you look closely, you’ll see some blue lighting on the left, on faces that are supposed to be in the shadow of the blue light but are oriented toward the blue light.
     

     
    The second good thing is that there is still some kind of dynamic per-vertex lighting, but much simpler: it only works with light and light_spot entities (NOT with light_environment), and it just adds some light to the prop, it cannot cast any shadow (it only takes into account dynamically the distance between the light and the vertex). If we use again the high-poly plane mesh we had before as a prop_dynamic, being parented to a func_rotating that ... rotates. Light is dynamically lighting the vertices of the props. There is a limit of 3 dynamic lights per prop, it can’t handle more at the same time.

    And if you add a normal-map in your model’s texture, this cheap dynamic lighting works on it:

     
    Projected texture and Cascaded Shadows
    Few words to finish the study with dynamic lighting. Projected textures is a technology that appeared with Half-Life 2: Episode Two in 2007, it consists of a point-entity projecting a texture in the chosen direction, with a chosen opening angle (fov). The texture is projected with emissive properties (it can only increase the brightness, not lowering it) and it can generate shadows or not. The great thing with this technology is that it’s fully dynamic, the env_projectedtexture can move and/or aim at moving targets. This technology is used for example on flashlights in Source games. But as usual, there is also a drawback: most of the time you can only use only 1 projected texture at a time, modders can change this value quite easily but on Valve games it is always locked on 1. 

    The cascaded shadows system is only used on CS:GO. The concept is quite similar from a projected texture but it doesn’t increase the brightness, it only adds finer shadows. It is used for environment lighting, using much smaller luxels than for the lightmaps and it is fully dynamic. It starts from the tools/toolsskybox textures of the map and cast shadows if it meets any obstacle. Shadows from the lightmap are most of the time low resolution and the transition between a bright and a dark area is blurry and wide. Therefore, the cascaded shadow will be able to draw a clear shadow around the one from the lightmaps.

    When an object is too small to get a shadow in the lightmap, it will be visible thanks to the cascaded shadows. There are 3 levels of detail for cascaded shadows on Counter-Strike, you can configure the max distance at which the cascaded shadows will work in the env_cascade_light entity at the parameter Max Shadow Distance (by default it’s 400 units). The levels of detail will be distributed within this range, for example: 

    Since cascaded shadows and projected textures share some technology, you can’t use them both at the same time.
     
    Conclusion
    I really hope you have found this article interesting and learned at least few things from it. I believe most of these informations are not the easiest to find and it’s always good to know how your tools work, to understand their behavior. Source Engine 1 is old and its technologies might not be used anymore in the future, more powerful and credible technologies are released frequently but it’s always good to know your classics, right? 
    I would like to thank Thrik and ’RZL for supporting me to write this article, and long live the Core!
    // Written by Sylvain "Leplubodeslapin" Menguy
    Additional commands for fun
    Mat_luxels 1                              // Allows you to see the lightmaps grids Mat_fullbright 1                         // Disables all the lighting (= fullbright). On CS:GO, cascaded shadows stay and you should delete them as well (cf next command) Ent_fire env_cascade_light kill  // KILL WITH FIRE the cascade shadows entity Mat_drawgray 1                        // Replace all the textures with a monochrome grey texture, useful to work on your lighting  Mat_fullbright 2                         // Alternative to Mat_drawgray 1 Bonus:
    Mat_showlowresimage 1           // Minecraft mode
  12. Like
    Sprony reacted to leplubodeslapin for an article, Source Lighting Technical Analysis: Part One   
    After the announcement of the Reddit + Mapcore mapping contest, the website has welcomed many newcomers. A proof that, even if it is a twelve year old game engine, Source engine attracts map makers, and there are lots of reasons for that. It is common knowledge that technology has moved forward since 2003, and many new game engines have found various techniques and methods to improve their renderings, making the Source Engine older and older. Nevertheless, it still has its very specific visual aspect that makes it appealing. The lighting system in Source is most definitely one of the key aspects to that, and at the end of this article you will know why.
     
    About the reality...
    Light in the real world is still a subject with a lot of pending questions, we do not know exactly what it is, but we have a good idea of how it behaves. The most common physic model of light element is the photon, symbolized as a single-point particle moving in space. The more photons there are, the more powerful light is. But light is in the same time a wave, depending on the wavelengths light can have all kind of color properties (monochrome or combined colors). Light travels through space without especially needing matter to travel (the space is the best example; even without matter the sun can still light the earth). And when it encounters matter, different kind of things can happen:
    Light can bounce and continue its travel to another direction Light can be absorbed by the matter (and the energy can be transformed to heat) Light can go through the matter, for example with air or water, some properties might change but it goes through it And all these things can be combined or happen individually. If you can see any object outside, it is only because a massive amount of photons traveled into space, through the earth’s atmosphere, bounced on all the surfaces of the object you are looking at, and finally came into your eyes.
    How can such a complex physical behavior from nature be simulated and integrated into virtual 3D renderings?
    One of the oldest method is still used today because of its accuracy: the ray-tracing method. Just to be clear, it is NOT used in game engines because it is incredibly expensive, but I believe it is important to know how and why it has been made the way it is, since it probably influenced the way lighting is handled in Source and most videogame engines. Instead of simulating enormous amount of photons traveling from the lights to the eye/camera, it does the exact opposite. If you want a picture with a 1000x1000 resolution, you will only need to simulate the travel of 1 000 000 photons (or “rays”), 1 for each pixel. Each ray is calculated individually until it reaches the light origins, and at the end the result is 1 pixel color integrated in the full picture. 
    By using the laws of physics we discovered centuries ago, we can obtain a physically-accurate rendering that looks incredibly realistic. This method is used almost everywhere, from architectural renderings to movies. As an example, you can watch The Third & The Seventh by Alex Roman, one of the most famous CGI videos of all time. And because it is an efficient way to render 3D virtual elements with great lighting, it will influence other methods, such as the lightmap baking method.
     
    Lightmap baking
    OKAY LET’S FINALLY TALK ABOUT THE SOURCE ENGINE, ALRIGHT!
    A “lightmap” is a grid that is added on every single brush face you have on your map. The squares defined by the grid are called Luxels (they are kind of “lighting pixels”). Each luxel get its 2 own properties: a color and a brightness. You can see the lightmap grids in hammer by switching your 3D preview to 3D lightmap grid mode.

    You can also see them in-game with the console command mat_luxels 1 (without and with).
    During the compilation process, a program named VRAD.exe is used. Its role is to find the color and brightness to apply for every single luxel in your map. Light starts from the light entities and from the sky (from the tools/toolsskybox texture actually, using the parameter values that has been filled in the light_environment entity), travels through space and when it meets a brush face:
    It is partially absorbed in the lightmap grid A less bright ray bounces from the face Here is an animated picture to show how a lightmap grid can be filled with a single light entity:

    When you compile your map, at first the lightmaps are all full black, but progressively VRAD will compute the lightmaps with all the light entities (one by one) and combine them all at the end. Finally, the lightmaps obtained are applied to the corresponding brush faces, as an additive layer to the texture used on that face. Let us take a look at a wall texture for example.

    On the left, you have the texture as you can see it in hammer. When you compile your map, it generates the lightmaps and at the end you obtain the result on the right in-game. Unfortunately, luxels are much rougher, with a lower resolution, more like this.

    On the left you have a lightmap grid with the default luxel size of 16 units generated my VRAD, a blur filter is applied and you obtain something close to the result on the right in the game.
    In case you did not know, you can change the lightmap grid scale with the “Lightmap Scale” value with the texture tool. It is better to use values that are squares of 2, such as 16, 8, 4 or even 2. Do not go below 2, it might cause issues (with decals for example). Only use lower values than the default 16 if you think it's really useful, because you will drastically increase your map file size and compilation time with precise lightmap grids. Of course, you can also use greater values in order to optimize your map, with values such as 32, 64 or even 128 on very flat areas or surfaces that are far away from the playable areas. You can get more infos about lightmaps on Valve’s Wiki page.

    But as we said before, light also bounces from the surface until it meets another brush, using radiosity algorithms. Because of that, even if a room does not have any light entity in it, rays can bounce on the floor and light the walls/ceiling, therefore it is not full black. 
    Here’s an example:

    The maximum amount of bounces can be fixed with the VRAD command -bounce X (with X being the maximum amount of bounces allowed). The 100 default value should be more than enough.
    Another thing taken into account by VRAD is the normal direction of each luxel: if the light comes directly against the luxel or brushes against it, it will not behave in the same way. This is what we call the angle of incidence of light.

    Let us take the example of a light_spot lighting a cylinder, the light will bright gradually the surface - from fully bright at the bottom to slightly visible at the top.

    In-hammer view on the left, in-game view on the right
     
    Light Falloff laws
    One of the things that made the Source Engine lighting much more realistic than any others in 2004 is the light falloff system. Alright, we saw that light can travel through space until it meets something, but how does it travel through space? At the same brightness, whatever the distance is between the light origin and destination? Maybe sometimes yes… but most of the time no.

     
    Imagine a simple situation of a room with 1 single point light inside. The light is turned on, it produces photons that are going in all the directions around it. As you might imagine, photons are all going in their own direction and have absolutely no reason to deviate from their trajectory.
     
     
     
    At one time, let’s picture billions of photons going in all the directions possible around the light, the moment after, they are all a bit further in their own trajectory, and all the photons are still there, in this “wave”. But, as each photon follows its own trajectory, they will all spread apart, making the photon density lower and lower.
    As we said before, the more photons there are, the more powerful light is. And the highest the density, the more intense light is. Intensity of light can be expressed like this:

     
    You have to keep in mind that all of this happens in 3D, therefore the “waves” of photons aren’t circles but spheres. And the area of a sphere is its surface, expressed like this:

    (R is the radius of the sphere)
     
    If we integrate that surface area in the previous equation:

    With ♥ being a constant number. We can see the Intensity is therefore proportional to the reverse of the square of the distance between the photons and their light origin. 
    So, the further light travels, the lower is its intensity. And the falloff is proportional to the inverse of the square of the distance.
    Consequently, the corners of our room will get darker, because they are farther away from the light (plus they don’t directly face the light, the angle of incidence is lower than the walls/floor/ceiling).

    This is what we call the Inverse-Square law, it’s a very well-known behavior of the light in the field of photography and cinema. People have to deal with it to make sure to get the best exposure they can get.
    This law is true when light spreads in all possible directions, but you can also focus light in one direction and reduce the spread, with lenses for example. This is why, when Valve decided to integrate a lighting falloff law in their engine, they decided to use a method not only following the inverse-square law but also giving to mapmakers the opportunity to alter the law for each light entity.
     
    Constant, Linear, Quadratic... Wait, what?
    In math, there is a very frequent type of functions, named polynomial functions. The concept is simple, it’s a sum of several terms, like this:

    Every time, there is a constant factor (the “a” thing, a0 being the first one, a1 the second one, a2 the third one...), multiplied with the variable x at a certain degree:
    x^0 = 1 : degree 0 x^1 = x : degree 1 x^2 : degree 2 x^3 : degree 3 ... And
    a0 is the constant named “constant coefficient” (associated to degree 0) a1 is the constant named “linear coefficient” (associated to degree 1) a2 is the constant named “quadratic coefficient” (associated to degree 2) Usually, the function has an end, and we call it by the highest degree of x it uses. For example, a “polynomial of the second degree” is written:

    Then, if we take the expression from the inverse-square law, which was:

    With a2 = 1 and D being the variable of distance from the light origin.
    In Source, the constant ♥ is actually the brightness (the value you configure here).
    It is simply an inverse polynomial of the second degree, with a0 and a1 equal to zero. And we could write it like this:

    Or...

    And here you have it! This is approximately the equation used by VRAD to determine the intensity of light for each luxel during the compilation. And you can alter it by changing the values of the 3 variables constant, linear and quadratic, for any of your light / light_spot entity in your level.
    Actually you set proportions of each variable against the other two, and only a percentage for each variable is saved. For example:

    Another example:

    By default, constant and linear are set to 0 and quadratic to 1, which means a 100%quadratic lighting attenuation. Therefore, by default lights in Source Engine follows the classic Inverse-Square law.
    If you look at the page dedicated to the constant-linear-quadratic falloff system on Valve’s Wiki, it’s explained that the intensity of light is boosted by 100 for the linear part of equation and 10 000 for the quadratic part of equation. This is due to the fact that inverse formulas in equations always drop drastically at the beginning, and therefore a light with a brightness of 200 would only be efficient in a distance of 5 units and therefore completely pointless.

    You would have to boost your brightness a lot in hammer to make the light visible, that's what Valve decided to make automatically.
    The following equation is a personal guess of what could be the one used by VRAD:

    With constant, linear and quadratic being percentage values. The blue part is here to determine the brightness to apply, allowing to boost the value set in hammer if it is as least partially using linear or quadratic falloff. The orange part is the falloff part of equation, making the brightness attenuation depending of the distance the point studied is from the light origin. 
    The best way to see how this equation works is to visualize it in a 2D graph: 
    https://www.desmos.com/calculator/1oboly7cl0
    This website provides a great way to see 2D graphics associated to functions. On the left, you can find all the elements needed with at first the inputs (in a folder named “INPUTS”), which are:
    a0 is the Constant coefficient that you enter in hammer  a1 is the Linear coefficient a2 is the Quadratic coefficient B is the Brightness coefficient In another folder are the 3 coefficients constant, linear and quadratic, automatically transformed into a percentage form. And finally, the function I(D) is the Intensity function depending on the distance D. The drawing of the function is visible in the rest of the webpage. 
    Try to interact with it!
    This concludes the first part, the second part will come in about two weeks. We will see some examples of application of this Constant-Linear-Quadratic Falloff system, and a simpler alternative. We will also see how lighting works on models and dynamic lighting systems integrated in source games.Thank you for reading!
     
    Part Two : link
  13. Like
    Sprony reacted to Rick_D for an article, Making Agency, the popular CS:GO map   
    What is Agency?
    Just in case you have never heard of Counter Strike: Global Offensive, it's a hugely popular online FPS, successor to Counter Strike: Source and the original Counter Strike. The original came out in 1999 and the core gameplay has remained almost unchanged. Players are split into two teams and challenge each other in various game modes such as Bomb Defusal (one team has to plant and detonate the bomb while the other tries to stop them) and Hostage Rescue (one team must rescue the hostages whilst the other attempts to prevent that). The Bomb Defusal mode is by far the most popular, with maps designed with such detail that players can predict down to the second when another player is due to arrive in a certain area of the level. It's also the only mode played in competitive events and for huge prize money.
    This leaves the poor Hostage Rescue mode sitting on the sidelines twiddling it's thumbs and feeling a little rejected. In part this is because the Hostage Rescue mode is far more of a roleplaying experience, often with very poor odds of success for the team tasked with doing the rescuing. Often the levels are designed in such a way that the defending team has a large positional advantage, where simply staying-put will give them a good chance of winning.
    That's where we can start talking about Agency. Agency is a Hostage Rescue level, created as a collaboration between level designer Patrick Murphy, and myself doing the art. The basic idea being that Hostage Rescue could be just as precise and exciting as Bomb Defusal. It's been included in three official releases from the games creator, Valve, as part of their community level packs: Operation Bravo, Operation Phoenix and Operation Bloodhound. Phoenix being a community-voted choice, which was especially great to see that players enjoyed the style of gameplay and visuals that Agency brought with it.
    In this article I will go over the process of creating the art, from props to set dressing, texture creation and lighting, while maintaining a visually pleasing aesthetic and serving to enhance the gameplay. This isn't a postmortem but rather a walk-through of the various stages, hopefully to give some ideas to others, with lessons learned both positive and negative.

    Iteration from Whitebox to Final
    Starting out you should always have an idea of what you're going to create, even if it is quite vague, as it'll point you in the right direction for both creating architectural spaces and letting your imagination fill in the blanks as you build the basic shapes of the level. We knew we were going to build an office space, but style was leaning towards an older government building with red bricks and musty wood. As I started to put in some basic textures we decided it felt too bland, and similar to other levels in the game. In order to stand out and create something really interesting and intriguing that would entice players to want to explore the level we decided to modernize the space and use white as the primary colour - this would help players see each other more easily and provide a striking visual setting it apart from other levels.
    "Modern Office" is not exactly a style that has a single look, if you search for images you'll get back a lot of contrasting designs and ideas, trying to put every single one of those into a level would create a visual mess with no consistency. It's important to choose the right references for what you are building, something that looks cool in a single image or from a specific location might not fit into the theme of the level, and in a worst-case-scenario it might actually start to detract from the level as a whole. Trying to cram in as much content as possible simply makes your level feel less unified and jarring.
    Unfortunately when you are presented with so many fantastic designs and ideas it can be hard to pick out what is important. After settling on the location: a modern advertising agency's office, I broke down the needs of the level into a few different categories:
    Area Specific General Use Overall Theme The Area Specific content is "hero assets" for each location in the level. These are the things that help the player tell different areas apart from each other, a reception desk, a kitchen, a bathroom, etc. Assets that won't be used anywhere else except in their specific location.
     

    Examples of Area Specific Content

    The General Use content is the backbone of the building, it's wall sockets, ventilation tubes, sprinklers, desks and chairs. The things that could be used anywhere and would blend in to the background and not stand out unless you were specifically looking for them.
     

    Examples of General Use Content

    The Overall Theme content is what sells the theme of the level to players, advertising boards, company logos, large art installations and so on. These can be used everywhere but sparingly and should only be used as a subtle reminder to the player of where they are thematically. They shouldn't detract from the Area Specific content but should stand out more than the General Use content. This came in the form of abstract paintings, corporate logos, rotating advertisement panels and so on - things that would subtly tie the level together.
    Once these categories were laid out, searching through reference images became much simpler as you know what you need and only have to find an interesting design or detail that enhances a specific category.
    This isn't to say that everything was completely planned out or that development was flawless. Sticking to a plan only works until you open the editor, and if you try to force something you'll end up frustrated when it consistently fails to work. As an example we originally had the level set on the ground floor of a tall skyscraper. I spent a few weeks working on content for the ground but never really getting it to feel right within the theme of the level: the contrast between a dirty exterior street section and a spotless interior didn't feel right for the level, and felt a little too similar to another Counter Strike level. Patrick played around with some ideas and tried something I was afraid of: simply deleting everything I had done on the outside and adding an epic city vista. Instantly it felt right. The important thing to take away from this is that just because you have worked on something doesn't mean it's the right thing to be working on, and that getting input from other people with different ideas can vastly improve what you are working on.
     

    The first mockup of Agency's rooftop exterior
     

    The same space after an art pass

    Another incredibly important thing I realised is making use of modular assets. If you are going to duplicate something in your particular modelling software you should ask yourself: is this efficient? Chances are you're just making things harder to change later and locking yourself into a particular shape; eg: a walkway has a railing around it, you model the entire railing as a single object. Now if you need to change that walkway a month later you're going to have to go back and change your railing model. It's better to create a smaller tiling mesh that can be used multiple times, as often you'll find you can use that model in other areas and in different ways than you had initially intended. You're simply applying the concept of tiling textures to models, and in the process saving yourself a lot of time.

    A Believable Clean Art Style
    Creating a clean environment can often be more difficult and time consuming than a very dirty and cluttered one, simply because any mistakes are magnified by the lack of other objects to disguise them. A room with a single chair in the middle is going to end up with the focus being on that chair, if you fill that room with a hundred chairs you're going to be less concerned with the details of the chair and more worried about why someone would fill a room with a hundred chairs.
    In the modern office setting of Agency it would have made little sense to fill it with props and clutter, but a large empty space would just feel unfinished. A delicate balance of larger architectural shapes and smaller objects was needed. I like to think of this as functional art: it serves a purpose in the lore of the game world. Window and door frames, electrical sockets, thermostats and card swipes along with the maintenance apparatus of ventilation systems. These are the general use objects mentioned earlier, they fill out space and prevent an empty wall or ceiling from actually looking empty and at the same time they contribute to the believability of the level. It's important to think of the infrastructure of the building when placing these assets - if a wall has an air vent on it then the wall needs to be thick enough to support the ventilation pipes that feed it, Card swiping mechanisms need to be placed near doors at the correct height, electrical sockets should be placed logically in areas where they would be of use to the fictional inhabitants of the level and so on.
     

    Several examples of functional art details

    One of the most important things to do right when creating clean environments is to get the most out of the materials. It's not possible to cover every surface in dirt or decals, so the surfaces themselves become your way of showing detail.
    For Agency this was achieved by making liberal use of the phong shading techniques in the Source engine for models, and cubemaps for world textures. Almost all models in the level have some amount of phong shading, and although it doesn't produce a completely physically accurate result it can be used to create materials and surfaces that look relatively accurate. Simply by increasing or decreasing the intensity of the phong amount allowed for a vast majority of the levels surfaces to be rendered accurately. As I didn't need to have a lot of noisy detail in the materials due to the clean style I simply used a small phong texture as a mask for 75% of the models and let the lighting and general shapes of the models do the rest of the work.
     

    Simple phong shading to mimic real world materials

    As most of the surfaces had a single layer of material, ie paint or coloured metal, the phong shading could be completely even without breaking the illusion; however some of the dirtier surfaces such ventilation tubes and water pipes had several layers: a painted metal surface with area peeled away to reveal with metal underneath or a layer of dust. These had specific masks that would enhance the different materials, and showing wear and tear in the background assets added an extra layer of depth without compromising the clean style.
    Most of these textures were created with dDo, an excellent tool for quickly creating textures. I generally started with quite a dirty texture preset and toned down the details and noise until they were barely perceptible surface imperfections.
    Agency features probably close to 95% custom art, and that's a lot of work for a single person. Using dDo allowed me to make a lot of content relatively quickly, and kept it all visually consistent.
    The process of creating the assets with dDo was quite simple: first I modeled the basic ingame asset, then did a very quick and dirty placement of edge loops that allowed me to smooth the mesh and get a workable high poly. A very rough normal map was baked (along with a more solid ambient occlusion map), this rough normal map would never make it into the game, it was used purely for texturing with dDo. This rough-and-dirty technique was mostly used on the more general purpose assets that nobody would spend a lot of time looking at. For the objects that were in high traffic areas or that required finer detail a more robust normal map was created.
    Tiling textures used throughout the world were photo-sourced and tiled in Photoshop. A few examples worth pointing out are the plaster wall textures and the marble floors:
     


    The image above shows the ingame result, the diffuse texture, and the normal map of the standard plaster that is used throughout the level. The normal map was authored at 1024x1024 compared to the diffuse texture which was 512x512. I created several colour variations of the diffuse texture and for a very plain surface using a 1024x1024 diffuse didn't make much sense. The final touch was to add a subtle cubemap effect to bring out the normal map and add interesting coloured reflections in various areas.
     


    Another example is a marble floor used throughout the level. The normal map is unrealistic in that it portrays an uneven bumpy surface when in fact it is more likely to be uniformly flat. However to break up the reflections and add some visual interest to such a large and empty area I added a subtle bumpy normal map which warps the reflections, but is subtle enough that it doesn't get picked up by the lighting and actually appear like a lumpy mess.
    Good shading only gets you part of the way there, however. A poorly scaled model can break immersion instantly, especially when you are trying to create a believable real-world environment. There are tried-and-true metrics for Counter Strike so having a base to work from helped immensely, but these only give you a good starting point or a bounding box for your object. It's important to study real world reference and make sure your object is proportional to the world around it and also to itself. A unit in Hammer is an inch, so having wood that's 2 units thick, or a doorway that is 1.5m wide quickly makes things look wrong.

    Working with Designer Blockouts, and not Destroying Gameplay
    Agency was a collaboration, with Patrick doing the design work and me doing the visuals, this meant there was a lot of potential for overlap and working on the same areas, the potential for breaking things was huge.
    Often when you create things as an individual you don't have to worry about version control or stepping on someone else's toes, however when you work with other people either for pleasure or business you, as an artist, need to change your mindset. You are not creating a portfolio piece but rather something functional that has to withstand hundreds of hours of real people playing it.
    Your first role is to support the designer, and this benefits you as well. By creating the basic structures of the level: doorways, window frames, stairs, railings, cover objects etc, you are allowing them to work with the final assets and tweak gameplay according to those assets. Nothing needs to be finalized instantly, it's better to provide a rough mockup of the intended asset so the designer can play around with it and give feedback on the shape, size and silhouette. Once you are both confident it's going to work they can populate the level with these assets which saves you time in the long run, and once you finalize the model and textures they are going to be updated across the entire level without having to manually replace assets.
    It can be difficult to determine exactly when you should start an art pass, especially when a level is constantly evolving. Rather than sitting idly by whilst Patrick was ironing out the design of the level I started on the creation of a few visual test levels to explore materials, lighting and modular assets. Once the first iterations of Agency were created, with rough shapes for important cover and controlling lines-of-sight. I went in and created an art pass and altered many of these original gameplay ideas, simply experimenting with different shapes and designs for the rooms. We had a constant dialogue and never considered something finalized just because it was finished. Playtests would determine whether an idea was valid or not in a way that speculation can only hope for. The most important lesson learned during this process of constant iteration was that work is very rarely wasted, and it is far more important to stay true to a gameplay ideal than to have an area that looks interesting in a screenshot but utterly fails when players get their hands on it. A box is a box is a box, it is down to you as an artist to imagine how that box can be interpreted within the context of the environment.
     

    Initial art pass ideas for the central area (above) versus the end result (below)
     

    Initial art pass ideas for the reception (above) versus the end result (below)
     

    Initial art pass ideas for a hostage (above) versus the end result (below)

    Lighting
    An important part of any environment is the lighting. Too contrasted and moody and it becomes hard to identify players, too bright and monotone and it becomes boring and a strain on the eyes. For Agency I used a series of instanced lighting setups: a model to visualise the light source, a spot light to direct the light, and a sprite or light cone to add a visual effect around the light. Each light setup was unique to the type of model used for the actual light source, ie: all spotlights were identical, all fluorescent lights were identical etc. This meant I could change a single light and have the others update automatically, and always get an accurate result.
    Then it was just a case of placing these different types of lights where they logically made sense in the environment, and if an area was too dark an appropriate light source was added, and if an area was too bright lights could be moved around or removed entirely. This made it quite easy to light as everything was guided by reality, which has plenty of reference material, and had the side effect of helping to make the environment more believable. By using various colours on the floor and walls I could direct lights towards them and take advantage of the Source engine's excellent radiosity and spread interesting colours to nearby surfaces.
    In many areas the ceiling was opened up to reveal the sky and to let natural sunlight into the interior spaces, this was done to provide contrast to the electrical lights and to get extra radiosity bounces into the environment. Some areas had lights removed or toned down to allow other more important gameplay areas to stand out, for example the image below shows how the corridor here was darkened both by using darker textures and by using restrained lighting to make the room in the distance appear brighter as this is an area that enemy players will appear from.
     


    This could have been taken even further by possibly using emergency exit signs to add hints of colour to important gameplay areas and chokepoints. A consistent lighting language would have helped guide players during the first few times playing the level. There are some large open spaces that would have benefited from some coloured screens or lighting panels, or possibly making some of the larger glass surfaces tinted, to add a little extra colour and prevent such a monotone look whilst not being over-bearing or detracting from the realistic style of lighting I was aiming for.

    Final thoughts
    During the course of developing Agency I had a chance to learn a few things and come out the other end a, hopefully, better artist.
    So, what went well?
    The iteration process never had any hiccups, by using modular content and being prepared to discard ideas and art styles that weren't working we ended up with a better level. If we had tried to force the original idea of a ground-level government office we would have ended up with a completely different level, complete with underground parking lots and elevator shafts. Exciting stuff!
    The power of iteration cannot be understated, and understanding that a mockup or a blockout of a level is simply a temporary phase that doesn't represent the end result. Areas changed drastically between versions, sometimes due to design requirements, and sometimes of shifts in art style; but each version was better than the last, more refined and polished.
    What went less well?
    In direct contrast to the statement above, sometimes the iteration interfered with more important tasks. I got stuck on areas trying to get them to work instead of letting them sit for a while and returning to them later. I tried to force an idea for the exterior part of the level and it never felt right and consumed way too much time, when all it took was getting some outside perspective. Luckily during the process I learnt to trust designers when it comes to art, just because they might not build high poly meshes doesn't mean they aren't artistic.
    Another problem was building too much content completely unique for an area which meant when we inevitably changed things it became time consuming to shift assets around, and makes it less easy for others to re-use that content without creating an almost replica of the area it was designed for. These unique assets helped sell the realism of the level but made them harder to work with.
    Hopefully this has been interesting and insightful!
  14. Like
    Sprony reacted to Thrik for an article, Announcing the winners of our RaiseTheBarVille Half-Life mapping challenge   
    Levels Nova Exchange
    By Erik-Silver Toomere (ESToomere)
    “After taking a wrong turn on the way to Lighthouse Point… Gordon stumbles on a Combine secret”. Takes place between the chapters Sandtraps and Entanglement, replacing Nova Prospekt.
    Delayed
    By Justin Carlto (SneakySpeckMan)
    The strider at the end of Half Life 2 Episode 1 destroys the escape train, leaving Gordon and Alyx stuck in City 17 as the Citadel goes critical.
    Blast Pit
    By Dan Jordan (The_Rabbit42)
    A re-imagining of the classic scene from Half-Life.

    Mod Details Title: RaiseTheBarVille
    File Name: hl2-ep2-sp-mc-raisethebarville.7z
    Size: 47.10MB
    Author(s): Erik-Silver Toomere aka ESToomere, Justin Carlton aka SneakySpeckMan & Dan Jordan aka The_Rabbit42
    Date Released: 09 May 2015
    MapTap Users Download directly into MapTap [47.10MB]
    You must have MapTap installed before using this link.
    Direct Download Download to your HDD [47.10MB]
    You can still use it with MapTap once you have downloaded it.
    Manual Installation Instructions 1. Copy the RaiseTheBarVille folder into your …SteamSteamAppscommonsourcemods folder.2. Restart or start Steam.
    3. RaiseTheBarVille should now be listed in your Library tab.
    4. If you require more help, please visit RunThinkShootLive's Technical Help page.
    Judges There were 3 judges for this challenge: Phillip (RunThinkShootLive), Ryan 'Thrik' Williams (MapCore), and Don aka Unq (who very kindly supplied the RaiseTheBarVille first Prize).
    Winners Winner: Blast Pit
    All judges felt this was the perfect combination of using the theme in a clever way and making a map that was fun to play.
    Almost-Winner: Nova Exchange
    This was a very detailed and thoughtful entry that all the judges enjoyed playing but felt it lacked player guidance too often.
    Third Place: Delayed
    While short and light on compelling gameplay, it delivers exciting set-pieces and great visuals.
    The judges' more detailed reviews can be found in the comments of this article and/or RunThinkShootLive's equivalent article. Feel free to leave your own — in fact, please do!
    Prizes For the winner
    A lightly used hardback copy of Valve's rare Half-Life 2 development book, Raising the Bar, kindly donated by Don aka Unq. This book is a must-read for any fan of the game, and particularly those interested in its development process. In addition to being a collectable in its own right, this particular edition is signed by Valve staff, arranged by a friend of Phillip's who works there.
    For the almost-winner
    Don't feel bad, you nearly made it. Have a plush companion cube plus a MapCore mug or t-shirt, and know that we love you.
    ...and for everyone else
    All entries, except the winner and almost-winner, will be entered into a random draw to win Sniper Elite 3. As this was one person in the end, this has now become the third-place prize.
    Screenshots A selection of 3840x2160 screenshots is available on Dropbox. They haven't been included directly in this article because they potentially spoil set-pieces within the levels.
    Video The playthrough/walkthrough below is provided by PlanetPhillip. See more of his playthroughs at VP: PlanetPhillip.
    Steam Grid View Images Three grid view icons are included in this file. To use the included grid view icon, select “Gridview” in Steam (top right corner). Right click on “RaiseTheBarVille” and select “Set Custom Image”. Then browse to the SourceMods folder and then to RaiseTheBarVille/steam-gridview-icons folder and select the image you prefer. Then click “Set Image” and that’s it. Of course, you can create your own custom image if you prefer.
    Other Bits and Pieces There are a few additional things that you might want to check out over in the RunThinkLiveShoot equivalent of this article, such as a poll that lets you vote for your favourite, additional screenshots, and download statistics.
  15. Like
    Sprony reacted to Thrik for an article, RaiseTheBarVille, our joint Half-Life Mapping Challenge   
    Your objective We'd like you to re-imagine a scene of your choosing from any of the Half-Life games. To be clear, we're not looking for remakes of scenes — we want you to completely reinterpret a scene, approaching it from a fresh perspective. You can, however, use assets from Black Mesa.
    Here are some examples of ideas you could develop:
    The Tram ride at the beginning of Half-Life. What if somebody else pushed the cart? Gordon was late, so they got somebody else and the resonance cascade happens when Gordon is still on the tram. It crashed to the ground but leads him to a previously unseen section of Black Mesa. Black Mesa. What if Half-Life's infamous research facility were hidden underneath a city or town rather than out in the desert? Surface Tension. This particular event occurs on the side of a Citadel. Yes, it doesn't fit the story, but that's not important. This is about high cliffs and long falls. Opposing Force. What if Black Mesa were devastated by this game's nuclear bomb quite early on during the story, leaving Adrian Shepherd to navigate a version of the research facility resembling a post-apocalyptic nightmare? Point Insertion. Instead of arriving at a city train station, Gordon finds himself in a deserted and derelict village station, perhaps near enough to Ravenholm, to feel the threat. Being seen by Civil Protection may be the least of his worries. City 17. What if the Combine had chosen the United States, France, or London to be their primary city? The only limitation is your imagination, which we want to see run wild — create the most wonderful interpretation of Half-Life's universe that you can conceive. Whether your project is big or small, you should strive to create something that will delight Half-Life fans.
    How to share your progress Because this is a joint challenge, there are two places for this:

    Where you may discuss the challenge and share progress of your work, which we hope that you will! RunThinkShootLive challenge article
    Where you can do the same. Both will be compiled together for judging and articles after the challenge ends, so you don't need to post in both places (although it's not a problem if you do).
     

    Prizes Prizes are being donated by both MapCore and RunThinkShootLive, in addition to your work being immortalised in our archives for others to enjoy.
    For the winner
    A lightly used hardback copy of Valve's rare Half-Life 2 development book, Raising the Bar, kindly donated by Don aka Unq. This book is a must-read for any fan of the game, and particularly those interested in its development process. In addition to being a collectable in its own right, this particular edition is signed by Valve staff, arranged by a friend of Phillip's who works there.
    For the almost-winner
    Don't feel bad, you nearly made it. Have a plush companion cube plus a MapCore mug or t-shirt, and know that we love you.
    ...and for everyone else
    All entries, except the winner and almost-winner, will be entered into a random draw to win Sniper Elite 3.
    Challenge dates Begins: Thursday, 19th March, 2015 at 11am GMT
    Ends: Tuesday, 28th April, 2015 at 11am GMT
    Rules You can't have a challenge without rules, right? Here are the requirements:
    Maximum one map per mapper per entry. The map must have at least one enemy and one weapon; i.e. playable. The map must be original and not have been released publicly before. The map must run in a system with only Half-Life 2: Episode 2 installed By entering the competition you grant RunThinkShootLive.Com and MapCore.org the right to release the map as part of the RaiseTheBarVille Mod. Maps must not appear for download before the release and for one month after the release of the mod. No assets from retail games other than Half-Life 2, Half-Life 2: Episode 1 or Half-Life 2: Episode 2 are allowed. Other assets are allowed with written permission from their original authors, which must be included in the entry. The organizers' decision is final and no correspondence will be entered into about it. The map must have a proper name. The map must have a proper filename: MapName_rtbv.bsp Each entry should be accompanied by a correctly formatted (vtf) background and chapter image. The name is not important, as it will have to be changed. All entries must be sent to: [email protected] no later than the deadline. Frequently Asked Questions There have been a few questions asked about this challenge, so hopefully this will help you. However, if your question is not here and you have doubts, please don’t hesitate to ask, no matter how small your query.
    Can I use assets from Black Mesa Source?
    Yes, by all means, but you must pack them into your BSP. Yes, we know that may mean redundancy, but the map MUST run in a system that ONLY has Episode Two installed. We don’t want to force players to download BM.
    Can an entry be a joint entry?
    Yes, but there I still only one prize. You’ll have to fight to the death to decide who gets it.
    Which games can I re-imagine?
    Half-Life, Opposing Force, Blue Shift, Half-Life 2, Lost Coast, Episode One, or Episode Two.
    Can I use assets from Lost Coast?
    Yes, pack them into your BSP.
    What about recreating a scene that was say… cut from one of the main games? Technically a re-imagining of a re-imagining.
    No, but you could use the cut area as inspiration for something that was released in one of the games. What we don’t want people to do is remake a cut section from a game.
    Can simply change a location?
    Well, yes, but again, there should be some element of “What if…?” in the map. Simply changing a town for a city is only part of what we are looking for. You map should really be the result f some change, however minor, in the story.
    How do you define a scene?
    In the context of this challenge a “Scene” is a part of the game that has some effect on the following game. So, changing one location for another is not really enough. What we are looking for is something that takes the game in a different direction.
    Can we submit mini-mods instead of a map?
    Sorry, no. Your entry must be a self contained map.
    Can I submit something artsy?
    Sure, but it must have at least one enemy, one weapon and a player spawn.
    Can we decompile or remake specific locations from Valve maps?
    We think it’s best if we disallow this. Mainly to avoid any potential problems. Please start your map from something new. However, we will allow a very small section if this is just used to “fit into the story”. For example, in Episode One, at the beginning when Alyx and Gordon are thrown into the Citadel. If you map started at the bottom but then things went very differnt from the game, that would be okay.
    How should I start my map?
    We suggest a little text at the beginning to set the scene. Something like…”What if Gordon were late and somebody else push the cart? Let’s find out“. It’s not compulsory but it might help.
    What’s the limit of changes we can make?
    Wow, that’s a tough question. Your changes MUST NOT affect maps that may be after yours in the final mod.
    My question is not here, what should I do?
    Ask in the RTSL post or MapCore thread. Somebody will respond quickly.
    Closing words We really hope that you have fun with this. MapCore has a very long history of facilitating development of levels for Half-Life and its mods, in fact we were founded around that very concept. As such, we're hopeful that the community still has that passion for one of gaming's finest classics, and is keen to apply modern-day skills and technologies to bringing Half-Life's universe to life — because Valve sure isn't doing it any time soon!
  16. Like
    Sprony reacted to Thrik for an article, A MapCore and RunThinkShootLive Mapping Challenge   
    The theme of the contest is quite wonderful and should appeal to all MapCorians whether you're participating or observing, and there are some lovely prizes on offer too. You'll find out more when the challenge is announced and kicked off in a week's time.

    Stay tuned — we hope to see you involved!
  17. Like
    Sprony reacted to FMPONE for an article, 2014: MapCore's Year in Review   
    Overview of 2014's articles We published a ton of high-quality, original content in 2014. Take a look — you might spot something you missed!
     

    By KNJ
     
    Interview with Mateusz 'seir' Piaskiewicz, Techland Senior Level Artist
    4,100+ reads
    Interview with Rosin 'kikette' Geoffrey, Arkane Studios Environment Artist
    6,700+ reads
    Deus Ex: Human Revolution scene interview with KNJ
    6,800+ reads
    Virtual Reality: The Final Platform
    5,300+ reads
    Interview with Francois 'Furyo' Roughol, BioShock Infinite Level Designer
    6,200+ reads
    Interview with Thibault 'dkm' Courbet, Wolfenstein: The New Order Level Designer
    6,600+ reads
    Interview with Lenz 'penE' Monath, Environment and Lighting/VFX Artist
    3,900+ reads
    Interview with Thiago 'Minos' Klafke, Blizzard Environment Artist
    7,600+ reads
    Interview with Paul 'PaulH' Haynes, Homefront: The Revolution Senior Level Designer
    5,000+ reads
    Korath: The Witcher Saga scene interview? with Krzysztof 'Tepcio' Teper
    3,700+ reads
    Level Design in The Last of Us: Part One, Part Two, Part Three
    13,500+ reads (all parts)
      Contests and challenges Even better, MapCore continues to thrive as a close-knit community. We collaborated, playtested one another's work, and inspired eachother. Thanks to RZL for his great work organizing Counter-Strike: Global Offensive playtests. SpronyvanJohnson also did a great job organizing MapCore contests, where users pushed themselves to improve their skill set.
    We had a fantastic contest and two thrilling challenges, all of which received unprecedented levels of support and engagement. You can relive the action here:
    Quake 3 15th Anniversary Contest
    CS:GO Sticks Mini Texturing Challenge
    By Min0s
    New logo and branding For the first time since the forums were established in 2003, 2014 saw the introduction of professional-grade branding, which was brought to life by our very own Arthur de Padua (AKA Thurnip), including a wonderful new logo! We also set up a small store for those wishing to spread the wonder of MapCore throughout the world, complete with Arthur's beautiful new designs, and we'll be updating the store with even more new products based on your feedback very soon!
     
    New logo and branding by Thurnip
     
    Babies! MapCore kids were also born in 2014! ...God help us all. A huge congratulations to Skjalg and SpronyvanJohnson for their ultimate creative projects: bringing new life into the world. If we missed anyone, let us know in the comments so we can add you!
     
    By 2-D Chris
     
    Employment As a community, MapCore has always been a mixture of veteran game developers, aspiring amateurs, and plain ol' gamers. One of the best parts about that mixture of experience-levels is when one of our members gets an awesome new job within the industry. In 2014, we got a LOT of great news on that front.
     
    Martin "Sentura" Colith - Level Designer at IO Interactive (Copenhagen, Denmark)
    Al "Intelect0" Anselmo - QA Tester at Top Free Games (Sao Paulo, Brazil)
    Lenz "penE" Monath - Environment Artist at Yager (Berlin, Germany)
    Oskmos - FX Artist at DICE (Stockholm, Sweden)
    Morten "Mazy"Hedegren - Game Designer at Brain+ (Copenhagen, Denmark)
    Skjalg "Skjalg" Sturlasson Maehre - Programmer at Megapop Games (Drammen, Norway)
    mr.P - Senior World Designer at Avalanche Studios (NYC, NY, USA)
    Pete_H - Game Designer at Gameloft (Barcelona, Spain)
    Jobye-Kyle "deceiver" Karmaker - Level Artist at Ubisoft Toronto (Canada)
    Alex "AlexM" McGilvray - Build/Tools Engineer at United Front Games (Vancouver, Canada)
    Alexander "Taylor" Taylor - Game Designer at Space Ape (London, England)
    Kacper "knj" Niepokólczycki - Environment Artist at CD Projekt Red (Krakow, Poland)
    John "Ginger Lord" Crewe - Senior Technical Designer at Cloud Imperium Games (Manchester, England)
    Paul "PaulH" Haynes - Senior Level Designer at Deep Silver Dambuster Studios (Nottingham, England)
    Toni "SotaPoika" Seppänen - Junior Level designer at Next Games (Helsinki, Finland)
    Austin "Setin" House - Designer at Escalation Studios (Dallas, Tx, USA)
    Richard "KoKo5oVaR" Malinar - Environment Artist at Krysalide (Lyon, France)
    Mateusz "seir" Piaskiewicz - Designer at Treyarch (Santa Monica, California, USA)
    Jason "General Vivi" Mojica - Senior Level Designer at Overkill Software (Stockholm, Sweden)
    Will "Vilham" Josephy - Senior Level Designer at Cloud Imperium Games/Foundry 42 (Manchester, England)
    Chris "2d-chris" Kay - Senior Level Designer at Epic Games (Cary, NC, USA)
    Liam "PogoP" Tart - Environment Artist at The Creative Assembly (Horsham, England)
    Matthew "bawwwcas" Barcas - Level Designer at Pure F.P.S. (Los Angeles, California, USA)
    Francois "Furyo" Roughol - Senior Mission Designer at Sucker Punch Productions (Bellevue, Wa, USA
    Friedrich "FrieChamp" Bode - Level Designer at Goodgame Studios (Hamburg, Germany)
     
    Our members' success rate at having their content (gun skins, maps) added into Counter-Strike: Global Offensive also continued to be astronomical.
     
    By Furyo
     
    Wrap-up At the end of the day though, MapCore has always been about one thing: sharing work in progress, receiving feedback, and learning from one another. In 2014, MapCore's WIP threads buzzed with life and activity, and our 2D and 3D forums were a goldmine of beautiful work, interesting ideas and fun experimentation.
    Our community is working better than ever, and 2015 should mark even further progress in the growth of this awesome forum.
     
    By Kikette
     
    SpronyvanJohnson's map given feedback in the form of an overpaint by Seir
     
    By penE
  18. Like
    Sprony reacted to Furyo for an article, Level Design in The Last of Us: Part Three   
    This is the third article in a three-part series. Part One / Part Two / Part Three
    Combat tutorial The entire space for this first combat against humans is built to be an action tutorial. With no elevation changes in the space, and the single red tone of textures, this is the simplest arena one could design, which foreshadows a quick and easy fight. Notice the number of crates and cover objects on the ground, and their geometrical position. Clear “camps” are established on either side. Both NPCs are scripted only to move left and right, never to flank Joel, which leaves players with plenty of time to assess the situation. This space is built to encourage players to flank these NPCS to the left (Tess crouches to the right of the player). Another visual cue used to great effect here are the electricity lines, that circle over the space. They make the space feel tighter, and add a loop that mirrors the path down below.
    One also finds all three distinctive signs of a fight being over in action games: Tess stands and starts walking again (her AI state changes from InCombat to Normal), she starts a conversation with Joel and the combat music ends. In terms of scripting, these three signs are tested against the state of all spawned enemies (in this case, whether they’re alive).
      At the end of the passage under the arch, another instance of the “boost and pull” move, once again the only gate short of an actual door that can be used in this game. Right after this, a typical example of an “S” shaped corridor. Historically found everywhere in FPS games a decade ago, they’re still used in today’s non open-world games as occluders and loading corridors between two heavy areas. And what occludes one way works in multiplayer too, you’ll find them in many MP FPS levels (Counter-Strike, Team Fortress 2, Left 4 Dead, etc.) to break lines of sight and separate large areas to obtain the highest frames per second.
    As a side note, and something you may have noticed all along these levels, the environment artist broke up the monotony of this flat wall by making an entrance to a courtyard, to the left of this corridor. You could for instance find this same addition of depth inside the transition building in part 2 where players first learn how to heal themselves.
    As a side note, one of very few bugs in The Last of Us can be seen here, as the shader for the gameplay helpers is rendered through walls (normal behavior) but also over Joel's head.
          After dropping through the hole in the fence – another typical Naughty Dog gating mechanism - a new cinematic starts as players enter the combat arena. Enemies are now scripted much more freely, with their back to the player to enforce a stealth approach. The shape of the combat space itself is built to allow NPCs to move in long straight ways. The left hand side’s purpose is actually solely for this NPC to go there and allow for more movement in stealth (added difficulty) over the initial takedown against the infected in part 2. Tess continues to help kill two of the four enemies, as long as players play by the rules of this tutorial. Both signs above the doors to the building are once again not placed here by chance; the green one indicating the ideal path inside, and the red one a sure way to get spotted. And with both signs having these warm colors, the rest of the building wears a very cold blue to make the signs much more noticeable.
      This second combat also introduces dialogues between characters. Beyond their initial role as threat identification and background information, these conversations also serve as cues that NPCs are likely to change their patrol path once done. It’s therefore important to design these dialogues so they are not ambiguous when they stop.
       As with the gate to the previous occluding corridor, this space also features a strong light to indicate the exit. We’ll see the same light used in all four of these combat tutorials each time to direct the player to the exit of the arena. While this doesn’t seem too necessary in these instances, players’ orientation is often confused when leaving nonlinear spaces in which they were dedicating their attention to the action rather than the environment. These help players getting their bearings again. And now that doors are used in combat spaces - wide open not to collide with players or NPCs fighting - , they’re also textured in strong warm colors to be seen better. Doors in exploration spaces in this game never bear these colors.
      For this third and final tutorial combat (once again, magical game design number 3 shows up), Tess stops helping in any way other than shooting if the combat gets to that but a new mechanic is presented that offsets Tess. Joel can now pick up objects to create a diversion, essentially what Tess was doing before although she can’t be seen by NPCs. That’s a great way to progressively increase difficulty while not changing enemy type (all humans). The distance between the safe area players start in and the first threat is made longer to increase difficulty too and the same background info is given by NPCs to locate them with the help of the conveniently placed window. The orientation of the starting piece of cover also indicates the sense of direction of the upcoming fight, and where the exit will be located.
    A sign of a space specifically designed for a fight is to open up multiple entry points to each zone. Here this staircase lost its railings to allow players to go over to the second floor. A simpler exploration area would most likely not have this, and in some cases would have been worse for it if it did as player exposition requires certain camera shots. Here the game moves away from being purely about exploration and makes players evolve on a two-floor loop, gated to a coop move with Tess. Many fights in this game are optional, but this isn’t one of them and the space reflects it.
    As a final reward to completing all combat tutorials, Joel is rewarded with finding his very first shiv, while still inside the combat space. The shiv, much like the first aid kit tutorial (see part 2) is forced to the player as its effect is as straightforward as its game mechanics are complex (upgrades, use). Here the elevation, on top of increasing the difficulty of the fight, also serves to create side exploration spaces. Notice the color of the handrails that add a lot of depth to this scene and help players focus on one of the purposes of this tutorial: elevation.
          The final combat is the fourth human encounter, second unassisted combat, and first active choice on the part of the player between “stealth” and “action”. This choice is actually shown on screen and justified by Tess’s dialogue. This fight is simply a summary, taken to the next scale, of every theme explored in combat tutorials seen this far: navigation, object interaction, enemies visibility cone, player noise and elevation (or lack thereof in this case). The choice of color palette reinforces these options, with the cold colors used on the left for a stealthier approach, and the warm yellow tones used with the sun on the right hand side to show danger and action. The right hand side approach also contains more immediate rewards (weapons) for having been bolder.
          Robert being another human, there was no reason to turn him into a boss. But as Naughty Dog also needed to carry the scenario forward, it made sense to turn this fight into a chase sequence. For the same reason as Joel and Sarah move away from Joel’s office in the prologue, here the chase sequence allows to introduce Marlene much more dynamically and not have her simply appear in the middle of the previous combat space. That latter solution can usually be seen with less important characters, usually from the same faction, as waves of reinforcement.
    The calm before the storm This marks the end of the tutorial section of the intro levels. A few more mechanics will be introduced all along the game (enemies, weapons, upgrades) but the vast majority of the systems has already been presented by now. The bigger the challenge, the bigger the spoils: right after the cinematic ends, Joel is presented with both bandings and blades – the resources needed to create shivs - in two distinct locations separated by the first vista in the game, itself to be considered a narrative reward for having completed the first chapter, as well as an introduction of the destination ahead.
        As Joel progresses through to Ellie, and the tutorials are now all gone, combat spaces become larger, with much longer lines of sight, introducing the many challenges ahead and giving the game its true scale. The next "co-op" take down between Joel and Marlene pushes this type of gameplay another step further by hiding one of the two enemies to kill inside the building, which shows that the gameplay itself will also take place over longer distances, not just the locations.
        Another sign of the hands free design for the rest of the game, the first puzzle players encounter shows no hints at all. After another dialogue corridor designed to present Joel and Ellie’s early relationship, Tess joins them again and the adventure starts. Have fun with the rest of the game!
          Thank you for reading this detailed level design analysis of the intro section of The Last of Us. For any additional question, or to discuss this further, feel free to contact me through LinkedIn.
    This is the third article in a three-part series. Part One / Part Two / Part Three
  19. Like
    Sprony reacted to Furyo for an article, Level Design in The Last of Us: Part Two   
    This is the second article in a three-part series. Part One / Part Two / Part Three
    First Level The intro cinematic here serves two purposes: Introducing Tess and her relationship with Joel, and giving players a goal for the upcoming level. With that done, it’s not necessary to give players other intermediate goals along the way.
    Follow Mission Following an NPC is an excellent, tried and true means to expose players to a completely new world to discover. Tess plays the role of a learning tool, and it’s precisely once players have learned enough about survival in the game that she dies and leaves room for the new relationship between Ellie and Joel to grow. This is an absolute classic process - death aside - used in a great many third person games from Uncharted to Prince of Persia, Enslaved and many others. FPS games also use this technique, but to a lesser degree as following an NPC in first person is often a much more arduous task. Half-Life 2 famously used Alix Vance that way, mostly in non-combat spaces. More recently, BioShock Infinite also followed the same model but made the entire game about that NPC.
    Once outside, players are immediately presented with a good combination of narrative and level design. Tess mentions the curfew that will hit in a few hours, while in the same frame, players can see once again in yellow, the sign that mentions the curfew hours. Attention to small details like that is what will make an entire world more believable. The use of red and white bricks for these buildings adds contrast and depth to this scene, and with Tess going around the corner, helps imagining the path forward.
      Messages painted across walls is as fundamental a narrative design technique as any, but great games will make use of them sparingly, and at the very least won’t reuse the same message more than once per section, so as not to destroy the immersion they’re designed to create. It’s the same thing for talking NPCs, designed for very specific situations, so their speech doesn’t get repeated.
      During this entire level Tess keeps waiting for the player by staying idle on a few of the nodes on her scripted path. This is of course so she can keep being the player’s guide. Notice here however that the implementation of that system is just the bare minimum expected in today’s games. In reality, follow missions are few and far between in this game, as NPCs usually trail behind the player in non-scripted ways. In a game where the NPC is as essential as BioShock Infinite, Elizabeth would have stopped her scripted movement, retraced back her steps to the player (or been teleported behind him) only to resume her script from there. This is a good example of the limitations borne from early creative decisions that dictate the systems developed for the game. It’s entirely normal, but something to be conscious of when creating levels.
    Following on to the main street, where a scripted camera takes over and introduces the new playable zone. This sort of introduction is a dead giveaway of a Naughty Dog game, and is most useful in locking the player in place while the army vehicle passes left, preventing the player from reaching the far end gate and exiting the playable area. With the camera locked in this way, the vehicle may very well simply disappear once passed.
    Arriving in a large area is often a good occasion to introduce more exposition scenes, and in this case two well-constructed ones. Right in front of the player as he arrives, the first scene presents survivors waiting for their weekly ration in a line, behind fences. The fences here work great with the theme of a post-apocalyptic world, but the wall they form is absolutely necessary in scenes like this to limit player interaction and bugs. We find the exact same use of containment barriers in the scene that follows, with the extra touch of the military personnel pushing then killing Joel if players venture too far. Inside closed spaces, most games generally use windows, which we’ll see in The Last of Us later.
        The arrival at the checkpoint is a textbook example of how to center player attention with a dynamic element. On this crossroad, the first semi open area in the game, players may very well be tempted to go either way, but the arrival of the armored vehicle against the player’s direction, the closure of the gates, Tess's placement near the checkpoint and the yellow sign above all point the player effortlessly to the left instead. Naughty Dog manages to seemingly open the game much wider, while remaining in a narrow exposition corridor.
    Another textbook example, and a difficult one to achieve, the quick return tutorial. The narrative scene that introduces it is meaningful as it introduces the Fireflies for the first time in the game, but it also pits the player right against a fence in a position of danger. Just like in the combat tutorial, the necessity to move away from this fight makes it ok to block player controls and require a specific command. Players rarely question this.
    As a side note, some of you will have noticed that the main street had not been gated yet in the game, and Naughty Dog made sure it was by adding this little scene of police blocking the street.
        When addressing player accessibility and teaching, it's important to make the distinction between the two learning models players can be separated in. The first type, Explorative Exposition, describes players who learn by doing; while the second type Experimentation Exposition describes players who by fear of failing expect to have a maximum amount of information given to them before they try. Designing tutorials for these two types of players is very hard, since their learning methods are diametrically opposed.
    Naughty Dog chose here to address both types by designing tutorials for either type and alternate between them. The more complex tutorials, those that either require a huge amount of information given, like weapons for instance (see The Shiv in part 3) or would demand a very expensive and convoluted setting (like this health kit) are designed for the second type of players, stopping the game and giving them everything they need to know before experimenting. The intention of showing the time it takes to heal is well convened here. And to make sure the player actually sees this most important item, Tess gives it away instead of having it placed on a nearby table. Perfect introduction of the mechanic and it reinforces their relationship as no one else would ever have given this for free to Joel.
    As much as accessibility is often separated in three stages (exposition as seen above, validation and challenge), players often find these cobbled together. The second stage for instance is largely unnecessary when designing for a core audience that is already very used to these game mechanics and gamepad controls.
    Follow a few textbook examples of light placement inside this exposition corridor, with inviting diffused lighting that propel Joel forward. At the end of this sequence, we find the first of many trademark moves by Naughty Dog when Joel jumps down a hole. This kind of transition keeps showing up in Naughty Dog almost invariably to transition into a cinematic mid jump (we’ll see that later in the second combat) or to be used as a loading screen to the next level. It also helps segmenting big levels into smaller pieces where NPCs won’t travel large distances back and forth, limiting bugs.
        On the other end of that tunnel comes the first introduction of the “vault over” move, which will be reintroduced at a later point as well. All move tutorials in Naughty Dog games are introduced a number of times in slightly different combinations so players learn by doing more than once. It’s rare enough in games to notice how good they got at it; in reality this entire level is a mixed sequence of tutorials.
        Immediately after this “vault over” move, Joel is presented with his first “safe zone” to pick up his weapons. In the rest of the game, this workbench will allow him to upgrade his weapons. The more interesting part is the left hand side “boost and pull” move, which uses very strong warm colors. Once again the use of the yellow signifies interactivity/where to go. All third person games like Tomb Raider, Uncharted, Prince of Persia, etc. use specific colors on their palette to orient the player, particularly at the start of a platforming sequence. The move itself is gated to players having picked Joel’s backpack on the workbench, and the combination of both tutorials in the same room is not by chance, it’s the only move in Joel’s arsenal that can be disabled given it uses a prop and an NPC.
    We’ve already seen “jumping in a black hole” as a gate, and lifting this door here is just another example of subtle gating mechanisms used to unload the previous part of a level and load the rest dynamically, so as not to require loading screens, or the strict minimum. It’s now so standard that we’ll soon forget it’s a rather recent addition to the arsenal of level designers, created when dynamic loading became possible with PCs and consoles becoming more powerful.
    This leads us into the first puzzle space in the game. Notice the multiple ways to leave this interior space, including the first crouch position to the right. We’ll see the move introduced on the critical path afterwards, but it’s not unusual for Naughty Dog to include such moves before their tutorials are introduced. A few hints give us the direction the player should head in. First the busted up ground is a good tool to shape the ground in the general direction of the gameplay, and make the space visually more interesting (less flat) and more interactive with the player needing to repeat the “vault over” move to get out. Another tool is the direction the crows fly in when leaving the hood of the car. Finally, the red bricks and vines uniformly applied everywhere is a giveaway that the exit is not necessarily straight forward.
    Notice the rug over the destroyed wall, accenting the solution to this first puzzle. This tutorial is a great example of puzzle design, where the problem needs to be presented front and center, so that the discovery of the solution leads to a minimal amount of attempts once found. Portal is the most recent game to have perfectly followed that credo. Of course, this is here simplified to its core essence, but the same principle follows in the rest of the "ladder-based" puzzles. A sign that you have a great game mechanic on your hands is the ability to design variants of the same puzzle throughout the entire game. It means it's a deep enough mechanic, and not a gimmick.
    After picking up the ladder, Joel enters the very first exploration space where he will be able to pick up game resources. Seen as this type of loot is what the entire game economy is based on, it makes sense to present them exactly in the opposite way to the narrative elements of the rest of the intro. Meaning shrouded in darkness when important narrative beats were placed in brightly lit areas. The lighting in this area is worked so the cabinets are mysterious, so that adventurous players learn this classic challenge-reward combination.
    After reaching there and turning around, players can then notice glimmering the very first Firefly Pendant located in the room beyond, with a nice Firefly symbol placed on the wall as a final hint. The placement of that desk in this room is studied to allow that to happen. You can safely assume that this is the easiest of all Firefly Pendants. Having presented the first resources and the first collectible separately is a good move to make sure players understand their different role.
        Jumping down (once again, a gate), Joel enters the first spore-infected area in the game. Tess is once again used as justification, by stopping Joel and putting her mask on. Players immediately understand the nature of the threat and that they won’t ever have to put the mask on themselves. The change in lighting and visibility also preface the incoming danger, immediately shown in a safe situation moments after hitting the spores. The relationship between the spores and dead body are made perfectly clear, and this example of narrative design through environment art is perfectly paced.
        Just like the doors to Joel’s office in the prologue, here is a great example of using interactive objects to place the character in a specific situation and justify the camera transition to a cinematic. The plank, with its forced interaction, is only here to make players notice you can go through the door by squeezing through. In fact, even the dialogue is designed with that n mind. Once in this position, the camera is entirely scripted. One should always expect a narrative element on the other side of that type of sequence, particularly when entering a brand new space. Using this type of contrived cinematic moves has become a main fixture in Sony titles, noticeably in God of War and Uncharted, and in competing titles such as Tomb Raider. BioShock actually was one of the early titles that always tried to justify camera placements. These sequences also sometimes serve to limit the speed of movement of the player, particularly to help loading times in and out of expensive areas. But there are sometimes ways to include these delays in gameplay itself. For instance some of Elizabeth’s lockpick animations were gated to the loading of the area beyond the gate she had to open. In these cases, conversations between her and Booker would also be timed to the necessary delay.
      Once clearing this filing cabinet, a perfect camera takeover to introduce the shooting tutorial. A conveniently placed hurt human (still target) offers the chance for a quick headshot if camera is left untouched. Nearby the ammunition pickup ends this gameplay loop and makes most players come out on top ammo wise. It also offers the game’s first active choice, as are all combats in this game (choice of resources and sometimes tactics). Notice right after this encounter the use of dialogue to justify the next camera takeover and introduce the first combat against infected. The piece of wood falls down just as Tess speaks up, while Joel indicates the need to remain silent. It’s as dynamic an introduction as one can make it and flows superbly.
      Please notice the placement of these infected. Them being tutorials, it’s only logical that they are as scripted as they are. The first one plays to the stealth nature of the combat, reinforced by the action and placement of the two other infected. As you can see above on the first floor, they actually are a landmark for players to orient themselves. Most landmarks are used as large objects in the background of a scene, for instance Half-Life 2’s citadel in City 17’s skyline, and in the case of The Last of Us, the hospital Joel and Ellie reach towards the end of the game plays exactly that role, but in tight corridors and encounters, level designers can reverse engineer an NPC as the landmark, and plan their geometry around. In this case carving up the floor just so the infected can be seen below. Near this location, on the bottom floor and the top floor, two exploration spaces that make good use of this gameplay loop (challenge-reward) offering loot just after clearing the combat.
    Once again outside, this seemingly uninteresting transition area between the combat tutorial and the upcoming puzzle is made interesting by the basketball hoop that provides a clear sense of direction to the immediate space, and the busted up concrete perpendicular to the court adds a layer of depth to an otherwise flat surface. Notice once again the color yellow used in Mel’s Home Hardware store sign, and its placement over the exit.
    Next up is the second "ladder-based" puzzle space that follows the basic rules of great puzzle design. First the exit is presented to the player in the same frame as the problem, and the solution once found (“aha! moment”) only takes one try to complete. Notice how the blue tarp provides a good visual clue in this tutorial as to where the solution is, just like the rug in the first case.
    Leaving the puzzle area that shows that the best game mechanics can be used in multiple variations, the same yellow color is brought by lighting through the window. Around the corner, a little reminder about exploration, with a health pickup dropped on the far end of the ladder.
      Down yet another gate and Joel now follows Tess through a back alley. This otherwise uneventful place sees the addition of yet another reminder of the “vault over” tutorial, as another way to require a button press from the player and keep him/her engaged. This however no longer requires the UI indication on screen.
    Just around the corner lies the second Firefly Pendant. “Hidden in plain sight” is a good way to introduce a second collectible, after having given the first one essentially for free. This one perched in the trees, and the puzzle before it tease the elevation changes of gameplay taught in the subsequent combats. You’ll notice the LD work that went in creating the blockage under which Joel must crawl, which reveals through its branches the glimmering Firefly Pendant.
    Forcing the player to continue through a building serves multiple purposes. The first, and smallest is it helps justify the placement of gun ammo on the table, as opposed to having it just lying there on the streets. The second, the door that Joel closes behind him, is yet another gate for the upcoming NPC – heavy survivors camp, which can even be loaded during the third and final purpose, introducing a small child in a narrative sequence with Tess. These windows here give just the right amount of light in and allow the heavy contrast between the two areas to have the animation read a lot better. This room could have been there simply for optimization purposes, but Naughty Dog managed to turn it into a whole lot more.
       The survivors’ camp is another gameplay loop closing in on itself. After the initial exploration and learning came the tension of the spores and the challenges of the first fight and puzzle, the camp is a narrative reward for having made it this far, and a chance to pick up another two collectibles. However as it’s not the end goal of the level, tension should still be a constant theme, hence the more and more violent scenes one after the other, that also introduce the upcoming fight with humans. Notice the little girl playing with her stuffed bear in the far corner. She and the little boy earlier are nice ways to feature children in action games where rules dictate that no human child should ever be killed on screen. Emphasis on human; children that do get hurt are often already dead, possessed or otherwise sick (School bus in Prey, Little Sisters in BioShock, etc.)
            This is the second article in a three-part series. Part One / Part Two / Part Three
  20. Like
    Sprony reacted to Furyo for an article, Level Design in The Last of Us: Part One   
    This is the first article in a three-part series. Part One / Part Two / Part Three
    Intro Level 1st scene In typical movie fashion, the game starts with an exposition scene which establishes the bond between Joel and his daughter Sarah. Here the watch plays a type of backward MacGuffin (http://en.wikipedia.org/wiki/MacGuffin), which movie fans will be familiar with. A term made popular by Alfred Hitchcock, this initial narrative element will keep showing up in multiple scenes in the game to move the scenario forward and link back to the initial bond Joel had with his daughter. Many other items in this game, which we’ll see exposed in Sarah’s room play the same role. It’s important to note that this game doesn’t use forward MacGuffins, instead relying on the early experience players have with Joel in the intro levels to help them relate to Joel in the later parts of the game, when he faces adversity from the other main characters in the game. This type of catalyst is sometimes linked to gameplay in some games, but not here. For instance, in a quest, looking to get somewhere or obtain something but never managing to. In BioShock Infinite, Elizabeth keeps trying to go to Paris, but never quite goes there in the main game.
    Gameplay Sarah goes to bed, only to be woken up by her Uncle Tommy’s phone call. The initial frame of Sarah getting up is a textbook example of player exposition. Using the mirror on the wall, Naughty Dog adds depth to the room, and presents Sarah as a playable character from both front and back. The color of the lamp shade also leaves nothing to chance. Using a warm color near her beloved items reinforces the comfort of her nest (bed) and contrasts heavily with the cold blue of the night in the mirror. These items on the wall, much like the watch earlier, play a narrative role in the rest of the game as tools to drive the scenario forward between Ellie and Joel.
    Sound wise, Naughty Dog made a classic choice not to add any music and simply build tension with environment sounds in the background. It plays great and helps focus the attention on the initial reveals. In the room, the placement of the birthday card ties the opening scene with this scene the following morning and introduces the “triangle” button as the “hand interaction” one in the game (pick up item, open door, etc).
    At this point in the game, the player still does not quite know what to do, despite having played for a few minutes already. This guidance is given very clearly in a single word, right outside Sarah’s bedroom, as she yells “Dad?”. Perfect example of narrative design coupled with level design, that tells the player his/her immediate goal, and invites him/her to check out every single door, increasing the chances for maximum exposition of every theme in this intro level.
    With the goal now firmly established, the placement of the door straight ahead, too obvious, makes that room a natural space for continued exploration of the game’s themes, as opposed to a significant room. It comes as no surprise to find inside that room just one piece of content. The placement of the only light source in this room, obvious as it is, reminds us that lighting is one of the most straightforward tools to guide players.
    Joel’s bedroom After leaving this bathroom, players are naturally directed towards Joel’s bedroom thanks to the window, extra light placed in front of it, and the barely open bedroom door. The sound of the TV is an ideal guidance tool, suggested instead of shown. This bedroom also offers the chance to see the gameplay loop closed for the first time. The Last of Us’ gameplay loop is always a variant on four themes: Exploration, Tension, Challenge, Reward, Return to Exploration. With the initial exploration started in Sarah’s room and the tension of having to find her dad, this room introduces the simplest of challenges – opening the door and following the gameplay instructions (L3) – which ends with an immediate reward of seeing the explosion in the distance. Finally, Sarah’s “Daaad?” closes the loop and makes players return to their exploration phase. Gameplay loops can express themselves over varying lengths. Second to second, minute to minute, hour to hour.
      Returning to the hallway, a few classic LD rules can be seen in the same frame. The placement of the door allows players to face the staircase in the right direction, and the placement of the lamp at the bottom automatically invites players to go down. Notice its actual placement. While most times placing a light source away from a player’s immediate field of view increases its attraction, this one is placed to the right in plain sight of the player.
    Once at the bottom of the stairs, the window introduces a new narrative element, in the form of police cars. Notice that the cars are driving in the same direction as the player needs to move. This is yet another good tool to guide players subconsciously. If the lamp at the bottom of the stairs had been placed to the left, and away from the player, he/she would have likely turned the camera towards it and away from the windows, negating the introduction of the police cars. That’s why this light source was better left in the player’s field of view.
    Players naturally progress and now face this door to the garden, this time with a light source hidden beyond the playable space which naturally increases the mystery and tension in the scene. Just like upstairs in Joel’s bedroom with the TV, the dog barking here increases tension and attracts players forward.
    Once players reach the window, Naughty Dog doesn’t fall for the cliché of having an infected appear in the garden, and plays with players expectations instead interrupting the sequence with Joel’s phone. Doing so, “L3” is introduced again this time on the player’s critical path to make sure this mechanic is understood by all players.
    The placement of the phone to the right of the door is also no accident. It makes players move further away and to the other side of the living room from the office, where players are now supposed to go. This forces players to go by the garden window a second time and the use of the phone has forced the player’s immediate attention of the window to be erased. This perfect set up was necessary to create an element of surprise for the second traversal of the living room.
    Narrative scene and transition A sign of truly great narrative games is the justification of every single camera takeover by placing the played character in a situation that allows for a smooth transition. Here, that’s the only reason this half open door is placed here. Since it’s already half open, like Joel’s bedroom door, there is no “triangle” interaction required. The goal of this door is to justify the exact position of Sarah in her animated entrance into the room, therefore the position of the camera, to allow for a smooth take over for the rest of the cinematic and the entrance and reveal of Joel, the very first in the game.
    While the entire scene could have played out inside Joel’s office, Naughty Dog chose to have Sarah and Joel leave the office half way through, so as to cut back the length of the walk to the exit door and outside to the car. This allowed them to shave off a few seconds of otherwise boring content and make the action denser. Uncle Tommy’s introduction is pretty hectic with the rapid movements and a lot of information handed to the player, so to reinforce his presentation, Naughty Dog chose to have him turn towards the player once inside the car.
    The Last of Us, as many narrative games, presents choices to the player. They come in two types, active and inactive. Active choices are generally self-explanatory and are not even presented as such in games. For instance, play style (stealth or action) influences the outcome of fights, but they can also come in the form of a single button press, which usually destroys immersion in a world, and breaks the fourth wall. Inactive choices on the other hand play with morals and psychology between players and the characters they play. Here we see the first glimpse of the troublesome relationship to come between Joel and Ellie, in the eyes of her daughter Sarah who wishes that the car had stopped to help the stranded survivors. This makes players ask themselves where they would stand, and take sides with the future protagonists.
    The accident serves here as a transition and justifies leaving the car behind. The timing of that sequence is probably not purely by chance. First Naughty Dog had illustrated all the themes they could from inside the car, and second the attention span of test players was probably waning beyond that point. Notice however the subtle and progressive introduction of infected in the world. The first one, inside Joel’s office comes in when they may yet be taken for humans, and as an element of a cinematic, it offers no challenge to the player. The second, in this car sequence, attacked other survivors and when posing an immediate threat to Sarah, was stopped by Tommy driving away. The third, much closer view comes in as a direct consequence of the car crash. These three progressive introductions of the game’s main antagonist are a textbook example of exposition that allows players to fully grasp the concept of the infected before having to deal with them. Many games fail to present enemies that way, instead relying on one-shot cinematics with poorly explained antics and backstory. The fact these enemies can’t talk and explain themselves pushed Naughty Dog to work them this way into the game, to great effect.
    Combat Tutorial First introduction of the « Square » button for combat. As a rule, tutorials are better introduced when players attention span can be solely directed at the mechanic in question. Here, the tension resulting from the car accident and the sight of the infected nearby focuses the player’s attention on the tutorial for maximum effectiveness. Instead of breaking the immersion of the scene, this tutorial actually flows inside it, and players never question it. Naughty Dog’s choice for minimal UI invasion on the screen really pays off here.
    Chase sequence Introducing Joel for the first time as a playable character (and the main protagonist) in the middle of a stressful situation could have been a risky proposal, which Naughty Dog managed to make work by taking away all combat (automatic death if caught by infected and gun given away to Tommy). Sarah, who would have trailed behind and become a center of attention for players is reunited with her dad after getting hurt in the accident. All of these moves act as perfect justification to have players only ever care about their own character. The only action required of the player is to dodge pedestrians, which is exactly the best activity to learn to control a brand new character. The use of a car that crashes into the gas station is a bit of a cliché by now, but remains a very strong justification for sending the player to the right, and have a couple invisible walls across the other streets. It remains better than a simple static object across the street and infinitely better than nothing at all.
    The firemen truck across the street serves both as justification for the fire raging in the building next door, and as a way to direct the player to the car crash about to block the street off. This second instance however occurs much closer to the player, increasing tension further, and culminating with stopping in front of the theater beyond. This “three strikes” approach to game design is rampant through most games these days, and certainly The Last of Us, for instance during the combat tutorial (three square button presses to leave the car) and is a sort of golden number first generalized by Nintendo.
    The use of audio after the third street blockage is mandatory given the exit is not readily apparent within a 45 degree field of view on either side of the theater. In third person games, presenting exits within this 90 degree angle is generally considered a safe choice to have players flow, on consoles at least where the FOV is usually limited more than on PC games. For instance, this was the rule we followed when designing Prince of Persia in 2008.
    In the alley and through to the other side, great use if not subtle of lighting to direct players to the left, and first use of the yellow color on all directional and interactive hints, which we’ll see later in the first level. We’ll find the same use for the ambulance down below, which strong red lights contrast easily with the night, and even the wind indicating the sense of direction. The headlights serve as guidance too of course, much like the hurt survivor on the ground.
        This is the first article in a three-part series. Part One / Part Two / Part Three
  21. Like
    Sprony reacted to Thrik for an article, Announcing the UE4 Whitebox Challenge winner!   
    DM-Helium by Chris '2d-chris' Kay

    Congratulations! While no prizes were planned, Chris will receive a special winner's T-shirt for his efforts. It's truly a gorgeous map, although it's in good company as all entries were of a high standard. The community has some great maps to play on right here, and I've no doubt that we'll be seeing more of them in playtests and on servers.

    The challenge was fascinating to watch, with the filled with shots of the in-development maps and — perhaps more importantly — members helping one another to create some sweet Unreal Engine 4 levels. In fact, this part of the challenge was so interesting to follow as a non-participant that we're going to try and make the in-development phase of future challenges more prominent by following the progress with articles taking a look at how things are going.

    The official Unreal Tournament site picked up on our challenge by talking about it for a few minutes at the beginning of the challenge, and while they briefly acknowledged the end of the challenge in a more recent stream they're apparently still checking out all the maps and will be featuring them more shortly — so stay tuned for that!

    I'd like to thank everyone for their involvement, and I sincerely hope that everyone had a good time experimenting with an engine iteration that's still new to most people. Be sure to head over to the to check out and download all of the levels!

    We don't mess around at MapCore and want to get one more event in before the year ends, so we're going to be kicking off a Quake 3 contest very soon — this time with substantial prizes, just to spice things up a bit! Hang tight for details about that.
  22. Like
    Sprony reacted to Thrik for an article, Introducing MapCore's new logo and store   
    Designed by professional designer Arthur de Padua (AKA Thurnip), the new logo was developed over a period of many months and incorporates some of the successful themes that came up during the logo design contest we had some time ago. Unlike the existing logo which only existed as a low-resolution render, this one is perfectly crisp and comes in numerous formats suitable for print — allowing us to finally offer high-quality merchandise.

    So, head over to the MapCore store if you want to show your MapCorian allegiance in public! All items come as a 'Regular Edition' (no profit for MapCore) and 'Donation Edition' (£5 profit that goes towards MapCore hosting/development costs).

    We're currently offering a small but carefully designed selection of products. Once we make sure everything's running OK and we don't need to change vendor for whatever reason, more products will be added. We'll also soon be adding a way for you to donate while receiving a small token of appreciation (e.g. a sticker that can be bought for £5, £10, or £20) for those who want to support us but don't necessarily need or want a T-shirt, etc.

    If you buy anything, be sure to post some photos for us to look at! I have some orders on the way, so will create a thread for such snaps if nobody else beats me to it. If you'd love to buy something but the item you want isn't available, don't hesitate to leave a comment or get in touch with me — I'm happy to build up the products based upon what people want.
  23. Like
    Sprony reacted to FMPONE for an article, Operation: Payback, First Hand   
    The first map-pack for Counter-Strike: Global Offensive (CS:GO) was launched by Valve in the Spring of 2013. It was called Operation: Payback, and consisted exclusively of community-created maps. I'm often asked about my experience as a map-maker whose work was featured in the promotion. And just recently the sequel to Operation: Payback was launched — Operation: Bravo.
    What's the objective of these "Operations"? I would describe them as Valve’s way of supporting custom mappers. If you've ever purchased a map-pack DLC for games like Call of Duty, you sort of know the drill... but the crucial difference between a typical commercial DLC and what Valve is doing, is monetary proceeds from each Operation go to community members. And community members are making some serious coin: well over $180,000 dollars was raised throughout Operation: Payback’s five-month season. That's a HUGE reward for mappers, which is having a real impact on our lives. Any fan of gaming and game development done the right way should not miss their chance to support Operation: Bravo.
     

     
    But what if you don’t play CS:GO?
    First, I would suggest you give the game a shot, since that’s the only way you’ll get a chance to check out my newest maps, which (full disclosure!) were included in Bravo. CS:GO is typical Counter-Strike: it's really addicting... in a good way! Secondly, Operation: Bravo means more than just eight brand-new maps for people to play. Historically, Valve has always tried to provide a financial incentive for artists and designers to make custom content for their games (we saw this in Team Fortress 2 for instance, where some folks were taking home as much as $100,000 yearly just from making hats). At this point, it’s clear that you can earn money by making stuff for Valve titles. What might not be obvious is how bold Operation: Bravo actually is, even compared to what we've seen before.
    Bravo is intimately connected to the case-drop system recently unveiled for CS:GO. What that means is that by buying a Bravo pass, you increase your likelihood of obtaining cases which can be opened to obtain rare items, or simply sold on the marketplace for a profit. At initial launch, Bravo cases were going for as much as thirty dollars. It sounds ridiculous, but it seems likely that for most players, Bravo will tend to pay for itself. Welcome to Steam-land!
     

     
    Valve's unprecedented support for custom content is a big reason why I wanted to get heavily involved with mapping for the new Counter-Strike, even before I knew much about the game. I was confident that big things were on the way. But Valve — and the community — delivered beyond my expectations. So, why should you join thousands of others in supporting Operation: Bravo? I think there are three key reasons:
     
    1) As graphics get exponentially better, custom content becomes that much more challenging to create. More knowledge, experience, and personal sacrifices are required of designers and artists.
     
    2) In the past, innovators have created some of your favorite maps and games.
     
    3) Valve is paying close attention. Send them the unambiguous signal that you will support their newest effort to reward content creators.
     
    As for myself, I'm in law school. At my school, students should budget for a debt load in the area of $60,000. So far, thanks to Valve and the community’s generosity, I have received almost $18,000, putting a serious dent in my debt. By the end of this year, thanks to Bravo, that figure is likely to grow substantially...
    From a designer's point of view, from the moment that my map was included in Operation: Payback back in April, it instantly attained a higher public profile than ever before and received more play than ever before (including substantial play from CS:GO's developers -- which is pretty special). It's difficult to describe the stress, fascination, and thrill you experience watching a crowd of gamers running around a level you created. Basically, it made me prouder than ever to do what I do.
    I was also incredibly grateful that Operation: Payback enabled me to reward the artists (3Dnj and penE) that I had collaborated with. Because of the well-known Counter-Strike brand name, as well as the money I earned, I was also able to include my friends and family in my creative endeavors more than ever before. All the kindness shown by Valve, the community, and folks sending me Steam messages of congratulations and enthusiasm (and yes, questions about how much I earned) was both touching and invigorating. Now I'm dreaming about levels more than even I'm accustomed to.
     

     
    So, that's my perspective... but keep in mind I'm just one of the people this promotion uplifted. I hope you agree that Operation: Bravo empowers the community and provides serious income (not to mention resume pedigree) for map-makers. In closing, please consider supporting Operation: Bravo!
  24. Like
    Sprony reacted to sock for an article, Do you really want feedback?   
    When a developer creates something that they feel proud of, it usually involves a large amount of time, energy and emotional investment. It is not uncommon for people to pour their heart and soul into something creative and then feel overly sensitive afterwards when confronted with a stranger's opinion.
    Understanding what type of feedback is being offered can help you get past defensive feelings and realize that feedback is about helping to improve something, not hinder it.
     
    "Yeah your game is awesome!" Receiving compliments about something that you have worked on for a long period of time is great. Apart from the feel good factor, Candy feedback can also lead to other people being curious enough to want to try the game as well.
    The best type of Candy feedback is when it is specific about something in the game and that is usually a good indication that the game is going in the right direction.
     
    "Why does it work that way?" Questions are always good feedback because it is someone trying to understand why it works. This is the perfect opportunity for you to learn how to express your ideas in a way that others can easily understand. When someone initially asks a question they usually have further feedback, but they don't know how to express it yet and need more information.
    Always remember there is no stupid question and answer politely because it will often lead to feedback that has been thought about over a long period of time.
     

     
    "Your game sucks!" Nobody wants to hear negative comments and it can be really easy to take this the wrong way. Feedback posted in anger is about frustration and lack of understanding. You need to put on your detective cap and find out why, be polite and ask simple questions. Why? What? How?
    Remember to keep your replies free of emotions and to the point, if this is someone who genuinely does not understand it will often lead to good feedback because their problem was so frustrating that it drove them to comment!
     
    "Your game is good, but..." Usually starts with a good compliment to break the ice, quickly moves onto the feedback and then sometimes a solution to fix it! The perfect feedback is when someone has logically thought through a problem, able to explain themselves and give a possible solution.
    Thinker feedback is often referred to as constructive criticism and is the easiest type of feedback to understand because the thinker is direct and to the point, they want to improve the game.
     

     
    "No comment" There is nothing more frustrating than ‘no comment'; I would take a hundred angry people shouting feedback at me any day of the week than wondering why no one has made a comment.
    Besides access problems (lack of login id, restrictive websites and foreign language) the lack of comments often stems from social convention that if you got nothing positive to say, then say nothing. At least a negative comment can lead to change, ‘no comment' leads to nothing.
    If you are defensive and angry towards feedback eventually no one will comment and this is not where anyone wants to be. Try to engage people with questions, get people involved in the process of creation and most importantly accept all kinds of feedback without prejudice.
     

     
    "This game feature is so stupid!" Fanatically feedback is ultimately positive because it can highlight really obvious problems that should be fixed. Passionate fans of games get a bad deal when compared to sports fans because they are so vocal.
    Having someone engaged and wanting to be heard is the perfect starting point for a conversation and once all the feedback has been broken down into facts it can often highlight the most obvious problems that are overlooked because most developers don't think like new players.
     
    Conclusion Feedback is something that should be embraced because it can take a game in new directions and add features that were obvious to new players. Looking past the emotion of Internet feedback will stop you from getting upset when someone is not being subtle with their thoughts. Posting stuff on the internet is about asking for feedback and expecting only good comments all of the time is naive. The best kind of feedback is pointing out things that are wrong because then your game will improve rather than just be ‘no comment'.
  25. Like
    Sprony reacted to Thrik for an article, Interview with Jean-Paul Jarreau, Black Mesa level designer   
    Tell us a little about yourself. Where do you live, and what's your day job? Oh man. I unfortunately live in Rochester NY (no its not driving distance from NYC) and am currently unemployed. I graduated college with a degree in Photography and a minor in Philosophy in 2011 and worked for my step father's company until july of this last summer. So I currently spend all my time working on levels and photography, I honestly cannot complain right now.
     
    When and why did you decide you wanted to bring worlds to life in 3D? When I was 14 I had a passion — playing games. I loved it, it sparked something inside me and I had no idea what it was, but I liked it. My personality can be pretty analytical at times so naturally I tried to figure out how to make them. I love architecture, buildings and 3D space, so I just went for it. I spent hours and hours in every level editor I could find and I, admittedly, stuck with hammer because it was the easiest to pick up, had the largest support and the biggest community. I've been with it since. That's what, 9 years? 9 years of blue screens and move_rope causing crashes straight to the desktop — it's a love–hate relationship.
     

     
    How did you get involved with Black Mesa? This is funny considering the level of amateur crap I have made. I applied to Black Mesa back in 2004/2005 by sending a VMF to the founder of Black Mesa (Jon) of my recreation of the first Power Up level. It was a mess and ugly as sin. I had quite literally no idea what I was doing, but it was satisfying to create, so I kept with it. I clearly remember Jon's words: "It looks, eh, amateurish". So, I spent the next few weeks refining my work and I applied a few other times. I eventually got on the team and I started work from there. I remember a good friend of mine, Daniel Junek, was already on the team and when I loaded up the private developer forums and saw his orange map layout of the blast pit silo, immediately knew I was going to be on the team for a long ass time — I saw what COULD be Black Mesa and was instantly inspired.
    Funny story: I always considered Daniel's work (he did Blast Pit) to be godlike, it was just incredible, I had never seen anything of such quality and ridiculous planning and care. I have this habit of comparing anything I do to the current best work in the world so I know how to improve myself and I considered Daniel's work to be the best in the world. So, naturally, I compared my work to Daniel's and for years it never even compared, but I was slowly getting there. So, a few months ago I, slightly buzzed, messaged Daniel on steam and came to realize he did the same thing with my work this entire time.
    I joined the team and looked at what was available to work on and I, of course, had to pick Lambda Core. I had no idea what I was doing and some of the early parts of Lambda Core show that.
     

     
    What was it like getting to reimagine the world that kicked off many MapCore members' interest in level design? Oh wow I never thought of it this way. Want to hear something hilarious? Before getting on the Black Mesa team I had never played Half-Life before aside from one or two killbox matches on a friends computer. 
    But as for re-imagining a world that so many hold dear? Its a difficult process, at least for me. I wanted to strike people on an emotional level with my work, I wanted people to see certain things I made and say "Holy shit, this is amazing", and while I don't know if I have accomplished that or not, I do know that getting there was an intense process.
    I remember loading up a Lambda Core map and thinking to myself, "What makes this interesting? What makes this bad? What makes this fun? What makes this area instantly recognizable? How do I create something in the present that completely awed those in the past? It was honestly tough in certain parts and I can remember re-doing sooooo many parts of the game because I personally thought it didn't hold up to any creative scrutiny.
     
    Were you often tempted to take a whole new approach to parts of the game? How did you find the right balance of old and new? This is a good question and I bet some die hard Half-Life fans still think we screwed up parts of the game haha. For me it was mostly taking a look at the original and what it tried to accomplish and improving on that. Sometimes certain areas didn't even need improvement, it just needed refinement, an extra level of polish to really take home its intended goal. When there was a controversy over what should be done in the game, we would just look at the 'numbers'. Did a majority of Half-Life players like this certain area? If not just scrap it and try again but be sure to retain the original's emotional impact on the player.
     

     
    Did it ever feel like Black Mesa might never make it? Was your motivation affected? More than you can ever imagine. We worked on it for about 9 years remember! Honestly? It probably felt like we weren't going to make a release more than we were going to make a release. There were periods of inactivity on our developer forums for months at a time. We all have personal lives to attend to and sometimes it would be a perfect storm of events where no one would work on anything for extended periods of time. Then, out of nowhere, something would happen and everyone would get sparked and jump right back in and get loads of work done for months. Rinse and repeat.
    In the SUPER early stages of development there was a point where we didn't even have a coder for 2 years. You can only imagine how incentive was on the team at that point.
     
    There's still a significant portion of Black Mesa yet to be completed. Will it be purely new material when the remainder is released, or are you revisiting and/or expanding existing material? I will answer with a simple work-in-progress screenshot of something I am working on and nothing else:
     

     
    What do you think is a stand-out part of Black Mesa? I have actually never thought about this! But the FIRST thing that jumped into my head is when you first enter the turn-table room in Power Up. You witness an intense fight between a Gargantua and a few human grunts. It's incredible because of the collaborative effort that went into it without a single f**king hitch. It's like it was done by one person! Let me explain:
    You enter a beautifully themed section of the facility created by Daniel Junek You witness well crafted animation by Nate of the Garg getting blasted by a human grunt and consequently falling into and breaking the concrete wall near him. The Garg was made by Chris The surrounding textures are made by Mark The dead human grunt bodies turning into scorched corpses, the flame effects, and the Garg behavior was done by Paul and Mark All the sound was done by Joel Look at that! It's the personal work and vision of a team of people all together forming a unified and impressive quality of interactive work. It wouldn't even be possible to create something that well done by one person.
    Now you may say "Hey, thats how all games are made." But, its a little different when you are creating something of this size and scope and all you have to communicate with your co-workers is Skype and a forum. There were a lot of times when I would be making a gesture with my hand or something while trying to describe the way I want a prop or texture to look. That was frustrating.
     
    You do a lot of multiplayer level design in addition to your single-player work. Which do you prefer? Single player is telling a story and using the environment to make playing the story fun and visually interesting while guiding the player through a struggle. If you can hold a player's attention and feed them the facts then you are good to go. Multiplayer is about cohesive design and fun welding itself into one entity and that can be difficult at times. Honestly I probably prefer the multiplayer work because of repetition. You know players will be running around your environments thousands of times which will eventually lead to an appreciation for the map on tiers usually only seen by the actual level designer. That is a double edge sword though.
     

     
    Briefly, what's your general workflow for putting a level together? LAYOUT, LAYOUT, LAYOUT. I try to get simplistic layout for a map that is fun and cohesive before doing anything else. Why do you play a video game? Because it's fun, and as a level designer, that fun can be directly proportional to your quality of work. You are almost like a spokesperson of your entire team's work and I love it. I mean I could tell you about all my thought processes while I work but that isn't as fun. But, I usually tend to think of ideas in a 3D space, so I never really draw layouts, I usually just throw some brushes around to get my idea out of my head and see what can be made of it before I attempt any sort of real layout. A lot of my past ideas failed even before getting to the layout stage, so that is good (I think).
     
    Which bit of the process is your favourite? That part in a map's life right as you know everything is fun and you get to unleash your thematic ideas you had been planning in your head while working on the gameplay and layout.
     

     
    And your least favourite? Any sort of tedious mind numbing repetition is annoying. Or when you spend a long ass time solving a problem in your level only to have it come out like crap but its 5am and you have to go to sleep knowing what you just created is terrible. That's no fun for anyone.
     
    What's the hardest problem you've encountered while mapping? Writers block can apply to anything really. There were times where I would just stare blankly at a map for hours not knowing what to do. Recently though? I cant stop with my ideas, it's great. I'm trying to ride that wave for a little.
    Also, scrapping something you have put a massive amount of effort into can be disheartening but it has to happen sometimes. But what essentially is anything creative? It's the formation of an idea while hiding your influences. Sometimes these ideas need to go through an emotional struggle before work can continue.
     
    Which piece of level design are you most proud of? To date, my Black Mesa magnum opus is most definitely the final Lambda Core teleporter and its prior lower reactors. Fun fact I thought some designers might appreciate: the entire Lambda Core reactor and teleporter actually lines up like an actual facility if you copy all the maps into one file and place them correctly.
    More recently? It's my map cp_imbricatus for Team Fortress 2. I have a feeling that the map will fundamentally change the way a good three-control-point attack/defend map should play.
     

     
    In addition to level design, you're an accomplished photographer. How did that begin? Accomplished? Oh you. Thanks, you.
    Here is a story I have never really told anyone haha. I was an idiot in high school, I mean who wasn't? But when it came time to apply for colleges, I just straight up didn't make the cut. I applied to stupid high reach schools and nothing else, I think I even applied to the wrong program in a few schools. Needless to say, I didn't get in anywhere and I panicked. My mother had some connections at Rochester Institute of Technology and randomly one day called me while I was out and asked me a few questions:
    She said, "I got you into RIT and their photo program doesnt require a portfolio, which would you like to do? Fine art, photojournalism, advertising or biomedical photography?" I got lucky and I knew it. I wound up graduating with a bachelors of fine art in advertising photography. Crazy.
     
    A lot of your photos are taken in very challenging conditions, such as live music performances. What skills and equipment do you employ to get such great results? Simplicity is key. Both visually and philosophically.
    You must look at every situation like you are the one viewing the content with no prior context as to what is going on. Do you want to portray a story? Do you want to create something purely for its visual content? What's your end goal? I could honestly talk about this for hours.
    I currently only use a Canon 5D Mark 3 and the only lens you ever need — a prime 35mm f/1.4. A good photographer with a bad camera is going to make better pictures than a bad photographer with a good camera. I also adhere myself to a lot of personal restrictions (in level design as well). An example being I never crop any of my images, I always thought it was best to just leave it straight out of camera. I do Photoshop my images, but I don't crop them. (Note: if you are a client that hired me as a photographer, I will do anything you want to the images if you request it. These rules usually only apply to personal work.)
    Keep an eye out on my Tumblr for some new photography coming up soon.
     

     
    Do you find that your photography skills bleed into your level design? For example, when composing scenes? Absolutely! And it works both ways too, photography helps my level design and level design helps my photography. Lighting plays a more important role in both than most even think. I am just lucky to have experience in both.
    I don't want to toot my own horn here but look at the lighting in some of the reactor areas in Lambda Core. It got to the point where I set 50% and 100% falloff distances with a hard cut-off for the yellow lights surrounding the central cylinder so the centre reactor would ominously glow yellow without casting any mood changing light onto the surrounding geometry. Does that level of detail pay off in the end? I don't know but I hope so.
     
    What games would you say have inspired you the most? I have never thought about this before but here is a list of the first games I can think of to inspire me:
    Ocarina of Time: Video game perfection. Majora's Mask: I cannot even put into words the impact this had on me Wind Waker: How do they even make this stuff? It's like they converted crack cocaine into playable form. Half-Life: Was I obligated to say this? This game changed what a first person shooter could be with its incredibly inventive layouts and story telling. Painkiller: The basic first person shooter mechanics perfected and in gory glory too. Incredible environment art to boot as well. Banjo-Tooie: Incredible game design, just incredible. Battlefield 2: The amount of serotonin released in my brain by playing this game should be illegal. Super Mario 64: An amazing sandbox game before that term ruined a lot of modern day games. Far Cry: It materialised my emotions while playing a game by me actually muttering the word 'wow' while playing in certain spots. There are loads more but these are just what I could think of off the top of my head.
     

     
    If you could give a budding level designer a short piece of advice to help them succeed, what would it be? Your work is going to suck for a long time, get used to it. If someone is being a dick about your work, they probably have a good point. Listen to them without bias. This will push you beyond what you thought you were capable of. You made the level, no s**t its easy to understand by you — other people HAVE to play it before anything is considered good. Scale will make or break you. Do a lot of scaling tests in every game you want to develop for before attempting anything else.  
    MapCore would like to thank Jean-Paul for his time, and wish him the best of luck with his future projects. You can enjoy more of his work by visiting his portfolio and Tumblr. He's also looking for people to help out with testing his latest Team Fortress 2 map; simply download 'cp_imbricatus', take a peek at the
    and join in on the tf2maps.net server.
×
×
  • Create New...