 |
Slick Forums Discuss the Slick 2D Library
|
| View previous topic :: View next topic |
| Author |
Message |
twood
Joined: 03 Jun 2008 Posts: 34
|
Posted: Mon Aug 18, 2008 2:21 am Post subject: Space Combat Test |
|
|
I'd love some feedback about the combat in the game I am working on. The end goal is a space trader sort of game where combat happens only once every few minutes, and each battle should feel like something relatively significant.
At this point, you can fly around and shoot at another ship (which unfortunately looks exactly like you... I'll fix that soon). The combat doesn't really have the feel that I am going for -- right now it feels very arcadey, and the AI generally kicks my butt because it all comes down to pointing your ship at just the right angle.
There are a few obvious things missing like sound, better feedback for when you hit the other ship or it hits you, better camera transition after you blow up an enemy ship, and the AI turns in the wrong direction sometimes.
I'm mainly interested in people's thoughts about what might make the combat feel more strategic. If you have played Sid Meier's Pirates! games, then the ship to ship combat there is more what I have in mind.
Controls:
Left/Right to turn
Forward/Back to thrust/reverse
Space to shoot (you can hold it)
R will restart the game if you die.
Esc will quit
You start with 5 times as much health as the AI, so in theory you should be able to kill about 5 of them before they get you...
Play Webstart!
edit: updated url
Last edited by twood on Fri Sep 05, 2008 7:05 pm; edited 1 time in total |
|
| Back to top |
|
 |
manunderground Oldbie
Joined: 17 Jun 2008 Posts: 336
|
Posted: Mon Aug 18, 2008 3:04 am Post subject: |
|
|
Well one way to make this feel more strategic would be to slow the whole thing down and add another element. Here's what I'm thinking:
+ You have limited ammo, for instance you can only fire for 4 bullets at once (This is how I do it in my tank game)
This creates a resource management dimension for the player. Now he isn't going to just hold space to fire but only fire when he's pretty sure he can hit the target. This works especially well if...
+ Missiles cancel each other out (Also from my last game)
In this case your ammo is both an offensive weapon and a defensive tool. Sure fire your four rounds but then you're open for attack!
(Since you won't have walls to bounce and instead will destroy rounds based on time I would let the player have more than 4... you just need to figure out what the balance is)
+ Add some sort of shield, how about a reflector?
For instance, press <Shift> to activate a reflector which bounces the shot back at the opponent. This uses up energy though which slowly recharges. This adds another resource management dimension.
So let's see how this would play out (also useful for programming the AI)...
The enemy shoots at you:
1. If you can move out of the way do so, that's the cheapest option
2. You can't move out of the way (because you're facing the enemy, say)
1. Reflect the bullet back, this forces the enemy to fire a second bullet (which means he can't fire right away, an opening!)
2. You're out of shield energy, so fire your missile to counteract the enemy's
3. You got nothing... you're a sitting duck
Alright, this sounds pretty fun to me! You could then add new enemies or upgrades which expand on this mechanic.
Above all else, if you want to add strategy, you need to slow the whole thing down. Right now the fact that there are so many bullets means I can't really reason about any single one and react, hence no strategy. Another thing to consider is your movement scheme. It's very hard to successfully accelerate, slide, and aim at the target in my opinion. I'm not sure what you could do to fix this problem, but I'm just putting it out there.
One last cool idea. I see you've got planets around there, not sure what they're doing atm... but why not add some sort of debris / environmental objects which can be harnessed in combat (and then forget about making a smart AI haha)? For instance, above you is an asteroid field which you either cannot enter or will harm you, below you is a mine field which can be detonated to harm you. This would add a lot more thinking to the game as you wrangle for position.
HTH |
|
| Back to top |
|
 |
twood
Joined: 03 Jun 2008 Posts: 34
|
Posted: Tue Aug 19, 2008 7:52 pm Post subject: |
|
|
Thanks for your comments, and suggestions on how to think through the game experience!
I've been trying some simple things like reducing the flight speed and adjusting the size of ships, but it still doesn't have the feel I'm going for.
I think that the asteroids-style movement scheme may be a big part of what makes it difficult to control and still make tactical actions. I'm considering making a switch over to a WASD style movement scheme and use the mouse for aiming and firing. (Kind of like the rocketpod demo)
I like your "limited to four rockets idea". I think I will try making the speed of the player's rocket be based on how long they hold down the mouse button. Otherwise it seems like it could be too easy to just put your mouse over the target and keep clicking away.
I'd thought about adding asteroids or some sort of obstacle, but as you say, that will make the AI a lot more complicated. The whole reason I decided to make the game in space was so I wouldn't have to worry about complicated path finding and collision detection!
I'll post a new demo once that is working... thanks again! |
|
| Back to top |
|
 |
miked Regular

Joined: 24 Feb 2008 Posts: 163 Location: UK
|
Posted: Tue Aug 19, 2008 8:07 pm Post subject: |
|
|
Hi twood
This looks like a really good start. I like the starfield and sense of depth it gives you. I think Manunderground has already provided a lot of what I would suggest for the game so that's enough to be getting on with I suppose )
I did notice that when I was killed the ship stopped responding to input when it was put back in the game and no enemy ship appeared either.
I'm looking forward to see how this develops.
MikeD _________________ Work In Progress:
Atic Atac Remake
MegaBlast (First Slick Game I started) |
|
| Back to top |
|
 |
NateS Game Developer

Joined: 25 May 2008 Posts: 577
|
Posted: Tue Aug 19, 2008 10:06 pm Post subject: |
|
|
I think the weaponry is what will make it strategic.
I had a weapon in HaVoC, my Tribes mod, that was a shotgun. The way it worked was, you hit fire and it delayed a second or so, then fired. A couple seconds or so after firing it would reload and you could fire it again. It had two "barrels". If you fired while the first barrel was firing or reloading, the second barrel would go. So you could hit fire twice and a second or so later it would fire twice, then you couldn't fire again until they reloaded.
It was devastating point blank, but the delay made it require skill and planning to use. From far away it was not very good, except in the rare occasion where you only need to nick the enemy to kill them. I can envision a shotgun in a space shooter similar to this.
Another weapon I've seen is the Barret from Soldat. To fire this sniper rifle you have to hold down fire, a second or so later it fires. In a space shooter, this might be a huge, instant hit laser blast. It might also be cool to disallow mouse movement while they are charging the laser.
Maybe you could make a "cloak" where you go invisible for a short period. This might make for some neat player vs player action, where you get them all lined up for the kill and they go poof.
A shield would be cool. Should be momentary, it is only up while you hold down a button and you can't take other actions while your shield is up.
Definitely I think WSAD like RocketPod is the WTG.
Have you played WoW? Their combat system is interesting. It is just clicking buttons to use abilities, but the players have some 20+ abilities so the interesting fights come from using your abilities against an enemy at the right time. Eg, two mages fight need to use instant hit spells. First to cast a spell with a casting time gets counterspelled and can't cast again for 10 seconds. In that time the other mage casts a 6 second Pyroblast which probably comes close to killing them. There are many combat elements, instant damage, casting time damage, damage over time, healing, stuns, fear, snares, etc.
The other thing you could do is like GridWars, which is just tons and tons of enemies. This is much more arcadey and not really strategic, but it might be neat to have short portions of your game go arcade style, then bring it back to strategic. Eg, you could have some enemies launch tons and tons of tiny fighters that you have to just mow down or maybe you have to save your AOE damage for them, etc. |
|
| Back to top |
|
 |
manunderground Oldbie
Joined: 17 Jun 2008 Posts: 336
|
Posted: Wed Aug 20, 2008 3:06 am Post subject: |
|
|
twood, I hate to say this but what is ultimately going to make the fighting engaging and fun will be smarter AI, which as we've agreed is a lot of hard work. I think you can actually get pretty far fairly easily (typical 80/20 problem) and I'd be happy to talk about how to approach making the AI. Mainly, this would be coming from my experiences developing my tank game. Since I've actually already started documenting the process why don't you take a look? If you find it useful let me know and I'll speed up writing the second half (which deals directly with the AI stuff). The article is all about doing physical queries without doing hard math. http://anotherearlymorning.com/blog/physical-queries-for-the-math-challenged _________________ My website about game development http://anotherearlymorning.com |
|
| Back to top |
|
 |
agentili

Joined: 01 Aug 2008 Posts: 16 Location: Rome, Italy
|
Posted: Wed Aug 20, 2008 6:23 am Post subject: |
|
|
I couldn't play the game; after clicking the web start http://www.popcornfarmer.com/gamedev/games/yassg.jnlp and waiting a bit the JVM says:
| Code: | com.sun.deploy.net.FailedDownloadException: Unable to load resource: http://www.popcornfarmer.com/gamedev/games/yassg.jnlp
at com.sun.deploy.net.DownloadEngine.actionDownload(DownloadEngine.java:961)
at com.sun.deploy.net.DownloadEngine.getCacheEntry(DownloadEngine.java:1059)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1134)
at com.sun.deploy.net.DownloadEngine.getResourceCacheEntry(DownloadEngine.java:1068)
at com.sun.deploy.net.DownloadEngine.getResource(DownloadEngine.java:142)
at com.sun.deploy.net.DownloadEngine.getResource(DownloadEngine.java:127)
at com.sun.javaws.Launcher.updateFinalLaunchDesc(Launcher.java:227)
at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:125)
at com.sun.javaws.Launcher.launch(Launcher.java:95)
at com.sun.javaws.Main.launchApp(Main.java:302)
at com.sun.javaws.Main.continueInSecureThread(Main.java:212)
at com.sun.javaws.Main$1.run(Main.java:107)
at java.lang.Thread.run(Thread.java:613)
|
|
|
| Back to top |
|
 |
twood
Joined: 03 Jun 2008 Posts: 34
|
Posted: Wed Aug 20, 2008 5:20 pm Post subject: |
|
|
@agentili - It is working fine on my end - is anyone else having an issue with the web start?
| manunderground wrote: |
twood, I hate to say this but what is ultimately going to make the fighting engaging and fun will be smarter AI, which as we've agreed is a lot of hard work.
|
For now, I will hope that you are wrong , although I fear you are right. However, I think I need to settle on the game mechanics (control scheme, general speed/rate of fire) issues before I delve too deep into the AI stuff.
Actually I've already read your article, although I hadn't fully thought about how it can lead to better AI -- I look forward to reading more about how you use ray casting. I've also looked through your game patterns wiki and think it is an excellent idea. |
|
| Back to top |
|
 |
manunderground Oldbie
Joined: 17 Jun 2008 Posts: 336
|
Posted: Thu Aug 21, 2008 12:26 am Post subject: |
|
|
Well, I'm very flattered hahaha. Yea, right now the wiki is strictly an interesting idea. Hopefully I'll be able to dream up some patterns to help flesh it out soon.
I definitely agree you need to decide on the core gameplay mechanics before investing a lot of time in the AI (which already moves and shoots anyway). As others have said I think a good control scheme would be to aim w/ the mouse and move with the arrow keys (or a,s,d,w). This is the approach It took in Forte. Only thing is it is a very complicated setup; I had many people tell me that they found the control scheme very difficult to use. So while it does allow for more strategy (by separating moving and aiming) it comes at a pretty high cost to complexity.
If fighting isn't the main focus of your game maybe you should consider switching from real time dog fights to a turn based approach? For instance, you could have it be like a RPG where you simply navigate menus. This would make it easy to roll in more strategy, remove the problem of AI entirely, and still let you have battles. The only cost associated with this would be to create more high res art to use during the battle scenes. I actually think this would be a great way to go provided that the game's focus is not fighting. _________________ My website about game development http://anotherearlymorning.com |
|
| Back to top |
|
 |
Thatotherguy Regular
Joined: 31 May 2008 Posts: 207
|
Posted: Mon Aug 25, 2008 2:56 am Post subject: |
|
|
alright, here are my suggestions, these are some things I learned from my game:
1. Bullets need to be very fast. You should still be able to dodge them with some effort, but it would be much cooler if they were very fast and there was simply an accuracy modifier.
2. The enemy ship should be able to shoot and move at the same time. You're doing a good job of having it lead the player, but the shots are so slow it barely matters.
3. Do some work on particle systems.
4. Try representing the bullets as vector lines or moving particle systems rather than simple gifs.
5. The planets seem rather random and out of place. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|