Compartilhe

Lista de Features e Elementos de Game Design

Fonte: http://www.thelightofthedarkness.com

Vou falar aqui e agora um pouco sobre as features do jogo. Não falei muito disso até aqui. Então vou me aprofundar um pouco na mecânica do jogo e tudo mais:

Game Features:
A Luz da Escuridão é um sidescroller, com elementos de ação, RPG, plataforma, exploração e história. Inspirado em jogos como Castlevania, Odin Sphere, Actraiser e outros sidescrollers. O jogo possuí 5 características principais:

- Exploração “Metroidana”:
No game, o jogador tem um determinado nível de liberdade para explorar o cenário. Não há “fase 1″, “fase 2″, “fase 3″ e por aí vai, mas sim um único grande cenário a ser explorado. O jogador pode ir e vir de forma não linear. A necessidade de re-explorar o cenário é constante a medida que o jogador vai adquirido novas habilidades que permite ele explorar áreas antes impossíveis. O cenário é cheio de mistérios, perigos e desafios.

Para explorar o cenário o jogador conta com uma série de habilidades que incluem voar e planar, empurrar coisas além do uso de feitiços e itens para resolver puzzles do cenário.

Veja abaixo um exemplo da elaboração do cenário e baixe aqui a versão do level design em alta resolução:

- Evolução de atributos baseada em absorção de essência:
A Luz da Escuridão é um jogo baseado em atributos. Esses atributos determinam uma série de habilidades do protagonista usadas na exploração do cenário e no combate. A evolução desses atributos ocorre sempre que Sephius absorve essência de criaturas do game ou de estruturas do cenário como gemas.

No universo de A Luz da Escuridão, criaturas não tem sangue ou carne, mas sim uma energia vital que era chamada de essência. A essência carregava e determinava virtualmente tudo de uma criatura, até mesmo memória, conhecimento e força. Sephius pode absorver também diferentes tipos de essências necessárias para sua evolução saúde e habilidades místicas:

- Essência Periférica:[/B] Se encontra na forma gasosa. Determina a saúde de Sephius.
- Essência Místicas:[/B] Se encontra na forma liquefeita. Permite ao jogador executar feitiços e permite aprender novos feitiços.
- Essência Profunda:[/B] Se encontra na forma sólida. Determina atributos de Sephius como força, resistência, eficiência e quantidades de essências periféricas e místicas.
- Essências temperadas: [/B]Se encontra na forma gasosa. Modifica o status de Sephius temporariamente.

As criaturas e entidades que Sephius enfrenta também tem suas características baseadas em atributos, sendo relação de atributos de Sephius e das criaturas que determina coisas como valores de danos, danos críticos e etc.

- Uso de feitiços em combates e puzzles:
Feitiços têm um grande papel no game, não apenas no combate, mas também na exploração do cenário. Assim como os atributos, feitiços são aprendidos através da absorção de essências. Cada tipo de criatura permite ao Sephius desenvolver feitiços específicos. Essências de criaturas raras podem ensinar feitiços raros e poderosos.

Feitiços também possuem conseqüências podendo influenciar o comportamento de alguns elementos do cenário, como geisers, presença de lava, água e outras coisas. O uso de feitiços também influencia o aparecimento entidades em locais específicos do cenário. Por exemplo um uso excessivo de feitiços de fogo podem estimular o aparecimento de entidades de fogo. O objetivo disso é criar um elemento de cautela na forma de usar feitiços, principalmente em combates, além criar mais desafio.

Outro elemento muito importante do game é a combinação de feitiços. No game, existem feitiços fracos (quase sempre projéteis de “casting” instantâneo) e feitiços fortes (geralmente feitiços de área mais lentos de serem “castados”). Feitiços fortes são executados através da combinação de feitiços fracos. Por exemplo, na combinação de um feitiço de sopro (ar) e um feitiço de fogo, cria-se um sopro de fogo. Um sopro de ar com gelo, um sopro de gelo. Luz com gelo, cria um cristal que pode iluminar o cenário. Algumas combinações podem não resultar em nada útil, já outras podem até mesmo resultar em dano para o jogador, como na mistura de água e relâmpago. O jogador deve durante o jogo ir experimentando essas combinações para descobrir que resultado elas geral. Existe todo um arsenal de feitiços que podem ser desenvolvidos no game, sendo instigante aprender e descobrir combinações a medida que se progride no jogo.

Nos combates os feitiços devem ser usados com sabedoria. Cada tipo de criatura tem diferentes tipos de resistências e fraquezas. Algumas óbvias como não “castar” gelo numa entidade de gelo, mas outras menos intuitivas.

Os feitiços também são muito importantes na exploração do cenário e na superação de obstáculos pelo caminho. Feitiços tem muitas formas de interações como o cenário. É possível por exemplo congelar água, solidificar lava, iluminar, destruir e mover estruturas, criar plataformas e mais.



- Combate:
Existem 3 elementos básicos envolvidos nos combates no game: Ataque físico (espada), ataque místico (feitiços) e defesa (escudo). É planejado que o game tenha bastante tipos de criaturas. Cada criatura tem sua própria forma de ser combatida. Algumas são mais vulneráveis a feitiços, outras a ataques físicos.

A mecânica dos ataques físicos não é muito complexa, dados os outros elementos de atributos e etc. Por padrão, Sephius conta com uma seqüência de 3 ataques básicos (com o último mais forte) e uma seqüência especiais com 5 ataques que pode ser executada concentrando a espada por alguns segundos. Existem ataques especiais como um “shorriuken” e uma “martelada, que são executadas com simples combinações de botões.

O uso do escudo é usado principalmente contra criaturas que fazem uso de projéteis e feitiços, mas pode também ser usado para proteger de ataques físicos normais. O escudo possui uma resiliência básica, podendo ser destruído caso usado em demasia.

- História:
Como o universo de A Luz da Escuridão vai além do game, o elemento da história é muito importante na experiência do jogo. Diálogos dublados e cutscenes vão contanto o contexto dos eventos do jogo e dando um destaque maior para o jogo.
Nos menus, o jogador pode conhecer muito mais sobre o universo, sobre as criaturas e sobre os personagens que aparecem no jogo. Cada item, feitiço, criatura tem sua própria história e relação com outros eventos do universo.

Bom, é isso. Existem outras features planejadas, outras ideias para talvez inserir no jogo, se for viável.

Estou muito aberto a idéias, opiniões e feedback. Rolando uma versão beta isso vai ser ainda mais importante.

Ler Mais

FPS Brasileiro que impressiona pela qualidade gráfica

imagem

É só falar em jogos nacionais que a galera já começa a detonar sem nem ao menos conhecer. Primeiramente são os gráficos, que aparentemente é o que importa hoje em dia, em seguida são os bugs.

Mas essa realidade vai mudar.



Apresento a vocês com exclusividade ( pelo menos não vi nenhuma outra news )
Critical Mass, o mais novo projeto 100% Brasileiro.

A engine utilizada é Unity Bootcamp ( pelo menos é isso que consegui encontrar, caso esteja enganado me corrijam. )

imagem


imagem



Demonstração - Os vídeos no Vimeo possui melhor qualidade

http://vimeo.com/15534994



Gameplay
http://vimeo.com/27015274


Não se tem muitas informações ainda, mas com o tempo vou atualizando as novidades.

A empresa que está desenvolvendo o game é a Aquiris Gx

Criada no ano de 2006, a Aquiris Game Studio Ltda. iniciou suas atividades desenvolvendo projetos de Realidade Virtual e 3D Interativo para os mercados de Arquitetura e Aviação. Depois disso passou a desenvolver projetos para o mercado de Comunicação, entregando games como plataformas interativas.

De 2007 até hoje, foram mais de 15 projetos desenvolvidos. Já a produção de games propriamente dita foi iniciada somente em Janeiro de 2008. Data esta desde a qual já são 13 games publicados.

A Aquiris gX é uma empresa especializada em game experience. Composta por pessoas que jogam e sempre jogaram diversos tipos de games, digitais e analógicos, nossa equipe integra expertises que conseguem traduzir situações de mercado para realidades virtualmente convencionadas dentro do universo dos games. Pra nós todas as pessoas são gamers em potencial e, portanto, passíveis de um approach correto e eficiente.

A empresa é formada pelos sócios Amilton Guilherme Diesel, Diretor de Arte, Israel Mendes, Diretor de Criação, e Maurício Longoni, Diretor de Tecnologia e Desenvolvimento. É também uma das empresas do Grupo Box 1824.


"Olá Pessoal!
Este é um vídeo que mostra o novo jogo que a Aquiris está desenvolvendo. Particularmente, tenho gostado muito de participar deste projeto, pois ele foge um pouco do que estamos acostumados a produzir por aqui no Estúdio.
Bom, para começar ele é um FPS (jogo de tiro em primeira pessoa), a qual tenho muito gosto, é multiplayer a qual o jogador pode escolher entre dois times (MFA ou SMOKE) e também é um jogo em que se pode customizar aspersonagens da maneira que desejar conforme a oferta de itens customizáveis.
Todo o jogo foi construído observando as orientações de produção para games Next-Generation tanto para a arte, como para a programação. Como vocês sabem, ainda este ano estarei lançando dois volumes de livros justamente sobre este assunto: Design de Personagens para Games Next-Gen, a qual a metodologia que mostrarei nestes livros, foi empregada neste jogo da Aquiris para a produção das personages.

Alessandro Lima -
Aquiris Game Studio"

Comentário do Clovisbatebola:
O jogo será muito bom.

Só uma crítica:
Galera da Aquiris, cuidado com o release. O texto tem "negativas" com relação ao consumidor.

"É só falar em jogos nacionais que a galera já começa a detonar sem nem ao menos conhecer. Primeiramente são os gráficos, que aparentemente é o que importa hoje em dia, em seguida são os bugs."

Esse texto introdutório é completamente desnecessário no release. Lembrem-se do caso do Zeeboo, onde a empresa utilizou de negativas quanto ao consumidor brasileiro para justificar a venda do console.

Vamos dar apoio galera
Ler Mais

As novidades na UDK que sairão até dezembro

Este vídeo abaixo demonstra o que vem pela frente na UDK até o final do ano.

Uma das grandes inovações é a capacidade de gravação de um vídeo direto pela UDK e os recursos do DX11 demonstrado em "Samaritan".


Ler Mais

Texturing Tutorial: object for CryEngine 3

This tutorial covers basic things to help in the texture painting process, this tutorials 2nd part will involve testing it in CE3 and the exportation process.


Ler Mais

Cryengine 3 SDK Tutorial Vegetation

Esse tutorial ensinará a manipular a vegetação do motor da Crytek


Ler Mais

Criando um veículo - Cryengine 3

CryENGINE 3 Cookbook
How to Create a New Vehicle in CryENGINE 3

In this article we will explore some advanced components of CryENGINE 3 by creating a new vehicle for your player to drive around in your level.

Posted by INtense! on Aug 2nd, 2011
Advanced Mapping/Technical.

In this article by Dan Tracy, author of CryENGINE 3 Cookbook, we will cover:

  • Creating a new car mesh (CGA)
  • Creating a new car XML
  • Giving more speed to the car
  • Increasing the mass to push objects with the car
  • Defining a sitting location
  • Setting up multiple cameras for the car
  • Need for a machine gun
  • Giving the car a weak spot

Creating a new car mesh (CGA)

In this recipe, we will show you how to build the basic mesh structure for your car to be used in the next recipe. This recipe is not to viewed as a guide on how to model your own mesh, but rather as a template for how the mesh needs to be structured to work with the XML script of the vehicle. For this recipe, you will be using 3DSMax to create and export your .CGA.

.CGA (Crytek Geometry Animation): The .cga file is created in the 3D application and contains animated hard body geometry data. It only supports directly-linked objects and does not support skeleton-based animation (bone animation) with weighted vertices. It works together with .anm files.

Getting ready

Create a box primitive and four cylinders within Max and then create a new dummy helper.

How to do it...

After creating the basic primitives within Max, we need to rename these objects. Rename the primitives to match the following naming convention:

  • Helper = MyVehicle
  • Box = body
  • Front Left Wheel = wheel1
  • Front Right Wheel = wheel2
  • Rear Left Wheel = wheel3
  • Rear Right Wheel = wheel4
CryENGINE 3 Cookbook

Remember that CryENGINE 3 assumes that y is forward. Rotate and reset any x-forms if necessary.
From here you can now set up the hierarchy to match what we will build into the script:

  1. In Max, link all the wheels to the body mesh.
  2. Link the body mesh to the MyVehicle dummy helper.

Your hierarchy should look like the following screenshot in the Max schematic view:

CryENGINE 3 Cookbook

Next, you will want to create a proxy mesh for each wheel and the body. Be sure to attach these proxies to each mesh. Proxy meshes can be a direct duplication of the simple primitive geometry we have created.
Before we export this mesh, make one final adjustment to the positioning of the vehicle:

  1. Move the body and the wheels up on the Z axis to align the bottom surface of the wheels to be flushed with 0 on the Z.
  2. Without moving the body or the wheels, be sure that the MyVehicle helper is positioned at 0,0,0 (this is the origin of the vehicle).
  3. Also, re-align the pivot of the body to 0,0,0.

Once complete, your left viewport should look something like the following screenshot (if you have your body still selected):

CryENGINE 3 Cookbook

After setting up the materials, you are now ready to export the CGA:

  1. Open the CryENGINE Exporter from the Utilities tab.
  2. Select the MyVehicle dummy helper and click the Add Selected button.
  3. Change the export to: Animated Geometry (*.cga).
  4. Set Export File per Node to True.
  5. Set Merge All Nodes to False.
  6. Save this Max scene in the following directory: MyGameFolder\Objects\vehicles\MyVehicle\.
  7. Now, click on Export Nodes to export the CGA.

How it works...

This setup of the CGA is a basic setup of the majority of the four wheeled vehicles used for CryENGINE 3. This same basic setup can also be seen in the HMMWV provided in the included assets with the SDK package of CryENGINE 3.

CryENGINE 3 Cookbook

Even though the complete HMMWV may seem to be a very complicated mesh used as a vehicle, it can also be broken down into the same basic structure as the vehicle we just created.

CryENGINE 3 Cookbook

The main reason for the separation of the parts on the vehicles is because each part performs its own function. Since the physics of the vehicle code drives the vehicle forward in the engine, it actually controls each wheel independently, so it can animate them based on what they can do at that moment. This means that you have the potential for a four wheel drive on all CryENGINE 3 vehicles, all animating at different speeds based on the friction that they grip.

Since all of the wheels are parented to the body (or hull) mesh, this means that they drive their parent (the body of the vehicle) but the body also handles where the wheels need to be offset from in order to stay aligned when driving. The body itself acts as the base mesh for all other extras put onto the vehicle. Everything else from Turrets to Doors to Glass Windows branch out from the body.

The dummy helper is only the parent for the body mesh due to the fact that it is easier to export multiple LODs for that vehicle (for example, HMMWV, HMMWV_LOD1, HMMWV_LOD2, and so on). In the XML, this dummy helper is ignored in the hierarchy and the body is treated as the parent node.

There's more...

Here are some of the more advanced techniques used.

Dummy helpers for modification of the parts

A more advanced trick is the use of dummy helpers set inside the hierarchy to be used in later reference through the vehicle's mod system. How this works is that if you had a vehicle such as the basic car shown previously, but you wanted to add on an additional mesh just to have a modified type of this same car (something like adding a spoiler to the back), then you can create a dummy helper and align it to the pivot of the object, so it will line up to the body of the mesh when added through the script later on.
This same method was used in Crysis 2 with the Taxi signs on the top of the Taxi cars. The Taxi itself was the same model used as the basic civilian car, but had an additional dummy helper where the sign needed to be placed. This allowed for a clever way to save on memory when rendering multiple vehicle props within a single area but making each car look different.

Parts for vehicles and their limitless possibilities

Adding the basic body and four wheels to make a basic car model is only the beginning. There are limitless possibilities to what you can make as far as the parts on a vehicle are concerned. Anything from a classic gunner turret seen on the HMMWV or even tank turrets, all the way to arms for an articulated Battlemech as seen in the Crysis 2 Total Conversion mod—MechWarrior: Living Legends. Along with the modifications system, you have the capabilities to add on a great deal of extra parts to be detached and exploded off through the damage scripts later on. The possibilities are limitless.

Creating a new car XML

In this recipe, we will show you how to build a new script for CryENGINE 3 to recognize your car model as a vehicle entity. For this recipe, you must have some basic knowledge in XML formatting.

Getting ready

Open DefaultVehicle.xml in the XML editor of your choice (Notepad, Notepad++, UltraEdit, and so on). This XML will be used as the basic template to construct our new vehicle XML. DefaultVehicle.xml is found at the following location: MyGameFolder\Scripts\Entities\Vehicles\Implementations\Xml. Open the MyVehicle.max scene made from the previous recipe to use as a reference for the parts section within this recipe.

How to do it...

Basic Properties:

  1. First, we will need to rename the filename to what the vehicle's name would be.
  2. Delete filename = Objects/Default.cgf.
  3. Rename name = DefaultVehicle to name = MyVehicle.
  4. Add actionMap = landvehicle to the end of the cell.
  5. Save the file as MyVehicle.XML.
  6. Your first line should now look like the following:

    Downloading the example code
    You can download the example code files for all Packt books you have purchased from your account at PacktPub.com. If you purchased this book elsewhere, you can visit PacktPub.com and register to have the files e-mailed directly to you.

    MyVehicle code:
  7. Now we need to add some physics simulation to the vehicle otherwise there might be some strange reactions with the vehicle. Insert the following after the third line (after the Buoyancy cell):
    code:

Damages and Components:

For now, we will skip the Damages and Components cells as we will address them in a different recipe.

Parts:

  1. To associate the parts made in the Max file, the hierarchy of the geometry in 3DSMax needs to be the very same as is referenced in the XML. To do this, we will first clear out the class = Static cell and replace it with the following:
    body code:




  2. Now, within the Parts tag that is underneath the body, we will put in the wheels as the children:
    wheel1 code:





  3. Remaining within the Parts tag, add in wheels 2-4 using the same values as previously listed. The only difference is you must change the axle property of wheels 3 and 4 to the value of 1 (vehicle physics has an easier time calculating what the wheels need to if only two wheels are associated with a single axle).
  4. The last part that needs to be added in is the Massbox. This part isn't actually a mesh that was made in 3DSMax, but a generated bounding box, generated by code with the mass and size defined here in the XML. Write the following code snippet after the tag:
    massBox code:


  5. If scripted correctly, your script should look similar to the following for all of the parts on your vehicle:
    body code:





















Movement Parameters:

Finally, you will need to implement the MovementParams needed, so that the XML can access a particular movement behavior from the code that will propel your vehicle. To get started right away, we have provided an example of the ArcadeWheeled parameters, which we can copy over to MyVehicle:

code:



















After saving your XML, open the Sandbox Editor and place down from the Entities types: Vehicles\MyVehicle. You should now be able to enter this vehicle (get close to it and press the F key) and drive around (W = accelerate, S = brake/reverse, A = turn left, D = turn right)!

CryENGINE 3 Cookbook

How it works...

The parts defined here in the XML are usually an exact match to the Max scene that the vehicle is created in. As long as the naming of the parts and the name of the subobjects within Max are the same, the vehicle structure should work.

The parts in the XML can themselves be broken down into their own properties:

  • Name: The name of the part.
  • Class: The classification of the part.
  • Base (obsolete)
  • Static: Static vehicle (should not be used).
  • Animated: The main part for an active rigid body of a vehicle.
  • AnimatedJoint: Used for any other part that's used as a child of the animated part.
  • EntityAttachment (obsolete)
  • Light: Light parts for headlights, rear light, and so on.
  • SubPart (obsolete)
  • SubPartWheel: Wheels.
  • Tread: Used with tanks.
  • MassBox: Driving Massbox of the vehicle.
  • Mass: Mass of the part (usually used when the part is detached)
  • Component: Which component this part is linked to. If the component uses useBoundsFromParts="1", then this part will also be included in the total bounding box size.
  • Filename: If a dummy helper is created in Max to be used as a part, then an external mesh can be referenced and used as this part.
  • DisablePhysics: Prevents the part from being physicalized as rigid.
  • DisableCollision: Disables all collision. It is an useful example for mass blocks.
  • isHidden: Hides the part from rendering.

There's more...

The def_vehicle.xml file found in MyGameFolder\Scripts\Entities\Vehicles, holds all the property's definitions that can be utilized in the XML of the vehicles. After following the recipes found in this article, you may want to review def_vehicle.xml for further more advanced properties that you can add to your vehicles.

Giving more speed to the car

Now that we have created a basic template for a car within the game, we can now start manipulating more of the fun properties that the XML holds. Let us start out by giving this car a bit more speed.

Getting ready

Complete the Creating a new car XML recipe. Then open MyVehicle.xml in Notepad or an equivalent editor.

How to do it...

Under the ArcadeWheeled cell, you will find the Power tag; within the Power tag you will find a property called topSpeed=32. It is a simple matter of increasing this value to increase the car's overall top speed.

How it works...

The Arcade Wheeled movement property is a new movement behavior since CryENGINE 3. Dealing away with the confusing gear ratios, new backend code has been written to create the Arcade Wheeled for the purpose of being able to tweak the major values on wheeled vehicles much easier.

There's more...

The following are the common properties of an Arcade Wheeled:

  • Acceleration: How fast the vehicle will speed up
  • Decceleration: How fast the vehicle will slow down
  • TopSpeed: Top speed that the vehicle can achieve
  • ReverseSpeed: Reversing speed
  • Handbrake-decceleration: Deceleration when hand brake is applied

Increasing the mass to push objects with the car

In this recipe, we explore some of the possibilities of manipulating the Massbox that we created when first creating the car's XML. With increasing the Massbox of the car, we will see how the car is able to push lighter objects out of the way.

Getting ready

Complete the Creating a new car XML recipe. Then open MyVehicle.xml in Notepad or an equivalent editor.

How to do it...

As simple as the previous recipe was, this one will be just as easy to make a massive change to your vehicle. Begin by finding the car's part named massBox. To increase the mass of the MassBox, simply increase the mass = 1500 to a higher value such as 3500. The mass in CryENGINE 3 is measured in kilograms.

How it works...

A simple method to see the results of how easy it is for the car to move objects out of its way is to place down a basic entity with a mass of 1000 and then drive into it with the previous MassBox properties. Then repeat the process again with the 3500 MassBox value.

After changing any XML values on the car, you can reload the XML on the car by right-clicking on the vehicle and selecting Reload Scripts.

The MassBox is a special part of the vehicle that handles all of the physical interactions of the vehicle as a whole. Along with Arcade Wheeled as the movement behavior, the Massbox is the main point of reference for the car and all its parts for mass physics calculations (as long as all those parts remain on the vehicle).

Be aware that increasing the mass of the MassBox will also change the driving characteristics of the car.

There's more...

It is possible to define the mass of other parts besides the Massbox. However, with Arcade Wheeled movement parameters, this property change will do virtually nothing, but with other movement behaviors it may change the driving mechanics such as the Wheeled Legacy (which should not be used as that movement behavior is no longer supported).

Still, there is a use of this property and that is if ever we want to create a part to be detached from the vehicle, this part requires a mass in order to follow the laws of physics for the CryENGINE, such as gravity.

Defining a sitting location

Up to this point, we haven't addressed the issue of the player hanging out of the side of the vehicle every time the they enter it. This is due to the fact that there is no sitting position defined for the driver position and thus leaves the player in the last position and pose before entering the vehicle. In this recipe, we will fix this problem by creating a new helper within the vehicle XML.

Getting ready

Complete the Creating a new car XML recipe. Then open MyVehicle.xml in Notepad or an equivalent editor.

How to do it...

  1. Between the Parts and Seats cells, you will need to insert the following lines into the car XML:
    driver_sit_pos code:


  2. After writing in the Helpers cell, we now need to define on the driver seat which helper the player needs to take in order to be positioned in that seat.
  3. For the Seat name="driver" cell, you will need to change the following property:
    sitHelper=""
  4. Change this value to:
    sitHelper="driver_sit_pos"
  5. Save the XML and reload the car in the level.

How it works...

This simple seat helper lets the vehicle code know where the passengers of that particular seat need to be positioned in the vehicle. Be aware that this only aligns the root pivot of the character to this position. So in order to pose a character to sit in this position, it is a good practice to create a new animation graph and animation that moves the character so that the root pivot aligns to a bone on the character such as the pelvis.

There's more...

You can use the HMMWV animation graph to give a seated position to your character. If no changes to the player model have been made to the skeleton, then we will be able to utilize the animation graph from the SDK's HMMWV to pose our character. Within the same Seat name="driver" cell, add the following property: agVehicleName="HMMWV"

This will use the animation graph to play the same animations used for entering and exiting the vehicle as well as utilizing the same sitting pose as the one used for the HMMWV.

CryENGINE 3 Cookbook

CryENGINE 3 Cookbook Over 90 recipes written by Crytek developers for creating third-generation real-tim
Ler Mais

Esculpindo um terreno - Cryengine 3

With the overall complexity involved in creating games becoming exceedingly difficult and expensive with every successive console generation, many game developers have turned to middleware engines, such as the CryENGINE, that offer a complete pipeline for the game development process. CryENGINE is a perfect fit for most developers as it allows users to create their content quickly and easily and thus, allow games to meet and exceed current generation quality standards and still be created by few

Posted by INtense! on Aug 2nd, 2011
Intermediate Mapping/Technical.

In this article by Dan Tracy, author of CryENGINE 3 Cookbook, we will cover the following:

  • Creating a new level
  • Generating a procedural terrain
  • Navigating a level with the Sandbox Camera
  • Terrain sculpting
  • Setting up the terrain texture

Time to learn!


Creating a new level
Before we can do anything with the gameplay of the project that you are creating, we first need a foundation of a new level for the player to stand on. This recipe will cover how to create a new level from scratch.

Getting ready
Before we begin, you must have Sandbox 3 open.

How to do it...
At any point, with Sandbox open, you may create a new level by following these steps:

  1. Click File (found in the top -left of the Sandbox's main toolbar).
  2. Click New.

From here, you will see a new dialog screen that will prompt you for information on how you want to set up your level. The most important aspect of a level is naming it, as you will not be able to create a level without some sort of proper name for the level's directory and its .cry file. You may name your level anything you wish, but for the ease of instruction we shall refer to this level as My_Level:

  1. In the Level Name dialog box, type in My_Level.
  2. For the Terrain properties, use the following values:
    • Use Custom Terrain Size: True
    • Heightmap Resolution:512x512
    • Meters Per Unit: 1
  3. Click OK.
CryENGINE 3 Cookbook

Depending on your system specifications, you may find that creating a new level will require anywhere from a few seconds to a couple of minutes. Once finished, the Viewport should display a clear blue sky with the dialog in your console reading the following three lines:

Finished synchronous pre-cache of render meshes for 0 CGF's
Finished pre-caching camera position (1024,1024,100) in 0.0 sec
Spawn player for channel 1

This means that the new level was created successfully.

How it works...
Let's take a closer look at each of the options used while creating this new level.

Using the Terrain option
This option allows the developer to control whether to have any terrain on the level to be manipulated by a heightmap or not. Sometimes terrain can be expensive for levels and if any of your future levels contain only interiors or only placed objects for the player to navigate on, then setting this value to false will be a good choice for you and will save a tremendous amount of memory and aid in the performance of the level later on.

Heightmap resolution
This drop-down controls the resolution of the heightmap and the base size of the play area defined. The settings can range from the smallest resolution (128 x 128) all the way up to the largest supported resolution (8192 x 8192).

Meters per unit
If the Heightmap Resolution is looked at in terms of pixel size, then this dialog box can also be viewed as the Meters Per Pixel. This means that each pixel of the heightmap will be represented by these many meters. For example, if a heightmap's resolution has 4 Meters Per Unit (or Pixel), then each pixel on the generated heightmap will measure four meters in length and width on the level.

Even though this Meters Per Unit can be used to increase the size of your level, it will decrease the fidelity of the heightmap. You will notice that attempting to smoothen out the terrain may be difficult as there will be a wider minimum triangle size set by this value.

Terrain size
This is the resulting size of the level with the equation of (Heightmap Resolution) x (Meters Per unit). Here are some examples of the results you will see (m = meters):

  • (128x128) x 4m = 512x512m
  • (512x512) x 16m = 8192x8192m
  • (1024x1024) x 2m = 2048x2048m

There's more...
If you need to change your unit size after creating the map, you may change it by going into the Terrain Editor | Modify | Set Unit Size. This will allow you to change the original Meters Per Unit to the size you want it to be.

Generating a procedural terrain
This recipe deals with the procedural generation of a terrain. Although never good enough for a final product because you will want to fine tune the heightmap to your specifications, these generated terrains are a great starting point for anyone new to creating levels or for anyone who needs to set up a test level with the Sandbox. Different heightmap seeds and a couple of tweaks to the height of the level and you can generate basic mountain ranges or islands quickly that are instantly ready to use.

Getting ready
Have My_Level open inside of Sandbox.

How to do it...
Up at the top-middle of the Sandbox main toolbar, you will find a menu selection called Terrain. From there you should see a list of options, but for now you will want to click on Edit Terrain. This opens the Terrain Editor window.

The Terrain Editor
window has a multitude of options that can be used to manipulate the heightmap in your level. But first we want to set up a basic generated heightmap for us to build a simple map with.

Before we generate anything, we should first set the maximum height of the map to something more manageable. Follow these steps:

  1. Click Modify.
  2. Then click Set Max Height.
  3. Set your Max Terrain Height to 256
    (these units are in meters).

Now, we may be able to generate the terrain:

  1. Click Tools.
  2. Then click Generate Terrain.
  3. Modify the Variation (Random Base)to the value of 15.
  4. Click OK.

After generating, you should be able to see a heightmap similar to the following screenshot:

CryENGINE 3 Cookbook

This is a good time to generate surface texture (File | Generate surface texture | OK), which allows you to see the heightmap with a basic texture in the Perspective View.

How it works...
The Maximum Height value is important as it governs the maximum height at which you can raise your terrain to. This does not mean that it is the maximum height of your level entirely, as you are still able to place objects well above this value. It is also important to note that if you import a grey scale heightmap into CryENGINE then this value will be used as the upper extreme of the heightmap (255,255,255 white) and the lower extreme will always be at 0 (0,0,0 black). Therefore the heightmap will be generated within 0 m height and the maximum height.

Problems such as the following are a common occurrence:

  • Tall spikes are everywhere on the map or there are massive mountains and steep slopes:
    • Solution: Reduce the Maximum Height
      to a value that is more suited to the mountains and slopes you want
  • The map is very flat and has no hills or anything from my heightmap:
    • Solution: Increase the Maximum Height
      to a value that is suitable for making the hills you want

There's more...
Here are some other settings you might choose to use while generating the terrain.

Terrain generation settings
The following are the settings to generate a procedural terrain:

  • Feature Size: This value handles the general height manipulations within the seed and the size of each mound within the seed. As the size of the feature depends greatly on rounded numbers it is easy to end up with a perfectly rounded island, therefore it is best to leave this value at 7.0.
  • Bumpiness / Noise (Fade): Basically, this is a noise filter for the level. The greater the value, the more noise will appear on the heightmap.
  • Detail (Passes): This value controls how detailed the slopes will become. By default, this value is very high to see the individual bumps on the slopes to give a better impression of a rougher surface. Reducing this value will decrease the amount of detail/roughness in the slopes seen.
  • Variation: This controls the seed number used in the overall generation of the Terrain Heightmap. There are a total of 33 seeds ranging from 0 - 32 to choose from as a starting base for a basic heightmap.
  • Blurring (Blur Passes): This is a Blur filter. The higher the amount, the smoother the slopes will be on your heightmap.
  • Set Water Level: From the Terrain Editor window, you can adjust the water level from Modify | Set Water Level. This value changes the base height of the ocean level (in meters).
  • Make Isle: This tool allows you to take the heightmap from your level and automatically lowers the border areas around the map to create an island. From the Terrain Editor window, select Modify | Make Isle.

Navigating a level with the Sandbox Camera
The ability to intuitively navigate levels is a basic skill that all developers should be familiar with. Thankfully, this interface is quite intuitive to anyone who is already familiar with the WASD control scheme popular in most First Person Shooters Games developed on the PC.

Getting ready
You should have already opened a level from the CryENGINE 3 Software Development Kit content and seen a perspective viewport displaying the level.

CryENGINE 3 Cookbook

The window where you can see the level is called the Perspective Viewport window. It is used as the main window to view and navigate your level. This is where a large majority of your level will be created and common tasks such as object placement, terrain editing, and in-editor play testing will be performed.

How to do it...
The first step to interacting with the loaded level is to practice moving in the Perspective Viewport window.

Sandbox is designed to be ergonomic for both left and right-handed users. In this example, we use the WASD control scheme, but the arrow keys are also supported for movement of the camera.

CryENGINE 3 Cookbook

  1. Press W to move forwards.
  2. Then press S to move backwards.
  3. A is pressed to move or strafe left.
  4. Finally, D is pressed to move or strafe right.
  5. Now you have learned to move the camera on its main axes, it's time to adjust the rotation of the camera.
  6. When the viewport is the active window, hold down the right mouse button on your mouse and move the mouse pointer to turn the view.
  7. You can also hold down the middle mouse button and move the mouse pointer to pan the view.
  8. Roll the middle mouse button wheel to move the view forward or backward.
  9. Finally, you can hold down Shift to double the speed of the viewport movements.
CryENGINE 3 Cookbook

How it works...
The Viewport allows for a huge diversity of views and layouts for you to view your level; the perspective view is just one of many. The perspective view is commonly used as it displays the output of the render engine. It also presents you a view of your level using the standard camera perspective, showing all level geometry, lighting, and effects.

To experiment further with the viewport, note that it can also render subsystems and their toolsets such as flow graph, or character editor.

There's more...
You will likely want to adjust the movement speed and how to customize the viewport to your individual use. You can also split the viewport in multiple different views, which is discussed further.

Viewport movement speed control
The Speed input is used to increase or decrease the movement speed of all the movements you make in the main Perspective Viewport.

CryENGINE 3 Cookbook

The three buttons to the right of the Speed: inputs are quick links to the .1, 1, and 10 speeds.

Under Views you can adjust the viewport to view different aspects of your level
Top View, Front, and Left views will show their respective aspects of your level, consisting of bounding boxes and line-based helpers. It should be noted that geometry is not drawn.

Map view shows an overhead map of your level with helper, terrain, and texture information pertaining to your level.

Splitting the main viewport to several subviewports
Individual users can customize the layout and set viewing options specific to their needs using the viewport menu accessed by right-clicking on the viewports header.

CryENGINE 3 Cookbook

The Layout Configuration window can be opened from the viewport header under Configure Layout. Once selected, you will be able to select one of the preset configurations to arrange the windows of the Sandbox editor into multiple viewport configurations. It should be recognized that in multiple viewport configurations some rendering effects may be disabled or performance may be reduced.

CryENGINE 3 Cookbook

Terrain sculpting
In this section, we will cover the basics of painting your heightmap by hand. This recipe will teach you how to flatten, raise, lower, and smoothen the heightmap by hand, painting in both the Terrain Editor
window as well as Perspective View.

Using the Terrain Brush from the Terrain Editor is good for a general high level pass over your level; it is only decent when starting on a fresh level. For more detailed work, many designers use the Terrain Brush from within the Perspective Viewport to see their results instantly. We will be covering both methods.

Getting ready

  1. Have My_Level open inside of Sandbox.
  2. Review the Generating a procedural terrain recipe to learn about the Terrain Editor.
  3. Review the Navigating a level with the Sandbox Camera recipe to get familiar with the Perspective View.
  4. Have the Rollup Bar available in your Sandbox layout and ready.

How to do it... On the right-hand side of this window you will see a rollout menu that reads Terrain Brush. This menu is the focal point of this recipe and has the same functions in both the Terrain Editor and Perspective View methods.

  1. To start, we will flatten a section of the level. Change the Type of brush (drop-down menu to Flatten) and set the following parameters:
    • Outside Radius = 50
    • Inside Radius = 50
    • Hardness = 1
    • Height = 30
  2. Now paint over the north-west corner of the map and flatten that whole quarter of the map.

    (Move the mouse over the image to enlarge.)

  3. Change the Type of brush to Smooth and set the following parameters:
    • Outside Radius = 50
    • Hardness = 0.7
  4. Between the flattened area and the rest of the generated heightmap, paint over this area, which will smoothen the slope between the lower flattened area and the higher up locations.
  5. Change the Type of brush to Raise/Lower and set the following parameters:
    • Outside Radius = 30
    • Inside Radius = 25
    • Hardness = 0.4
    • Height = 1
  6. In the Flattened area, paint around in the same spot to see the heightmap rise.

  7. Sculpt the terrain in the perspective view. The Perspective View method has the very same brushes as demonstrated previously, except you can find where to change them in the Rollup Bar under the Terrain tab | Modify button.

How it works...Even though each of the brush's functions are self-explanatory based on their name, they share many of the same properties. These properties are Outside Radius, Inside Radius, Hardness, and Height (with the exception of Smooth). The following is what each of these properties does:

  • Outside Radius: The outer edge of the brush that will feel the least impact from the rest of the brush's parameters.
  • Inside Radius: The inner area that will feel the most impact. Depending on Hardness and Height, there is a fall off between the Inside Radius and Outside Radius.
  • To create steeper mounds, hills, or mountains, set the inside and outside radius to be close to each other. To get more shallow and smoother hills, set inside and outside radius further apart.

  • Hardness: How hard should the brush be when painting? Basically, if the Hardness
    is set to 1, then within one click you will have the desired height. If set to 0.01, then it will take 100 clicks to achieve the same result. (For smooth, this controls how hard it will try to normalize the triangles of the heightmap).
  • Height: This controls the desired height you wish the Flattentool to set the terrain to, or controls the step size (meters) of the Raise/Lower tool.

There's more...
Here are some other additional settings you may wish to use when sculpting a terrain.

Noise settings
Enabling Noise only works with the Flatten and Raise/Lower brushes. This setting adds a bit of random variation to the heightmap when painting with these brushes.

  • Scale (%): How high/low the noise modification will be
  • Frequency (%): How often the noise will vary the height along the surface of the terrain

Reposition objects and vegetation Enabling either of these tickboxes will reposition the Object/Vegetation after the height underneath that Object/Vegetation has changed (this does not work if the object is underneath the terrain).

All vegetation that is affected is under the Terrain | Vegetation tab in the Rollup Bar.

All objects affected are under the Objects tab in the Rollup Bar.

Setting up the terrain texture
In this recipe, we will teach you how to set up a new grass-like terrain texture for you to paint on the terrain.

Getting ready

  1. Have My_Level open inside of Sandbox.
  2. Review the Generating a procedural terrain recipe to learn about the Terrain Editor.
  3. Review the Navigating a level with the Sandbox Camera recipe to get familiar with the Perspective View.
  4. Review the Terrain sculpting recipe.
  5. Have the Rollup Bar open and ready.

How to do it...

  1. First open the Terrain Texture Layers window, found in the main Sandbox Toolbar | Terrain | Texture.
  2. In this window, create a new layer-Add Layer.
  3. Rename your NewLayer to Grass (double-click NewLayer to rename it).
  4. Then change the layer texture of this layer: Change Layer Texture | Terrain Folder | ground_mud_grey.dds.
  5. Now change the detail texture; click on the material path for this layer, Materials/material_terrain_default | Terrain Folder | grass_7. Go back to Terrain Texture Layers
    window | Assign Material.
  6. Set up your layer to have a greenish color to it-RollupBar | Terrain
    tab | Layer Painter | select Grass. Set the color in the color box to Red: 191, Green: 215, Blue: 138.
  7. Save the color to your layer and click the Layer button above the color box.
  8. Paint on your terrain.
CryENGINE 3 Cookbook

How it works...
The Layer Texture and Detail Texture work together in an overlapping fashion to breathe life into the terrain texture that is applied onto the terrain. While the Layer Texture works best as an overall brightness randomizer (seen with the ground_mud_grey texture) to break up the distant tiling, the Detail Texture is the main texture that is seen when closest to the player's view.

It is important to note that the Detail Texture should provide the detail only and not so much of the color (the color is handled in the Layer Texture). Grayish textures within the detail material do not interfere with the colors from the Layer Texture. Each of these diffuse textures should be high pass filtered.

There's more...
Here are some additional settings that can be utilized.

Radius and Hardness: Much like Sculpting Terrain, you can change the brush size and hardness in the Layer Painter to either a blanket wide area with your Terrain Texture, or just to get those fine details where you need them.

Altitude and Slope: These parameters can be set per layer allowing you to only paint that layer within the Altitude (meters) or Slope (degrees) threshold. This is especially useful for cliff-like layers (for example, 55 to 90).

Filter (Brightness): The Filter slider is an extra brightness pass on the color you have already set. Without needing to change the color over and over, you may change the brightness quickly with this slider.

Tile Resolution: Tile Resolution affects how many terrain tiles are in each terrain sector. The higher the resolution, the higher the amount of tiles used (better layer blending as well as softer transitions in the Layer Texture).

Ranging from 64x64 to 2048x2048, this tiling resolution is an important factor when it comes to optimization as well as high quality terrain. It is recommended that you use a higher value for play areas of your map and low values for terrain sectors that will not have the player in it.

Generating Surface Textures: It is important after doing work with the Terrain Textures on your map to a Generate Surface Texture to bake your textures into your terrain. This creates a compressed version of your painted terrain texture job into a .pak file called terraintexture.pak. The information stored in this .pak file reduces the total terrain texture size of the map to 1/6 of its original size as well as reducing the amount of drawcalls on the level.

CryENGINE 3 Cookbook To generate surface textures, go to File | Generate Surface Texture | Pick resolution (higher = better quality, lower performance) | (Optional) High Quality (does an additional pass over the textures to bake in further detail while keeping the same memory footprint) | OK.

Over 90 recipes written by Crytek developers for creating third-generation real-time games

Ler Mais

Download UDK beta de Agosto

Epic Games Releases agosto 2011 Unreal Development Kit Beta

23 de agosto de 2010 - Epic Games, Inc. lançou a agosto 2011 UDK Beta , a versão mais recente do Desenvolvimento Unreal Kit (UDK), a edição gratuita do Unreal Engine 3, que dá acesso ao premiado conjunto de ferramentas utilizadas no vídeo de sucesso jogos, visualizações 3D, filmes digitais e muito mais.

Epic está empenhada em proporcionar a comunidade UDK com lançamentos regulares de software, sem custo, e as últimas beta está disponível agora em www.udk.com / download .


Este mês, gostaríamos de chamar sua atenção para um estudo de caso realizado com Takenaka Corporação UDK showcase . Takenaka é a maior do Japão, engenharia, arquitetura e empresa de construção, tendo construído estruturas marco, tais como a Torre de Tóquio, no Tokyo Dome, o Dome Fukuoka e Kobe Meriken Park Hotel Oriental, entre outros. Esta é a história do que convencido a adotar Takenaka UDK como uma ferramenta para visualização de arquitetura e design. Leia mais aqui .

      Screenshot Takenaka

UDK projetos são promovidos para a comunidade no Works in Progress forum e os Projetos Lançamentos Fórum. Nossas galerias showcase integrais estão disponíveis em www.udk.com / showcase e www.unrealengine.com / showcase .

Dentro UDK: Fall 2011

Você já viu todas as coisas incríveis novos que têm ido para o UDK recentemente? Vamos mostrar-lhe alguns deles no nosso novo trailer no YouTube UDK canal.


Agosto 2011 UDK Atualização Beta Notes

Sistema de Captura de novos filmes

    Movie Capture

  • Matinee e integrada no jogo captura de filme
    • Matinês podem ser capturados para AVI através de um novo botão na barra de ferramentas Matinee
    • Um jogo de corrida podem ser capturados para AVI os comandos via console "StartMovieCapture" e "StopMovieCapture"

Funções de material

    cid: image004.png @ 01CC30FD.9156B660

  • Funções materiais permitem que trechos de gráficos material a ser salvas separadamente e compartilhada entre vários materiais
    • Funções podem ser expostos à biblioteca de função, que é uma nova janela classificados no editor de materiais
    • Muitas funções materiais novos foram adicionados à biblioteca do motor função

Editor de melhorias materiais

    cid: image004.png @ 01CC30FD.9156B660

  • Uma tela de erro melhorou listagem do tipo de nó de erro e destacando o nó ofender em vermelho
  • Agora suporta marcação por conectores mudança clicar, o que permite fazer ligações entre materiais de grande sem arrastar
  • Paisagem shader compilador melhorias tempo no editor de materiais
    • Em um caso de teste, tempo de compilação foi 2,25 vezes mais rápido

Abate instâncias Foliage com base na distância

    cid: image004.png @ 01CC30FD.9156B660

  • "StartCullDistance" nova e "EndCullDistance" parâmetros para abate casos folhagem com base na distância
    • Em "EndCullDistance", clusters inteira de instâncias são grosseiramente abatidos usando "MaxDrawDistance"
    • De "StartCullDistance" um exemplo per-valor de opacidade 1-0 é gerada em alpha cor vértice, para uso do material para fade out a folhagem

Adaptive Tessellation

    cid: image004.png @ 01CC30FD.9156B660

  • Os usuários podem agora dinamicamente tessellate malhas com base no tamanho espaço na tela

Melhorias editor

    cid: image004.png @ 01CC30FD.9156B660

  • Controle deslizante para novas Alpha na caixa de diálogo da pintura de Malha
  • Startup Editor de melhoria
    • Vezes editor melhorou muito devido à inicialização mais rápida do jogo downloads Banco de Dados de Ativos
    • Já não rouba o foco do teclado ao iniciar
    • Mostra informações de status enquanto melhor arranque
  • Novo botão "Cancelar" para as tarefas lento e diálogos progresso
  • Agora você pode selecionar todos os intervenientes referenciado por Kismet em todos os níveis
  • Nova capacidade de definir e saltar para marcadores para o visor e editor da barra de ferramentas dropdowns Kismet.
  • Melhorou folhagem comportamento de rolagem da janela - só a lista rola malha, com os parâmetros fixados pintura
  • Configurações LOD UV no Editor de malha estáticas são agora mantidas depois de importar um novo LOD
  • SpeedTrees pode agora ser colocado no modo StaticMesh
  • "Undo" e "refazer" são agora suportadas para que as alterações nas caixas DrawScale na barra de status abaixo viewports editor
  • Nova opção no menu de preferências do editor que, quando ativado, faz com que a BSP atualização automática depois de modificar uma escova
    • Esta opção também é togglable através do "+ Ctrl + Alt U" atalho de teclado
    • Geometria ainda deve ser reconstruído antes de jogar o nível

Melhorias Unreal Matinee

  • Os usuários podem agora nome faixas diretor Matinee e, opcionalmente, exibir esses nomes no viewport jogo
  • Agora inclui uma opção Export Animation Informações Track. Isso exporta a pista diretor e sequências de animação juntamente com todos os dados de keyframe em um arquivo de texto simples.

Outras melhorias

  • Unreal Cascade
    • Novo "WarmupTickTime" membro permite aos usuários especificar o tempo de atualização para os carrapatos warmup
    • Novo Initial Mundial Módulo Particle offset inclui versões sem sementes e não semeado
    • Suporte para 'Cor' parâmetros exemplo, quando recuperar os parâmetros de partículas via "GetColorParameter"
    • Auto-activated partículas não são mais reposto quando repor todas as partículas em um nível
    • Velocidade da partícula conjunto do movimento gerado pelo módulo de órbita
    • Celular: Removido à força estabelecer níveis de partículas do sistema LOD para o menor detalhe
  • AnimSet Visualizador
    • Nova FoV deslizante (totalmente configurável gama 5-170), FoV botão de reset, e FoV viewport informações
    • Nova drop-downs na barra de ferramentas permite a visualização blocos específicos e seções de uma malha esquelético
    • Remoção de prefixo a partir AnimSequence selecionados agora suportadas
  • iCloud salvar documento para iOS agora é suportado
  • Utilizando pesos osso alternativo no SkeletalMeshes simplificado usando Simplygon agora suportadas
  • Material de shaders de vértice agora suporte local para transformar mundo da tradução
  • A sintaxe para SkinXX SkeletalMeshes é agora suportada no pipeline FBX com ou sem materiais
Ler Mais

Fórum UDKBrasil

Top View Semanal

Top View Mensal

Top View de todos os Tempos

 
UDK BRASIL | by TNB ©2010