Welcome, Guest. Please Login or Register.  • Help
SMF Underground
+ SHMUP-DEV » RAPID PROTOTYPE SESSIONS » Session 15
|-+ N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Pages: [1]   Go Down
0 Members and 1 Guest are viewing this topic. Topic Tools  
Read October 09, 2009, 06:33:52 AM #0
N

N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Greetings to the board.

I'm working on a dual-stick shooter, tentatively titled SPACE GUN EXPLOSION.
Megaweapon is a 3-level charge with varying effects.


I can't guarantee that I will have anything playable in time for this competition's end; this is the first project I've worked on since my main hard drive died.  Won't keep me from releasing a game eventually, but everything is being scratch-built here from object.h on up. 

I have a rather aggressive timeline I'm trying to stick to.  Met most of my goals for today: IDE is set up, project skeleton is in place, SDL works, and before I go to bed I plan on having a circle that responds to player input.  Tomorrow should bring enemies and bullets.  I'm really not looking forward to "level script file parser day."

Good luck to all the participants.


[edit]
Uploaded a new executable that allows you to play through to the end.  Nothing at all happens past the carrier waves, but it should be at least a mild challenge to play through without dying.
« Last Edit: October 21, 2009, 09:56:56 PM by N »
Offline  
Read October 10, 2009, 09:04:15 PM #1
berilium

Re: N.entry = [SPACE GUN EXPLOSION]

I'm working on a dual-stick shooter

I actually have wished people making arena shooter consider dual-stick. Mainly because I suck at playing with wasd/mouse combo. But then again I suppose not every one has a dual-stick plugged into their PCs.

Looking forward to try your entry!
Offline  
Read October 11, 2009, 11:36:37 AM #2
N

Re: N.entry = [SPACE GUN EXPLOSION]

Sorry, it's an autoscroller rather than an arena shooter.  Apologies to anyone else who doesn't have a joypad; I don't think I have time right now for a backup control scheme.  It will be addressed eventually, but it's unlikely for the deadline.  Possibly a Robotron-esque WASD/cursor 8-way setup.

Thus far the scheule has slipped about a day, which could be disasterous.  That time is currently being pulled from my 3 days scheduled polish time.

Should have some screenshots by the 13th when the wave and bullet managers are running.
Offline  
Read October 12, 2009, 03:28:31 AM #3
moosa

Re: N.entry = [SPACE GUN EXPLOSION]

Interesting to see how disciplined you are with your time. We all come here with different backgrounds, approaches and expectations, and its nice to see all the different skills everyone brings to the table.

I'd like to point out that I don't have a dual-stick setup to use for this, and some others here may not as well, as you probably expect. There shouldn't be anything to stop you from making a dual-stick game if that's what you want to make, but I for one would like to have a chance to play your prototype via an alternate control scheme. Just throwing it out there!
Offline  
Read October 14, 2009, 09:55:28 AM #4
N

Re: N.entry = [SPACE GUN EXPLOSION]

Alternate control scheme is the top priority post-completion task.

To be honest, I'm not entirely sure what I'd want to do for it.  I'm sticking with the "enemies come at you from all sides" feel of something like Geometry Wars.  I might be able to throw in a Warning Forever style fire cone, but the most likely plan is something like z: concentrated fire  x: spreadfire  c: rear spreadfire.  Implementation of superweapons would also need to change pretty drastically.

Assuming that I'm able to finish by the deadline, of course.  Sunday and yesterday I was mostly KO'd with some unspecified illness.  Fortunately the framework is very nearly done.
Offline  
Read October 15, 2009, 04:52:07 AM #5
moosa

Re: N.entry = [SPACE GUN EXPLOSION]

I don't see what's wrong with a WASD/Mouse setup. Some may argue that there's issues with that, but I can't think of another "alternative" scheme that could work as well.
Offline  
Read October 15, 2009, 08:33:20 AM #6
Yumil

Re: N.entry = [SPACE GUN EXPLOSION]

I don't see what's wrong with a WASD/Mouse setup. Some may argue that there's issues with that, but I can't think of another "alternative" scheme that could work as well.
WASD+Numpad mehbe

Eight direction+subdivision for stuff like 8+9 and 1+4 etc = 16 directions. It wont be as accurate as dual stick, but itll be close and far less distracting than a mouse.
Offline  
Read October 16, 2009, 12:41:50 AM #7
jakman4242

Re: N.entry = [SPACE GUN EXPLOSION]

Or WASD + arrow keys, since not all laptops have numpads.


My game design blog -- A bit outdated, but you might like to take a read anyway~
Or read my new blog!~ (which I do update)
My blog.
Offline  
Read October 16, 2009, 02:19:37 AM #8
moosa

Re: N.entry = [SPACE GUN EXPLOSION]

Yes, but for a game designed to be dual-stick, 8 directions can be a pretty significant handicap. And I've never heard of the numpad subdivision thing, but I can't imagine trying to use so many keys as directional input. I think I'd have a pretty hard time with that. Actually, I have a hard time using the numpad even for 8-direction input.
With WASD/Mouse, it may divide your attention, but it's still quite intuitive and does not sacrifice functionality.
Offline  
Read October 16, 2009, 09:42:37 AM #9
Korenn

Re: N.entry = [SPACE GUN EXPLOSION]

And I've never heard of the numpad subdivision thing, but I can't imagine trying to use so many keys as directional input. I think I'd have a pretty hard time with that. Actually, I have a hard time using the numpad even for 8-direction input.
I think he just means being able to press both 1 and 2 for the direction between the two.

You can also use the mouse in a directional sense instead of moving a targeting pointer. Takes some getting use to, but moving the mouse right/left right to turn clockwise/counterclockwise does work.
Offline  
Read October 16, 2009, 08:53:23 PM #10
N

Re: N.entry = [SPACE GUN EXPLOSION]

Update:

I was starting to worry that I wasn't going to be able to finish this on schedule.  I never actually caught up on the two days I missed, and I managed to slip another half-day.

But - a bit after lunch, I got enemy waves spawning.  All the resource managers are tested and working, and by the end of the night I'll have firing routines hooked up for the player and enemies.  I think my two days of code design on paper before I opened the compiler were a huge help.  I only missed two components in the intial design, and I had something like actual specs to work from.

It's been a grind.  Past the basic input and animation engine, most of the pieces had dependencies to the point that nothing could be tested until everything was finished.  On the plus side, so far things have just worked.  I haven't encountered anything more serious than linked list iterator bugs - knock on wood.

So the engine is there.  Hopefully 3 days is enough to get the gameplay as well.
Offline  
Read October 17, 2009, 01:33:58 PM #11
N

Re: N.entry = [SPACE GUN EXPLOSION]

Keyboard input is in.  Those without gamepads, rejoice.
Currently WASD move, cursor keys to fire.

Given that the game runs in vertical tate mode with a weird aspect ratio, I'm testing 30 degree angles for the diagonal keyboard attacks.  To me it feels a lot more useful.

Sorry I still don't have any screenshots up.  I'm busy scripting out the demo level but the art is still on the back burner.  It's literally a bunch of Cheesy flying around plinking shoots at the player at the moment.


...if I get the chance, I have an idea for a fun Easter egg.
Offline  
Read October 18, 2009, 06:08:53 PM #12
CaptainJustice

Re: N.entry = [SPACE GUN EXPLOSION] (picture!)

Oh lord, I like that screenshot.
Offline  
Read October 18, 2009, 11:20:44 PM #13
kdmiller3

Re: N.entry = [SPACE GUN EXPLOSION] (picture!)

Oh lord, I like that screenshot.

Awesome smiley is awesome!  Grin
Offline  
Read October 19, 2009, 11:52:01 PM #14
N

Re: N.entry = [SPACE GUN EXPLOSION] (picture!)

Next time I do this, I'm going to have a finished engine.

Crunching to get this done in the next few hours.  There may or may not be a boss.  I remembered just an hour or so ago that I hadn't implemented my superweapon yet.  It's... um... still in the works.

I'll have a game tonight.  Maybe by midnight in western Alaska.  In the meantime, have some slightly-more-finished artwork.
Offline  
Read October 21, 2009, 10:49:55 PM #15
N

Re: [SPACE GUN EXPLOSION] - a speedhack postmortem

So I thought I'd add a little bit of a postmortem here.  While I'm not thrilled that I wasn't able to get a (working) demo up in time, I'm pretty pleased with the results.

The good:
Initial planning stage solved quite a few problems before they started.  Getting the code outlined on paper before I opened a new project file helped a lot.

I had a mental schedule I stuck to.  Dependencies kept a few tasks from completing on time, and I should have had a paper copy, and it slipped steadily, but it mostly worked.

Most of the gameplay is implemented with simple script files.  The level script has all the necessary resources defined, and adding new graphics or enemies is just a matter of creating a new text file.

The bullet system is a lot more flexible than is apparent in the gameplay.  I ran out of time long before I ran out of plans.  There's support for bullets spawning bullets and so forth.

I put together object managers that handle garbage collection pretty well.  My bizarre non-STL solution for resource allocation (virtual stack of free objects pointing to a static array) gave me O(1) insertions and deletions but kept the data in a nice linear block of memory.

Gameplay is pretty fun - to me, at least.  I'm looking forward to finishing the game.

The bad:
Crunch time at the end of the project had me spinning my wheels with no actual progress on the showstopper bug.  Took yesterday off and fixed it in an hour today.  Crunch also resulted in some really terrible code being added to the project on Monday night.

The object managers (sprite, bullet, enemy, event) aren't templated.  Some of the objects interface in complicated and incorrect ways.  In theory having a game layer and render layer be separate entities is pretty useful, but in practice having enemy and bullet objects crosslinked with the corresponding sprite objects caused giant headaches when encapsulation broke.

The superweapon is poorly implemented and integrated.  Enemies move too quickly and the waves spawn too frequently to get much of any use out of the extremely slow charge.  On a related note, the final superweapon design is almost completely unlike the initial plan, mostly because I ran out of time.

Most of the gameplay is via text files, but the bullet scripting is all in code.  I didn't have time to write a parser or learn to use BulletML.  Related, the level script badly needs an editor and I need a system to automatically calculate which resources are needed from the wave and boss data.

SDL doesn't support rotozooming on sprites or a lot of other basics.

The pastel bullets were kind of a joke that accidentally got left in.  The Grin looked good shooting flashing rainbow bullets at you, but it's pretty jarring with the more realistic enemies.


I didn't mean to make this the traditional "X good, X bad" postmort, but it just kind of worked out that way this time.  I imagine I'll have what I initially planned on - a 9:30 demo to match the song I picked - by the end of the week.
Offline  
Read October 22, 2009, 03:05:24 AM #16
kdmiller3

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

That turned out really well, especially considering that you started from scratch!


"SDL doesn't support rotozooming on sprites or a lot of other basics."

That's why I use OpenGL.  Grin

I found that GLFW and BASS work together nicely as a substitute for SDL if you go the OpenGL route.  They're both impressively feature-packed for their small size.
Offline  
Read October 26, 2009, 05:45:39 AM #17
N

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

In case anyone is interested - and I rather hope someone is - the work continues after a brief hiatus.  By the end of the week I shall try to have a full 10-minute demo to match the music track I picked.

I'm mostly on polish and gameplay by now, which is nice.  Today the collectible widgets went in - rather than powering the charge attack by damaging enemise, it's now necessary to harvest their green triangles to fuel your bombs.  I find it rather amusing that this increases the difficulty of the game significantly simply because of the changes it causes in your gameplay.

I've got sound support but no proper sound manager yet nor SFX that I can stand.  There's a sprite layering issue that I'm working out and then I shall have proper particle effects, impacts, and explosions.  A proper menu is relatively low on the to-do list, and that goes hand in hand with font support.  Fonts lead to displaying things like points, though I haven't decided whether I'll have many mechanisms for advanced scoring opportunities.

The biggest wishlist item I have right now is an in-game level script editor, with point-and-click spline creation and a few other shortcuts.  I have started storyboarding out the level, and that's doing quite a bit to speed things up as it is.
Offline  
Read October 27, 2009, 08:13:57 PM #18
CaptainJustice

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Uh. I got a Blue Screen of Death when I ran either .exe
Offline  
Read October 28, 2009, 02:18:52 AM #19
N

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Thank you for the bug report.  So far you're the only person this has happened to, so you are a valuable data point.

Does it happen immediately every time you run the program?  What is your OS and your system specs?
Offline  
Read October 28, 2009, 06:40:41 PM #20
CaptainJustice

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

ho boy. Lets see.

I use vista 32 SP1!
And I believe there's a Intel Core Duo or something like that inside there!
Um. A Geforce8800 for graphics!
And like 2gb of memory

uh

And yeah, I run it and it's like CLICK!BLUE.
Offline  
Read October 28, 2009, 11:09:10 PM #21
kdmiller3

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

That sounds like a driver problem, either graphics or sound, or memory.  Make sure you have the latest drivers for each, and try running Memtest86+ to check for memory errors.
Offline  
Read October 29, 2009, 01:14:27 AM #22
N

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Well, I'm concerned about it being a Vista-based problem.  Thus far all of my testers are XP-based, though I have someone with Windows 7 lined up to try it out in the next few days.

---

I'm also approaching a more complete version, with stuff like scoring and bosses and more than 2 minutes of gameplay.  Should I post a post-comp version in this thread, or move it to one of the other fora?
Offline  
Read October 29, 2009, 01:30:22 AM #23
jakman4242

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Well, I'm concerned about it being a Vista-based problem.  Thus far all of my testers are XP-based, though I have someone with Windows 7 lined up to try it out in the next few days.

---

I'm also approaching a more complete version, with stuff like scoring and bosses and more than 2 minutes of gameplay.  Should I post a post-comp version in this thread, or move it to one of the other fora?

I somewhat doubt it's a Vista-based problem, although it's entirely possible

And, I think this topic should do fine.  Cool


My game design blog -- A bit outdated, but you might like to take a read anyway~
Or read my new blog!~ (which I do update)
My blog.
Offline  
Read October 29, 2009, 01:36:42 AM #24
CaptainJustice

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

That sounds like a driver problem, either graphics or sound, or memory.  Make sure you have the latest drivers for each, and try running Memtest86+ to check for memory errors.

There are MEMORY DRIVERS?

Oh lordy. That sounds like a job for FOUR DAY WEEKEND MAN.
Offline  
Read October 29, 2009, 05:09:50 AM #25
kdmiller3

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

There are MEMORY DRIVERS?

Oh lordy. That sounds like a job for FOUR DAY WEEKEND MAN.

Fortunately, no.  Grin

Drivers and memory are separate issues, but both can cause the blue screen of death.  Memory errors can cause all sorts of baffling problems, including but not limited to system crashes.  Does anything else crash like that?
Offline  
Read October 29, 2009, 02:57:21 PM #26
N

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Actually, the good news (for Cap'n Justice) is that this seems to be a known issue with some versions of SDL, some versions of MinGW, and Vista.  Your system is almost certainly fine.

The bad news for me is that this appears to be a randomly occurring issue involving some combinations of versions of SDL, MinGW, and Vista.  I'll try to get someone to compile it in some version of DevStudio when I finish it.

In the meantime, some bitmap fonts.  Have some test output.  Exciting!  (not really)  About ready to do the big level script overhaul and write the boss.
Offline  
Read October 29, 2009, 04:54:37 PM #27
kdmiller3

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

Actually, the good news (for Cap'n Justice) is that this seems to be a known issue with some versions of SDL, some versions of MinGW, and Vista.  Your system is almost certainly fine.
I wonder how they managed to pull that off... Grin

Quote
The bad news for me is that this appears to be a randomly occurring issue involving some combinations of versions of SDL, MinGW, and Vista.  I'll try to get someone to compile it in some version of DevStudio when I finish it.
I could do that for you, since I use Visual C++ 2008 Express all the time.

(If you want to go all-in with OpenGL, you could switch from SDL to GLFW and BASS.)
Offline  
Read October 30, 2009, 11:18:18 PM #28
CaptainJustice

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

I think I have an idea, too. I was finally getting started with the SDL part of my program, the other day, and it would BSOD if you tried to cin or cout something.

This is probably tied to that in some way!

Or, I have to check my memory. :C
Offline  
Read October 31, 2009, 03:06:43 AM #29
kdmiller3

Re: N.entry = [SPACE GUN EXPLOSION] (fixed executable)

At least checking memory doesn't cost you anything but time.  Smiley
Offline  
Pages: [1]   Go Up
Jump to:  

Page created in 0.077 seconds with 17 queries.