Monthly Archive for July, 2006

Downtown

The blog was down for ages! In fact the entire server was down. In actual fact it’s currently down and I’m writing this in reverse-retrospect (introspect?). I’m writing this before it’s back up in the pre (prespect?) in the prospect that it’s going to back up at some point.

The more unfortunate thing is that all my email goes through that same server. So I don’t get no email. Oh and get this: it’s due to a power failure in Los Angeles. It’s hot there and lots of Americans turned on their air conditioning units putting too much drain on the system. Time for another nuke-plant. The downside is old people have started croaking due to the heat.

Anyway, for those that know I’m a bit of a web-designer (and for those who don’t, you do now). So I’m working on a content management system. The main aims are for it to be easy to use and very easy for me to maintain. One of these ease of use ideas is in-page-editing. Like k2 when you are an admin and logged into the site a little pen icon will appear next to a publication, not like k2 clicking it will go into a javascript inline editor. Saving will be AJAX’d. The editor will only allow span type styles (bold, italic and custom styles). There will also be an AJAX ‘content block’ editor to add paragraphs, headings, images and lists. By separating these two modes of editing it becomes very easy to make the resulting content XHTML compliant, and it will be very easy to deal with internally.

So this having been the gameplan for today (not including two very dull lectures) I proceeded to attempt to discover how one goes ahead and programs a web based HTML editor. It was difficult, but I managed to gleam that it involves an iframe, and programmatically creating an entire document within it which, quite frankly, is disgusting.

So I spend many greasy (not really) hours slugging through javascript. This being my first official foray into this messy world I was unfortunately correct in my assumption that it blows chunks.

So some good news. In Safari I discovered quite by accident that pressing Apple-1 through however many bookmarks you have in your bookmark bar goes to that link. Funky. Apple-2 for me posts the current page to del.icio.us through a ‘bookmarklet’. Sweet.

Ideas

I’ve been thinking about this for a couple of minutes. I think it would be quite cool for this site to be an ‘idea repository’, that is, a categorised list of techniques, cool things and ideas that are implemented or should be implemented in games.

The old saying in game development is “Ideas are dime a dozen” well here they could be free.

I realy enjoy thinking up and discussing the ‘best’ (most intuitive) control method to use in a certain situation. I think it would be cool to have an almost step by step collection of ‘if you want this in your game you could do it like this’. This would incorporate how to do inventory systems, what control method to use on consoles and how to organise game gui’s to make it easy for the player. All this would of course be a work in progress with multiple methods where opinions differ.

This would require some type of forum system which I would setup or code where submissions for new sections and ideas would be heard, comments and suggestions on existing ideas would be discussed and news of new features and techniques in games could be published.

Does this already exist on another site? Would this be a useful thing to do? Would you help? What should it be called? Would this require a new domain (and let this degenerate into my personal blog)?

Addendum: This could also include links and resources; modern weapon lists, science fiction books to read and articles from other sites. All relating to game ideas though (nothing specifically about programming - plenty of sites about those things already).

Addendum 2: I could include a way to provide a certain license with each submitted idea, probably along the creative commons road. Something like ‘If you use this idea from reading it here it would be nice to provide recognition’. I don’t think you can stop someone from using an idea though.

Game Weapons

Have you seen the Portal game that may be included with Half-life : Episode 2? It’s snazzy. It’s basically the game Narbacular Drop ported into the source engine. The crux of it is that you can create two portals, one leads to the other and the other way around. These portals can be used to walk through, jump through and pass objects through. In the linked movie some of these cool things are shown.

Is it just me or have cool weapons taken an increase in games?

Take the E3 Crysis Video. A couple of minutes in you will see the in-game customisation of his weapon, you can add a silencer, flashlight, grenade launcher, change ammo and change the scope. This is awesome.

We have also had the gravity gun in the original Half-life 2.

I like making lists of things I would like in my game, things I think are cool enough to copy. Here is the starting of one such list. If you have anything to add to this list feel free to comment. This is particular to weapons, but anything is good.

Force Discharge Gun
Notes: Reloads with a twist of the weapon ‘charges up’. Distorts the air. Makes objects and people fly away.
Source: Minority Report - the protagonist uses this non-lethal weapon against the men in black. Blue barrels fly everywhere.

Gravity Manipulator Gun
Notes: Generates a force field around the item and holds it up. Can either release or fire the item. Pulls an object towards you on manipulate.
Source: Half-life 2

Portal Gun
Notes: Two portals, left mouse chick is one portal, right mouse click is another. Instant fire. Objects and the player can move through the portals.
Source: Portal - bundled with Half-life 2 Episode 2

Nail Gun
Notes: ‘Nails’ people to the wall.
Source: Armacham HV Penetrator - from F.E.A.R.

Sonic Grenade
Notes: Creates a audio silence before detonating. I like this idea because it’s scary. You are fighting away and all the sound goes… uh oh… run!.
Source: Star Wars Episode 2, Jango Fett’s ship has these grenades.

Explosion
Notes: A nearby explosion causes a white screen (if a flash grenade) or a red screen, ringing noise and muted environment sounds for a period of time.
Source: Halflife 2, Call of Duty

In-game Weapon Customisation
Notes: The avatar pulls up the weapon with tags on each of the modifiable sections, the player can then modify the weapon with the mouse.
Source: Crysis

Slow Motion Explosions
Notes: An explosion that kills you goes off, you ragdoll and time slows down to a stop, the camera pans around and it’s game over. Could also happen with all deaths - the bullet stops just in frount of you.
Source: Bennabis

Kill Cam (replay)
Notes: When you die you see a replay from the perspective of your assailant, how they killed you etc.
Source: Call of Duty 2

Edit: The way the portal gun works may have been wrong (or this one is wrong). Left mouse chick is one portal, right mouse click is another. (was each succesive shot removes the first and creates another.)

Quaternions

I’ve just coded a 2, 3 and 4 dimension Vector class, a 2, 3 and 4 dimension Matrix class and a Quaternion class (also a couple of container classes). 2400 lines of code in about a day. I accidentally missed one of my lectures today as I was too busy coding.

Quaternions are cool! Anything in 4 dimensions is cool. A quaternion is a rotation in 3 dimensions that, among other things, prevents ‘Gimbal Lock’. It’s also easy to do smooth rotation through interpolation of quaternions.

Quaternions come from an obsure branch of mathematics from the 19th century. They have pretty much been superseded by vector mathematics, but have their uses in computer graphics.

Here endith the lesson for today.

Looking cool playing your game (refresher)

I love anything that makes you look cool playing a game. Lets face it, a large reason to play games is to do things you can’t normally, like ninja wall running. I can’t ninja flip off a wall and jump onto roofs, but I can in a game.

The trick with these features is to make them easy to use and not to take away interaction from the player.

I believe I have already discussed some ideas for this, but it’s time for a refresher.

I like the idea of ‘adaptive behaviour’. You control your avatar with normal fps controls and the computer takes care of the special behaviours. If you push up against a wall your character will lean against it, if you crouch near a low obstacle your character will level their gun over it in a defensive stance. Your avatar will pull themselves up onto a ledge, climb over obstacles, lean out around corners and kick obstacles out of the way.

All this is preferably done as some sort of computer run over a map to identify these points dynamically.

The action key is context specific, it is used to open doors, climb ladders, pick up ammo and weapons, grap opponents and melee. What happens is dependant of your current surroundings and the way you press the key.

One problem with all this is it lends itself to a 3rd person perspective. This is a problem because this form of perspective is hard to do. If the avatar backs up against a wall the camera is often forced into annoying places. Also with this perspective it’s possibly to look around corners. Hopefully I can do this well and make it look right.

To make 3rd person prespective an enjoyable experience I’m planning to have context sensitive zooming. The camera will zoom in and position itself where it thinks is best. If you are doign a lot of running and looking around it will give you a larger view of the area. If you are taking careful shots with a accurate weapon the camera will align itself along the barrel of the weapon and zoom in to get a better view. I’m going to make sure I do this right as there is nothing more annoying that a bad camera in 3D.

Now all these would be a welcome addition to any game, but I don’t want to make any game. I’ve been toying with a few ideas and I’ve some up with something I think is quite cool. I don’t have a large budget, so anything with large amounts of artwork and content is right out. Well in fact there are a few concepts that I would like to include in a game.