Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411279 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 04:30:25 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityJams & EventsCompetitionsOld CompetitionsProcedural GenerationK2 [FINISHED]
Pages: [1] 2 3 ... 5
Print
Author Topic: K2 [FINISHED]  (Read 44452 times)
Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« on: May 07, 2008, 02:29:40 AM »

K2 Overview
(*Ahem*) Inspiration comes from Rez, Tie Fighter's combat plus some other Konjakky gesturey attacks. That is not to say that this game is going to equal the combined might of those games/auteurs, especially not when I've only worked on it for a short time. That's just where the mindset is at.  Sorry Dan Lomez. Really, really sorry for not making that clear. I didn't mean to, like, totally lie to anyone, really! That tag-line thingy was just left over from the original post. Sorry. Sorry.

So yeah. Consider this more of a prototype than anything close to a finished game.

K2 Prototype Final. Download Here! Now! Please?





Basic Instructions
LMB = Fire
RMB = Boost
Right Trigger = Fire
Left Trigger = Boost

To Lock On to an enemy, draw a circle around it. When you hear the confirmation tone, press fire to shoot off missles. You can lock onto as many enemies as you like, but the damage done will be spread between the rockets.

To Make a Chain Missle Attack (FireWorks) kill an enemy before a rocket you've shot off hits it. Missles aimed at a dead target will split into several rockets and go into any enemies in a radius around them.

Many thanks to C418 for the music!

Design wise, there's a lot of targets i didn't hit: directional shields and slice laser mainly. If I only had another week >_<.

Mirrors
My Mirror: http://www.bezzy.net/Downloads/K2PrototypeFinished.rar
Haowans' Mirror: http://www.deadrock-game.com/files/K2PrototypeFinished.rar (thanks haowan. Thaowan.)
(If anyone else can host this file, that'd be kind).

Stuff you may need to install if it crashes immediately
http://www.microsoft.com/downloads/details.aspx?FamilyID=15fb9169-4a25-4dca-bf40-9c497568f102&DisplayLang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=1A2393C0-1B2F-428E-BD79-02DF977D17B8&displaylang=en
http://www.microsoft.com/downloads/details.aspx?FamilyID=79bc3b77-e02c-4ad3-aacf-a7633f706ba5&DisplayLang=en

(I know, I know. This is the worst thing about XNA).
Still can't play?
1) I apologize on behalf of the Microsoft Corporation, despite having no permission to speak on their behalf.
2) Consolation Videos for you:










Edit 2: New Videos






Wow that does NOT survive youtube's conversion.


Edit: Video is here. Hopefully, a higher quality version is on its way, but I don't trust YouTube + Fraps codec.

http://au.youtube.com/watch?v=9rLgfVhnwq4
http://www.vimeo.com/1055093

Original Post:
Okay, I thought long and hard about this compo, but couldn't figure out anything particularly succinct. However, it spawned another idea: a sequel to that game I never actually finished. Now, this is still probably too much to take on, but I'd quite like to make this game anyway, and an embarassing misfire on tigsforums won't upset me.


Game Style (long term)
Long term, I'd like to make a space style roaming shmup / trademup, but completely streamlined interface-wise. So, one fire button, automatic/gesture based speed controls, only three kinds of cargo to ship around, and a "living" fluctuating economy. No complex controls to hide the fact that trading games are actually mechanically pretty damn simple.

Game Style (compo)
For the competition, I want to work on the core combat controls, and do a system which spawns bad guys based on how you tackle the previous wave. So if you use one style attack a lot, the next wave is buffed against that kind of attack. Hopefully, my parametric geometry is good enough that I can generate bad-guys on the fly, and their game properties feed into their ship's shape. So yeah. Procedural in two ways, I guess.

Weapons systems:
Charging Laser: First shot does loads of damage but takes a lot out of the energy banks. Subsequent shots are weaker, but rapid fire. Best of both worlds. This was in the original K.
Gesture Based Homing Rocket: make a circle around an enemy, and then press fire to unleash a fire and forget rocket. Make a circle around several enemies before pressing fire, and lock onto multiple enemies, splitting the rockets (and thus damage) across several enemies. Special Advanced ability - Fire Works: if an enemy dies before a rocket hits it, the rocket will target any enemy within a radius. If there are several enemies, it will split off into smaller rockets to damage all of them evenly. So, lock on, fire a rocket, then kill off the guy you locked on to, and you'll get fireworks auto zapping nearby enemies! This was sort of in the original K... the homing rocket also doubled as a grapple hook.
Slice Laser: Based on my Ball'o'Doom experiment. "Swipe" your crosshair across an enemy to do damage. The bigger the swipe, and the further away the target, the more damage you do. Also gives the enemy a bit of a kick in the direction of the swipe. No buttons needed to trigger - just speed. If an enemy uses a swipe against you, it'll be clearly telegraphed, and doing a counter-swipe in time will "parry" the attack (thanks Haowan). Not in the original at all.

TODO: Figure out other ways that these weapons can interact with each other in an interesting way (as with the fireworks example).

Shield System:
Directional, regenerating shields, as in Tie Fighter. Unlike Tie Fighter, you don't have a special button to redistribute shield direction. Thanks to the aiming approach and well telegraphed in-coming danger warnings, you can just spin your entire rig around so that the damage is sapped by the correct quadrant of the shield.

Pre-emptive thanks to Haowan and Gravious for letting me bounce this idea off them.
« Last Edit: June 09, 2008, 01:09:32 AM by Derek » Logged

PeterM
Level 0
**



View Profile
« Reply #1 on: May 07, 2008, 02:40:47 AM »

Sounds very cool. Good luck!
Logged
increpare
Guest
« Reply #2 on: May 07, 2008, 03:01:35 AM »

Sounds very cool.
Indeed!

Quote
Good luck!
Ditto!
Logged
Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #3 on: May 07, 2008, 03:25:44 AM »

Augh. I just got my work assignments for this month. I doubt I'll have the energy to get very far with this  Cry. Still... as a slow burner, it's still a cool project.
Logged

Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #4 on: May 08, 2008, 07:31:57 AM »

Still haven't started, but I'm getting lots of good, and rather cheap ideas.

Like the radar: it'll be combined with your shield (which you're seeing all the time from third person). It'll project all the enemy/incoming attacks onto the semi-transparent sphere/shield around your PG craft so that you can see where to turn to face enemies, or see where incoming shots are (so that you can rotate weak areas of your shield away from the attack). Sorta like this:

Logged

FARTRON
Level 4
****


the last man in space


View Profile WWW
« Reply #5 on: May 08, 2008, 09:10:21 AM »

Oh bezzy, please please finish this.  Kiss
Logged

Everything that was once directly lived has receded into a representation. - debord
Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #6 on: May 10, 2008, 11:20:11 AM »

Beztain's log, Earth date, 10th May 2008. Day zero for my development. This is going to be a boring post...

Just got my home computer set up. Been working on just setting up the basics of XNA. Got some bezier code left over from Dasher. Added tangent code to it, which was easy, but I just never got around to it. I found some nice quaternion based camera code, which will help a lot (because I am rusty on quaternions, and all the proj/view/world matrix stuff always slightly confuses me one way or another). Inputs are also basically there, but XNA makes that super easy, so that's not saying much. Added debugging text. Always useful. Currently struggling uphill against vertex buffer setups etc. so I can just get something goddamn displaying Smiley. Also trying to do some primitive generation (stack and slice based spheres, though I'd prefer geo-spheres a.k.a. sub division surfaces). Gonna take a break, and then hopefully i'll have something displaying by the end of tonight. Got abstract ent classes set up, partially.
Logged

Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #7 on: May 13, 2008, 03:18:58 PM »

Still working. Got myself a primatives class which generates basic geometry out of THIN AIR:

Squares
Arcs (which can become circles)
Cylinders (which can become cones, spheres, or anything conic with a variable width).
Beziers!

I'd post a shot, but it's not very exciting right now.

tomorrow I will finish of spheres, and move onto the base avatar and camera controls (camera keeps behind the avatar, and chases the avatar's cursor, like in Rez, but a bit more elastically).
Logged

FARTRON
Level 4
****


the last man in space


View Profile WWW
« Reply #8 on: May 14, 2008, 06:52:23 AM »

I'm still curious how it's looking. Post shots anyway.
Logged

Everything that was once directly lived has receded into a representation. - debord
Metroid48
Level 0
**



View Profile
« Reply #9 on: May 14, 2008, 07:03:07 AM »

Looks like a good start. You're getting the coding going and have a great concept to back it up!

One of the concepts I really like (I didn't play the original you mentioned) is the fireworks missile system. It's a neat concept that the missiles will split off when there are multiple targets, as well as will auto-home when their primary target is destroyed.


I as well am curious how it's looking. If it's at the "basic geometry rendering" stage I guess it's ok, but any first shots of ships and other media would be greatly appreciated!
Logged
the2bears
Level 0
**



View Profile WWW
« Reply #10 on: May 14, 2008, 10:16:29 AM »

Seeing you work on this makes me very happy!

Bill
Logged

the2bears  - the indie shmup blog
Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #11 on: May 14, 2008, 12:32:52 PM »

Gosh, thanks for the interest already.

There's nothing particularly interesting to show yet. I'm just finishing off all the parametric geometry tools I want. Tonight I'm fixing spheres, and doing basic lines (which I forgot, somehow :/).

Got some ideas about old school graphics tricks I did with the original K, before the days of shaders doing everything. If you mess with alphablend draw order, you can make translucent craft which still have their silhouette outlines. But graphics are on the back burner for a bit. Have to get the gameplay in there.

Sprawling thoughts, no guarantee that these ideas will be in the game.

I'm not really sure how I'm going to pull the parametric geometry i have into a good looking ship... but it's doable. It'll be like lego, but with scaleable individual parts. K had some pretty nice models (if I don't say so myself = i'm not a modeller nor nothing!) I think the more interesting visual thing will be how each combine.

The enemies... I think they're just going to be these nodes, which have some hairs on them. Each hair represents an attachment point. Nodes which have no free hairs are attracted to the ends of hairs, and will attach to them when close enough - kind of like valency: you need an open "slot" to attach a hair to. So you end up with the kinda... molecules of badguy.

Only one node in a molecule (the parent, who can't be attracted to any of his offsprint) will have the ability to move, and all the others will play catch-up with their offset, so you end up with a sorta "jellyfish" motion. Shoot this one, and all the children split off into their own molecules. I can only even attempt this because of the work I did on d@sher, where I got some good face time with GraphNode code - built for dynamic hierarchies.

Question is, how does that formation affect gameplay? What's the difference between shooting nodes in a cluster, and shooting them in separation? I need something along the lines of "safety in numbers" for the molecules... allow them to transfer their shield energy between each other, perhaps, so that it's harder to kill individuals: the pain is shared.

The trade off could be that the larger molecules are no-where near as maneuverable as the individual ones. Big molecules become like capitol ships. Smaller ones are like fighters. You'll still have the tools to cut the hairs between them, however (the slice laser), so there's a way around that.

Upon killing any node, its soul goes into your soul stack (a bubble trailing on your contrail, I guess). It remembers how it was killed (i.e. the weapon it was killed with, and perhaps even the skill demonstrated - it comes back with the weapon YOU killed it with, so if you over-use one weapon, expect to see a lot of enemies using higher powered version of it/its counter) and whether it was connected to anyone (it'll grow hairs so that it can attach to any other nodes) and comes back meaner. That's the core of the procedural spawning - enemies spawn to reflect your playing style. One new node appears every wave (timed intervals) upto whatever limit the system can handle. From then on, you're destroying nodes, earning points based on the style you show in killing them, and in so doing, power them all up.

« Last Edit: May 14, 2008, 12:40:54 PM by Bezzy » Logged

Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #12 on: May 17, 2008, 02:47:24 AM »

Quick Update.

Got all my parametric primitives almost 100% done. I don't think this is going to be a very pretty game for the compo (I won't have time to do all the cool outlining tricks I did in the original K), but I've got a good base for moving on after that. For that reason, no screenshots yet, sozzles.

Got the camera set up to follow the craft around from slightly behind, and with a bit of "catchup" so that your change in speed and direction is clear. The craft turns around using quaternions, which I'm glad I got to finally figure out (multiplying them sorta "adds" the angles, so I have a quaternion for the rotation of the craft, and an angular velocity quaternion which feeds directly from input. That was weird for my puny head to get around). Yeah. So. No gimble lock. Not that quaternions are the only way around that, but... Woo!

The stub cross hair is in - it's an arc which increases its arc spread the closer you are to a clean hit - so it initially acts as an arrow, pointing toward the closest target to your reticule, and then grows into a full circle when you have the clean shot. Its position in front of your craft in 3D space is determined by the distance between you and the closest enemy to the cross hair. This is a trick I achieved in K, which stops parallax error when shooting at enemies from the third person, allowing for a freer camera. Can't do any of this behavior until I have enemies, of course.

I'm moving house today, but hopefully tonight I can fix some input issues (I'm dampening mouse input, but the dampening variables are taking too long to "catch up" with the actual mouse input, for some reason - the handling is therefore currently pretty horrible, and must be fixed asap), and start to get stub enemies into the game, and have all the spatial search algorithms set up for it (return a list of enemies within a sphere, or within a cone - that sort of thing).

I have a cool idea for the menu... it'll feel a bit like the mini boss sections in Rez level 5 (with all the "who are you?" stuff flying about). You'll spawn in the center of short cylinder which has all the menu options printed on the inside, pointing toward the player. You start pointing toward the K2 logo, which is cut into the strip. To the left of it is an "X" (for exit). To the right is a right-facing equilateral triangle "|>" (standard "Play" Icon). I guess that during game play, if you exit to the menu, you need another "||>" symbol for "resume" rather than "start again".

                         i
______________________________
_____X_____KII_____|>_________
 
                         !


They'll have to have "hover-over" graphics, as well as tool tips as a backup (though I'd love to do a text-less game, it always requires more effort, and is never necessarily understood), and to activate them, you use your standard gun - so you're using your base game controls to interact with the menu. And this could be a useful thing in the final game, too, rather than loads of separate menus for trading etc.

Above and below the logo are two symbols - "i" and "!". The idea is that when you try to look at them, you'll have to use your Y axis, and thus, find out whether you've got the right "inverted" setting. If you don't, you just shoot either icon to toggle the behavior. The "i" spins to become a "!" and the "!" spins to become an "i".
« Last Edit: May 17, 2008, 03:01:32 AM by Bezzy » Logged

Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #13 on: May 18, 2008, 06:56:49 AM »

I now has bullets and bullet collision. No explosions yet - i'd like to pull off the original ones from K, but there are rendering issues at the moment (see below). Plus, it's more important, at this point, to chase game play stuff. Visualization is important, but not as important as being feature complete at this point.

Fixed a cross hair problem (wasn't taking into account the parent matrices' scale change, so it got projected out 3 times farther than it was supposed to. That was confusing the hell out of me). Fixed/tweaked various other issues.

We have no internet at home, so I've come into the office to research why everything is being drawn over everything else based on draw order(seems like there's no depth checks??). I do want that property so that i can draw transparent innards of ships, and only display the silhouettes of the back-shells. [Edit] This article sums it up nicely... check out the pictures at the bottom, and you'll see the effect that draw order has on alpha blending - I'm trying to use that perceived "error" as a visual trick. I think the problem has simply been that I haven't set up my source or destination blend settings properly i'm pretty sure that destblend is just at its default, which is Blend.Zero, when it needs to be Blend.InverseSourceAlpha.[/Edit] That's my main aim for today. If I can get that sorted, I'll move on to homing rockets (complete with "loop de loop" lock on system and bezier paths).
« Last Edit: May 18, 2008, 07:10:02 AM by Bezzy » Logged

FARTRON
Level 4
****


the last man in space


View Profile WWW
« Reply #14 on: May 18, 2008, 11:15:00 AM »

Sounds like you're making good progress; I'm very psyched to play this. I hope you keep up this level of commitment after the compo, because your long-term plans sound awesome.
Logged

Everything that was once directly lived has receded into a representation. - debord
shinygerbil
Blew Blow (Loved It)
Level 10
*


GET off your horse


View Profile WWW
« Reply #15 on: May 18, 2008, 03:31:51 PM »

Yeah man, this sounds like it's going somewhere. Somewhere awesome. Grin
Logged

olücæbelel
Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #16 on: May 19, 2008, 01:07:27 AM »

Thanks guys!

Yeah, I'm surprised at how quick it's going (<3 C# and hacking aggressive code production - seriously, I just make everything public right now. Saves a lot of time instead of doing public Get()/Set() funcs), but regardless, I'm still not sure whether I'll have anything nice for the compo. I doubt I'll keep up the pace, either, because I'd like some amount of a life and time to play other people's games... but I will stick at it.

Last night I got in an almost-done radar system (as described earlier). I need to find an easy way to convert a normalized vector into a quaternion rotation before it works properly. Oh wait. I think I just figured it out in my head... guess I was kinda tired last night. One thing I HAVE to get right is the camera - so that it keeps the player in the same locus on the screen, or it's hard to follow the radar while it's flying around on the back of your highly move able ship.

Also added a sorta "sky sphere". Couldn't be bothered doing anything special with the colors, so I just set the colors (RGB) to the vertex positions (XYZ), and after making sure each was pushed into the range 0..1, it turned out looking really pretty nice! I'd screen shot it, but we has no interents at home!

I also tried to get the crosshair to point toward the closest target to it, but again, it requires some pretty tricky math as soon as it's a 3D crosshair. I have to find the angle, relative to the player's ship (i.e. direction to ship = Up, ship's Up = north/0 radiands), and then the angle from the crosshair to its closest target (player's ship is equidistant to crosshair and best target), then subtract the "north" angle from the angle to the target... urgh.

Still struggling with the draw order stuff... Anyone know if you have to draw opaque stuff from back to front, or from front to back, or should it not be a problem with XNA's default RenderState settings?

If I can fix those things quickly, I'll move on to the loop-de-loop rocket locking system.
« Last Edit: May 19, 2008, 01:28:42 AM by Bezzy » Logged

Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #17 on: May 20, 2008, 12:58:25 AM »

Got the radar working. I think I used Matrix.CreateWorld to do it, and had tried that previously, but had forgotten to rotate my model so that it was in the x/z plane before rotating toward its target.

Tried, and failed, to do some projection of points onto a plane, then rotate the plane and points back to normal = up, and then figure out the angle between these points (so that I can get the crosshair to always point at the closest enemy target).

Added contrails in about 15 minutes by adapting my line primitive to take arrays of points rather than just 2 points. Also did a bezier style colour blend along the line, so you can put in three colors (one at the stat, one in the middle, on at the end) to blend between. Just as the fixed backdrop help you tell which direction you're turning in, contrails really help you tell which direction objects are moving in, so it's not a purely fanciful endeavor.

I had a toothache during the night. I may have a night off tonight if I can't figure out the point/plane projection stuff (I know, I know. It ought to be pretty easy... I'm just getting a bit confused about what dot product does what, and how to rotate back... set up a Matrix.CreateWorld, and then multiply the points by its inverse?).
« Last Edit: May 20, 2008, 01:00:53 AM by Bezzy » Logged

Bezzy
Level 5
*****


Loves the Gloves


View Profile WWW
« Reply #18 on: May 21, 2008, 12:46:26 AM »

Uploading a video now. I don't think YouTube will help it much. Will edit and add.
[edit]



[/edit]
Yesterday, I mainly did lots of little fixes and tweaks. Still can't get my head around the problem above.

Gave the crosshair its own trails, which helps a lot to explain space well. Got auto-speeds working. The more directly you aim at someone the more your thrust will activate in your current direction - but, if you're close, and still facing, you start to back off. It works out pretty nicely. The game still only needs one button. You can also "jig" in the direction you move the mouse, if you move it very suddenly. Needs a bit of tweaking, but it should be useful for strafe-dodging incoming bullets.

I barely slept last night because I have a tooth ache. I've set up an appointment at 11:40, and may have my wisdom tooth out.
« Last Edit: May 21, 2008, 12:58:25 AM by Bezzy » Logged

nenad
Level 1
*


View Profile
« Reply #19 on: May 21, 2008, 02:52:34 AM »

It's already looking great. I'm glad you decided to finalize this game because K video was jaw dropping. Keep up the good work!
Logged
Pages: [1] 2 3 ... 5
Print
Jump to:  

Theme orange-lt created by panic