Wednesday, 14 December 2011

UDK vs CryEngine 3 SDK: Creating a new level

Today, I'll look at how to create a level. Fairly straightforward, but what's interesting here is knowing what makes a level and what are the options available.

Why should I care?
Because, depending on the type of game the engine/level editor has been built for, some assumptions are made about the components of a level. And if we ever want to make something different, those assumptions may get in the way. We must know them to be able to circumvent them (if needed).

Monday, 12 December 2011

UDK vs CryEngine 3 SDK: Getting started

So, let's do this in chronological order. One of the first things we want to do when starting a project (well, after the design phase) is to set up the SDK so we can actually start to make something. I'm going to take a look at what's needed to get the SDK installed and running.

My M.O. will be as follows (and will be the same for every article in the series): I'll start by explaining why I'm looking at what I'm looking at, then I'll tell about what I know (UDK) before looking at how it's done in the CryEngine.

Sunday, 11 December 2011

UDK vs CryEngine 3 SDK: A no-nonsense comparison

Catchy title, hey?

For various reasons I've decided to park my learning of animation skills and now I'm interested into taking a closer look at the CryEngine 3 SDK.

Being a UDK user, I'm obviously going to compare both engines a lot. However, my goal is not to determine "the best engine", but to find out where are their respective strengths and weaknesses. This will be a series of blog posts, each focussing on a specific topic. The two engines will be evaluated on about 3 criteria:

  • How straightforward the process is (i.e. number of steps required to get things done).
  • How easy it is to iterate on content.
  • How easy it is to make something different from the default game.

DISCLAIMER: As much as I'll try to give unbiased information, I cannot guarantee that the ratings on the above criteria will be objective, as what seems easy to me may not be easy to you and vice versa. But at least this will give you an idea.

The first topic will be about getting the SDK up and running.

You'll find all the articles in the series by following this link.

Wednesday, 2 November 2011

Animation chronicles - Episode 5: Character sets and poses

I'm about to create the control rig for my character's arms. Like the legs, it's going to be based off IK solving, though it's going to be a bit more complex. Unless you're making a dancing game or a fighting game, your characters are unlikely to have as complex movement in the legs as in the arms, especially when it comes to twisting. I'm going to need to test my shoulder controllers with the arm straight (as in bind pose) and with the elbow bent. And I'll probably want to go back an forth between those, which is I'll create a character set.

Saturday, 29 October 2011

Animation Chronicles - Episode 4: Attribute locking and transform limits

I haven't progressed much since last time as I was too busy playing Forza 4. So far, I've got:
  • A controller for each foot
  • A controller for the hips
  • A "world" controller for the entire character
Now I'll add controllers for the upper body and the head, which will give me the opportunity to talk about attribute locking and transform limits.

Sunday, 9 October 2011

Animation Chronicles - Episode 3: starting over to "Evolve"

A grim sounding title, but there's actually good news in that article.

In a normal pipeline, you would model your character, then rig it and skin it. As I was using the UDN's skeleton, which is in a relaxed pose, I assumed I had to put that skeleton in a T-pose before being able to model something around it. This is why I started to rig the skeleton first. But today, I've made a discovery that would save me the trouble of modelling a character.

Thursday, 6 October 2011

Animation Chronicles - Episode 2: Animation Controllers

I've created IK handles for my skeleton's feet, which allows me to quite easily pose them (e.g. in order to place the skeleton in a sitting position, I just have to translate the hip joint). Thing is, IK handles are a bit small and are hard to reach when the the skeleton is skinned. For this reason, I'm going to create controllers. We'll also see that it has other advantages.

Friday, 30 September 2011

Animation chronicles - Episode 1: Joints and IK handles

DISCLAIMER: I am not an animator, This series of articles represent what I understood from my experiments and may contain mistakes.

When making my custom rig, I intend to work from the feet to the hands. Since the feet are closer to the root in the hierarchy, that should make things easier. But before actually starting on making the rig, let's quickly to talk about bones in order to understand why I need to do what I'm about to do.

Wednesday, 28 September 2011

Animation chronicles: Prologue

Character animation is one the aspects of game development in which I have little to no practical skills. I know how it works, but I don't really know how to do it. I've decided to change that.

Wednesday, 7 September 2011

Gamasutra - A rational approach to Racing Game Track Design

Very good article on the subject. Most of it is common sense, but it's always better when put into words.

Although the article is focussed on arcade racers, the metrics described are valid for any kind of racing game.

Link


Sunday, 31 July 2011

Camera axes: To invert or not to invert?

If you're the kind of person who likes to browse a game's menu and settings before playing (or if you're the kind of person having trouble with camera rotation in games), you probably know that many first person and third person games allow you to invert the x and/or the y axis of the joystick/mouse for camera movement. But why do we have that option, and why should game developers care about that? Let's see...

Sunday, 17 July 2011

New Game+

New Game+ is the name (or one of the names) of the game feature that lets the player restart a game while retaining some of the stuff earned in a previously finished game save, like experience, skills, money, weapons...

The Unsung Secret of Great Games - and How Some Games Get It So Wrong

Interesting paper on how the rhythm of the game's mechanics makes it feel good or not.

The Unsung Secret of Great Games - And How Some Games Get It So Wrong

Saturday, 25 June 2011

ZBR

Another term borrowed from Microsoft's project management philosophy, ZBR is where the end really begins.

It means Zero Bug Release, though it doesn't mean shipping a bug-free game...

Wednesday, 18 May 2011

Processing: the language

Another discovery today, Processing is an open source programming language designed to teach the basics of programming.

I haven't looked too deep into this, but it looks very interesting for beginners, as it's less abstract than algorithms. The tutorials all look pretty well organised and detailed. I'd recommend reading those to anyone who wants to learn programming for the first time.

UE Viewer

I've just been told about this very interesting tool which allows you to view the assets of nearly any game made with Unreal Technology.

It's useful to study mesh topology, and the way the companies make and organize their assets.

It seems it's also able to export meshes and textures, though I wouldn't encourage that since you're not allowed to re-use these assets anyway.

Tuesday, 10 May 2011

Beta

Also coming from traditional software development, Beta usually has a less controversial definition than Alpha.

The short version is that a beta contains everything, including the bugs.

However, in games development, Beta has been taking another meaning since the last few years.

Friday, 29 April 2011

Alpha

Borrowed from traditional (i.e. non-games) software development, Alpha designates a key stage in a game's development. The definition of Alpha for traditional software is, according to Wikipedia:

Alpha software can be unstable and could cause crashes or data loss. [...] The alpha phase usually ends with a feature freeze, indicating that no more features will be added to the software. At this time, the software is said to be feature complete.

In game development, the definition is a bit more blurry.

Gamasutra - Features - The Cake Is Not a Lie: How to Design Effective Achievements

Gamasutra - Features - The Cake Is Not a Lie: How to Design Effective Achievements

Wednesday, 27 April 2011

Pillars

Pillars, as the name suggests, are the foundations of a game. People might find that this is basically the same thing as Unique Selling Points (sometimes Key Selling Points), but it doesn't encompass exactly the same things.

Sunday, 10 April 2011

Unique Selling Point

Unique Selling Points, USPs (or sometimes called Key Selling Points) are the elements that make your game stand out, what makes it better than and/or different than titles from the competition. Note the "Selling" part. These points are supposed to make the players want to buy the game. Or at the very least, make the publisher want to invest in that project :)

Sunday, 3 April 2011

Mission statement

While a fairly self explanatory term, the mission statement is used slightly differently in a game's design. According to Wikipedia:
"A mission statement is a formal, short, written statement of the purpose of a company or organization. The mission statement should guide the actions of the organization, spell out its overall goal, provide a sense of direction, and guide decision-making."

Saturday, 2 April 2011

Gating

Gating is a level design technique that consists in confining the player to a small area and/or blocking the access to another area, until the player completes a given objective or makes a specific action. There are several kinds of gating, used in different situations.

Aim systems in First Person Shooters

Earlier this week, FPS-focused (French) website NoFrag published a very interesting article, making a quite thorough analysis of the various aiming mechanics you can find in an FPS. Its author, Nooky, kindly allowed me to translate this article in English and post it here. All kudos (and potential complaints ;)) goes to him. Unfortunately, I can't really translate the embedded videos, but everything is explained in the following paragraphs.

Original article.

Saturday, 26 March 2011

UDK Motorsport: Pacejka's tyre model (the theory)

I've covered at length how to move the car. I needed to get a car with proper behaviour regarding acceleration in order to study the next topic in appropriate conditions.

That topic is tyre adhesion model. As the tyres are the only points of contact the car has with the road, they account for much of the vehicle's behaviour and that is why, from a design perspective, they're the most important aspect of car physics to understand. Unfortunately, it happens to be one of the most complex ones.

Thursday, 24 March 2011

GDC 2011 sessions are live

Some presentations from GDC 2011 are available for free on GDC vault, with lots of post mortems from old games.

GDC Vault

Tuesday, 15 March 2011

Making a comparative analysis

Unless you are inventing a totally new genre, when you're designing a feature, chances are that someone has already done something that at least remotely looks like what you're trying to achieve. Incidentally, if you are making a game of a crowded genre, it is wise to look at what the competition has done, in order to not make the same mistakes and/or nick the interesting ideas. That's why you usually do comparative analysis (that's the part where you can say that your job as a designer consists in "playing" video games).

Monday, 14 March 2011

Methodology articles

Yet another introduction to what should be a recurring kind of articles.

These will be a bunch of articles in which I basically explain how I organise my work as a designer.

I feel like I need to emphasize that whatever will be presented in these articles is my way of approaching game design. By no means I will be trying to say "this is THE way it should be done", and if I ever do sound like I do, it will be most likely because I will assume it is common sense :).

If you don't agree with anything I write, please leave a comment and I'll be more than happy to discuss that in order to improve. 

Gaming Minutes

A small post to introduce a new series of blog post I intend to write over time.

The gaming minutes are simply when I write about a sequence I particularly enjoyed or hated in a game. Obviously, I'll try to explain why by pointing out and analysing the involved design mechanics and decisions.

They will mostly be about the games I'm playing at the moment of writing, so I might not be talking about old games (unless I get cracking on my list of games-bought-on-Steam-during-sales-but-never-installed).

Sunday, 13 March 2011

BioShock Infinite Prototype

It's quite rare to see commercial games in their really early stages, especially when they haven't been released yet.

It gives you an idea of how much detail you may put in your whitebox.



(The video is courtesy of Kotaku)

Combat Design in Resistance 3 (GDC 2011)

GDC 2011 presentation of Insomniac Games on how they designed the combat encounters on Resistance 3.

Key points are:

  • Give the combat area an easy to read layout.
  • Keep the action in the player's field of view.
  • Use subtle visual clues (e.g. enemy/ally movement) to hint the player at what to do/ where to go next.

Insomniac Games - Articles

Tuesday, 1 March 2011

Intelligent Brawling

Gamasutra - Features - Intelligent Brawling

A very interesting article that breaks down melee combat in action games into fundamental components.

Saturday, 26 February 2011

UDK Motorsport: Torque curves and engine sound

I have my gear plot. I need to find some way to combine that with the engine's torque curve in order to get the kind of curve Unreal requires. The obvious solution is to use the output of the gear plot as the input of the torque curve.

This is a basic mathematical tool called function composition. The problem is that while the gear plot is a set of linear functions, the torque curve isn't a function at all. So we need to find a function that has roughly the shape of the torque curve we are interested in.

UDK Motorsport: More about gear plots

I stopped my experiment about manual gear boxes when I got my proof of concept working. But the curves I used were a bit poo. I want to see how to create the sound of the engine according to its RPM, but I can't do it if I don't have proper torque curves. But how can I make those curves, based on an existing engine? (Warning: lots of maths involved here)

Monday, 21 February 2011

UDK Motorsport: Gears of Car

In the previous post I talked about torque curves, and Unreal's way of approximating them. My objective now is to create a manual gear box. As usual I'll first take a look at how things work in real life, then I'll see how to circumvent Unreal's annoying methods.

Sunday, 20 February 2011

UDK Motorsport: acceleration and braking

The first thing we want to achieve with a car is make it go forward, and eventually make it stop. So let's have a look at how it (roughly) works in real life.

Basically, the engine spins at a certain speed, which makes the wheels (through the drive shaft) spin at the same speed (let's forget about the gear box for a moment). As the wheels spin, they make the car go forward (assuming there's enough grip to the road). Simple, isn't it? (yeah, I simplified a lot)

We're going to have a look at how acceleration works in Unreal, but first, let's talk about torque as I'll be using that term a lot.

Tuesday, 15 February 2011

Vehicle handling design: UDK Motorsport

Last month I looked into how vehicles work in Unreal. While in its default implementation the system is obviously not meant to create super realistic simulations, it's still quite complex and requires a bit of physics knowledge to get the big picture.

I'm going to try and see how far I can go with car physics simulation in Unreal. It will also allow me to give a shot at general vehicle handling design (which is a full-time job!). I will call this project UDK Motorsport.

As the topic is vast, I'll be making several posts on specific topics as I progress in my experiments. UDK will be the platform on which I will make my tests, but most of the theoretical bits should give readers insight on car simulation regardless of the engine used.

That said, chances are I'm going to talk about physics without really spending much time explaining everything in detail. If you intend to follow this series of blog posts, I hope you still remember your high school physics lessons (or your mechanic lessons if you've ever had some).

Monday, 14 February 2011

How World Machine and I made up

A few years ago, I had a look at various free terrain generation software. World Machine caught my eye and seemed powerful but the graph-based interface made me puke as it seemed completely unintuitive. Instead, I turned to L3DT, whose Design Map feature was quite appealing (I even wrote an article about that).

But recently, I've decided to create a race track level in Unreal, for a project I'll be writing about later on this blog. However, I found out that L3DT's road making abilities are quite limited, so I looked for another solution. That's when I discovered World Machine's Layout Generator feature, and realized how this made the graph-based interface terrifyingly powerful.