Welcome, Guest. Please Login or Register.  • Help
SMF Underground
+ SHMUP-DEV » SHMUP DEV COMPETITIONS » SHMUP-DEV Competition 2k7 Round 2 [COMPLETED] » Unfinished Entries
|-+ Void Sniper (Conceded) [Source Available]

Pages: [1]   Go Down
0 Members and 1 Guest are viewing this topic. Topic Tools  
Read May 26, 2007, 06:11:09 am #0
failrate

Void Sniper (Conceded) [Source Available]

Who? failrate
What? Void Sniper
Theme? Dunno' yet Wink [update: It's options!]
I definitely want to get in on this compo.
Thanks.

Source available: http://failrate.com/b/voidSniper_source_release_1.zip

Development environment:  DrScheme, an excellent Scheme package (MzScheme to be specific).

Code:
- Option Ship
         - Following behavior - 10/10
         - Clamping behavior - 10/10
                - Front clamp - 10/10
                - Rear clamp - 10/10
         - Launch - 10/10
                - Front launch - 10/10
                - Rear drop - 10/10
- Bullet Queue system - 7/10
         - Player Bullet Queue - 10/10
         - Enemy Bullet Queue - 6/10
- Shooting function - 6/10
        - Hook up to option - 10/10
        - Void Sniper Lance - 10/10
        - Void Sniper Rifle - 0/10 X - Dropped
- Enemy sprite - 1/10
       - Moving behavior - 1/10
       - Shooting - 0/10
       - Wave macroing - 5/10
- Enemy queue - 6/10
- Mission system (DAG-based) - 4/10
- Level data format - 6/10
- Start -> Play -> Complete - 1/10
- Start -> Play -> Fail - 0/10
- Main Menu - 1/10
- Preferences Menu - 0/10 X - Dropped (Will just use config file)
« Last Edit: October 06, 2007, 08:25:15 am by failrate »
Offline  
Read May 26, 2007, 07:26:32 am #1
the2bears

Re: Void Sniper

Nice to see you sign up Smiley

Bill


the2bears - the indie shmup blog
Offline  
Read May 26, 2007, 04:09:07 pm #2
Shoot-em-upper

Re: Void Sniper

Interesting title.  Care to elaborate on the gameplay, or do you want to keep it a secret?


I came, I saw, I posted.
Offline  
Read May 26, 2007, 04:17:57 pm #3
motorherp

Re: Void Sniper

I think its hard for anyone to say just yet since the theme hasn't been announced yet  Tongue.  Welcome aboard btw failrate.
Offline  
Read May 27, 2007, 01:34:31 am #4
Adigun A. Polack

Re: Void Sniper

I want to wish you such really good fortune on your entry, failrate!!  Wink

And also, Void Sniper looks like an EXCELLENT name for your new game... now be sure to do something good with your project!!!  d=Grin=b
Offline  
Read May 27, 2007, 06:46:36 am #5
failrate

Re: Void Sniper

Awesome feedback, guys.  I have a few rough gameplay ideas for Void Sniper roughed out, but I'm waiting for the theme announcement to make sure they'll fit.  In the meantime I'll be working on my collision systems Cheesy
Offline  
Read May 29, 2007, 07:18:24 am #6
failrate

Re: Void Sniper

All right, thanks to a link from YakYak.org evil2 to schemewiki.org, I've settled on my platform...  <drumroll>
DrScheme!

It's an interactive Scheme interpreter with graphics, networking, gui, and it looks like audio, too (brief panic there where I couldn't find any sound/audio commands in the help-file...  yikes...  but then I started thinking that maybe the Void *should* be silent...  around the time I started thinking, "No, shmups just don't have the same impact without sfx" I discovered that DrScheme filters its help-docs by language setting (It supports multiple variants of Scheme, including a series from Beginning Student to experienced developer...  yes, the IDE has a *difficulty* setting...  now i know that this must be destiny LOL).

Cheesy

Also, it looks like it can export a compiled version for *nix/Windows/Mac, so that should work out.
« Last Edit: June 02, 2007, 11:33:40 pm by failrate »
Offline  
Read May 29, 2007, 03:23:31 pm #7
Shoot-em-upper

Re: Void Sniper

I've never heard of Scheme.
« Last Edit: June 18, 2007, 03:39:01 pm by Shoot-em-upper »

I came, I saw, I posted.
Offline  
Read May 30, 2007, 08:51:06 am #8
failrate

Re: Void Sniper

Scheme is a language similar to Lisp.  It is extremely simple, but also very flexible and powerful.  I've been meaning to learn it for quite a while.  Writing a game is great motivation, and Scheme is a pretty good choice.  Macros (not VB or C macros Cheesy) map very well to enemy flight patterns, bullet patterns and mission objective systems.

Screengrab from my work in progress:


The purple box is the stub Void Sniper.  This is just a sketch while I practice drawing with macros.
The blue lines don't look that bad in real life.  Perhaps an artifact of compression?

Anyhow, feeling good about my choice of platform.
Offline  
Read June 01, 2007, 07:28:48 am #9
failrate

Re: Void Sniper

w00t!  Just programmed an "orb" to fly across the screen.  Still need user interaction sorted out, but I've got the flight pattern macroing system already sussed out Cheesy  Scheme is keen!
Offline  
Read June 01, 2007, 04:14:47 pm #10
the2bears

Re: Void Sniper

Look at you coming in here with your secret weapon of a language Smiley  That's it, I'm switching to Logo.

Bill


the2bears - the indie shmup blog
Offline  
Read June 02, 2007, 10:13:25 am #11
failrate

Re: Void Sniper

Actually, Bill, i bet you could make a really awesome game in Logo.  In any case, choosing Scheme for a shmup just feels really right.  I'm going to port motoherp's collision system to Scheme as a proof of concept (Scheme is based on Lisp, which is the List Processing Language Cheesy), which I'll use for the actual coll code.

So, the theme is "options".  At first, I was skerred, I was petrified.  Then I thought about a Pygame demo about a sniper who had to pick up pieces of his gun from around the map and then kill all of the bad guys.  Okay, I thought, also real snipers in actual wars generally have a short-range soldier who protects them from assault while they attack people at range.  So, what if the options were short range fighters.  Okay, maybe as the Void Sniper, I can collect options to protect me at short range...  I have the sniper laser to take out the heavy targets, but that leaves me immobile and vulnerable.  What if I could collect hidden or protected power-ups that would give me some short-range protection...

options?  perfect Cheesy
Offline  
Read June 02, 2007, 06:16:47 pm #12
Adigun A. Polack

Re: Void Sniper

Boy, sounds like you got some REAL heavy hitters (like Scheme) to help you get a competitive edge in this compo, failrate.  And what you are doing is an excellent start so far!!  Keep going!!!  Grin !
« Last Edit: June 02, 2007, 06:56:21 pm by Adigun A. Polack »
Offline  
Read June 02, 2007, 06:39:59 pm #13
Shoot-em-upper

Re: Void Sniper

Those are great ideas.  I can't wait until the game's finished.


I came, I saw, I posted.
Offline  
Read June 04, 2007, 04:37:59 am #14
failrate

Re: Void Sniper

Currently switching between the Scheme textbook exercises and actual coding.  As a fun exercise, I decided to see how much of motoherp's collision1 tutorial I could write in Scheme.  Without really trying, I was able to get the AABB struct and collision test written:
Code:
(define-struct ab (obj pos w h))

(define (ab-collide? ab1 ab2)
  (cond
    ((< (+ (posn-x (ab-pos ab1)) (ab-w ab1)) (posn-x (ab-pos ab2))) false)
    ((> (posn-x (ab-pos ab1)) (+ (posn-x (ab-pos ab2)) (ab-w ab2))) false)
    ((< (+ (posn-y (ab-pos ab1)) (ab-h ab1)) (posn-y (ab-pos ab2))) false)
    ((> (posn-y (ab-pos ab1)) (+ (posn-y (ab-pos ab2)) (ab-h ab2))) false)
    (else true)
    )
  )
I changed AABB to ab in the code, just to safe my hands.  As you can see, the structure is pretty recognizable, very similar to the C/C++ code motoherp has in his tutorial.
Offline  
Read June 04, 2007, 09:35:03 am #15
motorherp

Re: Void Sniper

Its really awesome to see people using my tutorials to help them with their compo entries.  Perhaps I should think up some kind of options tutorial?  I dont know whether I'd be giving too much away though?
Offline  
Read June 04, 2007, 10:48:32 am #16
Five Damned Dollarz

Re: Void Sniper

No way, go for it man Cheesy
On the other note, Void Sniper is shaping up code-wise it seems, hopefully it'll be finished, your ideas sounds very cool Smiley
Offline  
Read June 04, 2007, 06:40:51 pm #17
Adigun A. Polack

Re: Void Sniper

On this project, I second Five Damned Dollarz on this one.  I for one DEFINITELY cannot wait to play it soon... and I really hope it sure turns out to be a great one in this competition, also!!  Grin
Offline  
Read June 05, 2007, 04:03:08 am #18
failrate

Re: Void Sniper

@motorherp:  I'd definitely be interested in checking out an options tutorial.  I thought your sweep and prune tute was awesome.  I knew how to do AABB collision before, but the best I could do at optimizing the number of collision tests before was:
1. Sort the collision list by moving or unmoving.
2. Test each sprite against only the sprites after it in the list (basically, shift the first element off of the list and test it against the rest of the list)
3. Stop when the first unmoving sprite is reached.

That works fine for 30 or so moving sprites, but it gets dire past 60 or more.

Not sure if I'm going to do sweep-and-prune or sort-and-shift.  Depends on how well I can grok the new language.  Ta.
Offline  
Read June 15, 2007, 05:04:49 am #19
failrate

Re: Void Sniper

I've dug deeper into my Scheme docs, kind of jumping past the tutorial (http://www.htdp.org/2003-09-26/Book/curriculum-Z-H-1.html#node_toc_start) to take a look at the MrEd doccos.  I'm pleasantly surprised that all of the high and low level drawing commands I'm used to having available in libSDL are also here.  It looks like there are some caveats about line thickness between platforms, but Mac and Windows look all blurry, anyway Wink

I've also been playing shedloads of R-Type lately whilst trying to figure out how the option would work with my Sniper ship.  Oddly enough, while a big fan of Armalyte and the Gradius series, I had never played R-Type.  I kind of wrote it off, like a Ford vs. Chevy thing.  Firing it up on my [totally legally obtained arcade system] and really learning how to use the option gave me loads of ideas.

For those of you who haven't played this game, the option is fairly large, blocks smaller enemy shots, causes damage to enemies it touches, has its own separate attack, and can link to the front *or* back of the player ship to produce a more powerful attack.  It is so incredibly useful that the main ship feels like its wimpy kid brother.  However, the main ship does have a lovely charge attack to chisel away hardened enemies, and it is very similar to the kind of charged shot I wanted for the Void Sniper Cannon.

Also, R-Type has this bug...  when you detach the option from the main ship, it actually launches a fair bit.  This, by itself, is a surprisingly effective "lance" attack.  However, the buggy part is that if you launch it too far, the option can become lodged deep inside a piece of scenery or boss monster.  So, with better collision detection, it could totally be possible to mount the option onto a wall, like a turret, until it is recalled or picked up.  The tricky bit there would be just having it face along the normal of the wall segment.  That could be great for trick shots around corners and behind the main ship.

However, it's not all lovely, as the one thing I absolutely hate about R-Type is that it is a bit difficult, and every time I start over, I have to trudge through the same levels all over again.  So, I think I'll try to do something like N by Metanet Software, where once you've unlocked a level, you can skip right past it or try to beat your score for that level.  That's the sort of thing I'd have in for debugging/playtesting, so it will mainly be a matter of making the interface permanent and nicer looking.
Offline  
Read June 15, 2007, 06:21:24 am #20
the2bears

Re: Void Sniper

R-Type was my first shootin' love, and as such is still the best.  Holds a very special place in my heart Smiley

Bill


the2bears - the indie shmup blog
Offline  
Read June 15, 2007, 10:06:49 am #21
motorherp

Re: Void Sniper

R-Type was one of my first major shooter experiences too along with Project-X.  One thing I love about the series is the way that the environments can be just as challenging as the enemies and the way the game sets up little puzzles to solve.  Damn it, now I'm feeling guilty.  I've got R-Type Final sat in my 'to-do' list and I've hardly scratched its surface.  That to-do list is growing a lot faster than its shrinking at the moment too, I've gone a little trigger happy with my credit card lately.

I'd love to see some variations and evolutions of the R-Type force mechanic like you describe.  Perhaps allowing people to shoot the option of in any direction and have it bounce of walls could lead to interesting game situations.  For example you could send the option hurtling down small gaps that would be too risky to squeeze your ship down in order to pick up power-ups down there.  Or perhaps when the path splits in two you could send the option bouncing down the path you dont take at such an angle that it destoys all the ships down that path whilst you deal with the other and meets you at the other end.
Offline  
Read June 18, 2007, 07:25:33 am #22
failrate

Re: Void Sniper

Thanks for the feedback, guys.

@motorherp: I'm still considering whether there will be any power-ups.  Part of me wants to go the direction of N (the ninja platforming game) where the character has the same abilities in every level, while part of me is considering allowing local (i.e., only available within a discrete level or set of levels) power-ups.  Again, R-Type does this very well with the ship really only getting power-ups in the form of speed boosts and Bits, while the Force option has the actual firepower upgrades.  So, maybe the difference between a bouncing option and a turret option will be a power-up?

In a brief update, I'm almost through the basic Scheme textbook (admittedly skimmed the last bit on accumulators, because I'd already been using them in exercises in previous chapters), so as a reward to myself, I flipped over to the MrEd command reference and did what I've been waiting for almost a month:


It doesn't look like much at all, but that's the first naive implementation of the player-sprite moving around onscreen.  The ego sprite is the long slanted line, on the right.  As always, one of the first "ah-ha!" moments that can really keep a body inspired.  Now, to get him to shoot the bad guys.
Offline  
Read June 22, 2007, 08:14:56 am #23
failrate

Re: Void Sniper

Worked out page flipping yesterday.  Looks like something isn't perfect, as I'm getting double-draws per page.  If I can't immediately suss the problem this weekend, I'll wait until optimization time to sort it out.
[update: I was very bad...  I was calling the draw-sprite function on ego at the end of the key-handler.  I've duly caned myself for the offense Wink  Remember folks, separate your control code from your rendering code...  think of the children.]

In the mean-time, I've itemized the list of things I need to do in order of probably-gonna-do-it:
- Option Ship
         - Following behavior
         - Clamping behavior
         - Launch
- Bullet Queue system
- Shooting function
        - Hook up to option
- Enemy sprite
       - Moving behavior
       - shooting
- Enemy queue
- Mission system (DAG-based)
- Level data format
- Start -> Play -> Complete
- Start -> Play -> Fail
- Main Menu
- Preferences Menu

Certainly, a long way to go, but no technical challenges until, maybe, the optimization step Cheesy
« Last Edit: June 22, 2007, 08:43:08 am by failrate »
Offline  
Read July 11, 2007, 09:48:01 am #24
failrate

Re: Void Sniper

Collision is in at about 5/10 completion.  Used AABBs with half-width distances instead of Mr. Herp's more elegant (and somewhat more complicated) sorting solution.  Also went with shrinking lists, where each sprite is tested against the group of all possible sprites, minus itself and any sprites tested in previous sprite<->group tests that tick.  Not as efficient, but only about 10 lines of code to pull off.

Which brings me to my favorite part of today.  While cleaning up some code, I had an a-ha moment that actually ended up with me being able to remove 10s of lines of ugly, redundant code.  Scheme has the ability to assign functions by value as well as return functions from a function.  Additionally, one can pass objects/references to objects as arguments.

So, say I have a bit of code that sets the on-move function of my Void Sniper's Plasma Lance to its nose.

Code:
(set-sprite-on-move! lance
  (lambda () (begin
               (set-sprite-pos! lance (add-posn (sprite-pos ego) (make-posn 0 -40)))
               (set-sprite-d-pos! lance (sprite-d-pos ego))))
)

That works just fine...  hmmm...  but when the Void Sniper impacts the Side Arm (option), it clamps on at a position relative to the distance from nose or tail of the V.S.

Code:
(cond
        ((< (posn-y (sprite-pos opt)) (+ (posn-y (sprite-pos ego)) (sprite-h-height ego))) (set-sprite-on-move! opt (lambda ()
               (set-sprite-pos! opt (add-posn (sprite-pos ego) (make-posn 0 -32)))
               (set-sprite-d-pos! opt (sprite-d-pos ego)))))
          (else (set-sprite-on-move! opt (lambda ()
               (set-sprite-pos! opt (add-posn (sprite-pos ego) (make-posn 0 48)))
               (set-sprite-d-pos! opt (sprite-d-pos ego))))))
      )))

That code looks awfully familiar... and ugly!  I could totally abstract out the lambdas (anonymous functions) in all three cases to a general form:


Code:
(define (lock-to-sprite s1 s2 p)
  (lambda () (begin
               (set-sprite-pos! s1 (add-posn (sprite-pos s2) p))
               (set-sprite-d-pos! s1 (sprite-d-pos s2)))))

This function actually returns the function that I'm assigning to the sprite's on-move function (called every tick to handle its movement behavior).  It replaces s1, s2 and p in the body of the anonymous function with the sprite structures and position structure that I pass it.  So now I can do the following:

Code:

(set-sprite-on-move! lance
                          (lock-to-sprite lance ego (make-posn 0 -40)))

...  AND...

(cond
        ((< (posn-y (sprite-pos opt)) (+ (posn-y (sprite-pos ego)) (sprite-h-height ego))) (set-sprite-on-move! opt (lock-to-sprite opt ego (make-posn 0 -32))))
        (else (set-sprite-on-move! opt (lock-to-sprite opt ego (make-posn 0 48)))))


Wow, I think that's a lot simpler, more readable, and it also gives me an easy way to lock any sprites to any others just by calling that generic function generator.  I was able to use a similar pattern to reduce the amount of actual code required to build an (x,y) position vector structure math library.
Offline  
Read July 31, 2007, 09:10:18 am #25
failrate

Re: Void Sniper

Whuff!  Reached a point yesterday where my code-base got large enough that I had to modularize it.  I'm going to have break down and set up version control for this.  I've tried using Perforce, CVS and SVN.  Perforce is nice, but expensive, and it leaves me a bit cold.  CVS and SVN seem excellent from reviews and documentation, but I really just don't understand their workflow.

Does anyone have any recommendations?  This is the sort of thing I could probably knock together, but the fewer side tracks I have to go down, the more I can concentrate on finishing my level and enemy wave code.
Offline  
Read July 31, 2007, 11:17:30 am #26
Korenn

Re: Void Sniper

the differences between CVS and SVN are pretty minor, it's more important that you have a client that makes working with it easy (for me that means at least graphical). So put some time in finding one that suits you.

But you're coding your shmup in scheme?  Shocked

... well to each his own I suppose, but I'd rather shoot myself in the foot than use scheme for any big project, honestly. Undecided
Offline  
Read July 31, 2007, 01:51:39 pm #27
bloated

Re: Void Sniper

As Korenn said, from the user perspective CVS and SVN are pretty similar. I would say that there are a few things about SVN that make it a little bit more convenient. However, I have found CVS to be slightly easier to set up. They each have their own concept of how the code repository works which normally you don't have to worry about but it is important to understand when you create your project.

I use the command line interfaces to both, and the syntax is nearly identical. Once you get your project set up, you will typically only use these commands:

(cvs/svn) status
(cvs/svn) update
(cvs/svn) commit
Offline  
Read July 31, 2007, 03:33:24 pm #28
hmn

Re: Void Sniper

Definitely choose SVN over CVS. It is so much nicer to work with and makes handling binary files painless.

Setting it up locally is really easy as well:

Code:
$ svnadmin create /home/me/MySvnRepositories/MyProject
$ svn import MyProjectCurrentLocation file:///home/me/MySvnRepositories/MyProject/trunk
$ svn checkout file:///home/me/MySvnRepositories/MyProject/trunk MyProjectWorkingCopy

I do this for all my projects. Though I have also been using GIT a lot recently.

The Subversion book is available online for free.
Offline  
Read August 01, 2007, 05:48:53 am #29
failrate

Re: Void Sniper

Thanks for all of your feedback, guys.  I'll definitely take another look at SVN.

@Korenn:  It's pretty easy so far, and the current version of the project is only about 800 LOC so far.  With just one template level, libs, all the old versions of the main, and a few screenshots in PNG format, my entire development folder only weighs in at "16 items, totalling 191.6 KB".  I'm hoping that by using macros and other code-generating patterns correctly, I'll be able to make the game core very concise.  That means more levels and music.
Offline  
Read August 01, 2007, 03:57:41 pm #30
Korenn

Re: Void Sniper

@Korenn:  It's pretty easy so far, and the current version of the project is only about 800 LOC so far.  With just one template level, libs, all the old versions of the main, and a few screenshots in PNG format, my entire development folder only weighs in at "16 items, totalling 191.6 KB".  I'm hoping that by using macros and other code-generating patterns correctly, I'll be able to make the game core very concise.  That means more levels and music.
Oh I'll believe you on that you can make a shmup in an incredibly low amount of lines... but my problem with scheme is its readability. I'll sacrifice code efficiency for readability any day of the week (I'm talking code that does a lot functionality-wise, not performance-wise). Especially if it means I can still read what I coded two years later.

I had major problems with small bits of scheme that inter-operated with a scheme interpreter, so I don't even want to imagine what it's like for a large project like a shmup.

If it comes out well, you'll certainly have my respect  Wink
Offline  
Read August 02, 2007, 08:03:17 am #31
failrate

Re: Void Sniper

Thanks.

The small number of lines is based on as much map/reduction and metaprogramming as I can handle.  Last night, I simplified some of my graphics code by abstracting it a bit.  You can see in a previous entry how I hacked the total code for my position vectoring math in half by reducing.

Scheme and Lisp might not be for everyone, but I'm very pleased with how expressive it is.  I can generally think of the result I would like and have something working (if not optimized) in a few minutes.

If my game is fun to play, though, is my main concern.  I'm no code hot-rodder Cheesy
Offline  
Read August 04, 2007, 06:50:08 pm #32
failrate

Re: Void Sniper

Time for a screenshot.  This one is a bit bland, although I *am* liking the simple iPod-esque lines.  Now, here's the interesting bit:

I can easily theme all of the game elements depending on level.  In fact, I'm thinking every block of N levels or so might have its own graphical theme. Yes, a bit like Everyday Shooter, and I think there's nothing wrong with that.  So, all I need to is alter the image and the image mask of the sprites on level initialization.  That's pretty easy to do with the drawing commands.

What occurred to me is that in Scheme, you can also assign functions to a struct by value.
EX:
Code:
(define-struct sprite name on-init on-update on-draw on-collide)
(define player-ship sprite "Player" (lambda ()) (lambda ()) (lambda ()) (lambda ())) <- A sprite instance which has an element called on-draw
(sprite-on-draw player-ship) <- returns #<proc>, which is a functional object
(set-sprite-on-draw! player-ship (lambda () (display "Debug code, testing on-draw"))) <- Assign a new functional value to on-draw

So, I could even change the on-draw circumstantially, perhaps altering the images procedurally?

Hmm, I'm not a big computer art boffin, but that sounds like something that might be neat to do if I finish the meat of the game with enough time to tinker.

Offline  
Read September 19, 2007, 07:36:55 am #33
failrate

Re: Void Sniper

Now that we are coming quickly to the end of the competition, it is time to wrap up all of the loose ends and kick our puppies out the door.  This is hard.

I was reading an excellent article today on Gamasutra: http://www.gamasutra.com/view/feature/1886/production_values_the_value_of_.php

Like many excellent things, it has its share of flaws.  Overall, it's quite cogent, but this passage in particular chilled me to the bone:
Quote
Producers don’t want to be the bad guy (or gal) who is only focused on the bottom-line, but when they are trying to manage a chaotic project with a shifting schedule, increasing scope, and variable resources, they often have to resort to doing what is best for the schedule in order to meet the demanding deadlines common in game development.
Shifting schedule?  Sometimes can't be helped.
Variable resources?  You work with what you can get.
Increasing scope?  Hold on a [bleep]ing minute!

If your project is in jeopardy, if you have even an iota of uncertainty about its viability, what you really ought to be doing is examining every bit of design to see what you can safely remove.  If anything fails to improve the experience for the player, you may want to just rip it up, out, and cast it away.  If it's a feature you're fond of but it doesn't work in *this* game, then gently save the code for the *next* game.  Even though modern game teams like to list all the features of their games on the back o' the box like gruesome trophies, that has surprisingly little to do with how successful that game will actually be.

So, what have I been doing?

Reducing.

I started on YAGS (Yet Another GUI System), but got bored.  Today, I decided that I would be a cheap little cheat and just recycle the portal system from a Game Maker shmup that I never released.  Instead of a real menu, I just have the player move the ship over a sprite that warps them to a given level.

Tawdry?  A tad.

Does it work?  Yeah, it's okay.

I also dropped a main weapon, a boss, and probably quite a few levels.

The remaining game will probably be quite a bit more bland and small in scope compared to what I originally planned, but I think that the result will still be a solid little demo.  I can always release voidSniper: Full Bore or something, which has more content.

I don't really want
Quote
what is best for the schedule
;  I want what is best for the game.
Offline  
Read September 30, 2007, 11:19:58 pm #34
failrate

Re: Void Sniper

And so the shmup-dev options contest comes to a close.  Void Sniper did not get completed, which is only a bit disappointing, as I learned a lot in the process.  I'd like to sum up a few things I learned in a post-mortem report.

What Went Right:
1)  Scheme.  The main reason I entered this contest was to motivate myself to learn the language Scheme.  It seemed to have a few strong aspects that suit shoot-em-ups.  This turned out to be a correct assumption, as many language features worked really well for the kind of engine I built.  Additionally, I was successful in achieving an intermediate level of proficiency with the language.

2)  Interactive Development.  Again related to Scheme, but possible with any language, the ability to load up the game client and then manipulate in-game data and functions from a text interface made experimenting with different speeds and variables a snap.  I would recommend anyone working on an engine to put an interactive console in as early as possible.

3)  Keeping a journal.  I was able to use this thread as a journal.  Also, keeping a running completion ratio in the topic head helped me plan out pieces of the project.

What Went Wrong:
1) Scheme.  Deja vu!  Actually, although I found Scheme to be a very good language, and the whole reason I entered the contest, if I had actually wanted to win, I probably would have used a prebuilt engine.  I spend all of my time developing engine code and didn't really have the wherewithal to make levels.

2)  Working alone.  I've noticed that some people can be very prolific working on their own.  I'm not really one of them.  I think I will try to find at least an artist to work with for the next contest.

3)  Audio.  Very late in the project, I discovered that DrScheme's audio support was much worse than I had expected.  It's all my fault for not testing it immediately, but I didn't want to deter myself from starting with the chosen language.  In the final days, I contemplated and researched how to write an interface for Scheme to use libSDL's mixer module, but I just couldn't compel myself to start another full-scale project.

4)  Demos.  I didn't provide any demo releases, so I didn't get as much feedback as I could have otherwise.  Perhaps if I had released playables, I could have gotten enough feedback that (2) wouldn't have been as much of a morale problem.

Future Plans:

I will definitely be entering the next contest, and I might be using a Scheme-based engine again.  One possibility is *embedding* a Scheme interpreter into a libSDL or openGL-based engine.  That would certainly be something I would like to see.  In the mean time, I will be cleaning up the Void Sniper code a little bit and posting it, so if anyone interested in Scheme or LISP-like languages can take a gander.

Ta!
Offline  
Read October 01, 2007, 12:22:20 am #35
the2bears

Re: Void Sniper (Conceded)

Hey, I know all about the time crunch.  Sorry to see that I won't be able to test this out (or maybe I can?  Wink ) but top marks for an honest postmortem and I'm glad you'll stick around for the next contest.

Bill


the2bears - the indie shmup blog
Offline  
Read October 01, 2007, 03:34:17 am #36
failrate

Re: Void Sniper (Conceded)

Yeah, time, and also focus.

In any case, I am going to be posting the full source here, and likely a Win exe later.
Offline  
Pages: [1]   Go Up
Jump to:  

Page created in 0.177 seconds with 20 queries.