Monday, 27 January 2014

Little Update

There's not too much to say this week and my notes aren't very good for a blog, so this one's going to be short and sweet! Sometimes it's nice to just get a few ideas off the top of my head onto paper rather than making this into some long-winded update or talk about notes for the week.

Tomorrow we have our first review in GDW for the Winter 2014 semester. So far our lead programmer has done a lot to improve our framework over the previous semester. I haven't had the chance to take too close a look at it as I've been busy setting up my frameworks for other class projects and homework (including Graphics!), but I have been working on plenty of other aspects for our group game. What I do know has been added is:
  • .md5 file compatibility, a file type I'm not familiar with but that appears to make animation crazy easy (sweet!)
  • implementing the new libraries we have to work with this semester
  • incorporating FMOD for our sound class, and our sound .cpp (get it?)
Meanwhile I've been working with the other members of the group to get together some new ideas for obstacles and enemies we can incorporate throughout the semester. I don't yet have a sketch ready yet but my new enemy idea is a hawk that swoops by and drops an egg on the player to do some damage. Before the week is up I plan to have this enemy fully designed and in the beginning stages of modelling, as well as modelling a few simple obstacles that I can UV map and paint next week. Every little model helps, right?

Monday, 20 January 2014

Light Up The World pt1

Another day in class and today's topic is lighting. I think I actually talked a bit about lighting in my last post, so it's time for an in depth explanation as today's notes.

To start things off, why should we even bother putting effort into video game lighting. Don't you just need to see? My opinion is that lighting is an under-appreciated story-telling mechanic and mood-setter that can make or break a good game. It can hide model and texture flaws, direct the player onward, draw the eye, and be used just like in any good horror movie to obscure the player's vision for a good shock. The absence of light is at least as important as the presence of it, as an area without lighting makes the player wary when coming from a sunny plain and helps keep the player focused on their objective by obscuring the pretty but unnecessary distractions.

Most of what we learned last semester involved dynamic lighting meaning lights coded into the game that can potentially move around and be used as spotlights. Static lights are more simple but equally effective at directing the player. These lights have less/no maneuverability as they are "baked" into the textures of an object in Maya before it ever even sees the game. However in spite of their more permanent state, static lighting is very useful from a graphical standpoint by taking up less computational power to look good.

There are 4 types of light that I've learned so far. They are:


  • Emissive
    • tied to an object; ie a computer screen, glowing orb, etc.
  • Ambient
    • constant value of the scene's natural brightness level
  • Diffuse
    • difference of light between areas (ie shading) that's the object's position relative to the light
  • Specular
    • the shininess of an object based on the position of the viewer relative to the object


Some lighting concepts I'd love to see in Up All Knight are harsher shadows from intense spot lights (ie the sun), god rays, and drop shadows. All fairly simple concepts but ones that are new to me!

Skyrim screenshot; example of god rays & lovely coloured lighting

Unknown source, but I liked the motorcycle drop shadows!

Here ends Day 1! Looks like we're continuing on next class with the rest of lighting, ttyl~

Thursday, 16 January 2014

Inspiration

After playing some of the next (current?) gen games on the PS4 and being a little in awe of some of the things I've seen, I thought I'd post some examples of inspiration that I'd love to see within our game. I'm sure I'll find some of it to be unattainable at my group's current level, but a girl can dream!

Assassin's Creed 4

This is Assassin's Creed 4 for the PS4, the game I've been playing most by far. It still has all the usual AC series problems from excessive snapping to buildings, to suddenly just not climbing. It's a little difficult to compete in a race/chase when you just.... stop. But those are problems in play mechanics, not in the graphics of this generally gorgeous game. Some things I particularly love and would like to incorporate into Up All Knight are:
  • Fog/cloud effects; the further up you climb more often the player encounters foggy patches that obscure things around the player
  • Lighting; sunlight that sparkles on shiny armor and backlights other objects
  • Sun rays; seen below, these would be amazing as the player climbs, passes the sun during the day/night cycle, and gets little sun beams through the clouds ^_^
godrays.jpg (642×394) 
This is something known as 'Real Life' and Alan Wake
But before we can get to any of this stuff we have to build up our framework into modern OpenGL, a significant advancement from last semester's out-dated coding methods. By next weekend we will hopefully be completely done modifying our code into the framework needed for the rest of the semester. Time to down a few energy drinks and get crackin'!

Friday, 10 January 2014

Belated Introductions

This is more than a little late, seeing as I've already begun posting for class, but I thought I'd "start off" this blog with some background info :)

Hey! My name is Rachael and I'm a year 2 Game Dev. student at UOIT. I'm more into the art side of things and love photoshop paintings as my current medium of choice, though I'm beginning to work my way up with Maya too! I'm the Lead 2D Artist for the small development studio Fort Fortnight Studios. Since I'm only in year 2 we haven't had the chance to work together for very long, but going through school together and handling the steep learning curves and twists of University have brought us together as a pretty tight team.

This blog is for our Intermediate Graphics class, possibly our group Game Design Workshop, and just to keep myself and my partners on track with our development. There'll probably be a fair share of dry posts for school, reiterating notes and the like, but hopefully some of the development blogs will keep your interest!

We're currently heading into month 5 of 7.5 of our development period and are working on our first 3D game Up All Knight. It's still very much in the protoype stage, as not all of that time was workable thanks to hectic exams, winter holidays (and recuperation period!), and the initial confusing weeks of finding groups and deciding on a game concept.
Main Character Concept

Now that the first week of classes is over and everyone's sleeping schedules have (mostly) fixed themselves after a much needed winter break it's time to get back into continual crack-down mode. Time to get to work!~

Dawn of a New Day

Day one in our Graphics course with new content and we're jumping right into the heart of graphics: the hardware that makes it possible. I recently built a computer for the first time (with plenty of assistance), my first personal desktop after years of dealing with laptops. I learned very early on that as a gamer one of the most important components I would need was the GPU as it is what handles the majority of the graphics in most decent modern games. This is thanks to the wonders of modern engineering, allowing us the capability of having 1000+ cores, the GPU is capable of hundreds more processes then the CPU with it's 4-8 cores.

The GPU handles the graphics pipeline: the process of converting data into pixels on the screen. It's pretty amazing how we can program a computer to take basic points in space, convert them into simple triangles, and then output a complex model all in a matter of seconds. A lot of this is thanks to the information us programmers assign to each point, or vertex, such as colour and normal.

Okay, so we know what happens to create this image, but how does the image itself work? Digital images are made up of pixels, each consisting of 4-5 channels (RGB + Alpha, Luminance). How this information balances with each other determines the colour that displays. Other data that the graphics pipeline needs to know is textures and UV mapping. A texture is typically thought of as a 2D image that is applied to 3D model to give it colour based on where a UV map says it should go. Other forms of textures include bump and displacement maps; a map that tells the computer where there should be small valleys and ridges that are only affected by light, and a map acts as a bump map that also affects the actual geometry of the model.

Key Order: Modelview -> (eye) -> Projection -> (clip) -> Perspective -> (normalized device) -> Viewport -> (window)
Key Formula: v(new) = P x M x v(old)

Then we find out that we're going to have to reprogram a large portion of our framework... something I've known for a while but liked to pretend we would magically not have to do. In order to both a) do well in this course and b) have a game running with any amount of decent speed, we'll have to take our game out of immediate mode and have it run using more complex, faster shaders and buffers. This semester's going to be a whole lot of work, but I believe in our game and our group and know it will all be worth it in the end :)

Monday, 6 January 2014

Testing testing 1-2-3!

This is just a good 'ole test post. Let's see what this thing is capable of!