Attack of the Alien Space BeetlesTest!

Community Forums/Showcase/Attack of the Alien Space BeetlesTest!

sswift(Posted 2007) [#1]
Click here to download demo. (See below for new demo.)

This demo shows off some of the art from the game, namely an animated scrolling space background, animated aliens, some preliminary weapons effects, and the player ship.

And if you check out the subdirectories, you can see about half the art that will be in the final game.

There are no sounds or music. The game runs in 800x600.


Controls:

1. Move with mouse.

2. Fire with left mouse button.

3. Toggle weapons with right mouse button, or press keys 1 thru 9. (Not all weapons you see are intended to be fired from the ship, or even complete. This is a very early test.)

4. Spawn aliens by pressing the spacebar repeatedly.

5. Toggle fullscreen mode on and off with F. See the framerate by holding TAB. Quit by pressing ESC.


Pay special attention to the way the ship animates as you move the mouse about. It rolls from left to right, and the flames even change as you move forward and back.

Please let me know how the ship controls for you. I am using the default windows mouse settings, so I set the game up to behave well with those.

Also please let me know if you have any performance issues. There shouldn't be any. The FPS on my system is around 250 right now.


Btw, for those of you looking for more demos of my sprite systems, this could be considered one. The demo represents less than five days worth of work, not counting the base application code for handling the stuff like toggling fullscreen, timing, the state system, and the like. All the gameplay stuff unique to this game was coded from scratch in that time, and it wouldn't have been possible to get it up and running that fast without the sprite system. At least not in a robust, non-kludgy, way. :-)

Enemy and bullet animations are automated by the sprite animation system, while the animation of the stars, space dust, and ship are controlled manually so that I can speed them up and slow them down at will.


RiK(Posted 2007) [#2]
any chance of a Mac version?


sswift(Posted 2007) [#3]
Maybe. :-) I sent you an email.


big10p(Posted 2007) [#4]
Doesn't work, here. I double-click on the exe and get the hourglass for a second, then... nothing.

1Ghz, GeForce2 GTS 32MB, 256MB, win98SE


sswift(Posted 2007) [#5]
Did you unzip with directories?


Naughty Alien(Posted 2007) [#6]
..here working but aliens colliding with ship with no effect as well as my projectiles cant hurt anyone on screen...


sswift(Posted 2007) [#7]
Try putting this executable in the game directory. The other one defaults to full screen, this one defaults to windowed.

http://raccoonrocket.com/blitz/main-010.exe

If it works, try hitting F and see if it allows you to toggle to fullscreen.

I don't know why it wouldn't work. It makes sure the video mode exists. Unless your card is reporting that no 800x600 modes exist.

			' If Depth is 0, try to find a suitable fullscreen bit depth.
			
				If Depth = 0
				
					Depth = 16
					If GraphicsModeExists(Width, Height, 24) Then Depth = 24
					If GraphicsModeExists(Width, Height, 32) Then Depth = 32
				
				EndIf		



sswift(Posted 2007) [#8]
Naughty:
That is how it is supposed to behave, very little gameplay stuff is in as of yet.

I just want to know if people like the graphics and to see if there are any kinks that need to be ironed out like the mouse control not working well or this issue Big10p is having.


big10p(Posted 2007) [#9]
New exe works but terminates when I press F for fullscreen.


RiK(Posted 2007) [#10]
Shawn, YHM..


sswift(Posted 2007) [#11]
Well can you try this:

Global Width%  = 800
Global Height% = 600
If GraphicsModeExists(Width, Height, 16) Then Print "16"
If GraphicsModeExists(Width, Height, 24) Then Print "24"
If GraphicsModeExists(Width, Height, 32) Then Print "32"


And tell me if it prints any of those numbers.


big10p(Posted 2007) [#12]
I don't have bmax, sswift. I've had issues with other bmax apps behaving oddly like this before, TBH.


sswift(Posted 2007) [#13]
Well can you tell me if you can switch windows into 800x600 mode? :-)

It's good to know that my app isn't the only one that has issues, but I'd like to fix this if possible.

I think I'll test it on my laptop now and see if it works. I don't even know if that thing has 3D acceleration. I think it does. It was only a $600 laptop though.


big10p(Posted 2007) [#14]
Well can you tell me if you can switch windows into 800x600 mode?
I run my desktop at that res. :)

[edit]Actually, I seem to remember there was a problem with bmax detecting available bit depths on my machine. I guess my machine is so old, no-one bothered sorting the bug. :P


sswift(Posted 2007) [#15]
Well at least it works windowed. Though you probably can't get the whole window on the screen!

I didn't think anyone actually ran at 800x600 anymore. Why not 1024x768 at LEAST?

I'm running at 1600x1200. It makes text a bit tiny on my 19" screen, but I need all the screen real estate I can get for all the little dialog boxes in Photoshop and such. I don't see how you can get work done at 800x600. :-)


sswift(Posted 2007) [#16]
Well I tried it on my laptop. Interestingly, it runs kinda choppy, unless I force vwait on, then it runs real smooth. Framerate is high in both cases though. I don't have vwait on right now cause you can't see the true framerate, but maybe I should put it on.

Also of note is how much the LCD on my laptop sucks. I've got all my shades shut and there's still tons of glare on it, and even if there wasn't, the top of the screen would still be much darker than the bottom or vice versa depending on where I position my head. Looks okay with bright stuff like the windows interface, but doesn't look good at all with anything dark.

Oh well. It served its purpouse of storing photos and letting me access my mail and google maps when I was on vacation.


JazzieB(Posted 2007) [#17]
Works great here, and I love the animation on the ship. Getting about 250 FPS in fullscreen and windoweed on my Vista set-up.


sswift(Posted 2007) [#18]
It works on Vista? Woo!

Probably will break as soon as I implement the high score table....


big10p(Posted 2007) [#19]
I didn't think anyone actually ran at 800x600 anymore. Why not 1024x768 at LEAST?
I'm having to use my old MAME machine monitor, which is 21" but has a TV grade tube (massive dot pitch) and can only do 800x600, max.

I don't see how you can get work done at 800x600. :-)
Work? :)


sswift(Posted 2007) [#20]
Ugh, I'm havign an issue where the mouse either goes slow or real fast (no gradation) when I enable vwait. Anyone ever have this issue before?

I'm using that special method of handling the mouse that's in the code archives where you don't recenter it each frame, but rather only when it gets outisde a special window so as to have smoother motion. That probably has nothing to do with the issue, but I thought I should mention it.


Matty(Posted 2007) [#21]
I love the bug / living looking enemies, the greyer/mechanical looking ones seem out of place. The player ship is well done, although the blinking when it starts seems wrong somehow - as if it is a glitch (although I'm sure it isn't) perhaps it should not become fully transparent, or maybe brighter and for less time?

The bullets look good but when you fire lots of them at once it looks a little silly having rockets that are comparable size to the ship in a huge stream of bullets flying up the screen, especially when they almost overlap each other.

The background is well done also.


RiK(Posted 2007) [#22]
Got your mail Shawn, just been playing with it here. Some oddness on the mac with windowed too, works ok in full screen though.

If I comment out that depth check though it works ok in a window too.

Odd.


sswift(Posted 2007) [#23]
I will experiment with different styles of "blinking" to indicate the ship is invulnerable. But the blink you see there was pretty standard for old style shooters, and I think they even use it in modern games. Maybe it is just blinking too rapidly.

The rockets will probably be scaled down a bit, and the firing rate of all the weapons will be limited to varying degrees, so you won't be able to fire 50 rockets like that. In fact I may not even include the rocket at all.

Also, if I do keep the rocket it would have an acceleration to it instead of just the linear speed it has now, which would make it a bit more interesting.

I'll consider whether to keep the robot aliens or not. The only one of those I'm really partial to is Bug3, and that could just be a ship of some kind that flys by and drops powerups or something. I have a spinning animation for that one as well as the open and close one.

The mine will also probably stay.

I'm a bit hestitant to get rid of any of the aliens though because I have so few of them, and to make matters worse, a number of them look fairly similar.

As for the background, that was made by me. I hired an artist to do the 3D stuff, which he's did great job on, but when it came to doing 2D stuff, most of it didn't have the same clean sort of look as the 3D art. So rather than waste his time asking him to redo it until he got the look I wanted, I just did it myself since it was well within my abilities. Clean photoshop illustration is my forte. :-) I'll probably end up doing the fonts too.

There's a number of other elements that still need to be added to the background though, like "nebula" cutouts that look like giant versions of the aliens, and smooth blue "dark matter" blobs. Gotta have some stuff floating out there to make the empty space portions of the game interesting!


SpaceAce(Posted 2007) [#24]
That's looking real good, sswift. The characters have a lot of... character.

A few observations/suggestions:
- Switching from full-screen to windowed mode takes WAY too long on my machine. There is a huge (6+ seconds) delay between modes where I have nothing but a black rectangle on the screen. I also saw this when I shut down the game.
- (I think I had something else constructive to go here, but I can't remember what it was. On to the petty stuff...)
- I think the rocket-style bullet sprite should make a complete rotation instead of rocking back and forth.

Aside from the mode switch, I didn't notice any performance issues even when I was spawning aliens and spewing bullets at maximum speed.

SpaceAce


Boiled Sweets(Posted 2007) [#25]
what did you use to create / animate the aliens


Chroma(Posted 2007) [#26]
Very weird 10 sec pause and graphics/screen ghosting glitch going on when I hit ESC to stop the demo.

Looks very nice though. Definitely pro quality.


sswift(Posted 2007) [#27]
Yeah, I get that same long delay and I just found that toggling from windowed to fullscreen twice causes it to crash with an unhandled memory exception. I was getitng that kind of crash issue before, I thought it was fixed!

Maybe I'll pass this along to Mark and see if there's more BlitzMax bugs to fix. The code for handling all the windowed/fullscreen stuff hasn't changed.

Boiled:
The aliens were created by the artist I hired using Max8 and Z-Brush. I don't know which parts of the work were done in which programs, but I think he used Z-Brush only for the planets.


sswift(Posted 2007) [#28]
Mac users can now try the demo out as well, just download this version:

http://raccoonrocket.com/blitz/asb-010mac.zip


hub(Posted 2007) [#29]
nice demo here. nice gfx.

sswift i like the dust scrolling into your game. i'm working also on a space game shooter. So how do you did it ?
1) produce the dust jpg file (seamless texture ?)
2) scroll it (do you scroll the entire image, do you adjust the image width to the the game screen width) ?
Thanks !

screenshoot here


sswift(Posted 2007) [#30]
To make the dust image, I just used the clouds filter in Photoshop. If you use a power of 2 size for your image it will be seamless in that direction. The images here are 800x2048, so they are seamless vertically.

The dust is also grayscale so that I can adjust the color by adjusting the sprite color, and it compresses better as a jpeg probably as well.

The images are not scaled in the game, they're actual size, but you could scale them if you wanted to use a lower res image.

I scroll the image like so:

Position# = Position# + ScrollSpeed#*Time_Delta_Sec#
					
Dust1.SetY(Position# Mod 2048.0 - 300.0 - 1024.0) 
Dust2.SetY(Position# Mod 2048.0 - 300.0 + 1024.0)


So there are actually two sprites, one above the other, and they scroll down at a constant rate that I can change.

It should be noted that everything in my game is attached to a pivot in the center of the screen, so 0,0 is in the center of the screen.

When the top one scrolls down to the point that the top of it is at the top of the screen, and I've run out of space dust to scroll onto the screen, they both snap upwards 2048 pixels so that the top of the bottom one is at the top of the screen, and then continue scrolling down from there. Since they are both identical you can't tell that when the transition occurs you're suddenly looking at the second one instead of the first.

I could have automated the scrolling with my sprite animation system, but I need to be able to stop the scrolling during boss encounters and the like, and having a position value that incremeents as the player makes forward progress allows me to spawn enemies and trigger other things accoridng to how far the player has traveled, rather than just basing it on time which could get a lot more confusing.


hub(Posted 2007) [#31]
Many thanks to explain this sswift !


Pete Rigz(Posted 2007) [#32]
Works fine here on Vista, no problems switching to windowed. Feels ok to control, although it's hard to say until you have to start dogging stuff, maybe they'll be a little to much inertia?

I definately don't like the idea of having to press mouse button constantly to shoot, would much prefer autofire. The different weapons looked great, nice and varied, maybe the bubbles could vary in size tho.

Your artist did a great job on the sprites!


sswift(Posted 2007) [#33]
I'm still working on tweaking the controls. I'm having some trouble making them consistent regardless of the framerate.

Mx# = Mouse_Speed_X# 
My# = Mouse_Speed_Y# 

Vx# = Vx# / (1.0 + Time_Delta_Sec#*Friction#)
Vy# = Vy# / (1.0 + Time_Delta_Sec#*Friction#)
					
Vx# = Vx# + Mx#
Vy# = Vy# + My#


If I just stuck Vx#=Vx#/2.0 in there for example, then the velocity would be cut in half each frame. This means the ship would slow down a lot faster when it is moving fast, but slow down more slowly as it came to a stop. This is kinda how it feels now in the demo if you're running around 200fps, and it feels right.

But if I turn on vwait, then the framerate drops to 60, and all of a sudden the ship either moves slowly, or jumps to the edge of the screen. It feels like the mouse acceleration is all screwed up, but it's really just a result of my equations, and I don't know how to solve it yet.

I tried slowing down the ship at a constant rate, but that didn't feel good at all. When you go the ship moving fast it took forever to slow down.

Maybe if I tweened the current velocity and 0 using the seconds elapsed this frame multiplied by 4 or something as the tween value it would make it consistent.

Or maybe I will have to implement "ground friction", the slowing down at a constant rate which slows the slow moving ship down quickly, with "air friction" which is exponential and won't stop a slow moving ship fast but does slow down a fast moving ship quickly. But that's more physics than I really wanted to get into for a simple space shooted and I don't know if it would feel like it is reducing speed in a smooth manner.


sswift(Posted 2007) [#34]
Well the tweening method I mentioned above seems to have done the job nicely. I don't see a difference when printing tons of debug statements or using flip 1, versus using flip 0. And the ship actually seems to move around a bit smoother now too.

Also, last night I did a syncmods and some crashes I was getting when swapping back and forth between fullscreen and windowed went away.

Also I did a test and it seems that buffering the images in video memory is no longer needed to stop the game from being choppy initially. So I disabled that too.

And I modified the video selection code slightly so that it tries to check to see if a 16bit 800x600 mode exists rather than just trying to set the mode, so Big10p if you could try this version on your system... I don't know if it will work fullscreen, but hopefully if it doesn't, it should at least do nothing if you press F, rather than crash.

Anyway, if you haven't already downloaded the old demo grab this file:
http://raccoonrocket.com/blitz/asb-010.zip

And here's the new exe:
http://raccoonrocket.com/blitz/main-011.exe

Oh, and I've improved the weapon effects a bit.

Keep in mind though that not all the weapons you see will be used, or even be fired by the ship. The green blob for example is one of the weapons that will be dropped by the aliens.


RiK(Posted 2007) [#35]
Shawn, feel free to send updates my way any time and I'll keep the Mac builds up to date for you.


Grey Alien(Posted 2007) [#36]
just a note on the Big10p problem. A while ago he ran a test for me and I ascertained that his graphics driver reports all screendepths as being 0 that's why your code failed to make a fullscreen window for him.


big10p(Posted 2007) [#37]
just a note on the Big10p problem. A while ago he ran a test for me and I ascertained that his graphics driver reports all screendepths as being 0 that's why your code failed to make a fullscreen window for him.
Ah, yes - I remember now. I knew I'd encountered this problem before, somewhere. :)


sswift(Posted 2007) [#38]
Nope, that can't be it, cause my original code was as follows:

If Depth = 0
				
					Depth = 16
					If GraphicsModeExists(Width, Height, 24) Then Depth = 24
					If GraphicsModeExists(Width, Height, 32) Then Depth = 32
				
				EndIf		



Where the if depth=0 is just me telling it I don't want a specific depth, I want whatever th ebest on the graphics card has.

So on his card, the above code would set Depth to 16. And that would be used when setting the fullscreen graphics mode.

So unless his card can't do 800x600 at 16bit color, the card failing to report the bit depth for that mode should have no effect.

My new code on the other hand, the version I asked Big10p to check out above, also checks for the 16bit mode. So that would fail to find a mode, and it would just not let you switch, rather than crashing.

Maybe there is an issue in the BlitzMAx code itself. Maybe it itself checks to see if the mode exists before trying to set it. But that should not cause a crash. My code checks to see if the return value is Null or not and if it is Null, goes back to windowed mode.


big10p(Posted 2007) [#39]
My card can do 800x600 in 32 and 16 bit, no problem.


Grey Alien(Posted 2007) [#40]
oh ok. Good luck then ;-)


Dustin(Posted 2007) [#41]
Looks nice. Ran 500fps on my new machine (full screen & windowed).

Only gripe: not crazy about the ease in/ease out mouse control. It feels very 'laggy' when the moves are small. But that may just be a preference thing on my part.


sswift(Posted 2007) [#42]
I'm testing a new setup where the aliens will fly onto the screen and attach to a grid similar to space invaders. This version also has vwait enabled, and new much simpler ship physics code which feels similar to the old one, but works the same no matter what framerate you're getting, and limits the max speed at which you can move the ship without clamping it so much it's obvious.

So try this and let me know what you think of the ship's feel Dustin. I'm pretty happy with it myself. If I have any less inertia then you won't even be able to tell it has inertia at all.

http://raccoonrocket.com/blitz/asb-022.zip

Oh and could you tell me what you have your pointer speed set to in windows? If you don't know where it is, then it is probably set in the middle which is the default. I don't really think it would affect this new setup at all, but the old setup it might have affected.

Also, I forgot to mention the controls. Right click will switch weapons, left click fires, and middle mouse or space will spawn five aliens in the middle. Tab shows you framerate, but that will probably read 60fps.

Speaking of framerate, I came up with a method to smooth the framerate out so that it is almost rock solid, only changing once a second or so, but even when I set it on a toggle in the game, I didn't notice ANY difference in smoothness of the motion of objects in the game! Not even at 20fps, or with vwait disabled.

So I don't know why everyone was so gung ho a while back about getting their games to run at exactly the monitor's refresh rate. I looked closely at the big stars the little stars, the ship... I can see the ghost image the stars leave behind if the framerate is like 30fps, but that is totally unaffected by making the framerate smoother. I thought it might help a bit but it didn't help at all. And I didn't see any jittering either.

But maybe the diffence in time between each frame being rendered was too small. The framerate might have been changing, but it might have been changing too little to make stuff jitter.

Ps:
This version starts fullscreen, so don't bother Big10p. :-)


Filax(Posted 2007) [#43]
Hi swift :)

Very nice graphics :) i find that some fire sprites are really
stranges :) :) But i like it :)


RiK(Posted 2007) [#44]
Shaun,

If you want to throw me an email I'll make another Mac build..


sswift(Posted 2007) [#45]
Rik:
I will when I actually have something worth building. :-) Not much has changed since the last version. The next demo I put up will be more interesting.


Grey Alien(Posted 2007) [#46]
Finally played it. Nice graphics and anims by the way. Loads of weapon types. Look forward to being able to play this. Hey why don't you move the stars by floating point amounts so they look smoother?


sswift(Posted 2007) [#47]
I AM moving the stars by floating point amounts.

Might have a new demo the start of next week, with sound.

The enemies now have two projectiles to fire, egg and slime. Slime goes SPLOOT! when it hits the ship. Egg just explodes at the moment. Have not yet decided if eggs will be projectiles or if I'll use a bigger version to have enemies hatch from.

I also slowed down the stars since the last demo. I'm gonna make the biggest ones smaller too. They confuse you too much because they move like bullets.


RiK(Posted 2007) [#48]
Looking forward to the update :)


Barliesque(Posted 2007) [#49]
Terrific artwork. I love planet No. 5. And all the goofy aliens are great.

I'm gonna make the biggest ones smaller too. They confuse you too much because they move like bullets.

Some games use that to force you to pay closer attention. I think it's a matter of find the balance between challenging vs. annoying.


Grey Alien(Posted 2007) [#50]
I AM moving the stars by floating point amounts.
sorry I'll be more specific, DRAW them by floating point. Yeah shrinking them may be better or making them dimmer.

So is there any collision detection yet as the demo I had wasn't really game, just a tech demo...


sswift(Posted 2007) [#51]
No need to be more specific. I understood what you meant, and they're drawn at floating point positions as well.

For Loop = 0 To STARS-1
				
' Move star.  Star moves faster with greater order.
Star[Loop].SetY(Star[Loop].Y#() + ScrollSpeed#*Time_Delta_Sec#*Star[Loop].Order#())


' Draw sprite.
DrawImage(_Image, X#(True), Y#(True), Frame#(True))	


See?

I only tested stars being drawn at integral positions at one point and immediately went back to the way it was. I don't think I ever released a demo with the game in that state cause it looked horrible. The slow moving stars in the distance would very obviously jump from location to location.

I don't know about the version you have as far as collision detection, but assuming you have the newest demo I linked above you should at least be able to shoot the aliens with the laser. I think the ship will also explode when it collides with the aliens.

The hitbox on the ship is a small rectangle in the middle of it, but you should have no problem getting hit even with that smaller hitbox.


Grey Alien(Posted 2007) [#52]
I'll try the next version then when there's more to it.

As for the draw thing, weird as I would say the large ones jerked on my PC.