Welcome, Guest. Please Login or Register.  • Help
SMF Underground
+ SHMUP-DEV » RAPID PROTOTYPE SESSIONS » Older Sessions » Session 12
|-+ Slackluster's Entry - Spaghetti Planet (Done)

Pages: [1]   Go Down
0 Members and 1 Guest are viewing this topic. Topic Tools  
Read May 23, 2009, 03:24:08 PM #0
Slackluster

Slackluster's Entry - Spaghetti Planet (Done)

SPAGHETTI PLANET

I have made some improvements since the end of the session, you can get the latest version on my website:
Visit my website to download

Watch gameplay video



Controls
--------
WASD or D-Pad - Movement
Left mouse - Shoot
Right mouse - Switch to another tentacle (or hold it down to wave all your tentacles)
Left+Right mouse - Spread fire
Alt-Enter - Press to toggle fullscreen (recommended)
Space - Pause

Gameplay Description
--------------------
You are a flying spaghetti monster and must save the planet from the invaders.  The only way to refill health and ammo is by touching enemies.  Enemies can't hurt you when you are touching them but instead give health and ammo.  The best way to do this is to wrap them up in your noodles and carry them around with you.  The main trick is to reach out and make a quick circle around an enemy then when they are wrapped up press right mouse to switch to another noodle.  It is very important to switch noodles so the enemies wont come unwrapped.  With a little practice you can layer them up like lasagna.  The red enemies wont attack the buildings, only the yellow balls and green blocks attack the buildings.  Act fast to save the buildings before they are destroyed or you will die.  Watch the video for a demonstration of how to play.

Technical Info
--------------
I have been working on my own 2d game engine for a while now so this was a really good test.  I had to put in a lot of work and make some changes though.  So I started out by making the player composed of several noodles made out of physical chains. Randomly wandering springs are attached to each link to produce some movement.  The player itself is actually a small round ball that only collides with static objects (buildings and terrain).  Pick is accomplished by pulling an end of one of the noodles towards the mouse position with a spring force.  It took some tuning to get everything but was definitely the funnest character to program that I've ever worked with.  You can press F2 to show the physics debug info if you're interested. 

I coded up some buildings with windows that represent damage.  I put a random star pattern with some parallax.  On top of that atmosphere texture to represent time of day.  The terrain and object placement is already part of the engine so that was easy.  The clouds are just big particle emitters which are also part of the engine, but did require a bit of custom work.  The enemies spawn in randomly from space every minute in increasing numbers.  I didn't have time for a real score system so I just put in a timer.  The water is just fake Wink  The engine already has a really nice sub frame interpolation system built in so it should be able to support any monitor sync rate without jitters. 

If you get a missing dll error, try updating directx at
http://www.microsoft.com/downloads/details.aspx?FamilyID=0cf368e5-5ce1-4032-a207-c693d210f616&displaylang=en
« Last Edit: October 14, 2009, 12:42:35 AM by Slackluster »
Offline  
Read May 23, 2009, 04:00:46 PM #1
moosa

Re: Slackluster's Entry - Spaghetti Planet

Heh cool. Glad to know some of you can pop out a prototype in a couple of days. Roll Eyes
Offline  
Read May 23, 2009, 10:33:04 PM #2
Dorkpunk

Re: Slackluster's Entry - Spaghetti Planet

Flying spaghetti Monster FTW!
http://www.venganza.org/
They have a game as well...
http://www.venganza.org/games/index_large.htm

Offline  
Read May 23, 2009, 10:52:32 PM #3
moosa

Re: Slackluster's Entry - Spaghetti Planet

A mock-religion spreading closed-mindedness. How charming.
Offline  
Read May 23, 2009, 11:32:45 PM #4
the2bears

Re: Slackluster's Entry - Spaghetti Planet

A mock-religion spreading closed-mindedness. How charming.

Or combating it.  Different perspectives and all that.  Let's leave this for now, no need to open up a discussion on religion here.

Bill


the2bears - the indie shmup blog
Offline  
Read May 24, 2009, 12:49:46 AM #5
moosa

Re: Slackluster's Entry - Spaghetti Planet

Different perspectives = good. Generalizing and mocking different perspectives = bad. That's all I have to say. Grin
Offline  
Read May 26, 2009, 03:54:23 AM #6
Slackluster

Re: Slackluster's Entry - Spaghetti Planet

I just put up the final version of my entry.  I started late but put in a ton of work over the past few days.  I hope you like it and it runs well for everyone.  I'd appreciate any feedback but also if you can tell me your best score and also press F1 and tell me the fps in a high load situation.  Also I recommend switching to full screen by pressing alt-enter.

The gameplay is a little tricky but I think it works well once you get the hang of it.  It's all about using your noodle and getting enemies stuck inside you so you can digest them.  You will need to carry a few around with you at all times to survive.
Offline  
Read May 28, 2009, 03:17:59 AM #7
moosa

Re: Slackluster's Entry - Spaghetti Planet (Done)

It seems like I die every time the timer reaches 250. What the heck is up with that??  Huh?

Haha, actually, that's the only thing I can think of to nitpick about this game. It's all very impressive, and nothing really stands out to me as a real problem. It's really fun to play. Great job. Smiley
Offline  
Read May 28, 2009, 03:56:18 AM #8
Slackluster

Re: Slackluster's Entry - Spaghetti Planet (Done)

Thanks!  You probably died because you need to protect the buildings and they all got destroyed and when they get destroyed it's game over.  Probably just a coincidence that it was 250.  I posted a link at the top of this thread to an updated version with a simple scoring system where you get a point for every enemy you kill instead of a timer.  It also keeps track of high scores.

- Frank
Offline  
Read May 28, 2009, 06:11:35 AM #9
moosa

Re: Slackluster's Entry - Spaghetti Planet (Done)

Actually a couple of buildings were on the screen the last time I played. And as far as I could tell, every time I ended up dying like that the timer was at 250. I'll try it again to make sure.
Offline  
Read May 29, 2009, 05:42:36 AM #10
Mr.Keng

Re: Slackluster's Entry - Spaghetti Planet (Done)

this looks sweet, what language do you use?  it looks really fluid.
Offline  
Read May 29, 2009, 02:31:17 PM #11
Slackluster

Re: Slackluster's Entry - Spaghetti Planet (Done)

I used a custom game engine I have been working on written in C++ with DirectX and Box2d libs.  Thanks for saying it looks fluid, that was one of my top goals with the engine.  It accomplishes this by doing sub frame interpolation so even though the game and physics run at 60 fps it will render with interpolation to match the monitor's refresh rate.
Offline  
Read May 29, 2009, 10:39:40 PM #12
berilium

Re: Slackluster's Entry - Spaghetti Planet (Done)

Slackluster, your game... I don't know. It doesn't have a story, but by just playing it somehow tells one. It is like when you go to the art museum and you give the art your own interpretation. So this is mine: I was playing Spaghetti Planet and see that creature. It looks lonely and sad but committed to protect a planet that maybe it doesn't even belong to. Where inhabitants mind their own business. Despite that, the creature gives all and even its own life. When that happens, when offending forces' power overtakes, it's rather sad to see it helplessly falling apart.

I think it is because it plays very smooth and the objects' speed is perfect and graphics have the mood that adds deepness to the gameplay. Very well done. I like it  Smiley
Offline  
Read May 29, 2009, 10:46:24 PM #13
moosa

Re: Slackluster's Entry - Spaghetti Planet (Done)

*sniffle*
Offline  
Read May 30, 2009, 02:21:58 PM #14
Slackluster

Re: Slackluster's Entry - Spaghetti Planet (Done)

Ha, thanks for the comments, berilium!  That is very close to the story I get from it too.  I turned out a bit sadder then I planned, I think partly because the player's death and the planet's destruction is inevitable even with perfect play.  That is something I'd like to improve.
Offline  
Read May 30, 2009, 10:02:52 PM #15
moosa

Re: Slackluster's Entry - Spaghetti Planet (Done)

Epic storyline must happen.

Edit; request must be made:
Please incorporate velocity-based destruction. Being able to spin ships around through the air with my noodley appendage and send them flying to the earth with a satisfyingly sound "POP" would be a dream come true.  Cheesy
« Last Edit: May 30, 2009, 10:16:34 PM by moosa »
Offline  
Read June 04, 2009, 03:35:56 PM #16
Slackluster

Re: Slackluster's Entry - Spaghetti Planet (Done)

I put up a new version with some improvements.  Enemies now take collision and fall damage as requested by moosa.  You can shoot at buildings to repair them.  I also threw some physics on the water and made a bunch of other small fixes and improvements.
« Last Edit: June 04, 2009, 04:03:43 PM by Slackluster »
Offline  
Read June 04, 2009, 11:58:18 PM #17
moosa

Re: Slackluster's Entry - Spaghetti Planet (Done)

Cheesy

Edit: Its very difficult to actually throw enemies with any significant force as it is. However, I've found body slams to be effective. Cheesy

It does feel better now that you can heal buildings and such, so that the coming doom does not feel nearly so imminent. However, I found that I kept dying quite unexpectedly long before my buildings were destroyed. I wonder if perhaps you could tighten up the controls so that dodging was a little more of an option, and therefore the player could be in a little more control over whether or not they take damage. I do still like the feeling of rampaging (heroic) monster and having to rely on consuming enemies to keep your health up, things which set it apart from other dodge-heavy shmups, but I don't like not feeling like it's without a doubt a fault of my own when I end up dying. It may also help a little if you could make the health gauge flash or something to make it apparent when your health gets low.

Also, it seems like the enemies come in waves, but I'm not sure. If they do, it may be helpful if you announce the coming of each next wave in a more obvious manner. Doing so would not only be informative to the player, but could also create a bit more of a feeling of tension and even accomplishment as they player is able to clear each wave. Perhaps look to Defender and the feelings that game creates, if that is indeed the sort of direction you'd like to take this game.

A couple other small issues I've noticed:
-Wrapping up enemies and keeping them there is manageable but still a little finicky, particularly with anything larger than the small red ships. The fact that your noodles aren't attached to anything on the other end can sometimes cause enemies to slip right through your grasp.
-I managed to leave one of my noodles completely behind stuck to the side of a building.
-The firing sound effect becomes significantly louder the nearer the mouse is to the center of your monster.


I was going to offer to help out with the music, if you were in need, but to be honest I don't really feel right about supporting the whole FSM thing... Undecided Not to make a big deal of it or anything, but I simply don't agree with their approach and purposes. I do really enjoy your game, however.
« Last Edit: June 05, 2009, 12:46:17 AM by moosa »
Offline  
Read June 06, 2009, 03:40:39 PM #18
Slackluster

Re: Slackluster's Entry - Spaghetti Planet (Done)

Moosa, thanks for all your comments and play testing, it really helps!

Throwing the red guys is a little tricky because they will try to resist by flying.  Maybe I'll change it so they can't move for a second or so after being thrown by the player.  Body slams do work quite well though Wink

Overall I think the game is too easy now since I can play indefinitely with building repair.  I just played and scored over 1000 before I had to stop because I knew difficulty wasn't going to increase any further and I was fully replenishing the few buildings left after each wave. 

I hear what you are saying about dodging being difficult due to the slightly loose character control.  But I still think dodging is a crucial skill that is possible at least the majority of the time.  While it's not possible to dodge every single single shot fired, the few unavoidable shots shouldn't make that much of a difference.  Part of that is avoiding situations where you are going to be bombarded, paying attention to the radar and carrying around enemies to heal you.  You have to dodge with your arm also because when fully extended your character is much easier to hit due to increased length. 

I want to put in better indicators when the player is taking damage.  I don't know if you noticed but there is already a heartbeat sound that kicks in when you are about half dead and gets progressively louder.  I think it needs a sound effect or flash like you mentioned when you are hit.

I totally agree on the waves thing.  It is sort of rough right now and I'd like to add more enemy types and make the waves come in cycles.

About wrapping with the noodle, are you using the right mouse button to switch noodles?  Enemies can sometimes slip out but if you wrap them under multiple layers it's possible to securely carry a few guys around.

Noodles getting stuck behind is definitely a bug that I have yet to address.  If I expand on this to a more polished game I will make it so if one of your noodles gets pulled to far away by you it will die and disappear and you will eventually grow a new one.  I may even add enemies that try to pull your noodles away.

The firing sound is coming from the end of the noodle.  The ears (or sound sensing organ) are in the center of it's body, maybe that's what the meatballs are for?  So think about it as if you had a really long arm and were reaching out shooting a gun.  It would sound louder when you are holding the gun close then when your arm is fully stretched out.

I'm sorry to hear you are anti FSM.  My game is not directly related to that religion even though they are both centered around a similar creature.  I originally thought of the game concept in more of abstract sense and was more inspired by abstract art specifically Kandinsky, but after some thought decided that the easiest way to describe the player character was a "flying spaghetti monster" and just went with it.
Offline  
Read June 06, 2009, 11:54:54 PM #19
moosa

Re: Slackluster's Entry - Spaghetti Planet (Done)

Sorry if I jumped to conclusion about that; I guess it just seemed too obvious that this flying spaghetti monster and that flying spaghetti monster must be one and the same. If that connection didn't seem so obvious, then I would have no problems supporting this game in that way (assuming you would even be interested in such an offer). However, to be clear, it is not my intention to try and get you to change anything about your game for this reason, so its entirely your choice.

Just to mention briefly about the firing sound; the reason I had pointed it out is that it seemed to get really loud when it was very close to the center. I also think it usually makes more logical sense in the players mind when the positioning of sounds is based more relative to the camera or viewpoint in the game rather than relative to the player object in 3rd person games. As far as the heartbeat sound, I hadn't noticed it at all, but I'm pretty sure that's because my laptop's speakers are unable to produce any sounds under ~ 100 Hz.
« Last Edit: June 07, 2009, 12:02:18 AM by moosa »
Offline  
Read June 08, 2009, 01:34:57 PM #20
mpersano

Re: Slackluster's Entry - Spaghetti Planet (Done)

THANK YOU, Slackluster. I had never heard about sub-frame interpolation before, but after reading your write-up I did some research and some tests, and that definitely looks like the right way to go - now I'm getting silky-smooth animations even when updating the game logic at 20Hz. A game I did a while ago suffers from "stuttering" (temporal aliasing) on slower machines, and that could be fixed with sub-frame lerping. I'll definitely go that way in future projects.
Offline  
Read June 11, 2009, 05:29:28 PM #21
Slackluster

Re: Slackluster's Entry - Spaghetti Planet (Done)

moosa: I hear what you are saying about the sounds.  I like to experiment with new ideas though so I set up my 2d game engine using directx 3d sound where the listener is player/camera.  One of the cool things I get from this is stereo sound which not many shooters have.  Maybe I need to play around with how the sounds decay over distance though.  There's also a bug I'm looking into where far away sounds don't totally fade off like they should.

mpersano - I'm glad I was able to help!  I agree that sub-frame interpolation is totally awesome.  Another really cool thing you can do with it is slow down time without any stuttering.  I also recommend sub frame interpolation support for particle emitters which is separate but related so fast moving objects with attached emitters spawn particles correctly over the length of their distance moved each frame.
« Last Edit: June 12, 2009, 01:00:44 AM by Slackluster »
Offline  
Read June 11, 2009, 11:08:19 PM #22
berilium

Re: Slackluster's Entry - Spaghetti Planet (Done)

I set up my 2d game engine using directx 3d sound where the listener is player/camera.

I am also using DirectX 3D for my sounds in my mini engine (although I don't have sound file to add yet haha). What I want to experiment with is doppler effect.
Offline  
Read June 12, 2009, 04:30:00 PM #23
Slackluster

Re: Slackluster's Entry - Spaghetti Planet (Done)

That's cool!  I think Doppler should just happen automatically.  If you aren't hearing it try cranking up the distance factor parameter of the listener.   Also make sure you are passing in the velocity of sounds when they are played.  I expanded the distance where sounds play at max volume and that seems to help with what moosa was saying.
Offline  
Pages: [1]   Go Up
Jump to:  

Page created in 0.125 seconds with 18 queries.