PDA

View Full Version : GUNS - Reloaded



jasonf
22-09-2006, 12:21 PM
A long time ago, there was GUNS, a DelphiX example game written in a very short amount of time, for years it sat on my website being happily downloaded at a steady pace (which still continues to this day)

One day, I decided to make a real game out of the basic idea..

GUNS Reloaded

Here's the basic idea.

You are an Alien in charge of a squad of extremely powerful rocket tanks.
Each tank has a large plasma cannon which has infinite ammunition.. this amuniton generates over time and fills a reserve of a maximum of 5 shots at any time.

Each tank has a very powerful shield which absolutely nothing can penetrate and serves as protection from all hazards. However while the shield is active, you cannot fire.

Each tank has a limited amount of fuel which is consumed as the tanks' rockets are fired to give the tank altitude in order to move around. Tanks in contact with the ground cannot move.

Your opponent is another Alien Squad Commander with an equally strong team of Rocket Tanks.

Your mission is to destroy the tanks belonging to your opponent whilst keeping yours from harms way.


Each mission is played out on or near the Earth. Sometimes in the countryside, sometimes in the cities, sometimes the moon.. whereever the battle takes you.


You are not alone in the war, you have support from an orbiting mothership which can send additional items for your use.

A shield recharger. This large metallic ball is launched from the orbiter and crashes into the ground near to the tank which requested it. As it draws near, lightning arcs between the recharger and the gun, instantly de-activating it leaving it helpless and vulnerable until the charging is complete. Up to 4 tanks can be recharged at once. The recharger is not fussy however, it will recharge the enemy if they are near enough.

A fuel drop. The rocket fuel which powers the massive jets needed to haul the tanks around is highly explosive and must be handled with care. With this in mind, fuel is delivered via a dropship which carefully navigates it's way through the atmosphere toward the tank which called it. Once the fuel is safely delivered, the dropship returns to the orbiting mothership. However, if the fuel canisters are hit by weaponfire they explode destroying anything unlucky enough the be caught in the blast.

Reinforcements. If you lose a tank, you can ask for a new one. This new tank will be sent to the location of the tank which requested it. Be aware that any reinforcements are costly and will be deducted from your score at the end of the mission.

Air Strike. If things are a little too difficult for you and you feel that you need help from on high, you can call in an air strike. It will be sent to your current location so be careful to be out of the way when it arrives. Any unshilded tank will be destroyed utterly. Air strikes are deducted from your final score.


When fighting, you should take care, the locations used to host the battle are often the homes of ambient beings. These vary from place to place but may include any of the following.

Goats. These live on the hills and mountain sides. They sit there and occasionally move about.

Cows. These are supid animals, soon to be turned into steaks. They mull around fields grazing and performing vital bodily functions.

Birds. These fly in the sky with apparently no concern about the ensuing battle.

Pedestrians. These walk about in the cities and towns. They amble from place to place, walking to work, to the shops etc.

Cars. These live on the roads of the cities and towns, they come in different shapes and sizes in a veriety of colours.



The military. The humans do not take too kindly to aliens visiting their planet and unleashing their weapons upon one-another so they attempt to intervene. Helecopters, Fighter planes, Jeeps, Tanks and soldiers will attempt to stop you if the amount of carnage on the local area gets too high.

Killing an ambient creature will deduct points from your final score. Different creatures have different values and the amount deducted is reflected by this.

Killing military does not deduct from your score, but it does not increase it either. Killing the military however makes the military angry.. so they send even more military to stop you.


Scoring.
At the end of each mission you will be rewarded points for the number of Tanks wich remain, the amount of fuel they have left and the amount of sheilds remaining.
Then the number of shield rechargers, fuel drops and reinforcements will be taken into account.
Finally, the ambient creature cost is taken into account.


There are some other features which I'm planning like Radar and perhaps a roving camera..


Screen shots will follow.

Traveler
22-09-2006, 01:33 PM
Hmm this sounds a bit like like something I ran across during a random surfing session, a few weeks ago. I'm clueless about a name, but it had something similar where you had to abduct people and do all kinds of things aliens normally do when they visit earth.
It looked pretty cool though. Iirc there wasn't a whole lot of info, but the screens spoke about the army fighting you if you got spotted, and there was even a superhero in the extra missions, to fight you off.

In any case, yours seems to revolve around aliens vs aliens battling out on or near earth, so it may be a whole different game altogether. Looking forward to the screenshots, though :)

jasonf
24-09-2006, 09:29 PM
New Site uploaded.

GUNS Reloaded now has its own site.

http://www.cerebral-bicycle.co.uk/reloaded/guns.html

The site is a work in progress, it'll be updated from time to time as the game nears completion.

I'd appreciate any constructive comments ;)

BTW, I put this together in one day so it's not gonna be perfect.
All graphics were produced using Xara Xtreme.

WILL
25-09-2006, 10:52 PM
Cool, love the illustrations. ;)

Is there a battle server and PvP games planned in the near future?

tanffn
26-09-2006, 06:12 AM
No screenshots :(
The site does look nice the only problem I had is it looks like the size of the normal ‘image link’ and the mouse over ‘image link’ isn’t the same. (the table under it changes its size)

jasonf
26-09-2006, 09:51 AM
No Screen shots just yet :-) They'll come soon. 8)

There are some issues with the site, the rollover images should be centered within the table cells, but as IE and Firefox seem to use different units to measure pixels, the sizes are different for the different browsers... I've also noticed some versions of Firefox have a problem rendering the IFrame in the wrong place, even though it's within a Table and there are no absolute co-ordinates used.. I think it's not updating the position of the IFrame when the Table adjusts to fit the images in. Bloody Browser!..

I did some more work on the game last night, attempting to make a countryside level.. it's amazing how hard it is to make a level look organic and not cartoony. Even though I'm not sure what the Countryside level will be like, I basically want to get it sorted so I can blow goats up. :twisted: :wink:

savage
26-09-2006, 11:23 AM
I basically want to get it sorted so I can blow goats up. :twisted: :wink:

As one of my favourite bands once sang "Sheep go to heaven, goats go to hell!"

tanffn
26-09-2006, 12:22 PM
I basically want to get it sorted so I can blow goats up. :twisted: :wink:

After implementing my Sheeps (in catapults) I spent quite a lot of time testing how they react to the bombs (and that’s when I decided to add the SheepsAside bonus) :)

jasonf
27-09-2006, 12:39 AM
I've updated the site with some screenshots.

As things progress, I'll update with more.

They don't really show a clear indication of the gameplay yet.. As things come together, I'll post some more.

tanffn
27-09-2006, 07:01 AM
Whoo flashy :)

jasonf
27-09-2006, 10:17 AM
Cheers 8)

Simpleviewer was the easiest way of me getting a gallery online.

I may change the main page on the site to be a bit wider.. most people run 1024x768.. the page is set to 800x600. So I'm wasting a lot of space.

I didn't get to do much work last night, I only managed to draw an Apache Attack helecopter, A Challenger tank and a Humvee for the military. I need to draw some soldiers now.

When you enter a city and tear the place up, the army will come in... first with troops and humvees, they'll get mowed down.. so they'll send in the tanks and choppers. Eventually, there'll be air strikes from fighter jets..

WILL
27-09-2006, 02:25 PM
Just watch out when they start sending Dirk's Super-Tanks. ;)

jasonf
27-09-2006, 04:46 PM
:shock: NOOOooo!!... The Aliens will go home if they arrive. 8)

I played TANX after the compo, it was really good.. I wasn't very good at it though :?

WILL
27-09-2006, 05:05 PM
:D (I think you'll like Iron Strike then... well once we fix it. ;))

Well I'm anxious to play Guns Reloaded. I played the DelphiX demo version before. It was hard to play as it required you to volley your shots blindly as you had no time to aim, shoot and shield yourself for all 4 guns nevermind just one. :o

Any control improvements in Reloaded? Or maybe tips on how to play more effectively?

jasonf
27-09-2006, 05:55 PM
I don't know about control improvements... I'm open to any suggestions as to how to make it more user friendly.

One thing that has changed is that on Easy levels, your guns will Auto-Activate their shields. So if you do go off on a mission across the other side of the map with one gun, you can be fairly safe in the knowledge that your other guns are safe...ish.

I'm going to implement Freespace style enemy location markers that move around the edges of the screen to show you where the bad guys are.. I may even include a range indicator too..


The basic controls are..

You have 4 guns (some levels you will have less)
You aim with up and down
You select with 1-2-3-4
You thrust with shift, once airborne you fly with left and right
You fire with space (hold for power)
you activate shields with Enter
F requests Fuel
S requests Shields
G requests an extra gun


I don't know what else would make the game easier.

jasonf
28-09-2006, 05:02 PM
Made a little extra progress last night.
I now have different coloured Tanks for different Teams. These are different Tank sprites, so I've modified their designs slightly to fit in with the colours. Screens will be added to the site :)

Incidentally, there is a new URL for the game

www.gunsreloaded.com

savage
28-09-2006, 07:04 PM
Maybe upload a flash movie of the game play when you have a second.

jasonf
29-09-2006, 01:12 AM
Yay!

I now have a working Radar..
It's not a traditional radar, no circular control, no map overview.. no machine that goes "Ping!"

Instead it's arrows corresponding to the team colour moving on the edges of the screen to show that they're to the left, the right, above or below you. It doesn't show distance, but it's enough I think.

I've found this to be immensely useful while playtesting as it even shows where your own guns are in relation to the current camera position. Your guns are shown as numbered arrows and they disappear as your guns are destroyed.

Hopefully this should help towards getting rid of that "I'm LOST!!!" and the "WHERE THE HELL IS THE ENEMY!??" feelings.

I'm thinking of adding markers for other things like Shield Rechargers and Fuel Drops.

But I don't want to add too many or the sides of the screen will become very busy.

I'm also thinking of giving an option to disengage the Bullet tracking camera.

Ideas? Comments?


http://upload4.postimage.org/1264668/rvbwherebaddies.jpg (http://upload4.postimage.org/1264668/photo_hosting.html)
http://upload4.postimage.org/1264672/rvbflying.jpg (http://upload4.postimage.org/1264672/photo_hosting.html)
http://upload4.postimage.org/1264677/rvbguysoff.jpg (http://upload4.postimage.org/1264677/photo_hosting.html)

jasonf
02-10-2006, 09:27 AM
Just an update.. I've made more progress in terms of Graphics.
The countryside level is now covered with destructable trees, which shatter in true "Tree been hit by plasma ball" fashion.

I've come up against my first real stumbling block.. There appears to be a serious bug in my particle system. The game has a single effect builder object which generates the particles, But after a while, after generating a load of particles, the whole game hangs... doesn't raise an exception or anything, just hangs. I've wrestled with this all weekend and it is something I really need to fix before I can make any more progress. I can't add exploding goats until it's fixed.

On the plus side, I was getting a little worried about performance, after adding loads of trees, the game was beginning to slow down a little.
But I ran it on a firends PC this weekend.. A beast of a machine AMD64 bit 1800mhz 2gig Ram etc.. (Details may be inaccurate.. I have consumed a lot of Vodka this weekend) But basically, it ran TOO FAST!! So I've got to limit the logic FPS. If this machine is anywhere near the Norm these days, then my performance worries should be less of an issue than I originally thought. So the benchmark will be my machine... which to be fair, doesn't even play Doom3 very well.

I'm going to add different level types.
At the moment I've got.
Mountain
City
Country

I'm going to add

Desert - Pyramids, sand dunes and Camels
Antartica - Ice, Snow and Penguins
Ocean - Oil Tankers and Cargo Ships.. the only place to land.
Moon - Low Gravity and Astronauts
Forest - Thick Forest, Massive Trees.


After watching a mate play it over the weekend, I might make a change to the control system too.. I'm thinking of adding it as an option rather than completely replacing it.

Thrust - Up
Fly Left - Left
Fly Right - Right
Aiming using the mouse - Abuse Style.
Firing using Space or Mouse 1
Shield using Enter or Mouse 2


I'm also going to add extra weapons.
Beam Weapon
Missile Weapon
Rapid Fire MINI Gun
Possibly EMP Weapon.


I've got to modify the AI too, the Computer opponent is far too reliant on Shields for protection and although it stops you from killing them immediately, eventually they run out of shields making them very easy to kill.

savage
02-10-2006, 11:30 AM
I've come up against my first real stumbling block.. There appears to be a serious bug in my particle system. The game has a single effect builder object which generates the particles, But after a while, after generating a load of particles, the whole game hangs... doesn't raise an exception or anything, just hangs. I've wrestled with this all weekend and it is something I really need to fix before I can make any more progress. I can't add exploding goats until it's fixed.

Hmm, You've probably already checked but this sounds like a leak of some kind to me.

jasonf
02-10-2006, 01:42 PM
I'm going to attack it again tonight to see if I can solve it.

I can't even release a tech demo until I've fixed this.. as the Exe Locks up and has to be hard stopped [ctrl+alt+del]

jasonf
03-10-2006, 09:21 AM
Well, I made some progress with this last night. I stopped my Particle engine from crashing. Turns out I was doing something quite stupid.

So now I've got exploding Trees, Rocks, People, Cars, Buildings... more to follow ;-)

I've also got snow.

Diaboli
03-10-2006, 09:54 PM
will there soon be an option to download demo/unfinished game so it can be tested? or is it just me overlooking link??

jasonf
04-10-2006, 12:14 AM
There'll be a download link when I've got something a bit more stable to show, at the moment it's still in a state where I'm not happy releasing it.. even for testing.

But I have made some progress, graphics wise and internals.

I've got a new explosion (rendered entirely in XaraXtreme.. not bad for a vector app ;))

I've also got Goats :D :P

http://upload4.postimage.org/1298034/newbang1.jpg (http://upload4.postimage.org/1298034/photo_hosting.html)

http://upload4.postimage.org/1298042/newbang2.jpg (http://upload4.postimage.org/1298042/photo_hosting.html)


http://upload4.postimage.org/1298044/newbang3.jpg (http://upload4.postimage.org/1298044/photo_hosting.html)

WILL
04-10-2006, 01:39 AM
They prefer... to be called goat-kind! *sigh* :roll:


:lol:

Do they blow up yet? :twisted:

tanffn
04-10-2006, 06:35 AM
the explosions look great! Whats the chance you’ll be able to show it animated?

jasonf
04-10-2006, 09:22 AM
The same thing happens to goat-kind that happens to man-kind when hit by a ball of scorching hot plasma... the rapid change in body temperature causes all their little bits & pieces to suddenly change direction :twisted:

Actually, because they're so small and they move quite fast.. they're little buggers to kill :D

My countryside level has got loads of them all running and jumping around now.


The explosion is made from 7 frames, I could possibly put an animation together showing it, but it'd probably take more time than it's worth.

But it makes a bit difference in the game play, a massive explosion when a gun blows up is a lot more satisfying than the poxy little pop I had before.

The big explosion will only be used in special cases.. A Tank exploding, a Fuel dump exploding and a Fuel Tanker exploding (as well as cars, there are fuel tankers to blow up)

jasonf
06-10-2006, 08:51 AM
More progress.. although not much to show for it at the mo'

I'm working on the GUI aspect of things.. Team selection and so on.

I'm also suffering form a little feature creep.. I'm not going too far though..
I'm going to add 4 additional classes of Tanks. The current tank is the Medium tank. THere will be Light Tank, Heavy Tank and Super Heavy tank and Ultra Light Tank. Each with different amount of hit points, maximum speeds and fuel consumption rates. The ultra light tank will be a little different from all the others in the fact that it does not use rockets to fly around, it hovers using Anti-Grav engines and it doesn't need fuel.

This combined with the new weapons should make for some interesting combinations.

I've been drawing a lot. I've got pretty much all of the Team Faces drawn now. So now I just need to draw the new tanks and I'll have something cool to show.

I've fixed a few additional bugs too. When I've got the team selection in place and the tank classes working, I'll release a demo so I can see how it performs.

jasonf
09-10-2006, 03:36 PM
I've done some more work on the GUI side of things. Modified my menu system to allow different background images for specific menus.

I've got the basics of the Team selection system working now.. although the work on this area did reveal a rather stupid bug... which had me scratching my head for a few hours. I'll post some more screen shots of the GUI when it's ready.

I'm wondering on a single player game, how important it is for the player to be able to enter their name...

At the moment, I'm not planning on making Guns Reloaded a networkable game.. the random deformable terrain objects simply do not support it.. also, it would open the game up to cheating unless I imposed some rigerous CRC checking on each file that is being loaded.

WILL
09-10-2006, 05:14 PM
I think the ability to add ones name as either a character or the commander of the 'army' adds some personality to the gameplay. Which is always nice to draw the player into the game world.

In fact, like in Worms and Scorched Earth each worm/tank had their own name so that you could place some sort of sentiment towards them.

If nothing else it just adds a phsycological encouragement, especially of those younger and more creative players to get inolved in the 'role' of the player. People like to get attached to things that they can 'make their own'.


That all said, I think that it would be good for you're game. Yes, go for it.

technomage
09-10-2006, 08:57 PM
At the moment, I'm not planning on making Guns Reloaded a networkable game.. the random deformable terrain objects simply do not support it.. also, it would open the game up to cheating unless I imposed some rigerous CRC checking on each file that is being loaded.

Random deformable terrain objects can be done over a network, provided you use Pseudo Random numbers.

You detect a hit on one client and want to deform the remote system the same way. You send the hit location and the seed value for your Pseudo random number generator that you are going to use to generate the explosion on your machine. Then both systems generate the deformation the results will be the same on both machines. :D Cool eh :wink:

:cylon:

jasonf
10-10-2006, 09:59 PM
Well, there are a few issues surrounding networked random terrain deformation.

1. The random issue. But as you rightly say, if you use the same seed, the random number will be the same.. so for the explosion, the seed would have to be sent with the explosion message.

2. The Exact location of the explosion. Because it's networked and networks have lag, the location of the collision may be different on each client.. so one of the clients would need to overrule the other.

3. GR uses a subtraction blitting system for terrain deformation. I have a list of deform images which affect the terrain to different extents. Some cause small cracks to appear, others blow out huge chunks. The cunning cheat could change this file and make it so that each shot blows huge holes in the ground. On the Cheats' simulation, he/she would be able to venture deep into the rocks by blasting a path.. the other player would be unable to attack the cheat because on their machine, the rocks are still there.

I've been doing a lot of work using the Torque engine lately, it's got quite a nice multiplayer system so I know how complicated it get implementing a good, stable, fairly cheat proof, lag proof client server system.

For the time being, I think I'll make GR a single player only experience and set its price accordingly.
It will be possible to add multiplayer support later, but some things will need to change deep down in the CBCFoundation.. like the simulations being time based rather than cycle based. You could argue that I should make that change sooner rather than later to give smoother performance on a wider range of PC's.. and you'd probably be right..

I agree that adding names allows the player to become attached to the avatars on screen.. I don't really have a way to display the names for each tank at the moment.. perhaps I should consider adding one... I'll have a think on this.

I remember playing XCom, naming the players was a great idea.. I felt bad when one of my guys got killed.. they weren't some nameless Command & Conquour soldier.. they were my guys, especially after a few missions with them.

jasonf
11-10-2006, 09:16 AM
OK, here's an update..

New Title Screen.. it's a bit more dramatic than the old rendered landscape.

I've got a Team selection screen pretty much working (just got to add the
labels)

And I've written a couple of GUI Controls.. Before, I only had button.. now
I've got Checkbox and Radio Button classes and a rudimentary Text box for the GUI...

And last but not least, a New Shield... the old one was looking a bit
tatty.. so Now I've got a 3 stage shield.. the start stage has pulses of
energy, in the middle it is mostly lightening while the shield bubble
collapses.. then the last stage is static surrounding the tank..

New Title Screen
http://upload4.postimage.org/1360294/newtitle.jpg (http://upload4.postimage.org/1360294/photo_hosting.html)

New GUI Components
http://upload4.postimage.org/1360305/GUIComponents.jpg (http://upload4.postimage.org/1360305/photo_hosting.html)

Team Selection
http://upload4.postimage.org/1360312/selectteam.jpg (http://upload4.postimage.org/1360312/photo_hosting.html)

New Shield

http://upload4.postimage.org/1360319/newshield1.jpg (http://upload4.postimage.org/1360319/photo_hosting.html)

http://upload4.postimage.org/1360321/newshield2.jpg (http://upload4.postimage.org/1360321/photo_hosting.html)

http://upload4.postimage.org/1360324/newshield3.jpg (http://upload4.postimage.org/1360324/photo_hosting.html)


The GUI Screens are still way away from being finished and the component
images need tidying up.

Comments... Suggestions welcome. 8)

WILL
11-10-2006, 09:25 AM
I remember playing XCom, naming the players was a great idea.. I felt bad when one of my guys got killed.. they weren't some nameless Command & Conquour soldier.. they were my guys, especially after a few missions with them.

Exactly! I was the same way with UFO aka X-Com. It also helped that your guys got better over time too. Improved stats as they accumulated missions. Maybe you can add something of that nature you your gun/tank guys to enhance the effect?

If they take damage (not just blow up), lose shield battery power, have special weapons like missiles, MIRVs, etc (instead of the standard shell) then you can have each guy has to equip their own inventory, etc...

Maybe you can set some of the guns to go into an 'Auto-Mode' and as you play their auto mode gets better either via their individual experience points, mimicing the player's own actions in a rule-based system or if you are a bit braver try using a NN and GA for the AI to adapt naturally to successful actions taken by the player or unsuccessful things done by the player.

EDIT: Sorry, but I could not post this before due to the host's 'time freeze'.

WILL
11-10-2006, 09:36 AM
New title screen looks awesome. ;)

The 'CBC' logo seems to contrast with the rest of the color scheme though. Maybe you could tin or come up with a desaturated version? (Maybe pull a 'id Software' and make it look like the logo token was carved out of stone?) or maybe a simple pale off-white glow around it to neutralize the clashing of the colors....

:lol: Don't mind me, just my creative side getting the better of my brain. :P

Looks great overall. Love the menus! :thumbup:


Oh and you've gotta show me how you did the shield effect. I've been dying to learn how to do that very one. Or is it just a single sprite?

jasonf
11-10-2006, 10:08 AM
Cheers Will,

I see what you're saying about the CBC logo.. I could change it to be more in line with the rest of the Gun Metal image.. I'll have a play with it.

It felt like a great accomplishment last night at 3am when I managed to get the Textbox working properly. This will be the first step towards a truly configurable team.

I hear ya with the team config too, I had originally intended to go as far as completely configurable teams (with praise/punish system too to assist the AI) with my 3D version of Guns using the Torque engine but timescales, complexity stopped me... I'll have a think about it.. I could possibly include some form of defensive capability based on increasing intelligence with more experienced units.. I'd have to turn off Friendly fire then.. 'cos they do have a habit of killing each other. either that or factor it all in.

I want to build in a rule based system so that it can learn how to play the game as the player plays. the game. I'm thinking of a large list of rules based around the sensors input around the Guns and their status. The rules would be praised or punished depending on whether the rule led to survival or defeat.. Eventually, the AI player would learn that some of the things the real player does are dangerous and will move out of danger somewhere else.. or will learn that they need to get closer, within range of their target in order to hit it.. and that hitting buildings and civilians is bad.. This needs more thought though.

The shield effect is a repeated animation made from a 3 Stage animation with 8 frames per stage.
The frames were all rendered 100% in Xara Xtreme using basic shapes and a couple of plugins.

I used Electrify from the Xenofex2 set http://www.xara.com/products/xtreme/plugins/buy.asp?provider=alienskin&product=xenofex2
and
Marble, Gradient Glow and Jiggle from the EyeCandy 4000 set http://www.xara.com/products/xtreme/plugins/buy.asp?provider=alienskin&product=eyecandy4000

The Explosion on the Title page was made using Jiggle and Corona.

Each frame is then BlitAdd'd to the scene. the whole thing looks really nice when it's animated :D

tanffn
11-10-2006, 12:35 PM
wow, looks nice! quite a progress!
..when do you think we will be able to download the demo!? i've been waiting for it for 6 years now :)

what do you think about adding some rust or maybe some metal bults to your GUNS logo?

jasonf
11-10-2006, 01:35 PM
Ah, but you see Tanffin, this is the Shiny New version ;) The DelphiX version was the Old Rusty version :lol:

There'll be a demo when there's more to see ;) Be patient my friend :D


..I could put bolts on the logo though, I refrained from putting them on becuase I put them on the last one and wanted this one to be a bit cleaner.

tanffn
11-10-2006, 03:05 PM
heh.. I see.. :D

The logo looks good as it is, but I don’t like clean/shiny surfaces I prefer seeing the texture unless you’ll have animation on top of the logo?

tanffn
11-10-2006, 03:08 PM
Forget what I’ve said, the logo looks good! ..I sometimes get obsessed over small details..

jasonf
13-10-2006, 09:37 AM
I made some more progress.. Still on the GUI side of things and nothing to show as yet.

I mapped out how the Menu will flow and have begun putting it in place, along with the new GUI Controls, I should be able to make quite a powerful and friendly system.

I'm building a Team configuration/personalisation screen.

A Team member can have 3 states. Alive and Ready, Injured and hospitalised, Dead & Buried.

An Alive team memeber can be selected to go on the next mission. Alive team memebers gain experience from each mission completed (in a similar way to UFO - Enemy unknown and XCom.)

A hospitalised team member has to recover before they can go back into action. They have to sit out for up to 5 missions (depending on the severity of the injuries). As each mission passes, a counter goes down until it reaches zero, when the team member is Alive and Well again. If you need a team member to fight, you can choose to terminate the team member which immediately hires a new one at a slightly lower rank.

Dead team members have to be replaced. The new team member wil be of a slightly lower rank to the deceased team member. Time will need to be spent to get the new member up to same level as his predecessor.

At the end of each mission, if a team member has performed really well, they can be awarded with a promotion. The higher the level of the team members in your team, the higher the end of mission bonuses affecting your teams' money.

meaning that a player with little cash who has 3 experienced team members in hospital has to choose between doing the next mission alone with a single team member or sacrificing one of his experienced yet incapacitated team members in order to get someone to fight.. should make things more interesting.

I'm thinking about adding medals too... This should add to the personalisation of the team members. Things like really accurate shooting, protecting civilians etc..

You'll be able to name them too, but I'll build in a simple random name generator for those who don't like such things.

Once your tank is destroyed, depending on the experience of the team member, they have a chance of survival. The higher the rank, the higher the chance of survival. A private will almost always die, whereas a captain would almost always survive. (albeit in a hospitalised state)

A destroyed tank will have to be replaced at a cost. It is always replaced by the default tank. Then the tank can be changed and an upgrade cost is incurred. The new tank will come complete with the default gun. This will also need to be changed if the player desires a different weapon.

I figure that this stuff, while seeming quite complex is simple enough for me to build into the game. It will add a level of customizability to the game to help the player develop a personal link to the team members.

Comments/Suggestions?

jasonf
16-10-2006, 02:06 PM
Still working on the Team config screen, it's taking a fair amount longer than I first thought.. I write GUI's all day at work and although this screen is quite complicated, I didn't think it would be this involved... I spent Saturday night and All day Sunday on it... (drawing graphics as well as coding)

Oh well.. Inches closer is better than nothing.

It's coming together nicely though, I can pretty much do anything I want to the team members, Rename them, Kill them, Replace them.. I can Deactivate them too.. I'm thinking that you can save money by not using all of the team, a Gung-Ho bonus for the Show's ratings. Each team member has stats which work.. They have Aggressiveness, Reactions and Intelligence.

But It seems that there's quite a large memory footprint at the moment which I need to fix. But not to worry, I'll get it all sorted out.

More screenies as soon as There's more to see.

jasonf
17-10-2006, 10:00 AM
Feels like I've made a fair amount of progress last night..

I completed my state system so now I have a main menu and in-game screens.. (OK, so there's not going to be cheering in the streets) This means that I've now got the framework for a REAL Game.. in fact, the game plays properly now..

After choosing your difficulty level you go to :-
MissionInfo: Here you see details about the mission, your money and have options to Save, Quit, Configure team and Launch Mission.
Configure Team: here you have options to go back to the MissionInfo or Launch mission (after configuring your team of course)
Launch mission takes you into the game proper, you win or you lose.

VictoryInfo: Here you see the stats for your game, how much money you earned and how much you spent. The mission number is increased. You can only go back to MissionInfo.

DefeatInfo: Here you are humilliated in the cruelest possible way. The damage to your teamis assessed and any money you spent is deducted from your team total. You can only go back to MissionInfo.

When the mission counter reaches a certain point, you go to the AbsoluteVictory screen, then you can only go back to the Main Menu.

If you have no money left and you cannot go on.. you go to the GameOverScreen.. from there you can only go back to the Main Menu.


It doesn't seem like much, but this is the core of the game as far as the user is concerned. Without this, the game is nothing more than a tech demo and some pretty pictures. Now, there's a game to play and a predictable flow of screens to guide the user.

jasonf
23-10-2006, 12:56 AM
I've made quite a bit of progress now.

Team management is really coming along. Team members can die, be replaced, be promoted, be injured, heal, selected and de-selected.

I've still not put in extra weapons or tank bodies, that will come soon.

Here's the current Team management screen.

http://upload4.postimage.org/1461906/teammanagement.jpg (http://upload4.postimage.org/1461906/photo_hosting.html)

I've done a lot of work to the internals of the game now and it's looking a lot better for it.

Also, I've done some graphics for the South Pole level.. lots of penguins to blow up.

I feel it's really coming together now

Traveler
23-10-2006, 08:00 AM
Great images!
The only thing I'm not too fond of is the font and orange color of the buttontexts.

Looking forward to playing your game.

jasonf
23-10-2006, 09:12 AM
Cheers Traveler,

I don't like that font either :) I'll be changing it soon for an easier to read, clearer and more aesthetically appealing font.

I showed the game to a couple of people over the weekend, mostly family & friends, to get some feedback.. overrall, it's been positive.. some very positive. But I'm taking all feedback with a level of reality.. friends and family will always see the best in something. That aside, they did help me to spot some things I could improve.

Number 1.. the control system needs an overhaul. After all the time I've spent on the game, I'm used to the controls.. but they're not really intuitive.. So I'm going to add an alternative control method using the Mouse and Keys. The selected gun will aim towards the mouse cursor, meaning that the player can control the tank with the arrow keys. I'll probably have to build in a Define your own Keys option too.

savage
23-10-2006, 10:32 AM
One other thing you should think about is maybe have the ships dropped consecutively rather than all in one go. With 4 on the screen at the same time there is not much time to strategies and it is just a little too much to pay attention to.

jasonf
23-10-2006, 11:10 AM
That's a good point.

On the team configuration screen there's the option to de-select team members, so it's quite possible to play a mission with 1 tank. It's much harder 1 tank vs 4.. and for that I'm going to build in bonuses to make it more profitable to use a single tank.

I could do it so that when you start the game, you only have one guy.. and you have to hire guys as you get more money.

I'm not sure if a timed release of tanks on the mission would be the right thing though.. but you do have a point.. it is hard to form a stratergy if all of the tanks are falling at the same place at the same time.. and it's easy to blow up your guys.

WILL
23-10-2006, 02:35 PM
Awesome character graphics man! :) They look human, but also quite alien... very nice!

Well who says that either side has to arrive all at once?

Just have a few seconds at least between arrival times for both teams. :)

have it completely random too so that there really isn't any advantage to either side. Maybe have 1 or two enemy tanks already there and the player(s) have to start one at a time... but they arrive in 10s of seconds so it's not that much od a difference... just a bit of an opertunity to organize one at a time.

Though an extra reinforcement call option would be neat. :) Special purchased attacks like artillery, etc would also be helpful... then again the enemy will have something similar too, no?

jasonf
23-10-2006, 03:22 PM
Cheers Will, that's exactly the look I was going for.. human looking aliens. Hopefully to allow the player to relate to the characters but being different enough for the player to realise they're playing an Alien. I didn't want to go down the dripping green slime alien route though, I don't think people would relate as much.

I've had an idea that may solve the strategic placement problem.

On the team management screen, i put a tactics tab. These are the team orders.
So a team member could be told to be
Defensive
Aggressive

and there could be up to 4 waves of tanks and you choose which wave you want the team member to be part of.. and how long between the waves.

So you tell TM1 and TM2 to be part of the 1st wave, they are flying light tanks, their job is to scout and soften up the enemy ready for the 2nd Wave which is TM3 in a heavy tank with a missile launcher. His job is to distract the remaining tanks for the 3rd wave which is TM4 in a super heavy tank with a beam gun.

Or the player could choose to put all TMs in the 1st wave.

or any combination.

Also each wave would have an entry protocol.
Smooth entry (current, gradual entry where descent is controlled by brief thrusts of the jets)
Violent entry (tanks freefall until just above the ground and then hard burn the jets to slow down)
Shielded entry (tank freefall and crash into the ground, protected by shields)

They could also choose where the tanks arrive..
Left, Middle

So it would be possible to have all tanks arriving at once, but using different entry protocols in different positions on the map.

The AI would have the same options. so you wouldn't know immediately when or where the next AI tank was coming from... this would add to the unpredictability of each mission and extend the mission time.

What do you think?

jasonf
24-10-2006, 08:54 AM
I took it a little easy last night, too manu 2:30 am coding nights followed by 9:00am work in the morning can really take it out of a person..

So instead I worked on some graphics for a container ship. This is for an ocean based level. On this level, the only safe platforms are the container ships themselves. Your tanks will die if they go into the ocean so it's important to keep at least one container ship afloat... oh yes.. you'll be able to sink them. They'll basically behave like a normal scene object, you can blow holes in them etc.. however, they will be made from different layers and have objects which can be destroyed built into them.. cranes, crates. (destroying these won't affect the integrity of the ship) If the hull takes too much damage, it'll start to sink... incurring massive civilian penalties for the team responsible. Oh, and there'll be sailors to kill.

I'm also going to allow more than 2 teams per level.. in fact, on later levels, all 5 teams will compete against one another.

jasonf
27-10-2006, 09:37 AM
More progress this week.

A few minor bug fixes, some tweaking here and there.
The biggest success has been the MacOSX build. After a lot of searching, tweaking and shouting, (mostly shouting), We've got a MacOSX build using Free Pascal. We've got some performance issues to iron out, FPC appears to create slower code than Delphi but I'm confident that we'll be able to get something close to the Delphi compiled performance with some tweaking. It's really cool seeing something written for a completely different platform running on a Mac. Hail Jedi-SDL, Hail FPC.

I've made a start on the Tactics screen. It's a very simple screen where you choose which Wave your guy is on and which entry protocol to use. I'll post a screenshot soon.

The rules for waves will be...

Wave1 occurrs when the mission starts. The first wave is sent to the Home Location. Fixed for each map.

Once Wave1 has appeared in the map, an icon is displayed saying that new next wave is ready to use.
The player moves the camera to the place where Wave2 should appear and presses "W"

Wave2 appears at the top of the mission at the center of the screenX and falls depending on the Entry protocol (If you're over water and you choose a fast entry, there's a good chance that your newly requested wave will just fall right into the water and die.. so you have to be careful)
An Icon appears to say Wave3 is ready....

and so on...

If there are no tanks assigned to a wave, then that wave will skip proceeding to the next wave. You won't have to press "W" a bunch of times.

Once all waves have been used, the icon dissappears.

Each Icon will be different to show the Wave number.


I am unsure what to do If your tanks in play are destroyed and you have tanks in waves which have not yet been called.

Either I can put up a 5 second countdown so that the player can move the screen to the position where they want the next wave to come from (pressing "W" cancels the countdown) once the countdown expires or has been cancelled, the next wave is called to the current location.

Or, I can immediately call the wave to the 1st wave's position (the Home location)

Or, I can immediately call the wave to the Last Selected Tanks position.

Or, The player is defeated. This is a little harsh though I think.


I think this will help to get around the "Too many tanks on screen" issue and add an element of stratergy to the game.


Comments, Suggestions?

savage
27-10-2006, 07:20 PM
Re : compiling on MacOS X. Here is a message from Jonas Maebe, who I think worked on the MacOS X port...



Make sure they are using register variables when compiling a release
build (-O1r on 2.0.4, -O2 on 2.1.1), as that makes a huge difference
on PPC (less so on x86, since it barely has any registers in the
first place).


I asked some questions and posted a link to the Guns screen shot on the MacPascal list ( mac-pascal@listman.sonic.net ), so you may want to send a message to that list if you have any more questions.

Btw, did you guys compile it using Lazarus or via the command line?

jasonf
07-11-2006, 12:18 AM
OK Progress report time again.. It's been a little while

Things have been moving along at a fair pace, but it's been one of those "Not much to see" times.. lots of work with seemingly little or no reward. It's times like these where a lot of people (myself included) give up feeling like no amount of work is making a dent in the seemingly endless amount of work remaining. Just got to keep it all in my head and not forget anything.

Anyway.

here's what we have now.

I'm making the Tutorial levels at the moment and although there's not much to see, there is the makings of a Mothership hangar. It's very shiny, perhaps I need to tone that down a little. I'm also going to fill it with some clutter and ambient stuff to make it come alive a bit more.

http://upload4.postimage.org/1583166/mothership1.jpg (http://upload4.postimage.org/1583166/photo_hosting.html)
http://upload4.postimage.org/1583170/mothership2.jpg (http://upload4.postimage.org/1583170/photo_hosting.html)

Then there's the Mission information screen. There's more stuff in here now. Like a multi page info window. The icons for the type of information and the Guy talking to you can change per page. There'll also be a facility to add a voice over too.

http://upload4.postimage.org/1583162/info1.jpg (http://upload4.postimage.org/1583162/photo_hosting.html)
http://upload4.postimage.org/1583164/info2.jpg (http://upload4.postimage.org/1583164/photo_hosting.html)

I've also improved the performance quite a bit, including ridding myself of an AWFUL bottleneck when the level starts (Billy, you'll be pleased to know) so now I get respectable frame rates on my machine.

I've also added a Frame limiter which appears to be working, more testing will be required though on this.

There seems like a never ending list of things to do, but I'm confident that now the feature list has settled, it will come together to make a fine product :D..

(Note to the site guys: The add image feature seems to be borked in the latest maintenance.. I've had to copy these URL's from another forum which uses postimage.. just so you know)

billy1380
07-11-2006, 12:23 AM
I have just received my new MacBook Pro :D and the PowerBook is going on sale quite soon... so send me the new code and I will do another build see how it fairs against the old build... this might be the last PPC build we see! :cry:

PS: nice work with the new stuff... like the intro...

WILL
07-11-2006, 12:56 AM
(Note to the site guys: The add image feature seems to be borked in the latest maintenance.. I've had to copy these URL's from another forum which uses postimage.. just so you know)

Hmmm seems fine for me. :?

BTW, I've also found a great place where you can host video files and ]www.zippyvideos.com[/url] They resize and compress them a bit though.

Love the Tutorial! I think an area of the game where you can 'train' at various levels would be important especially with the unique type of gameplay.


Levels and new menus look absolutely beautiful! :thumbup:

jasonf
07-11-2006, 10:53 AM
Cheers Guys,

Glad you like the pics, the Mothership level isn't finished.. Nor is the intro screen.. The Teacher picture obscures some detail, the Font isn't perfect, The multiline Label misses words off the end sometimes and the button texts are in bad positions. No GUI Editor makes this stuff quite slow going.

There will be all sorts of stuff to add to make the environment more interesting.. Ships flying outside, Ships inside being refueled/repaired.. Shield pods being recharged, Fuel cargo ships being refueled, Fuel canisters, mechanics, a MonoRail, Cranes..

It's gonna be busy :D

I also want to have a Voice Over.


Will, that link to the video place isn't a Hint now is it? LOL

Billy, it's a shame you're selling the Mac, We're going to need one for PPC builds, Testing, Optimising..

Might have to invest in one i guess.

savage
07-11-2006, 11:18 AM
Mac, We're going to need one for PPC builds, Testing, Optimising..

Might have to invest in one i guess.

I may be wrong, but I thought that MacOSX 10.4 allowed you to create "Universal Binaries" that worked on both PPS and Intel.

jasonf
07-11-2006, 11:52 AM
Well, I don't have any Mac Knowledge really and I know nothing about these Universal Binaries (why do I get images of Dolph Lundgren and Jean-Claude Van Damme?)

We'll still need a test PC. Perhaps they'll be going cheap if people are generally buying Intel Macs... Anyway, I wouldn't feel at all comfortable releasing something I've not had tested to death.

technomage
07-11-2006, 12:29 PM
Jason if you want to produce PPC binaries youcould try running Mac OSX under Pear PC. it's a ppc virtual machine. It wont run in real time but it should be able to produce binaries for you.

billy1380
07-11-2006, 01:28 PM
Hmmm :?

Both PowerPC and Intel Macs have the capability to produce universal binaries, but that is through gcc 4 using a switch. FPC does not have a similar switch; not to my knowledge, any way.

That does not mean that you cannot compile baniaries for PPC on an Intel Mac or vice versa. Just play with the compiler switches? Not sure really...

As for PearPC, it is a bit slow and you will need a copy of Mac OS X to run on it i.e. it is a processor emulator... last post/update was last year?

jasonf
07-11-2006, 11:51 PM
It's been a productive ol' evening all in all..

I've got the Wave system up and running. You can choose which guns are part of which wave. If all of your guns in the current wave are destroyed, the next wave is called although you can call the next wave yourself at any time by pressing 'W'

First tests of the wave idea give interesting results. No longer do you have to cope with 4 guns at the same time, but you can if you want to... but because the enemy also uses waves (currently only calling the next once a gun is destroyed) it opens the game up a little.. I won't know where the enemy is going to deploy his next wave until it arrives, just as he doesn't know where I'll deploy mine either.... should make the AI coding interesting (I don't make life easy for myself do I?)

To make this work I've had to add an event which is raised on the death of a tank (or any other in game object) so this means I can have missions where you have to protect a sacred item or something.. Simply by making the game end should said item be destroyed.

It also makes writing a tutorial mission a bit simpler. On the destruction of one Drone, the tutorial can spawn more until the end of the tutorial.

Next on the list are the Tutorial Drones and the Tank entry protocol implementation. Also high on the agenda is Mouse Control. At the moment, I'm using the same Keys configuration as the original DelphiX game...

The LockFPS works a treat now and with the additional performance enhancements I've been making, it runs really smoothly.

jasonf
09-11-2006, 12:33 AM
OK.. Progress report again..


I have water.


big wow some might say, out house has taps too...

I have nice shiny, in-game water.. and it's not done using any hardware.

Here's the screenys

http://upload4.postimage.org/1601540/lookinthemirror.jpg (http://upload4.postimage.org/1601540/photo_hosting.html)
http://upload4.postimage.org/1601542/reflection.jpg (http://upload4.postimage.org/1601542/photo_hosting.html)
http://upload4.postimage.org/1601544/surelythisshouldntwork.jpg (http://upload4.postimage.org/1601544/photo_hosting.html)
http://upload4.postimage.org/1601547/goingforadip.jpg (http://upload4.postimage.org/1601547/photo_hosting.html)
http://upload4.postimage.org/1601555/submarine.jpg (http://upload4.postimage.org/1601555/photo_hosting.html)

Absolute piece of cake to do too, but it adds so much more to the image I think.

I like it :D
[/img]

savage
09-11-2006, 10:59 AM
Dig the reflection. How did you do that?

jasonf
09-11-2006, 11:36 AM
I'm just rendering from and to the same location. I've got to test this in Full Screen mode to see if it still works (in case there's a problem with H/W Renderring)


SourceY = SourceY - i + (Random(4)-2)
i=i+0.1

DestY = DestY+1

SourceX = random( 8 )-4
DestX = 0

Using different Alpha levels to simulate transparency and also subtracting a line at different levels to make it gradually darker.

I need to add wave crest highlights and I want to use a sine wave instead of using random value, but that will come. At the moment it looks quite nice when it's working.

I'm also going to make splashes when things land in the water and if something flies over the top, spray will be launched.

I'm wondering whether tanks should be able to float, 'cos it would be nice to see them bobbing along in the water and the collision detection would be really easy.

WILL
09-11-2006, 02:48 PM
Very nice water effect! ;)

Though I have a 'small' recommendation. I noticed that the background image the you're using HAS water reflection in it aswell. But it's static light reflection and shadowing not dynamic. This might cause a bit of an unnatural look to the water as you'll essentially be reflecting unmoving reflections.

May I recommend that you take a modified segment of the background image and just remove all of the water's reflections and land shadowing using a base color and use that to create the reflective water on top of the 'untouched' original.

You'd really only see the modified segment in the water effect so only maps with the water would need it and you'd only need, like I mention, a segment instead of the whole background to match the area that you will want to scale into the water texture.

That may clear up any blemishes in your otherwise ultra cool effect. ;)


I'm wondering whether tanks should be able to float, 'cos it would be nice to see them bobbing along in the water and the collision detection would be really easy.

You could add a new class of tank that is 'designed' to be ideal for water. Like an Amphibious Tank, call it the 'Piranha', 'Barracuda' or 'Python'... something to that effect. The main advantage being low ground strategy & harder to hit as they are moving a bit.

Though you'd have to have more water maps for this to work as an interesting factor in the game. Plus it would be beneficial if the Amphibious Tanks had a firing bonus while on water. Perhaps make it more difficult for tanks to fire while submerged in the water?

:lol: I'm now waiting for there to be Subs in the game now.


Good thing you didn't call your game Tanx. ;)

jasonf
09-11-2006, 03:08 PM
Cheers Will,

You're right about the water looking a little out of place with the water reflecting in the background. I'm going to remove the water from the background image and move it further down. The only water to be visible in the game wil be provided by the effect. That should fix this glitch.

I'll get it working on one of the other levels and see how it looks without any other water around, just reflecting the hills and mountains.

I've got some ideas for the mountain side level anyway.


The amphibius tank idea is good, I'd not thought about it too hard really. At the moment, all tanks are effectively heavier than water and falling off the screen is fatal so any tanks which fall are lost to Davy Jones.

The floaty tank idea was just to give people a chance should they run out of fuel over the water.

Also, because the water takes its reflection from the existing image, it can't really be deeper than a certain height so there can't really be any deep water levels as such.. unless.. (thinks).. yeah.. could be possible.

Some thoughts.. Shields should be useless in the water.. in fact, using a shield in the water will deactivate the tank.. or at least immediately deactivate the shield..

I need to think a bit more about this.

WILL
09-11-2006, 03:34 PM
Hmm... well I didn't mean to take out the water from the background, just make an extra texture to derive the water effect from.

But then again seeing how having static water in the background and dynamic water in the foreground might be a bit of a contrast... you could try extending the water effect all the way back to the background's horizon.

Doing that though, you'd have to make the background's water masked so that you'll see your water effect in it's place. It might produce some more of your watery coolness. ;) Forgive the pun. :P

You'd of course still have to layer the foreground effect on top of the background effect, but I don't think that'll be much of a chore. Just keep your foreground effect intact and restrict the background effect to the top of the foreground water.

savage
09-11-2006, 04:00 PM
Hi Jason,
Have you tried using Vtune( http://www3.intel.com/cd/software/products/asmo-na/eng/vtune/index.htm ) to spot any bottlenecks? They have a free trail version available for download.

jasonf
09-11-2006, 04:21 PM
$699 for a single Dev license.. :shock:

I might give the demo a try to see if I can see what's happening..

Could do with something to assist in finding memory leaks too if anyone knows of anything..

savage
09-11-2006, 04:47 PM
Could do with something to assist in finding memory leaks too if anyone knows of anything..

http://delphi.about.com/od/toppicks/tp/aatpmemleak.htm. I've used Memcheck in the past and that was useful. Not used the other ones though.

jasonf
09-11-2006, 06:49 PM
Although this is drifting way off topic, I can't get MemCheck to work using Turbo Explorer Win32.. I'll sort that stuff out later, but it may be a good idea to mention this in a general programming thread.

WILL
09-11-2006, 11:11 PM
So was my last spin on the whole 'more water effect' idea feasible?

The one complication I can see is the order of opperations on the FG/BG effect. You have 2 layers to manage instead of just the one.

But it would be cool to have an animated background though. ;)

jasonf
10-11-2006, 01:12 AM
Well, animating water on the background would probably Kill the FPS with all the extra processing involved I think.. But I'm not dismissing the idea completely, I just don't think it would work with what I've got at the moment. (Unless I don't fully understand what you're proposing.. which is quite possible as it's quite late ;)) although the FG/BG problem isn't really bad... my engine can handle pretty much any number of layers... each with different Parallax ratios.

As a partial test of the water system I've made a South Pole level tonight. Complete with Icebergs, Penguins and Snow. It's not finished, the background needs replacing with something better but it certainly feels cold. The snow could use work too.

http://upload4.postimage.org/1610603/southpole.jpg (http://upload4.postimage.org/1610603/photo_hosting.html)
http://upload4.postimage.org/1610608/RvBatXmas.jpg (http://upload4.postimage.org/1610608/photo_hosting.html)

And Yes.. you can blow up the penguins :D Although I might have Linus Torvalds appear in a blimp and drop bombs on you if you kill too many ;)

I think the water is working well here, but it could be argued that it needs to go off into the distance a bit more.. I think the effect will be in two parts if that's needed.. (this could be part of your idea Will)

I'm planning an ocean level (only on the sea surface though.. ) where the only land available are the decks of container ships. I need the water to be spot on for that.

I'm also thinking of including a Volcano level too.. I've got a nice Fire effect which can be used inside the Volcano. For an example of this effect, go here http://www.cerebral-bicycle.co.uk/links.asp?cat=9&subj=3

Edit: I've just noticed that I've got Vampire penguins in these pictures :D I've fixed this bug now..

WILL
10-11-2006, 01:37 AM
"Here at the South pole only Penguins can hear you scream" :lol: Nice. ;)

Well my idea is made with a few optional ways to optimize in mind. (naturally ;))

I'll try to make a quick mock-up of my idea so you have a 'diagram' of sorts to see what I'm talking about.

But the general idea is that you would take the background texture (untouched land and water masked zone) and make 2 rendered water layers from it each seperate from the other. I'm considering that this is a non-GPU accelerated effect in the first place.

Lemme scratch up a quick diagram so you can see what I mean... Should be a few mins. ;)

WILL
10-11-2006, 02:35 AM
Ok here it is, my idea visualized:

This is what you would ideally start with: A background scene but with the water masked area that the BG water effect would be placed in.
http://upload4.postimage.org/1610862/BGOriginal.jpg (http://upload4.postimage.org/1610862/photo_hosting.html)

then you would render the final background layer with it's water effect to a seperate BG layer. and of course not including the portion of the screen where the foreground water effect would show to save memory and wasted processing.

http://upload4.postimage.org/1610896/RenderBGWater.jpg (http://upload4.postimage.org/1610896/photo_hosting.html)

now set that aside in memory for a bit and we want to combine the game generated land and tanks + other objects at this point...

http://upload4.postimage.org/1610970/RenderCombinedObjectsLand.jpg (http://upload4.postimage.org/1610970/photo_hosting.html)

after doing that, you can use this with the ORIGINAL background with water mask and render the FG water. But only save this in the size of the strip that will become the water below in the foreground again for memory size & speed....

http://upload4.postimage.org/1610914/RenderFGWater.jpg (http://upload4.postimage.org/1610914/photo_hosting.html)

ok now... you can finally & simply combine all of these in their proper order...

http://upload4.postimage.org/1610946/FinalCombined.jpg (http://upload4.postimage.org/1610946/photo_hosting.html)

...and you're done! :D

That is what I'm thinking in full. It may take a wee bit more memory than what you are currently using, but the speed should not be too much slower depending on how you manage everything AND if you keep most of this stuff loaded and blit-ready, it should be like playing with Lego(tm). ;)

jasonf
10-11-2006, 12:04 PM
Mate, you've thought about this is some detail. 8)

There is a problem with this approach though.. I don't think my engine can support it.. :(

The water effect is only a visual trick rendered after everything else to be reflected has already been sent to the screen.
It can only ever reflect things which are on screen and doesn't have any idea about Z order when it comes to render time. Also, it can only ever be at the bottom of the screen and at most 72 pixels high (unless I change the reflection ratio) I tried it at 128 pixels last night and it went crazy.

Any additional layers containing water will be reflected in the water block at the bottom as there's no other way (using the current design) of only getting the reflections of the sprites. This would require an additional pass through the renderable object list to render to a new off screen surface. This would increase the render effort by a third.

Basically, my Renderring system is quite simple.

The game level has many layers arranged in Z order.

I render each layer in turn

Each layer contains tiles and entities which if in the cameras view, are rendered.

Each entity can have its own render function for things which need a bit more work (like the water effect). They can manipulate their own textures etc.. but basically render themselves to the target surface.


To implement the background water system would mean that the mountain layer would have an additional entity which would be a version of the water effect.

This effect would be different to the current water effect, it would need a sky texture to reflect off.. (trivial) it would also need to make a pass over the background image to create the reflection of the mountains, rendering only to the masked area and alpha blitting the clouds for that line. (expensive)
All of this is do-able and would make at least a nice layered reflection of the cloud layer with a rippled relfection of the surrounding mountains..

but the current water block problem would still exist. The water block would be reflecting things which already had a reflection in the other water block. This is because it is reflecting everything, not just sprites as it can only work on the final image because my engine doesn't use any compositing so to speak... Things ae just drawn in place over the top of other things.

If I can think of a better way to do this, I'll revisit it. But I'm fairly happy with the effect as it stands at the moment, especially since the game is 2D and rendered entirely in Software :) I'll spend a little more time trying to get it looking a bit more authentic, but I've got a lot of issues left to solve and I don't want to get hung up on this too much.

Oh if only I was using a 3D engine with a real terrain engine and shader powered water :D

Does this explain how I'm doing things?

WILL
10-11-2006, 03:08 PM
Yeah, makes sense. This idea might be a bit intense for a software rendering engine. Now if you where using OpenGL.. well. ;) You'd be laughing.

Maybe something to consider for 'Guns 3: Overload' or something. :)

(oh instead of the sky texture though, you can always just pick a single sky color and feed it that instead something light gray and flat. Like a misty fog color)

If you did your rendering in layers though (much like I've shown it's entirely possible, the only downisde is that you'll have to repeat copying the original background twice along with about 3-4 extra buffers to make it work.)

savage
27-11-2006, 12:36 PM
Any more news?

jasonf
29-11-2006, 02:08 PM
Sorry everyone, I've not posted any news in a little while. I got the feeling that I was becomming a post whore :) so I only wanted to post when I made significant changes. moreover, something to see :D

Here's what's new.

The Tutorial mode. The player can choose to enable the tutorials when they begin a new game. This takes them through the basic usage of the tanks from the relative safety of the mothership hangar. In the first tutorial, The tank gets to shoot at unarmed drones to practice their targeting. The second involves flying to checkpoints to reach a destination to practice flying. The Third has much more targets and fuel canisters. I'm going to introduce a couple of additional tutorials to teach the player about shields and extra weapons.

I've upped the destructive power of the exploding fuel canisters. Now they are a thing to be feared.

I've designed 4 extra weapons.

1. The Mini-Gun, a large animated spinning weapon of death. Sending rapid fire munitions towards the enemy at great speed.

2. The Heat gun, a Large beam weapon which cooks the enemy and melts scenery.

3. The Missile Launcher, It's big, it's chunky, it spits out homing missiles. The missiles will follow the mouse cursor, their destructive power will be matched only by their danger. They follow the mouse so it is possible to blow yourself up if you're not careful.

4. The Beam Gun, another beam weapon, more plasma beam than heat ray. It uses energy quickly but I'm toying with the idea that it damages shields.

For the heat gun, I'm toying with the idea of using a "War of the Worlds" effect (the original WOTW.. not the Tom Cruise version), the heat ray sparks and sound from the martians. But I'm worried I'll get sued.
http://www.war-ofthe-worlds.co.uk/images/war_worlds_pal_9_x.jpg

So I might just go with a barely visible heat blurring effect (simple to do) It's not a laser, so there'll be no beam as such, it's just focussed heat. But it would be hard to see.

One thing is for sure, these extra weapons look too big for the medium tank so the Heavy tanks will be along soon. All weapons will be available to all tanks, but they will take punishment in forms of movability and fuel usage. The extra light tank, which will be really zippy, will hardly be able to move at all because of the weight of the heavy weapons.

The SuperHeavy tank will be strong enough to carry 2 of the heavy weapons for extra devastation. Although it will be limited to using 2 of the same type of weapons.

I've fixed a load of bugs and the last MAc build showed that the performance changes I'd made were having a positive effect.

I've still got to implement the Earth military, I've got graphics for tanks and apache helecopters, but I'm not sure how best to implement them.. do I make them like drones which fire or do I give them some AI?

Still lots to do.. I'll report back later.

NecroDOME
29-11-2006, 02:37 PM
War of the worlds :D good movie!

That would be a lot of particles :P

WILL
29-11-2006, 02:49 PM
Hey cool idea Jason. :)

You should be fine with the Death Ray type effect, I don't think that you can get sued for what half of Hollywood does these days anyhow. :)

Maybe you can combine the heat distortion and the ray together... Esp. for the colder climate maps. Add extra 'smoke' or steam from the firing turret.

Hmm... as for the military. Probably best to make the very weak. I mean... there are only just puny 'hunams' after all. :P (Btw I stole that from Star Control 3 because it was just hilarious. Yeah I'm one of those guys who likes the 3rd one best despite it's obvious continuity explosion. ;))

Oh and don't worry about being a post whore. We need more of them like both you and I. ;) (I guess that makes me the Post Whore King :lol:)

NecroDOME
29-11-2006, 03:08 PM
Offtopic: Pimp my post :P

jasonf
18-12-2006, 11:17 AM
It's been ages since my last post about this.. partly because I've been a lazy arse and not done any work..
things have been.. difficult.. of late for reasons I won't go into here.

But also because the next task to complete was going to be a complete sod to do. Basically, I had to revisit my entire design for my weapon system. The version so far was based on a very similar system to my old game (i.e. crap), in fact it was pretty much ripped from it and converted to use SDL as opposed to DelphiX.

I wanted to make a generic weapon class which I could inherit from to make specialisations for each weapon. This meant I had to do a LOT of work refactoring my original class structure and more importantly, Unit structure..

Delphi isn't very good at handling circular references so it boiled down to two options.

1, Put all of my classes in the same unit...
or 2, put each class in a seperate unit.

I've actually opted for 1.8 which is put most of the classes in seperate units but keep some very very similar things together with the option of splitting them out later..

It's been a headache to say the least. I've had to add additional classes to get around the circular reference issue, But now it's done.

I've pretty much got my plasma cannon working the way it was before using the new system and I've probably got one more day on getting things tidied up then I can get to work on the other weapons.

They should be a breeze to do with the new class structure now as the main weapon class handles all aspects of weapon simulation. Everything from battery levels, power levels, ammunition, even gyroscopic forces.

Now I can write my minigun weapon which..
a) generates ammo over time
b) has a spin up time
c) once up to speed is really hard to turn due to gyroscopic forces of the barrel
d) can overheat

Now I've got to re-teach the AI how to aim using the new class structure 'cos at the moment, it's really, really confused :D

WILL
18-12-2006, 03:43 PM
Wow sounds really sophisticated man. All that work indeed must be worth it.

I'd hate to have you have a revelation at this point, but do you know about this trick?

type
TSecondObject = class;

TFirstObject = class(TObject)
OddballRef: TSecondObject;
end;

TSecondObject = class(TObject)
Bob: Integer;
end;

The TSecondObject = class; allows you to make reference to another object that is not in it's hierarchy. Something I learned while making my own space shooter engine. (ala Scorched Earth style)


Now I've got to re-teach the AI how to aim using the new class structure 'cos at the moment, it's really, really confused :D

So does that put NN on the table? ;) Seriously, it would be great for this!

jasonf
18-12-2006, 03:58 PM
Yeah, I know that trick and I use it.

I've got a Dropship class. It has to know about the FuelCanister class and vice versa. They attach to eachother.

If the fuel canister is destroyed while the Dropship is carrying it, the fuel truch flies off.

If the fuel canister hits the ground the Dropship flies off.

If the Dropship is hit, it drops the canister and flies off, the canister then falls to the ground and explodes on contact.

I could probably have coded it differently, perhaps had a TCarryable object which the Dropship can carry and apply all of the above rules to it. Then make the FuelCanister inherit from TCarryable. But the Dropship will only ever deliver fuel so it's not an issue.

I don't really like using that trick though, it seems messy. I feel that the compiler should be smart enough to figure it out without me having to resort to tricks.

WILL
18-12-2006, 04:03 PM
Ah... well then you'll hate my next trick. ;)

Use a TBasicShipParentClass pointer and check for their type every time you need to see if it's a specific kind of ship object. I did this a lot, not realizing how much memory leaks I put into the poor thing.

The trick worked great, but I handled the memory management badly so it made things tricky to manage. I'm sure you can do a better job though, esp. since you are much more skilled than I was back then. ;)

jasonf
18-12-2006, 04:17 PM
I'd prefer to use Events to be honest.

I use Events throughout the game. I've tried to stay as far away from pointers as possible. The language is good enough so you don't need to use pointers directly I think. The only real direct use of pointers is in the JediSDL stuff and the software rendering code. I've insulated my work from the pointer depenant code as much as possible.

Now all I need to do is check if the event code is assigned before I call it.

jasonf
19-12-2006, 11:59 AM
After a lot of mad typing and swearing, mostly swearing, I managed to get my weapon system working the way it used to. No mean feat considering the amout of trauma my engine had just been through.. complete class restructures can be fatal to a project in my experience.

So I got my plasma cannon working and I decided to see how flexible the new system is. I changed the cannon fire rate and increased the number of bullets it could fire from 5 to 40.. It was completely devastating.. It's given me the confidence that my minigun idea is possible.. as I'd pretty much made one already.

At the moment the AI is still confuses as how to use this new weapon system and the bullet tracking doesn't work.. Although I'm thinking of removing the bullet tracking feature altogether and using a simpler mouse move camera, as I've mentioned before.

I've also built a generic damage system into the game. All objects can be killed unless they are specifically set to be immortal. Whereas before, each entity had to be told how to die and the bullet had to be told how to kill each entity.. now the base class deals with all of that stuff and just asks the derived class to die or explode in its own way as it sees fit depending on the impact and heat damage done by the projectile minus any armour which the object may have, the armour then gets depreciated by the impact depending on the armour's hardness. Much better I think.

Restructuring the code also means that things are easier to find. Although I am having difficulty with the Turbo Delphi Explorer when it comes to project management. It won't let me add the units to the project it seems.. so I have to either right click on the file in the uses clause or use File->Open to get at the file. Also, I'm finding the Complete Class at Cursor function sometimes gets really confused and chops up the begining of existing procedures.. like chopping of the 'p' of the first procedure then the 'pr' of the next. Anyone know of a fix for this?

jasonf
27-12-2006, 01:29 PM
Oh the bugs...


With any amount of refactoring, bugs crop up. Bits missed, bits which now work differently.

One of the oddest bugs I've encountered is the immortal penguins which appear to die, but then continue walking.. it's actually kindof eerie.

My Mini-gun is working fairly well. I'll post some screenys soon showing the bullets and the massivly oversized minigun. The bullets I'm using at the moment would be better suited to the heat-ray weapon. So I'm in the process of drawing some new bullets. It should look quite cool.

I've got a couple of bugs where the barrel isn't rotating as it should and there's a bug in my angle calculations, but I'm confident that I'll have those sorted soon... well, as soon as the party season is over anyway ;)

Anyone who's considering refactoring their code.. be prepared for the emptiness.. especially if you had got something working before and now you've got to pick it apart to make it technically better whilst getting the same result you already have.. I find it to be quite soul destroying, all the extra work just to get to the same point. It feels like Sisyphus's punishment. But once you're past that, if the new structure is better, you can do more than was possible before. But it's hard to push past that empty feeling.

Traveler
27-12-2006, 05:00 PM
whilst getting the same result you already have.

(..)

But once you're past that, (..) you can do more than was possible before.

Repeat that last sentence more often and you'll do just fine :wink:

jasonf
29-12-2006, 01:38 AM
Success!

I've managed to solve my immortal creatures problem.. turned out that my fantastic generic damage and armour calculations were fataly flawed. Well, that's what happens when you're coding after sinking half a crate of Stella..

So tonight I've been quite productive. I've fixed the damage calculations and fixed a stupid bug with the weapon rotation... and added the weapon muzzel flash.

So here for your viewing pleasure.. the Guns Reloaded Minigun :D

http://upload5.postimage.org/52108/minigun.jpg (http://upload5.postimage.org/52108/photo_hosting.html)

http://upload5.postimage.org/52116/minigun2.jpg (http://upload5.postimage.org/52116/photo_hosting.html)

I know, it's not much.. but progress is progress.

Traveler
29-12-2006, 12:50 PM
That looks quite stunning.

I'd like to see a video of that thing :)

WILL
29-12-2006, 03:05 PM
Hey thats a great idea. :) Make a small video of a single round or session. I'm dying to see how the engine performs.

You can post it on ZippyVideos.com (http://www.zippyvideos.com/)! ;)

jasonf
29-12-2006, 03:40 PM
What's the best video capture app to your knowledge then?.. I was thinking of using FRAPs, but it's not free anymore.

WILL
29-12-2006, 03:54 PM
I was gonna say FRAPS :P

...but I think either Traveler or cairnswm was using something else during the last PGD Annual.

It turned out some pretty good results, wouldn't mind knowing what they used either...?

I was gonna make a little demo video myself --well I did-- but FRAPS slowed down my game do it didn't take well. :?

jasonf
29-12-2006, 05:13 PM
I can't get FRAPS to work. It records from things like Neverwinter Nights, but not Guns Reloaded.

Any ideas?

jasonf
29-12-2006, 05:17 PM
In fact, I've just tested Garland's Quest, and FRAPS is fine with that.

WILL
29-12-2006, 05:19 PM
Make sure that your game has focus before hitting F9. (it's F9 for me anyways) This will make sure that FRAPS knows that it's your program that should be captured and not say... FRAPS it's self or the desktop. :P

Found that out myself one time. :)

EDIT: Just say you other post, I use OpenGL in my game, not SDL... akaik FRAPS only does DirectX(DirectDraw/D3D) and OpenGL...

Traveler
29-12-2006, 05:28 PM
I useCamStudio (http://www.camstudio.org/) for video screencaptures. Works like a charm :)

jasonf
29-12-2006, 05:42 PM
Traveller, I saw your post about that earlier tonight. So I've downloaded it. Seems OK too, just trying to generate a SWF movie.

It might be a little rough around the edges and it's very dull.. Peter Jackson, I aint :D

jasonf
29-12-2006, 06:09 PM
Damnit!.. I just can't seem to get a decent framerate when I'm playing back the recording.

WILL
29-12-2006, 06:16 PM
Are you trying to capture it while running from the compiler? I found that doing so in FRAPS caused a major lag in GQ while executing from Laz. It seems that the debugger really gets in the way here.

jasonf
29-12-2006, 06:20 PM
No, from a compiled Exe.

It's just not capturing fast enough or something.. I dunno.

I'll try again in a couple of days, right now I'm off to PARTEY :D:D:D

Catch up with you guys in the New Year.

Have a good one. :drunk:

NecroDOME
29-12-2006, 11:07 PM
What I once did was put my TV out from my graphics card to my TV in from my TV card. This way it's easy to record demo's. And it's even better to have 2 computers. 1 for the game, 1 for recording :P . But now I also use Fraps.

Edit; And you can capture everything thats rendered to your TV. (for ripping movies 'n' stuff )

jasonf
05-01-2007, 12:00 PM
OK, I've got a working heatray and I've improved the Minigun.

With the new weapons classes, the heatray only took about half an hour to make and most of that was tinkering. It's got quite a short range, but it's not supposed to be for cooking dinner 20 miles away.

The mini gun is working well now. It's quite fierce but with its fierceness comes a handicap to compensate for its power... The longer you hold down the fire button, the more firepower it throws out, but the gyroscopic forces of the barrel spinning stop you from aiming the barrel which makes tracking targets very difficult. So if you're trying to hit someone who's flying around, you have to be very lucky.. but if someone is stationary, you can nail-em...

Next stop.. Rocket Launcher and Beam Gun.

None of the weapons are taking ammo into account at the moment, but that's all implemented in the base weapon class, so I can get that working at my leasure.

More screenies will follow soon, but I'll have to host them myself as it appears that the old screen shots have gone :(


I need some decent royalty free sounds now for the minigun and heat ray. I'd like something like the old War of the Worlds sound for the heat ray.

jasonf
17-01-2007, 01:44 AM
Progress.. some anyway..

I've changed the control system. Now it plays more like Abuse than the original Guns.

Keys [Up] for Thrust [left][Right] for fly left/right [down] for shields.
All aiming is done via the mouse now.
Right click places the user in free look mode to explore the mission.
It's actually a lot easier to fly/control now.

I've still got some bugs to iron out in this mode, but it's looking promising.

I had a little bit of a play with some different effects for the fire and explosions. I'm using a tool called ExGen, which I've purchased as it exports to a format compatible with my CBCFoundation animation classes. i.e. 4 cols by 6 rows..So far all the apps I've seen only export as either individual images which I'd have to crop by hand or they only export movies.. not really useful.

jasonf
19-01-2007, 12:34 AM
I've waffled on about how nice things are looking these days, so I thought I'd put a very simple flash file together showing the new Heat Ray.

I can't watch this without the Eve of War tune in my head now.. Dum Dum Duuurrr

http://www.cerebral-bicycle.co.uk/images/waroftheworlds.swf

Traveler
19-01-2007, 09:00 AM
I've waffled on about how nice things are looking these days


You're not alone on that one! :D

Looking forward to playing your game!

I was wondering though, with all the destruction going on in there, the rest of the city looks surprisingly clean. One should expect at least a few broken windows, some smoke plumes and broken streetlights.