FAQ Search
Memberlist Usergroups
Profile
  Forum Statistics Register
 Log in to check your private messages
Log in to check your private messages
Moonpod Homepage Starscape Information Mr. Robot Information Free Game Downloads Starscape Highscore Table
January-05: And Goob said, Let there be light.
Goto page 1, 2  Next
Post new topic   Reply to topic    Discussion Pod Forum Index -> Developer Diary View previous topic :: View next topic  
 Author
Message
Moonpod Developer Diary RSS feed -RSS Feed
Poo Bear
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 4121
Location: Sheffield, UK



PostPosted: Wed Feb 09, 2005 7:57 am    Post subject: January-05: And Goob said, Let there be light. Reply with quote

This month i've been finishing off the main robots and testing them in game. So we now have:

Grid Runners
(spot the homage !)
Move around on the raised walkways taking random turns down junctions.
Maniacs
Move in a straight line until they hit something at which point they turn a random amount and move off again.
Patrollers
move in a straight line until they hit something at which point the try to do a 90degree left turn before carrying on.
If they are blocked they try a 90degree right turn and if that doesn't work they just reverse their course.
Guardians
They follow the edge of whatever they are touching so they tend to move in circles around obstacles.
Defenders
Move in a straight line between two obstacles.
Stalkers
Come straight towards the player and try to grab him.
Turrets
Don't move but spin round firing out waves of energy.


A lot of time has been spent on Asimov, the player's robot. It's absolutely vital that people just enjoy running around and jumping, in a way everything else is secondary to that. In a fully 3D environment getting the player to move around and be controllable in a way that "feels" right is very difficult. There are just more possibilities of interaction than in a 2D game and you are also asking more from the player in terms of spatial awareness. Motion and control have to be smooth, engaging and offer rich feedback to the player.

Pick up any Mario game and you can feel the fluidity of the characters movements across the screen, it's smooth and easy and yet there is still skill required to really master the game. Similarly in Sonic, the game is easy to get into, but you soon realise keeping him moving at full speed and getting those hard to reach bonuses is going to take practice. A more up to date example would be the new Prince of Persia games, for all their faults there is a real sense of achievement when you finally manage to pull off a string of moves that gets you onto that high shelf. MrRobot doesn't aim anywhere near as high, but it's still vital we get people smiling as they are running around and demonstrate rewards for the practice needed to enhance skill.

It will still require a lot of play testing before i'm happy with how the game feels, but i'll have to wait until more of the game is complete. It is difficult to assess something like "control feel" without a whole string of features completed. Visual clues like shadows, lighting, clicks when a button depresses, a puff of smoke on skidding all add something to the overall feel. Without them often something will feel wrong and you can often waste time changing things and still never get it quite right. You must find a balance between waiting for enough features to be complete and not leaving something too long that is obviously wrong. A big mistake developers make is to not really finish things before moving on, you have to know how far to take something. I've often heard people say "well it isn't much fun yet, but when XYZ is done i'm sure it will feel great" and usually it still sucks even when XYZ is done.

Right now I'm working on 'Samson'; a new robot with a unique purpose (see the mysterious silhouette at the bottom of Fost's post). I think he is going to be great. Once that is done I can get one entire zone finished and working, which will be a very important milestone. For the first time we will be able to sit down and get a feel for the whole game. At that point you can make decisions about difficulty, how long the game will take to play, what to put in the rest of the game, etc. It's a big step closer to being finished Smile
Back to top
View user's profile Visit poster's website
Goober
Pod Team
Pod Team


Joined: 11 Oct 2002
Posts: 449
Location: Moonpod Central



PostPosted: Wed Feb 09, 2005 8:03 am    Post subject: Reply with quote

Lighting, file versioning and loading screens

I've been working on getting the lighting system in place for Mr Robot. Essentially, the approach is to code everything in vertex shaders, and not really worry about it. The scenes for Mr Robot aren't terribly complex, and don't usually contain more than a few light sources, so we can get away with a very simple straightforward approach.

My first step was to work out how we wanted to do lighting. Originally I wanted to implement a system that would just do diffuse vertex lighting, then the specular component would be added on top by way of a dynamically generated sphere map. The thinking behind this was that the specular highlights would be smoother than just doing the calculations per-vertex. The downside was the time it took per frame to recalculate the sphere map. The problem is that the sphere map is only correct for any particular position, once the light receiver moves the sphere map needs to be updated. We could opt to update the map every 'n' frames (or preferably, ping-pong between two sphere maps, updating the next one by x% each frame to amortize the cost over a number of frames). Another idea is to actually sit down and optimize the algorithm used from O(n^x), where x is the number of lights (I think that's right for big-O notation anyway). Any solution requires time to implement though, and we are unsure of how it'll turn out. This is where a decision needs to be made, and the decision was that my time would be better spent on other, more important, features. At some point I'll probably revisit this idea, if only because I hate to leave problems like this half-solved. If it works out then we could retrofit it to Mr Robot in a patch, or use it in another title. The lesson here is to be pragmatic about such things, it might seem like a cool idea, but if it doesn't help the project significantly then you should think about whether it should be in there at all.

So once I'd decided what not to do, I started looking at the lighting, and for some inexplicable reason it was just plain wrong, and I couldn't work out why. Lots of head scratching later I discovered that the normals in the model files were in a different coordinate system to the one the game uses. This is a real pain because those normals need to be right, but I don't want to burden Fost with additional work by asking him to export models time and again. Thankfully I made sure to include a version number in the model file. So now the loader checks the version number, if it's an early version the loader will fix up the normals during load. We'll probably end up re-exporting all models for the final build but, for now, we can ignore the problem and get on with getting things done. The lesson here is to include version numbers in your file formats; the data will likely change a few times before becoming stable, so you need to include some way of avoiding getting in everyone's way and allowing development to continue with as little hindrance as possible.

Another thing I've done is to add hooks into the file system to allow us to show a progress bar during the initial loading phase. I'd wanted to do this for Starscape, but the opportunity never arose. I like having a progress bar, even if it might be a little inaccurate, because it indicates to the user that something is happening, and gives them an (possibly vague) idea of how long it will take. So now we have a fairly generic way of adding a progress bar to Mr Robot and future projects.


Some pics, just for fun:

Here's a first go at some lighting code. This is actually doing the lighting in C code and passing the results down to the graphics API in the diffuse vertex color. This was just for me to clarify how I wanted the lighting to work before I went ahead and implemented it in a vertex shader (debugging vertex shaders is a pain Wink)



Here's a view of the editor, showing placement of lights. This is due to change because Fost has been complaining that the wireframe spheres obstruct his view (fair comment really Smile).



Here's an in game view, just for fun. You may notice a bit of a bug to do with which objects are affected by which lights. That'll be fixed by next month's dev diary, honest Smile

Back to top
View user's profile
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed Feb 09, 2005 12:29 pm    Post subject: Reply with quote

I've spent most of this month texturing up the remainder of the initial enemy set. Poo Bear has been coming up with new ideas for enemies already that we might want to try out, but we now have a fairly complete set that make for interesting combinations.



Stalker's have one purpose: your destruction!
They will take the fastest path to you
(and absolutely will not stop until you are dead, etc...)

Guardians orbit geometry.
Final Result reminds me of Johnny 5
from Short Circuit
-No Disassemble!

Patrollers turn left if they encounter an obstacle (or right if that path is blocked)

Grid Runners patrol walkways and are prone to random directional decisions based on available paths.

Maniacs are hard to predict;
changing to a random tangent on each encounter.

Designing textures - breaking "Texture artist's block"
All artists are different and it's good to know your limitations and work on them. My big issue is the time I spend designing anything. The best part of my job is at the end of the day I get to say 'I made killer robots today' - and in an odd way that's the root of the problem - I love what I'm doing so much that I want everything to be perfect. I'm quite fast at modelling-mapping and texturing a model, but I really labour of the design process. This extends to everything - I've done some work to speed up my model design processes, but I noticed another big bottleneck is textures. I've tended to make them up on the spot once I get to them, which usually results in lots of mistakes. Needing to re-uv map bits to accommodate new ideas, and many instances of "texture artist's block" where I've backed myself into a corner.

So, I came up with a little plan:

Model and UV map, then take a screengrab from opposing angles like so:


I can then mess around with this in photoshop to my heart's content - making sure all detail line work will match up, and that I'm happy with the final result. Since I'm doing it to convince myself (no annoying producer to worry about Very Happy ) it can be as messy and quick as I like; I'm essentially just doodling:


It's worked far better than I expected; with one change in the plan - It's best to do the doodle before UV mapping incase any special mapping considerations crop up. I've saved an entire day for each of the character models - a fantastic result!

This month we also took delivery of 100 Mr. Robot mousemats.


They are completely cool (I'd want one even if I didn't work here!) I keep staring at the one on my desk - it's a great feeling to have something you've made sat on your desk all day - even if it is just a mousepad.
We haven't decided what to do with them yet - some are earmarked for friends and family, and we have sent some to our forum regulars as a thankyou for keeping our spirits up over the past year. After that, we'll probably give a few away as competition prizes to some websites, and then we are going to sort out some kind of competition plan for Starscape high scores.

Incidentally, if anyone in the UK is looking for somewhere to have some mousemats printed I would definitely recommend promotenow. Reasonable prices even on short runs (like the 100 we had made) great quality (most importantly - the print was perfect both in colour and detail) and really fast turn around.

We had quite a few requests for the mousemat image as a wallpaper, and I managed to fix it up in a few resolutions if anyone would like it:

800X600
1024X768
1280X960
1280X1024
1600X1200

Coming next month:


HEAVY METAL!
Back to top
View user's profile Visit poster's website
starscape junkie



Joined: 15 Jun 2003
Posts: 177
Location: The Thirteenth Colony



PostPosted: Wed Feb 09, 2005 7:03 pm    Post subject: Reply with quote

Yay for an update Smile Game seems to be coming along nicely.
Those are some nice mousepads, think i might grab me one of those once they go retail (if ever), im using a dingy ond one i won on the now defunct series of online gaming sites that gave you free stuff for playing games all day long Cool Ah, the good old days.

Just on a side note, the topic review when posting doesnt seem to agree with html as much as one might hope, seeing table related code displayed Confused or maybe thats just avant acting out because i havent updated it in a while

Anywho keep up the good work.
Back to top
View user's profile
icarus
Troll
Troll


Joined: 01 Mar 2004

Location: Olympia Washington



PostPosted: Wed Feb 09, 2005 8:06 pm    Post subject: Reply with quote

in the immortal words of neo

"WOAH"
Back to top
View user's profile Visit poster's website
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed Feb 09, 2005 8:19 pm    Post subject: Reply with quote

starscape junkie wrote:
the topic review when posting doesnt seem to agree with html as much as one might hope


Ahh yeah I can see it too - I'll look into that, thanks - should only be an issue when we are posting anyway - only admin can post HTML, and we only use it to tidy up the diaries a little.
Back to top
View user's profile Visit poster's website
icarus
Troll
Troll


Joined: 01 Mar 2004

Location: Olympia Washington



PostPosted: Wed Feb 09, 2005 8:34 pm    Post subject: Reply with quote

why cant us underlings use html


also thanks for the wallpaper
gives me someting to look at while i wait for the mousepad

(is transatlantic shipping really this slow)
Back to top
View user's profile Visit poster's website
icarus
Troll
Troll


Joined: 01 Mar 2004

Location: Olympia Washington



PostPosted: Wed Feb 09, 2005 8:37 pm    Post subject: Re: January-05: And Goob said, Let there be light. Reply with quote

Poo Bear wrote:

Right now I'm working on 'Samson'; a new robot with a unique purpose (see the mysterious silhouette at the bottom of Fost's post)


you mean the second from the right on the top

i am assuming he is for moving large objects
Back to top
View user's profile Visit poster's website
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed Feb 09, 2005 8:54 pm    Post subject: Reply with quote

icarus wrote:
why cant us underlings use html

Apparently, allowing HTML posts is a sure way to open your board up to lots of exploits.
icarus wrote:
is transatlantic shipping really this slow

90% of our shipments to America arrive within 7 days, but we have to state 'please allow 28 days' on all our postage info, because there's just no way to guarantee it - I think US customs may have stepped up its spot checks so there's always a chance they'll open it up to check we aren't shipping over anything dodgy (I think secretly they install the game on their Customs & Excise PC Very Happy )
icarus wrote:
you mean the second from the right on the top

You have a sharp eye these days Very Happy
Back to top
View user's profile Visit poster's website
James



Joined: 28 Nov 2002
Posts: 153
Location: Sheffield



PostPosted: Thu Feb 10, 2005 3:51 pm    Post subject: Reply with quote

That Maniacs render is great. Any chance of a hires version at some point?

Are you a secret fan of the movie The Black Hole, by the way? The Maniacs and the Inferno robot from last month's post look a bit like V.I.N.CENT and Maximillian.

Pictures of both here.

I used to think Maximillian was the coolest robot ever.
Back to top
View user's profile
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Thu Feb 10, 2005 5:14 pm    Post subject: Reply with quote

James wrote:
That Maniacs render is great. Any chance of a hires version at some point?

Yeah sure - I'm going to try and get a few wallpapers ready for next month - Samson is my new favourite though, so I want him in high res (means leaving my home machine chugging away for a week!)
James wrote:
Are you a secret fan of the movie The Black Hole, by the way?

It's no secret - I think I mentioned before that Inferno was inspired by Maximillian - I loved him too - pretty scary for a Disney film! The Maniac similarity is an accident though - they were originally called 'Crazy Ivans' and I was trying to make it look like they had a big furry Russian style hat.
Back to top
View user's profile Visit poster's website
Flumpaphone



Joined: 18 Sep 2003
Posts: 86



PostPosted: Tue Feb 15, 2005 8:23 am    Post subject: Reply with quote

I second the call for more wallpapers!

If you ever write a book on game development, I can guarantee a group purchase from my school where the development diary has become required reading. ('How do I make games?' is the question that gets asked most!)

The pictures of the game in progress have inspired me to get some old spectrum isometric games working. You have really hit the nostalgia chord with the style of everything, yet kept everything looking bang up to date - well done!
Back to top
View user's profile
Patriarch



Joined: 01 Feb 2005
Posts: 6



PostPosted: Wed Feb 23, 2005 7:57 pm    Post subject: Reply with quote

Just wanted to point something out: In the lighting screenshot with the actual world and all, in the top left, it says "logic = 0"

As if we didn't already know that Razz
Back to top
View user's profile
Fost
Pod Team
Pod Team


Joined: 14 Oct 2002
Posts: 3734



PostPosted: Wed Feb 23, 2005 8:20 pm    Post subject: Reply with quote

Smile


In case anyone's interested though: that's because they are editor shots, so no game logic is running.
Back to top
View user's profile Visit poster's website
HunterXI



Joined: 26 Dec 2003
Posts: 476
Location: Playing like there is no tomorrow.



PostPosted: Tue Mar 08, 2005 11:53 pm    Post subject: Reply with quote

Patriarch wrote:
Just wanted to point something out: In the lighting screenshot with the actual world and all, in the top left, it says "logic = 0"

As if we didn't already know that Razz


Laughing

Nice catch. Not to mention that their Editor Tool would seem to be a BlackHole (What of? Optimism? Wink ).
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    Discussion Pod Forum Index -> Developer Diary All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group