Welcome, Guest. Please Login or Register.  • Help
SMF Underground
+ SHMUP-DEV » RAPID PROTOTYPE SESSIONS » Older Sessions » Session 2
|-+ Session 2 Finished - vote for your favourite

Poll: Whose idea did you like the most
Poll Results Whose idea did you like the most
kmiller
the2bears
5parrowhawk
Pages: [1]   Go Down
0 Members and 1 Guest are viewing this topic. Topic Tools  
Read July 22, 2008, 10:04:17 pm #0
motorherp

Session 2 Finished - vote for your favourite

And another session comes to a close.  Thanks again for taking part folks, I'm just sorry I couldn't join in this time.  Less poeple crossed the finish line this time around but the entries all look very interesting.  Usual deal, please check out the entries and post your opinions then vote for your favourite.

PS:  If you get your entry finished sometime soon Deleter just post it up anyway and I'll add you to the list
Offline  
Read July 22, 2008, 11:33:00 pm #1
kdmiller3

Re: Session 2 Finished - vote for your favourite

5parrowhawk: Ray-Saber

It took me a while to figure out how to play, since the weapon mechanism isn't immediately obvious.  Things went a lot better once I figured that I had to actually "slash" enemies with the particle effect to destroy them.  Now I see why it's called Ray-SaberCheesy

The beam cannons work really well as enemies since they telegraph what they're doing.  I knew every death was entirely my fault and immediately saw what I did wrong, whether I wasn't looking where I was going and blundered into an active beam, tried to cross a warning beam a little bit too late, or got stuck inside a "beam trap".  That's a reaction more games need to produce, and something my projects have been severely lacking.

It also helps that the "waves" seem well-thought-out.


the2bears: Demi'bot

The game isn't as bad as you think, and I think it could be salvaged into something really interesting without a huge amount of effort.  The visual style is promising at least.  Smiley

The main thing is that the beams aren't really "fair" right now.  The smaller ships spawned when destroying a larger ship have completely random orientations, so you should add some sort of time delay and visible warning before the new ship actually starts firing its laser beam.  Once the play area starts to fill with ships and their beams, it's also impossible to avoid getting hit.  There needs to be some way to safely cross a beam, whether the beam isn't on all the time, or the player ship has some sort of defense mechanism like a teleport or shield that costs energy (or points).

One significant gameplay issue is that the player ship produces no visible reaction when hit by a beam; players don't usually look at their score, so simply docking points isn't enough.  My suggestion would be for the player ship to explode spectacularly, and then respawn at the cursor after a brief delay.  You could also borrow a play mechanic from Kenta Cho's games and dock play time (say 15 seconds) on death, and add play time by killing enemies.  The game would then become a race against the clock instead of a fixed-time "score rush".

Since the smaller ships get spawned with random orientations, the beams need some kind of delay time and visible warning so the player can avoid the beam path.  It'd also help if the ships were more "lively" and actually tried to attack you.  Right now they just sort of spin and drift aimlessly.

By the way, the Java-based "virtual console" framework seems really promising.
Offline  
Read July 23, 2008, 12:28:16 am #2
the2bears

Re: Session 2 Finished - vote for your favourite

kdmiller: spot on with your observations there.  Definitely the biggest improvements could come from warnings about the lasers, delays on them, not always on, etc.  I wanted to do something like you have in your game, where the beams are interrupted by the environment.  You pulled it off well, I assume TestSegment from Box2D?  Hasn't been implemented in the Java port yet Tongue

Bill


the2bears - the indie shmup blog
Offline  
Read July 23, 2008, 12:50:58 am #3
kdmiller3

Re: Session 2 Finished - vote for your favourite

That's exactly how I did it.  The Beam component collects shapes with b2World::Query(), filters by category and mask bits, checks for intersection using b2Shape::TestSegment(), and updates contact point information.  I use that pattern in several places, so I need to roll it up into a common utility function.  The absence of b2Shape::TestSegment() would definitely be a buzz-kill since it has no direct substitute.

One option would be to fire an invisible "bullet" at Box2D's maximum velocity and then draw the beam from the weapon to whatever point the "bullet" hit.  That's not ideal but it might work well enough in a small arena.
Offline  
Read July 23, 2008, 03:54:39 am #4
5parrowhawk

Re: Session 2 Finished - vote for your favourite

Laser Maze:

Note: I haven't tried the updated version with the improved small enemies.

Curious - what platform did you use? Just SDL?

1. Obstructions are a fantastic idea; I'm a little gutted that I failed to come up with that idea first Wink
2. I've already said this, but the little barrel things don't do much except to decoy the enemies. But we've addressed that already.
3. I'm partial to the big laser ships, mainly because I like "telegraphed" attacks. They work really well with obstructions.
4. Collision hull seems enormous for some reason. I guess it works, kind of, especially with the health mechanic.
5. Game experience is initially excellent.
6. Game is a bit easy once you get the hang of it; I think it wore out its welcome at or about the time I had accumulated 8 lives. Will try the updated version soon.
7. The visuals are really nice. I especially like the explosions and respawn effect. Very polished.
8. Why, on the controller, do I have to hold down the trigger to shoot? My index finger is sore now (although it makes for good isometric finger exercise).
9. I am curious about how you did AI. The ships don't seem to move in normal pathfinding patterns, and occasionally they get stuck, but they also seem to be reasonably clever about getting to the player.


Demi'bot:

1. Not a terrible game, despite author's protestations to the contrary.
2. My main criticism is that it doesn't do enough to distinguish itself from Asteroids...
3. The idea of a timed score attack is a good one, and helps to mitigate the problem of dying a lot and getting fed up (see: my game)
4. However, to make the timed score attack work, you need more risk/reward mechanics. I've posted a couple of suggestions on your thread. (Edit: I read the response. You probably should let the player know about that multiplier...)
5. Player ship should flash when being hit, for reasons already stated.
6. Not much else I can say that hasn't already been said. It's simple - perhaps a bit too simple - but the core ideas, I think, are reasonably sound.


And now on to responses...

kdmiller: I originally planned to make the "main menu" of the game an actual separate level, where you have some dummy targets to slash, and some targets marked "START GAME" and "QUIT" (which act accordingly when you slash them). That would have helped people to figure out what was going on, as would having appropriate effects when enemies take damage. Actually, you can hold your saber on the enemy to "burn" them, but the burn damage is minimal and takes a few seconds to kill a normal enemy (forget about killing the boss that way).
The beam cannons were implemented because I was kind of lazy and didn't want to plan movement patterns Cheesy I found out that adjusting the timing and synchronization of the cannons resulted in fairly interesting gameplay, and just ran with that. As for telegraphing, well, having played lots of Touhou, I've pretty much been psyched into the belief that telegraphing instant-hit lasers is just good manners Cheesy My main criticism of my own game is that it's pretty heavy on memorization - although, thankfully, execution is challenging enough that the game isn't *quite* playable with your eyes shut.
By the way, did you reach the boss?
« Last Edit: July 23, 2008, 04:03:07 am by 5parrowhawk »
Offline  
Read July 23, 2008, 05:15:28 am #5
the2bears

Re: Session 2 Finished - vote for your favourite

Nice to see well-thought comments.  Really fits in with the spirit of these sessions.  I've put my thoughts up on the blog, which sort of unnecessarily breaks things up.  But I need the content Wink

Bill


the2bears - the indie shmup blog
Offline  
Read July 23, 2008, 07:16:19 am #6
kdmiller3

Re: Session 2 Finished - vote for your favourite

5parrowhawk - it's an original C++ application built around a component database architecture, though it uses SDL (for creating the window, handling input, and playing sound), OpenGL (for rendering), TinyXML (for data files), Box2D (for physics), OGLConsole (for in-game console), FastDelegate (for event callbacks), and a bit of Boost (for memory pools).  I based the component database system on one used by a couple of projects at the game company where I work, though it's a lot simpler.  It's been a huge time-saver since I can add new object components with little effort.

1. I originally added the maze because I wanted an environment more interesting than the mostly-open space of my test level, but it proved its usefulness almost immediately.  Smiley

2. I put the pods in because it was easy and I wanted something besides walls and enemy ships.  They're actually quite useful as simple decoys, as that the game gets noticeably harder once they've been destroyed and the enemies focus their undivided attention on the player ship.

3. The Laser Ships were inspired by GORF's "Laser Attack" wave since that featured the first beam-firing classic arcade enemy that I could think of.  The long-duration tracer beam was a necessary concession to gameplay, as the original Laser Ships fired relatively slow-moving beams that the player ship could evade.

4. The player ship has two collision shapes, a large circle for interactions with solid objects and a smaller inner rectangle for interactions with ordnance.  Box2D's category and mask bits made this easy to accomplish.

5. Thanks.  Smiley

6. Once the Laser Ships show up and the blue pods are gone, the game doesn't get any harder.  I need to come up with a way to gradually increase the difficulty while still being fair to the player.  Maybe enemies could get faster?

7. Those use the dynamic drawlist system I added fairly early in the development of the application framework, and consist primarily of keyframed scale, rotation, translation, and color commands applied to circle drawlists along with a few "repeat" blocks that reduce the amount of typing.  I cheated a bit for the prototype by copying existing effects from my existing sandbox level, but they only took a day or so of trial and error to get right.  I was definitely happy with the result.

8. That can be changed by creating a new input XML that binds fire to the right joystick, though I just found out that I broke the Player input code so negative control axis values don't work.  I can post an updated build if you want.
Code:
<bind name="fire1" type="joystick_axis" device="0" control="4" deadzone="0.75" scale="4"/>
<bind name="fire1" type="joystick_axis" device="0" control="3" deadzone="0.75" scale="4"/>
input_dualstick.xml does that for the non-Xbox dual-stick controller I use at home, with the main difference between the two being the joystick axis control number.

9. The AI casts a ray in the direction of movement, and applies "repulsion" in the direction of the contact normal if it intersects an environmental obstacle.  This prevents the unit from ramming blindly into maze walls and losing momentum, allowing it to "glide" parallel to the wall until it finds an edge and continues forwards.  I'm investigating the more advanced obstacle-avoidance techniques described in Craig W. Reynolds' "Steering Behaviors for Autonomous Characters", but this was a decent start.

...

That "main menu" / "tutorial" level would have helped immensely.  Smiley

Beam pre-fire warning seems to be a fairly standard feature, though "tracer beams" are somewhat more recent than "glow" or "energy ball" effects.  The player always needs some sort of way to avoid attacks.

Quite a few shmups rely on pattern memorization, so there's nothing wrong with that.  At the very least, it provides a mechanism for the player to improve their game.
« Last Edit: July 23, 2008, 08:29:18 am by kdmiller3 »
Offline  
Read August 04, 2008, 11:38:47 pm #7
the2bears

Re: Session 2 Finished - vote for your favourite

Unless there are any protests, I think it's time to close the voting and declare kdmiller3 the winner Smiley

Congratulations... you've won the right to choose the next theme.  Let's try to get that sorted this week and I'll start the next session on Monday.

Bill


the2bears - the indie shmup blog
Offline  
Read August 05, 2008, 04:29:13 am #8
kdmiller3

Re: Session 2 Finished - vote for your favourite

Sorry for the delay...  I do have a theme for session 3 ready to go.  And no, I haven't already started working on a game using it!  Grin
« Last Edit: August 05, 2008, 04:48:40 am by kdmiller3 »
Offline  
Pages: [1]   Go Up
Jump to:  

Page created in 0.119 seconds with 22 queries.