Sunday, 22 April 2012

Asset Creation 2

Some amendments to the previous "Asset Creation" Post:

File Format and Transparency:


You know how I said I "might" implement a png reader? Well I just did implement a png reader, and consequently we not only have transparency working properly, but also we have gradient transparency. Gone are the days in which we were limited to pixel dissipation techniques. So forget everything I said about bmps, forget picking a default transparency colour, those things take up too much memory and we can do better than that now.

(New category!) Optimisation:


Now since we're on the subject of memory efficiency, I'll take this opportunity to mention that when saving files in Photoshop, instead of using "Save As" press Alt + Shift + Ctrl + S (windows) or Opt+ Shift + Cmd + S (mac) to bring up the "Save for Web & Devices" window.

If you're not familiar with this already, it's basically an image optimisation tool that enables us to cut out all the crap from the image files (like meta data, unnecessary transparency etc.)

So basically, once that window's opened up click on the "optimized" tab (top right corner), then look at the bottom of the right hand column on the right, (second line down), to check out the file size. As a general rule, our goal is to try to get the file size as small as possible without sacrificing image quality. We can use png-8 for non-gradient transparency. Have a play around with the settings in the left column, see how few colours we can get away with. Some files may need to use png-24 which is perfectly fine.

By the way "Percent" lets you zoom in and "Preview" mimics different systems, so if you're using a mac you can see what it might look like on a windows machine, (apparently).

*

Everything I said before that wasn't contradicted by this post still applies.

Friday, 20 April 2012

Was thinking about the animation system and decided to rummage through some sprite sheets for testing purposes. In my searches I came across this art by Agnes Sato. I really like the proportions of the people, also think dissipating pixels like this is a brilliant approach to translucency.


This was also quite a cool way of animating I thought, using blurred images to smooth the transitions. I don't know who the artist is for this.


Anyway, just thought I'd share.

Combat System

Are we having a combat system?

Whether we are or not I'd like to throw some ideas in and get a discussion going. Obviously the story and puzzles take priority, but there's no harm in thinking about this sort of thing.

A turn based battle arena style systems would be fun to program. Very old school, and very enjoyable when strategy is involved.



That said, this worked well in games that were combat heavy, no idea how well it'd work in a game that's combat light.



Sword and Sworcery's combat system is pretty cool, it's time based, you click on the sword or shield depending what the thing you're fighting's doing. Also unlike normal games, stuff you fight doesn't get tougher, you lose hp as the endless battles take their toll on your health.

We could also do a text based combat system through a computer interface. I'll give that idea some more thought...

Any ideas on this matter? What are your favourite combat systems and why?

Asset Creation


Now that I have animation working, here (as promised) is the asset creation post. 

Firstly, THIS IS IMPORTANT:

For technical reason we’re going to work using these numbers as much as possible:

0, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024... Etc.

From now on I shall refer to these numbers as “bn”, so when I ask for “bn-1” I mean “one less than a number in the above sequence (of your choice)”.

When there’s more than one “bn” value I’ll number them, so “width = bn: height = bn” would mean “I want a square”, whereas “width: = bn1: height = bn2” would mean “I want either a rectangle or a square”.

When I say “n” I mean literally any decimal integer.

Hopefully this isn't too tedious to remember because I guarantee that it will seriously cut down our collective workload in the long run, but for the love of God if this starts to suck the fun out of the project for anyone let me know and I’ll just make a bunch of templates or something.

File Format:


For now the game only reads bmp files. (Although, I might write a png reader later in the unlikely event that it becomes necessary.)

Image file dimensions must always conform to bn1 x bn2 pixels (although the images themselves can be any size you like). More on that later, (see sprites).

Transparency:


For anything you want to appear transparent, change that pixel colour to rbg(255, 0, 255). 

Actually technically any colour can represent transparency so if you want to vote on another colour I'll change it. I picked this colour because I doubted we'd ever need it for the artwork, also it's easy to remember, but I understand that it's kind of headache-inducing so I appreciate that there might be protests. All I ask is that you pick a colour that's rgb(bn1-1, bn2-1, bn3-1) and that once decided this stays consistent throughout the entire game.

Sprites


SOME OF THIS MIGHT CHANGE! Be emotionally prepared for that. What is absolutely definite though, is that we will use sprite animation a lot, and it's quite possible that every graphic in the game will end up becoming a sprite.

This bit is only 90% definite: When making sprite files the area in which the graphic is drawn needs to be bn1 x bn2 pixels. This dimension needs to remain consistent for every graphic in that file. The file also has to be bn1 x bn2 pixels. (Even when this means an annoying amount of white space.) I will re-evaluate this decision after further testing and research.

Whenever there's animation, that animation needs to align vertically* and all sprites in that animation need to have the same width and height - such as this example.


*Would people prefer horizontal? Let's vote.

Right now animations can loop, oscillate or play through a set number of times. I'm tempted to add some more advanced animation controls (ie memory efficient blinking) but want to get the game to a playable state first.

Naming conventions


Use camel case, always starting with a lower case letter.

Environments start "environment", protagonist animations starts "protagonist", non-moving items start "staticItem", animated items start "animItem" any npc animations start "npc" ... there's a lot of undecided stuff so I guess just call anything else whatever and I'll sort it out sometime.

Audio


I don't know what format we'll use yet (probably wav but see how it goes) however this is something that we all need to think about as we go along. Voice actors and music aside, we'll need sound effects, and unless anyone knows any sound technicians we're probably going to have to take responsibility for this. We should make lists of sound effects we're going to use and post them up here, then collectively gather resources, book out the uni's sound recording studio and make a day of it. We can also rent a sound recorder from OASIS for any awkward stuff we can't take into the sound studio (like water, traffic and nature). Additionally the library has copies of the BBC sound effects libraries which we can chop up and use (legally). Athena building has Pro Tools 8 (decent sound editing software).

I think that's everything for now.

Thursday, 19 April 2012

More on image quality


Top: 16 bit.
Bottom: 32 bit.

I've come to accept that it's impossible to demonstrate image quality when converting a bmp to whatever's stored when you press "Alt + Print Screen", to a png, to another png, HOWEVER, this will give you more of an idea than my previous demonstration.

Next task as far as programming's concerned: Animation. After that I'll do a post on asset creation so we can get making this thing for proper.

Wednesday, 18 April 2012

Pixel art is awesome.

I got all excited looking at pixel art and decided to have a go myself. Behold, apartments of the future.


(Yeah, that's a dude from Gemini Rue, I added him to show the scale of things.)

Programming Update 1


My monitor resolution is 1280 x 960, the game is currently 320 by 200. Here is a picture of it in "standard" and "full screen" mode.

I tried capturing it in different bit depths to show you the difference. Above is 32 bit. For some reason 8 bit (bellow, right) came out looking significantly worse than it did on screen, but even so it basically couldn't handle the red corner at all. The 16 bit version (bellow, left) is an accurate representation of what it looked like on screen.


Personally I'd like to stick to 320 by 200 in 16 bit because I like the look of it, but we can play around and see what works better. Ultimately it's Liz's decision since she's in charge of artwork.