Thanks to those who have already tried it. Those who are seeing a blank screen it's because of the post-processing, to execute this game you need a card capable of using GLSL shaders, thats GF5700FX and above and ATI9500 and above. I can not make a version without post processing because it's not the only thing that uses shaders, all materials use them, most notably the sea and the robot. Also use always the latest drivers! but you already knew that.
To MasterGod, those area lot of questions! ok
1- I'm not going to release the source, but I'm going to answer any question you have about any particular technique
2- I'm not using anything other than plain irrlicht 1.4
4- there is nothing special about how particles are handled, they are billboards, I keep track of the position of each one and update them each frame. I don't use irrlicht particle system because it's complicated to achieve the effect I wanted with that, so I do it manually. Also I use a good sprite sheet for the particles (you can see it inside the robo.dat file, which is a zip)
5- There is no Ai and there is not going to be, this type of games use predefined paterns for the enemies. The test enemies you se in the demo work like this
- there is a game process that generates enemy process (ep) randomly
- each ep is assigned a position very far from the camera and a target destination close to where the player is
- each frame I move them closer to the target position
- when they are within a set distance from the player I rotate them a little and move them to the sides in adition to their previous movements. At this point they decide(randomly) if they shoot or not
- an ep disapears when goes behind the camera or is destroyed
thats it!
6- there is more than one way to go about that, in my case is simple because the camera is fixed, it can only look one way.
what I do is create a plane in milkshape(1x1) and multiply it inside the game until it reaches the far plane of the camera, this plane doesn't move, instead I move the texture, you can do this two ways with irrlicht.
As I use a shader for the sea(bump mapping+fog) I added a simple param to the vertex shader to displace the texture coords a set amount, so each frame I send the shader how much I want the sea to move.
The other way, without a shader would be to move the texture using the texture matrix of the material, something like this
Code: Select all
core::CMatrix4<f32> m = seanode->getMaterial(0).getTextureMatrix(0);
m.setTextureTranslate(desp_x,desp_y);
seanode->getMaterial(0).setTextureMatrix(0,m);