The document discusses various techniques for developing AAA games in Unity 3, including:
1. Demonstrating Unity 3 features such as lightmapping, occlusion culling, tree editing, and post-processing effects.
2. Planning graphics such as storyboards, cutscenes, color palettes, and collecting environment references.
3. Techniques for environment art, modeling, texturing, lighting, and vegetation.
4. Programming aspects such as coding languages, soldier behaviors, enemy systems, streaming, and implementing decal systems.
5. Addressing challenges with occlusion culling in forest environments and techniques to fake occlusion using dense tree canopies.
This is the block and vocabulary deck that captures the keywords used during the introductory lesson for the CodeTigers/STEM Impressionists' live stream "Starting with Scratch - Introduction to Scratch" lesson. YouTube class link: https://www.youtube.com/watch?v=oZdKo3e4sOo&list=PLojHYcMFUgmqESfusKm5olQqP3WBpvMsZ&index=1&t=190s
This is the block and vocabulary deck that captures the keywords used during the introductory lesson for the CodeTigers/STEM Impressionists' live stream "Starting with Scratch - Introduction to Scratch" lesson. YouTube class link: https://www.youtube.com/watch?v=oZdKo3e4sOo&list=PLojHYcMFUgmqESfusKm5olQqP3WBpvMsZ&index=1&t=190s
This is great document available,have done alot of work to develop this sort of presentation.
hope you would find the introductory and basic material of autodesk Maya 2015
This Ppt is based on the Raster animation . It explains u ablout a brief idea bout the Raster Graphics its Working with Real time Animation Examples that are used in our day to day life.
The following points are covered in this ppt
1. Introduction
2. Working of Raster Animation
3. Types of Raster Animations Modern and Traditional
4. Examples
5.Applications
6. Advantages
7. Disadvantages
Scratch programming introduction to game creationAnkita Shirke
This ppt will teach you how to use scratch programming language
see scratch videos on you tube @ankitastechtutorials1211
https://www.youtube.com/watch?v=odXmk3Rd56w&list=PLQXi1nekYknVOwpCUUunWKvNdMLbvP747&pp=iAQB
Ankitas tech tutorials
Scratch is an open-source application developed at MIT to teach students as young as five years old to program using drag and drop blocks. Your students can quickly create interactive animations, games, or presentations for school.
We will uncover an often overlooked feature of Scratch and integrate external sensors and inputs through our PicoBoard. Learn to build data collection, graphing, and visualization in Scratch!
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014Mary Chan
Using lessons learned from working on AAA 2D games, a 4-strong indie team set out to create a complete pipeline for creating modern 2D games with an organic feel and a high level of polish... on indie-scale resources.
The tools and techniques developed to reach that ambitious goal will be presented, from the innovative animation system, the terrain, vegetation and level art system, to the effective but powerful rendering model, and more.
Intended audience & prerequisites: Anyone working on a 2D game: programmers, animators, level designers, level artists.
The talk will be of particular interest to teams using Unity, but rather than being purely technical, the talk will outline principles that can be applied in any engine.
Session takeaway: I believe 2D has a great future ahead of her, and that we can do much more with it. I intend to demonstrate how to improve the production pipeline, and invest in tools to become more technical the way 3D does, while retaining the unique advantages of 2D.
Game Credits:
Rayman Origins (Ubisoft Montpellier)
Rayman Legends (Ubisoft Montpellier)
Tetrobot and Co. (Swing Swing Submarine)
Seasons After Fall [working title] (Swing Swing Submarine)
Roberto Mangiafico, CTO BadSeed Entertainment - Sleep Attach: A Technical Pos...How to Web
This presentation tackles the technical challenges behind the creation of Sleep Attack for iOS and Android, a 3D game with a 2D look, with all the movements of a 3D world. The challenges and solutions regarding the rendering process, the memory and the performance of the game were reviewed.
Looking back at the production process of 'Another Case Solved' - a story-driven puzzle F2P game by ATGames. Slides from a speech on Digital Dragons 2014
This is great document available,have done alot of work to develop this sort of presentation.
hope you would find the introductory and basic material of autodesk Maya 2015
This Ppt is based on the Raster animation . It explains u ablout a brief idea bout the Raster Graphics its Working with Real time Animation Examples that are used in our day to day life.
The following points are covered in this ppt
1. Introduction
2. Working of Raster Animation
3. Types of Raster Animations Modern and Traditional
4. Examples
5.Applications
6. Advantages
7. Disadvantages
Scratch programming introduction to game creationAnkita Shirke
This ppt will teach you how to use scratch programming language
see scratch videos on you tube @ankitastechtutorials1211
https://www.youtube.com/watch?v=odXmk3Rd56w&list=PLQXi1nekYknVOwpCUUunWKvNdMLbvP747&pp=iAQB
Ankitas tech tutorials
Scratch is an open-source application developed at MIT to teach students as young as five years old to program using drag and drop blocks. Your students can quickly create interactive animations, games, or presentations for school.
We will uncover an often overlooked feature of Scratch and integrate external sensors and inputs through our PicoBoard. Learn to build data collection, graphing, and visualization in Scratch!
Benoit fouletier guillaume martin unity day- modern 2 d techniques-gce2014Mary Chan
Using lessons learned from working on AAA 2D games, a 4-strong indie team set out to create a complete pipeline for creating modern 2D games with an organic feel and a high level of polish... on indie-scale resources.
The tools and techniques developed to reach that ambitious goal will be presented, from the innovative animation system, the terrain, vegetation and level art system, to the effective but powerful rendering model, and more.
Intended audience & prerequisites: Anyone working on a 2D game: programmers, animators, level designers, level artists.
The talk will be of particular interest to teams using Unity, but rather than being purely technical, the talk will outline principles that can be applied in any engine.
Session takeaway: I believe 2D has a great future ahead of her, and that we can do much more with it. I intend to demonstrate how to improve the production pipeline, and invest in tools to become more technical the way 3D does, while retaining the unique advantages of 2D.
Game Credits:
Rayman Origins (Ubisoft Montpellier)
Rayman Legends (Ubisoft Montpellier)
Tetrobot and Co. (Swing Swing Submarine)
Seasons After Fall [working title] (Swing Swing Submarine)
Roberto Mangiafico, CTO BadSeed Entertainment - Sleep Attach: A Technical Pos...How to Web
This presentation tackles the technical challenges behind the creation of Sleep Attack for iOS and Android, a 3D game with a 2D look, with all the movements of a 3D world. The challenges and solutions regarding the rendering process, the memory and the performance of the game were reviewed.
Looking back at the production process of 'Another Case Solved' - a story-driven puzzle F2P game by ATGames. Slides from a speech on Digital Dragons 2014
This talk is about our experiences gained during making of the Killzone Shadow Fall announcement demo.
We’ve gathered all the hard data about our assets, memory, CPU and GPU usage and a whole bunch of tricks.
The goal of talk is to help you to form a clear picture of what’s already possible to achieve on PS4.
Ever wonder what it takes to put together a blockbuster 3D game? Wonder no more. In this talk, we’ll discuss game theory as it relates to today’s gaming industry, examine the essential components of a 3D game, and survey the roles and specialties involved in making a AAA title.
Knock knock on GameDev gateway! - Introduction to Game developmentMamdouh Tarabishi
This is the slide from "Microsoft Developers UAE Meetup #1"
the 3d Session "Game Development".
It is an introduction to the Game Development with recommendation how to start.
I wrote and article covers all what i talked about in that Meetup, Check it on my blog:
http://blog.tarabishi.me/2014/09/microsoft-developers-uae-meetup-1.html
Albion Online - Software Architecture of an MMO (talk at Quo Vadis 2016, Berlin)David Salz
Albion Online is a cross-platform sandbox MMO RPG game. This talk takes you behind the (technical) scenes. We will take a look at the structure of the server farm and its inner workings, the databases, the threading and message processing model and many other interesting implementation aspects. On the client side, Albion uses the well-known Unity game engine. The second part of the talk will describe how we use Unity (and which features we do not use, which is just as important!)
Controlling Project Size for Student/Hobby Videogame DevelopmentChris DeLeon
Brief introductory talk for the VGDev student videogame development club at Georgia Tech, highlighting basic concepts to help keep student/hobby-sized projects realistic and completable.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
- Unity Bootcamp is all about Unity 3 new features. There was no intention to create a revolutionary gameplay, but to really push hard the tool boundaries and create the most advanced and good looking Unity application we could make. Of course we are not AAA game experts, we could learn a lot of things during Bootcamp development, and explored some technics more usual to big studios, that were kind of new for us. But at some level, we could achieve very similar results. - My work in this project embraces all the art direction, both technical and non-technical art. And I`m specialized in creating environments, so I`m going to focus on some technics used in Bootcamp environments.
- These are the main features available in Unity3. The tool itself presented a huge breaktrough compared to previous version, so the same is applied to the demo. it was really challenging to create a game based on many new features, most of them in early development stages. - Our briefing was clear. We had to create a demo based on military theme, and keep single situations to show new features. Assets and levels loading should be seamless, and take advantage of beatiful cutscenes to fake data streaming
- Our proposal was to create a military training situation. It's a nice starting point because simulate a real war would demand a huge work to make it convicible. On the other hand, creating just a small open world without objectives would be poor. The linear gameplay in a brief training routine fits better and do not create false expectations from users.
- Initially, the path was planned to have 4 different sections. Due to delivery dates we were able to deliver the first 2 parts (forest and industry) and the opening cutscenes. The next section would be a Jeep Ride, intended to demonstrate some car physics. And the last scene, an underground military base, perfect to show lots of aftificial lighting and the advantages of the deferred rendering system. - It's always hard to evaluate new project's sizes. Fortunatelly, the fisrt two levels were enough to show pretty well the new features. And we should have that in mind since the begining.
- For the enemies. The same comparison involving a war game and a small training, is valid. The AI present on every modern war game is too complex. Human enemies don`t just know when to hide and shoot, but also are able to attack in groups, or prepare an ambush. But also moving wood planks are boring and not cool at all.
Then we decided to create this trainning dummies. Which are not intelligent like humans and not boring like wood planks. And we were able to add some original design to the game too, which is good. - The turrets follow the same principle: Simple and functional.
- As an important part of the project, the visuals need to be planned carefully. Today, game artists need to consider lots of different expertises to create a good looking game, like photography, for example.
- Starting with the basics, a storyboard is essential. For Bootcamp were created detailed and sequenced drawings for cutscenes. And some individual images for gameplay.
The Storyboard is essential to take the first game overview. It’s useful to manage colors, cameras, and flow. Dedicate some time to draw a good storyboard if you`re able to.
- Another important step of the process is the color palette. Sometimes forgotten by game artists, colors are one of the deepest informations we store in our brain when watch a movie, see an advertising, or play a game. Even when you can`t remember exactly what you saw, the color are still there, in your memory.
- This is something we call "timeline color pallete". It translates in a single image the color composition for the entire game sequence. - It`s not totally necessary to turn this single pallete in to a document, but the art-director need to have it clearly on his mind. To orientate other artists.
- Create very realistic levels is hard. Don`t try to simply start modelling and texturing them because you probably will do it wrong, Collect lots of references instead. In Bootcamp, all the key buildings are based on real places.
Real pictures in the left and Unity Bootcamp in the right. - It`s also important to filter all these references before start. For Bootcamp were collected approximately 3.000 pictures. Industries, forests, landscapes, trees, waterfalls, helicopters, military equipment and more. But Less than 20 percent were actually used.
- These places are pretty familiar :) - But where to get all this images? There are plenty of good image banks on the internet, and some artists like to keep their own collection..of rusty stairs, for instance. I personally love flat concete walls. It`s just something weird level artist usually do.
There are technics to join all these images in just one place. And turn a simple photo album in to a game level
- This is the industry foot plan. Every location has a picture assigned. Only few corners and hallways were actually created. Basicaly only to connect buildings to each other. The final result is an original game level, but at the same time, very realistic because it’s based on real pictures.
Composition is important to give harmony to every visual media. Like movies, paintings and more recently, games. - Games levels are done to provide a good gameplay experience, but there is some composition tricks capable to turn your level in something more interesting, enjoyable to explore. And are the same tricks present in photography.
- In Bootcamp, the industry entrance is the easiest place to stick in your mind and make you think "yes, that place can be interesting". Basicaly, everyone who captured a promotional screenshot in bootcamp, choosed this place to do it, in magazines, blogs, even in Unity web site. And it's not by chance, When this entrance were designed, we wanted to create something more than just a level entrance, but a post card! And that`s what the compostition does. A simple symetry and straight perspective make this place more remarkable than everything else in the game.
- Lots of games take advantage of these technics. Here we have a "Rule of thirds" example. The Rule of Thirds divide the screen in 4 divine proportional rectangles. The divine proportion is a measure used in almost everything, from the ancient greek architecture to the ipod, monitors and even the new twitter interface. This proportion is 16 by 10, or 1.6 by 1, the designers here who never heard about it, really should search for some specific articles :) Back to the game, the intersection between any of these 4 rectangles creates the perfect space to concentrate your eye, and make the picture just beautiful!
- The unreachable illusion in another composition trick. Many games also take advantage of that to create a huge scale feeling.
- Basically, is a big and imponent object placed very very far from the player at the first glance, giving the illusion you can never reach it. And when the gameplay goes on, the object seems to get bigger, switching LODs, and when you realize, you're there!
- That's incredible because gives you a real world sensation. That you can explore everything, like a quest, giving the illusion that you can get in to any place. And if you need a short far clipping camera, for optimization purposes, you can use simplyfied models. Like the Death Mountain in Zelda is just a billboard when you see it for the fisrt time, and the model become more complex while you progress. Same happens in our industry tower.
- Now is when things actually get fun and Unity3 starts to make the big difference. The Beast Lightmapper, Occlusion Culling and new snap system turn Unity in something more than an engine, but a level design tool.
- It means that all level components can be designed separetely, arranged together inside Unity while gameplay is being tested, and just when everything is done, run the lighting and optimization process. - Before Unity3, we had to calculate lighting in third partie softwares and export the entire level once. And do not change anything after that, because lightmaps were already baked. - So, In Bootcamp, all assets, including walls and other important structures to the level, were stored on individual prefabs. And distributed inside Unity, taking all the advantages from the lightmapper and Oclusion Culling system.
- When texturing a level, is important to define a real world scale. Most designers think the higher resolution, the better. And that's not true, first because you will compromize video memory and filesize, and second and most important: Big textures not necessarily mean higher quality textures. If the texture is larger than the space it takes on the screen, a mipmap will show up. And mipmaps are not precise, so the texture will get blurry, sometimes more blurry than using a smaller texture by default. - First person, and third person shooters usually have a 1 by 1 scale, same we used in Bootcamp. It means that for 1 centimeter square in a virtual world represents 1 pixel square in the texture. - It`s not a precise measure. But the closer you can keep your textures to the scale, the better.
- Figure out the best way to divide textures in a level is never easy. There are several different technics, each one giving lots of advantages and disvantages, There is no right or wrong. In the games industry, two methods are very distinct:
- The Half Life 2 like: This technic is an example of an extreme tileable texture use. It means tileable textures are visible all the time, and cover all the main structures
- The Unreal 3 Like: Is an example of extreme unique textures per object. Except for terrain and basic mesh, unique textures are visible are responsible for almost everything that looks cool in the level, columns, decorated walls, trims, stairs...and every kind of assets.
- So, the main difference is when to use tileable or unique textures. For Unity Bootcamp we decided to stay in the middle ground. And take advantages from both sides:
- In Bootcamp we basically used one shader: Reflective/Bumped Specular, even for non reflective surfaces, for two reasons: First, an ambient cubemap, which is a very blurry cubemap does not give the reflection look, but helps to keep the surface lit when there is no light, because reflection is additive. And second, and most important, keep bumpmap visible, when there is no lights.
- Unity3 has a very nice tree editor integrated. For Bootcamp, we designed over 20 different trees. And to create realistic vegetation you need to pay atention to their shape and leaves textures.
- You need to observe nature to get the correct format in the branches. Real trees have nice branches in a "fork" shape. By editing manually the nodes you can create very complex trees.
- Another challenge is texturing the leaves. Still today, there is no other way to create leaves instead creating lots os planes. The problem is, if your texture is too dense, the leaves will look like the planes itself, a big block of leaves. The leaves should be less dense, and sharpen enough to keep every leaf shape. These textures are harder to produce, but the final resut is way better.
Lighting is a wide subject, I will not go too deep on that. But just to understand some theory, in the daylight, basicaly have only two light sources, the direct sunlight, and a difuse skylight. Then the photons bounce over every surface and create the shading we see everyday in the real world. This behaviour is simulated by the Beast Lightmapper. So in other words, we just a need an artificial sun, and an artificial sky to reproduce the same effect. The problem is, what colors are these two sources? If you manage correctly these color, probably your lighting will be convicible.
- Lighting is all about temperature colors. While the sunlight is warm and yellow, the skylight is cold and blue. For Bootcamp anything new was created, just the same beautiful daylight color!
- The important thing to notice is the colors are opposite, and lighting is also about good contrast, not just regarding lightness and darkness, but also opposite colors, which give players different sensations between the blue quietness and the red excitement. And this real life sensation definitelly should be caused by lighting.
I’m Raphael and I’m the leader programmer of Aquiris and was also the main programmer of this project. I will briefly talk about the decisions we’ve taken during the development of Unity Bootcamp.
I will give you an overview of the project from programming perspective focusing on these topics: programming language, soldier and enemies behaviours, smart objects, streaming and some tools we’ve built to make the development easier.
As you know, Unity give us the ability to choose between three languages: JavaScript, C# and Boo. We’ve choosen to use JavaScript as it is widespread around Unity’s community. It’s an easy to learn language and as it is JIT compiled, it runs as fast as Boo and C#. New users would take advantage of this language by being able to seek for help on forums that are mainly focused on JavaScript.
The main character is the soldier and as we wanted to show of some cool animations we decided to go with a Third Person Shooter. Based on this decision, we’ve started looking for some good references to its behaviours and controlling system.
Gears of Wars was the main one and helped us developing the camera system. As you see on this game and on Unity Bootcamp, the camera is not centered on the character. This way the soldier remains on the screen but the player can focus on the action.
Resident Evil was the main reference for the aiming camera. It provide us the needed parameters to setup our own system.
Choosing to develop a Third Person Shooter brings us a great challenge: developing the camera system. The camera must be not centered on the character, must collide with scene objects and must follow the “over the shoulder” effect that we’ve seen in Resident Evil. As Unity provide us a great set of tools to work with Quaternions and transformation matrices the main effect was quite easily achieved. Making the camera collide with walls was also solved really fast as we have a great Physics engine, with built in Raycasts, at our fingers.
This image shows the final result achieved on the game. You can see more by playing it inside Unity or on Unity’s website.
We were low on time but willing to build a great gameplay, so we’ve choosen to use standing enemies. As you can see on Unity Bootcamp, Turrets will just shoot the player and Training Dummies will shoot for some time and take cover. This behaviour permited us to save development time and performance. If we’d have decided to use real enemies it would be necessary to develop complex AI behaviours and heavy algorithms that could compromise overall performance. We’ve also built some tools, by extending Unity’s editor in order to make enemy setup and placement easier for level designers.
One of the key concepts that we’ve used on this project was the Smart Objects. This kind of approach allowed us to develop specific behaviours that will happen under certain conditions and provide a way to level designers to use those behaviours later. Unity provide a great way for us to develop such technique: you may know the SendMessage method of GameObject class. It allow us to exchange messages between objects without the need to know any of them ahead of time.
Another Unity’s feature that we used to develop this game was Streaming. Having the ability to download all kind of assets was very useful as we have very large scenes and a project that runs on the web. We’ve built a very small webplayer and loaded all additional scenes using the methods provided by Unity’s API. We’ve also used the incredible Asynchronous scene loading feature, that allowed us to change scenes almost without hiccups.
The start cutscene was built from several pieces that were downloaded and loaded using Additive scene loading feature. This way we ended up with a very small webplayer that has about 700kbytes. It means that the player start playing very fast and we start loading things on the background. Thanks to Unity’s additive scene loading we could split our loading time into very small ones.
If we take a look on other games we’ll see that almost all of them make use of some kind of Decal System. It is always used for bullet holes placement and sometimes used as tools for decorating complex scenes. Unfortunately Unity does not have a built in system like that.
The first attempt to solve the decal problem was trying to use the built in projector system. We discovered soon that this feature does not fit our needs as it is calculated per frame and we were really bound to performance. The other problem with projector is that we would have to write lot more specific shaders to accomplish the effects that we wanted.
The solution for this problem was developing our own custom Decal System inside Unity. Eric Lengyel have written an article that was published on Game Programming Gems 2 about decals, called Aplying Decals to Arbitrary Surfaces. This article gave us the needed technical description of the system so we could write our own. Beside that, we’ve looked on how Valve and Unreal solved the problem. We’ve found that Unreal Engine has a great tool called Decal Actor that we’ve used as a reference when building the tool that allowed level designers placing a lot of stuff on walls an floors on Unity Bootcamp. Now I’ll show you the Decal system in action.
I’ll briefly describe the system for those who want to try building a custom one and to make it easy for you to understand the code that comes along with Unity Bootcamp. The first thing we need to do is get affected objects. If your objects have colliders you can use an OverlapSphere or something like that and you’re good to go. The second step is making things talk the same language, in this case, everything must be on the same coordinate space. Thanks to Unity we can easily convert between local and world space and it saves us a lot of work. The next step is the tough one: we must cut out all the faces that are outside our decal projector and generate new ones for the borders. We do it the same way we clip things during the rendering process. After that we can use the new Unity’s Unrwapper to obtain an UV map for the generated surface. Including an UV2 channel, that we can use to lightmap decals.
After that we can interpolate any other needed propertie from the original mesh, push vertices through its normals so we can avoid depth fighting between surfaces. Than we can combine all the generated meshes, as we generate one for each affected object. It is an easy to acomplish task as Unity provide us a great Mesh combine tool. I will now let Mauricio explain you how Occlusion Culling saved us a lot of performance. Thanks.