My Talk
05/06
Permalink
The talk went fine (I think)...
Here are the slides - I'll post some demo apps later this week.
smoke
Here are the slides - I'll post some demo apps later this week.
smoke
|
Oooh
27/05
Permalink
Rhinegold
23/05
Permalink
Writing this in the train on my way home to
my sleeping son. I've just been to see The
Rinegold, the first opera of Wagner's Ring.
By the end of this week, I've seen the entire
work.
It was great. So much more emotion than any game I've ever played. Is the games medium ever gonna get close to the same level of involvement, of artistry, of passion - or are we just gonna make better and better bumpmaps?
It's weird... In a way, I think the games medium has enormous potential power - since we can let our audience interact we could make fantastically memorable scenes in our games. But any kind of drama I as a designer have planned gets shot to hell the moment the player actually begins interacting with it. I guess the main question comes down to 'how do we make sure we have a dramatic arc' - when the player is doing everything they can to fuck it up...
It's an interesting question. I so do not have an answer... I'll blog as I think about it.
It was great. So much more emotion than any game I've ever played. Is the games medium ever gonna get close to the same level of involvement, of artistry, of passion - or are we just gonna make better and better bumpmaps?
It's weird... In a way, I think the games medium has enormous potential power - since we can let our audience interact we could make fantastically memorable scenes in our games. But any kind of drama I as a designer have planned gets shot to hell the moment the player actually begins interacting with it. I guess the main question comes down to 'how do we make sure we have a dramatic arc' - when the player is doing everything they can to fuck it up...
It's an interesting question. I so do not have an answer... I'll blog as I think about it.
Smokey!
20/05
Permalink
From the OtEE R&D branch...
On the 4th of June, I'm giving a presentation on deferred particle shading... I'll post the slides after I've given the talk, but for now here is some bumpmapped smoke
Oh, and don't hold your breath... This shot is from our tremendously unstable Intifada branch of Unity, so these features are slated for 2.0....
On the 4th of June, I'm giving a presentation on deferred particle shading... I'll post the slides after I've given the talk, but for now here is some bumpmapped smoke
Oh, and don't hold your breath... This shot is from our tremendously unstable Intifada branch of Unity, so these features are slated for 2.0....
Handheld Camera
10/05
Permalink
About a month ago, we did an Intifada video -
basically cheating in every way we could in
order to show the game as it will appear by
the time we ship. It was really good, but
something kept bugging me - There was just
something wrong with the feel...
A couple of days ago it hit me - We have a lot of Hollywood crane shots in the video... Nothing too fancy - something like this:
All well and good. But the story of the game is of the player as a journalist. This means a dirty, down-to-the-ground feel. Crane shots communicate Hollywood to me, hence no go....
So I've decided that we 'shoot' all cutscenes with a 'handheld' camera. This is fun to make. So far, I'm using various forms of Perlin noise - one on the camera position, andother for the camera direction to get that handheld feel. If the camera is moving or rotating, I increase the noise to simulate shaking hands. After the camera comes to rest on its new target, the noise fades down over time.
For the main rotation, I use a spring-damper based system - tweaked to overshoot a bit. So if the cameraman has to turn 120deg to capture a new person, the camera will overshoot a bit & get lots of noise.
The final idea is to use the camera as a dramatic element - when we want to communicate an intense situation, we turn up the amount of handheldness. The final part is the editing... That's gonna be hard. The expression I'm really looking for is lots of short shots, overlapped like mad - trying to capture what's going on in this confusing world... Sort of putting the cameraman at the same job as the player. To communicate the confusion, getting it out through all possible channels.
Really looking forward to seeing how it all comes together... No idea how to handle the positional audio though... Need to study some movies that have this editing style...
A couple of days ago it hit me - We have a lot of Hollywood crane shots in the video... Nothing too fancy - something like this:
All well and good. But the story of the game is of the player as a journalist. This means a dirty, down-to-the-ground feel. Crane shots communicate Hollywood to me, hence no go....
So I've decided that we 'shoot' all cutscenes with a 'handheld' camera. This is fun to make. So far, I'm using various forms of Perlin noise - one on the camera position, andother for the camera direction to get that handheld feel. If the camera is moving or rotating, I increase the noise to simulate shaking hands. After the camera comes to rest on its new target, the noise fades down over time.
For the main rotation, I use a spring-damper based system - tweaked to overshoot a bit. So if the cameraman has to turn 120deg to capture a new person, the camera will overshoot a bit & get lots of noise.
The final idea is to use the camera as a dramatic element - when we want to communicate an intense situation, we turn up the amount of handheldness. The final part is the editing... That's gonna be hard. The expression I'm really looking for is lots of short shots, overlapped like mad - trying to capture what's going on in this confusing world... Sort of putting the cameraman at the same job as the player. To communicate the confusion, getting it out through all possible channels.
Really looking forward to seeing how it all comes together... No idea how to handle the positional audio though... Need to study some movies that have this editing style...
The Day The Soldiers Came
09/02
Permalink
The OtEE Game
27/01
Permalink
GameJam coming up
26/01
Permalink
Hi guys...
Tomorrow is the start of NordicGameJam here in Copenhagen. We've secured 12 macs thanks to Apple, and will be running Unity on it.
I'll be doing a 3-hour unity introduction and will be cutting it up in 20 minutte podcasts. I'll also be posting here over the weekend, so watch this space...
Tomorrow is the start of NordicGameJam here in Copenhagen. We've secured 12 macs thanks to Apple, and will be running Unity on it.
I'll be doing a 3-hour unity introduction and will be cutting it up in 20 minutte podcasts. I'll also be posting here over the weekend, so watch this space...
Playing God
25/01
Permalink
Finally reached the point where implementing
a strategy game is fun. All major variables
in our simulation of the Israel / Palestinian
conflict are locked down. Now I just gotta
code it. What can I say - code like this is
just incredibly fun to write;
From Population.DoTurn:
Population.Die (); // Kill people from social reasons or old age
Population.Breed (); // Make all the people breed to replenish
Then when I hit the End Turn button in the game, I can see the new houses being built over Israel & Palestine.
From Population.DoTurn:
Population.Die (); // Kill people from social reasons or old age
Population.Breed (); // Make all the people breed to replenish
Then when I hit the End Turn button in the game, I can see the new houses being built over Israel & Palestine.
Busy Busy Busy
04/11
Permalink
Hack of the week...
29/09
Permalink
In film lighting you often add rim lights to
give your characters a well-defined
silhouette. This looks great, but is not done
in games as rim lights break when you begin
to move the camera:
I've had an idea for a quick hack for about a year, that I finally got round to actually trying out: Just take the directional rim light and parent it to the camera, so it maintains its angle when the camera moves. It works a lot better than expected:
In the 'real' world I'd add a small fill light, but these settings were meant to show of how it looks in the worst case
I've had an idea for a quick hack for about a year, that I finally got round to actually trying out: Just take the directional rim light and parent it to the camera, so it maintains its angle when the camera moves. It works a lot better than expected:
In the 'real' world I'd add a small fill light, but these settings were meant to show of how it looks in the worst case
Cg vs. GLSL
29/08
Permalink
We've been receiving some requests of why we
go with Cg rather than the 'industry
standard' GLSL for our high-level shading
language... Here are my thoughts about it:
There really is little difference from the coding perspective. The languages are pretty much the same. The main thing is in distribution & compatibility:
ATI really likes GLSL - The code Cg generates is optimized for NVidia cards, and there is not a lot they can do about it. The could make their own backend, but I think they have better things to do.
GLSL is not available now. It is not available for the Mac 'cept in beta OpenGL drivers. Even when they ship it, I have little hope it will be backported to older OS X versions - Apple doesn't do that. Not sure exactly what the status is for windows - I think it's available, but that doesn't mean we can count on people having it.
For the future, the main thing is not to have to rewrite too many shaders. Let's look ahead into the future when Unity holds complete supremacy:
Macs: In the ideal world, GLSL. It's a bit nicer, its potentially faster on ATI cards. In the real world, we don't want to make Tiger-only games. Does anyone know of a GLSL to ARB_FRAGMENT_PROGRAM converter? That would be nice. Then we could run GLSL if available and fall back to ARB_FRAGMENT otherwise.
Sony is backing Cg for PlayStation3. End of story. Want to do cool shading on PS3? Use Cg.
XBox360: That will be a DirectX port of Unity. That means HLSL (DirectX's high-level shading language). Cg is close to that than GLSL, so again, Cg wins.
Window based machines: Currently we'll use OpenGL, so that'll be the same story as Macs. XBOX360 meand DirectX, so then we get a case much cloase to XBox360. (Cg)
I'm not totally sold on Cg. The language has a number of 'issues', the compiler is buggy, it's not cool. It does however work. And we can make it work across the board.
There really is little difference from the coding perspective. The languages are pretty much the same. The main thing is in distribution & compatibility:
ATI really likes GLSL - The code Cg generates is optimized for NVidia cards, and there is not a lot they can do about it. The could make their own backend, but I think they have better things to do.
GLSL is not available now. It is not available for the Mac 'cept in beta OpenGL drivers. Even when they ship it, I have little hope it will be backported to older OS X versions - Apple doesn't do that. Not sure exactly what the status is for windows - I think it's available, but that doesn't mean we can count on people having it.
For the future, the main thing is not to have to rewrite too many shaders. Let's look ahead into the future when Unity holds complete supremacy:
Macs: In the ideal world, GLSL. It's a bit nicer, its potentially faster on ATI cards. In the real world, we don't want to make Tiger-only games. Does anyone know of a GLSL to ARB_FRAGMENT_PROGRAM converter? That would be nice. Then we could run GLSL if available and fall back to ARB_FRAGMENT otherwise.
Sony is backing Cg for PlayStation3. End of story. Want to do cool shading on PS3? Use Cg.
XBox360: That will be a DirectX port of Unity. That means HLSL (DirectX's high-level shading language). Cg is close to that than GLSL, so again, Cg wins.
Window based machines: Currently we'll use OpenGL, so that'll be the same story as Macs. XBOX360 meand DirectX, so then we get a case much cloase to XBox360. (Cg)
I'm not totally sold on Cg. The language has a number of 'issues', the compiler is buggy, it's not cool. It does however work. And we can make it work across the board.
Argh... The excel sheet of pain
29/08
Permalink
Moments of excellence
18/08
Permalink
Warning: non-tech post
One of the things that really turn me on is what I dub moments of excellence. It is those rare moments where everything come together and you are able to jump out of the ordinary. Think that magic thought. Grab that girl's hand. See how that mechanism works... When you get the shivers and push on anyways.
I guess I try to structure my life to optimize for those moments. Have for a long, long time... Back when I made weird indie movies it was the same. When I have them, that's when I get all my cool ideas -
Lately I haven't been having a lot of those and it sort of has me worried. I hope it's just my resources are a bit drained - guess I need to gather some surplus energy for these things to kick off.
Gotta take more care.
EDIT: After writing this I went to soak in a bathtub. While submerged, I had a cool idea for how to do HDR rendering in a really cool & simple way.
One of the things that really turn me on is what I dub moments of excellence. It is those rare moments where everything come together and you are able to jump out of the ordinary. Think that magic thought. Grab that girl's hand. See how that mechanism works... When you get the shivers and push on anyways.
I guess I try to structure my life to optimize for those moments. Have for a long, long time... Back when I made weird indie movies it was the same. When I have them, that's when I get all my cool ideas -
Lately I haven't been having a lot of those and it sort of has me worried. I hope it's just my resources are a bit drained - guess I need to gather some surplus energy for these things to kick off.
Gotta take more care.
EDIT: After writing this I went to soak in a bathtub. While submerged, I had a cool idea for how to do HDR rendering in a really cool & simple way.
Looong compile times
17/08
Permalink
I've found the perfect way to do docs: You
use compile time to do it.
This way, I've started the (will-be) quite large ShaderLab reference guide. Not much to see yet, but it'll come... For now, take a look here.
This way, I've started the (will-be) quite large ShaderLab reference guide. Not much to see yet, but it'll come... For now, take a look here.
Got IT!
14/08
Permalink
These are great days for me... After having
done the ShaderLab for 2 years, and not
really doing funky stuff with it, it's
finally playtime...
After some hours, I got another cool high-end thing going - meet Venus
This is a setup that calculates the depth the light has moved _through_ the mesh, to correctly simulate translucency. Then a few spec highlights...
Don't expect this one out-of-the-box in 1.1, though - it took me ages to set up...
Oh yeah - I think this shader will be great for cheap, correct light plumes. These will look a hell of a lot better than the normal 6-quads on top of each other approach...
\me sleep
Update: Tweaked params a bit - and made the translucence dependent on lighting hitting the back side of the status as well as the depth...
Here we have A light coming from front of the statue..
Small effect on front side, large when seen from behind...
No more statues for a few days... Next up is Refractive water particles
After some hours, I got another cool high-end thing going - meet Venus
This is a setup that calculates the depth the light has moved _through_ the mesh, to correctly simulate translucency. Then a few spec highlights...
Don't expect this one out-of-the-box in 1.1, though - it took me ages to set up...
Oh yeah - I think this shader will be great for cheap, correct light plumes. These will look a hell of a lot better than the normal 6-quads on top of each other approach...
\me sleep
Update: Tweaked params a bit - and made the translucence dependent on lighting hitting the back side of the status as well as the depth...
Here we have A light coming from front of the statue..
Small effect on front side, large when seen from behind...
No more statues for a few days... Next up is Refractive water particles
PRO 1.1 feature
07/08
Permalink
Racing, pt. 1
01/08
Permalink
Since the cat is now out of the microwave
about our next tutorial, here's my thoughts
on making a racing game.
My job in this is to make the track, so I've been thinking a bit about how to go about that.. I always start these things by taking a step back and trying to get a wider perspective; what is racing about? Which part of it do we want to relate to?
Man-Machine? possibly... NFS has a lot of this 'build your ultimate pimp ride'
Sports? Part of it - somehow it doesn't really interest me, though...
Exploration? sortof - since the road is there it's not exactly unexplored
Travel, Voyage? Yeah, I like this... Driving off into the unknown, easy rider, strong mythology. Even if the road's been built it's still a personal exploration....
Ok. Some sort of travelling thingy... Lets take a look at our format... It's a double thingy: A Unity tutorial & a tech demo. Tech demo means flashy graphics. Since its a Unity tutorial, we want to keep the code simple. Not a simulation. We don't want to get dragged down into the precise handling characteristics of different cars. There's also entire teams that specialize in this field, so anything we do will probably suck by comparison.
Ok, we got something here... Personal journey, exploration (=>exotic), freedom, simple car model.... Outrun? I always liked that game... Could write an entire post on why that game is so great...
Ideally, a journey has a start and an end, but this is a bit problematic for us: We don't want to model 20km of highway. Most games do circular tracks - here's my thinking of why that works:
Human Psychology: We like to balance the known & the unknown. We like to be surprised and we like to feel reassured. We like to feel we get better at stuff. If you drive a long linear track, it takes a long time to learn it - each curve is different. If you have a circular track, in each race, you get to try all curves 3 times. You get better at them within a single game.
Asset production: If you drive 3 times round a circle, you only need to produce a third of the assets.
So we do a circular track that feels like open road. Light hearted. Easy to control. How do we get the personal part in? Cars aren't that personal. Let's make it an open sports car and put in a driver. You don't see him all that much, but just him being there adds a lot. Ideally, we could do the outrun girl that points her finger at you when someone else overtakes - gives a lot of empathy... That would be overkill, though so lets not do that.
Exporation we don't do (Outrun does this perfectly by letting you choose your route). Exotic... Hmm I'm from the north, so something southern. Mountains, palms, small houses, water (then we can also show of reflections). Sunny. How lucky I happen to be on holiday in Venice B-). We could call it postcard racer... Drive from one postcard to the next.
To maximize good looks, I think a storyboard would be helpful. A series of images with track highlights. I don't understand why this is not used more. Since the car handling isn't done yet, I can't really make the actual track... Might as well do the storyboards now.
My job in this is to make the track, so I've been thinking a bit about how to go about that.. I always start these things by taking a step back and trying to get a wider perspective; what is racing about? Which part of it do we want to relate to?
Man-Machine? possibly... NFS has a lot of this 'build your ultimate pimp ride'
Sports? Part of it - somehow it doesn't really interest me, though...
Exploration? sortof - since the road is there it's not exactly unexplored
Travel, Voyage? Yeah, I like this... Driving off into the unknown, easy rider, strong mythology. Even if the road's been built it's still a personal exploration....
Ok. Some sort of travelling thingy... Lets take a look at our format... It's a double thingy: A Unity tutorial & a tech demo. Tech demo means flashy graphics. Since its a Unity tutorial, we want to keep the code simple. Not a simulation. We don't want to get dragged down into the precise handling characteristics of different cars. There's also entire teams that specialize in this field, so anything we do will probably suck by comparison.
Ok, we got something here... Personal journey, exploration (=>exotic), freedom, simple car model.... Outrun? I always liked that game... Could write an entire post on why that game is so great...
Ideally, a journey has a start and an end, but this is a bit problematic for us: We don't want to model 20km of highway. Most games do circular tracks - here's my thinking of why that works:
Human Psychology: We like to balance the known & the unknown. We like to be surprised and we like to feel reassured. We like to feel we get better at stuff. If you drive a long linear track, it takes a long time to learn it - each curve is different. If you have a circular track, in each race, you get to try all curves 3 times. You get better at them within a single game.
Asset production: If you drive 3 times round a circle, you only need to produce a third of the assets.
So we do a circular track that feels like open road. Light hearted. Easy to control. How do we get the personal part in? Cars aren't that personal. Let's make it an open sports car and put in a driver. You don't see him all that much, but just him being there adds a lot. Ideally, we could do the outrun girl that points her finger at you when someone else overtakes - gives a lot of empathy... That would be overkill, though so lets not do that.
Exporation we don't do (Outrun does this perfectly by letting you choose your route). Exotic... Hmm I'm from the north, so something southern. Mountains, palms, small houses, water (then we can also show of reflections). Sunny. How lucky I happen to be on holiday in Venice B-). We could call it postcard racer... Drive from one postcard to the next.
To maximize good looks, I think a storyboard would be helpful. A series of images with track highlights. I don't understand why this is not used more. Since the car handling isn't done yet, I can't really make the actual track... Might as well do the storyboards now.
Render To Texture
31/07
Permalink
Sitting on a plane on my way to Venice.
Been working like mad the past week on getting RenderToTexture nice... The goal as always is to make it appear simpler than it actually is... Nearly there now... Here's what I hope to get in in time for 1.1:
Camera's have a TargetTexture. Create a RenderTexture in the assets & just drag it on to the target texture. Then assign the texture to a material. Instant doom3-style surveillance cameras.
A new function in Scripting: RenderImageEffect (RenderTexture source, RenderTexture dest)
You can then do blurs, glows, etc... As long as you always get the image from source to dest. These behaviours can be attached to a Camera. You can attach multiple ones to get a stacked effect.
A Unity Effects Api A library of helper functions for doing blurs, zooms, etc in hardware. CoreImage, but multiplatform... At first, I won't have time to get a huge API in, but that will change. Source should be included in the release - if I forget it, beat me up a bit.
2 new shaderlab pass types:
GrabPass - grabs whatever is on the screen before rendering this object. You can then use this screen grab in the next pass, distorting it. This is how we did the GooBall shader - only we had to configure so much junk to get it to work... Now its a one-liner in a shader.
OffScreenPass - renders the object to an offscreen buffer. In the next frame you can use this buffer as part of some shading calculations. This is great for doing translucent stuff (lamp behind a thin layer of skin), or really most kinds of deferred rendering. Got some great ideas for particle stuff...
All of these things are relatively simple by themselves, but when combined they get evil - all of these effects use at least one render texture. Unless you're smart about it, video memory's gonna run out quick. So we now have automated rendertexture sharing, garbe collection, and a lot of new camera code. However, I'm pretty certain that NO other engine allows this configurability and having it all just work. Not even Unreal3 from what I've seen.
(and yes, I want to beat Unreal3 in Unity2 - don't know if I'll make it)
Been working like mad the past week on getting RenderToTexture nice... The goal as always is to make it appear simpler than it actually is... Nearly there now... Here's what I hope to get in in time for 1.1:
Camera's have a TargetTexture. Create a RenderTexture in the assets & just drag it on to the target texture. Then assign the texture to a material. Instant doom3-style surveillance cameras.
A new function in Scripting: RenderImageEffect (RenderTexture source, RenderTexture dest)
You can then do blurs, glows, etc... As long as you always get the image from source to dest. These behaviours can be attached to a Camera. You can attach multiple ones to get a stacked effect.
A Unity Effects Api A library of helper functions for doing blurs, zooms, etc in hardware. CoreImage, but multiplatform... At first, I won't have time to get a huge API in, but that will change. Source should be included in the release - if I forget it, beat me up a bit.
2 new shaderlab pass types:
GrabPass - grabs whatever is on the screen before rendering this object. You can then use this screen grab in the next pass, distorting it. This is how we did the GooBall shader - only we had to configure so much junk to get it to work... Now its a one-liner in a shader.
OffScreenPass - renders the object to an offscreen buffer. In the next frame you can use this buffer as part of some shading calculations. This is great for doing translucent stuff (lamp behind a thin layer of skin), or really most kinds of deferred rendering. Got some great ideas for particle stuff...
All of these things are relatively simple by themselves, but when combined they get evil - all of these effects use at least one render texture. Unless you're smart about it, video memory's gonna run out quick. So we now have automated rendertexture sharing, garbe collection, and a lot of new camera code. However, I'm pretty certain that NO other engine allows this configurability and having it all just work. Not even Unreal3 from what I've seen.
(and yes, I want to beat Unreal3 in Unity2 - don't know if I'll make it)
Hi there
06/07
Permalink
Okay - hi guys. This is my first blog
(doesn't that just make you NOT want to read
this?)
Anyways - I'm Nicholas, OtEE's residential artiste
At days, I'm working on our next game, an educational title about the Israel/Palestine conflict. At nights, I hack Unity & do a small top-down shooter. Mostly Unity.
My small top-down shooter is basically taking the kind of game I grew up playing and turning it into 3D. As the gameplay is strictly 2D, I sorta call it 2.5D. The design is simple. Top-down shooter. Player starts somewhere with a pea-shooter mk1. Then he kills enemies, grabs money they leave behind, and use it to upgrade his ego (oh, gun). There are a few cool twists, but that's basically it. Think Chaos Engine meets Commando with the weapons from Xenon2
2.5D
So far, I've spent something like 8-10 hours on it, and have a basic labyrinth with a cylinder running around shooting blue balls at cubes. It is so nice to be working in 2.5D - all the scripts are so much simpler as you (mostly) can assume that you're working in 2 dimensions. None of the GooBall sticking to oddly-sloped walls here (or ever again, for that matter)
Greed
I don't want the player to stand back and take enemies out from afar - this is about action, after all. Last night I added the coins the enemies leave behind when shot. The coin disappears after a few secs, thus forcing the player to rush in (which will trigger more enemies). Much more action.
I cooked up a small script to make a spinning bouncing coin animation (could have used an animation, only I can't animate). Getting the feel just right was a bitch, but it got sorta right. Then I modified the enemies to leave the coins behind when shot. So far the player can't pick them up and they don't disappear yet.
Unity
This brought out an interesting idea for Unity. Right now, all enemies have a reference to the coin they should leave behind. However, I only really want 3 or 4 different ones through the game, so a popup enum would make a lot more sense than a reference I have to drag. How to get from the enum to the actual coin is a bit problematic. I could make a global settings object that stores the references, so I can query for that, but it seemed a bit overkill. Would be much nicer to just have the coin references as class variables and be able to edit those. Then the popup could just fetch the reference from the class variable. Only we don't have any editors for class variables, so I can't assign the reference. DOH! Would be nice if public class variables were editable when you selected the script.
Anyways - I'm Nicholas, OtEE's residential artiste
At days, I'm working on our next game, an educational title about the Israel/Palestine conflict. At nights, I hack Unity & do a small top-down shooter. Mostly Unity.
My small top-down shooter is basically taking the kind of game I grew up playing and turning it into 3D. As the gameplay is strictly 2D, I sorta call it 2.5D. The design is simple. Top-down shooter. Player starts somewhere with a pea-shooter mk1. Then he kills enemies, grabs money they leave behind, and use it to upgrade his ego (oh, gun). There are a few cool twists, but that's basically it. Think Chaos Engine meets Commando with the weapons from Xenon2
2.5D
So far, I've spent something like 8-10 hours on it, and have a basic labyrinth with a cylinder running around shooting blue balls at cubes. It is so nice to be working in 2.5D - all the scripts are so much simpler as you (mostly) can assume that you're working in 2 dimensions. None of the GooBall sticking to oddly-sloped walls here (or ever again, for that matter)
Greed
I don't want the player to stand back and take enemies out from afar - this is about action, after all. Last night I added the coins the enemies leave behind when shot. The coin disappears after a few secs, thus forcing the player to rush in (which will trigger more enemies). Much more action.
I cooked up a small script to make a spinning bouncing coin animation (could have used an animation, only I can't animate). Getting the feel just right was a bitch, but it got sorta right. Then I modified the enemies to leave the coins behind when shot. So far the player can't pick them up and they don't disappear yet.
Unity
This brought out an interesting idea for Unity. Right now, all enemies have a reference to the coin they should leave behind. However, I only really want 3 or 4 different ones through the game, so a popup enum would make a lot more sense than a reference I have to drag. How to get from the enum to the actual coin is a bit problematic. I could make a global settings object that stores the references, so I can query for that, but it seemed a bit overkill. Would be much nicer to just have the coin references as class variables and be able to edit those. Then the popup could just fetch the reference from the class variable. Only we don't have any editors for class variables, so I can't assign the reference. DOH! Would be nice if public class variables were editable when you selected the script.





