Alien Flux Alpha Test 7

All right, I know you’re all bored with it now, but in the name of science, please try out yet another alpha test.

This time available in two flavours: the Win32 executable, and a traditional JAR. file.

There’s some bugfixes of course, and another surprise awaits late in the demo.

Don’t try and run it from the .zip please - unzip it to a nice empty temporary directory. If you’ve got an OpenAL32.dll in your system32 directory, expect trouble.

As always, your comments are welcome. Especially good ones.

Cas :slight_smile:

Ok, here is a good one.

Get better from release to release. Managed to get into level 3.

I think some of the enemies are too hard, near to unfair.

EXE version fails for me, haven’t tried Java version yet.

When loading, at the point when the menu should appear the AF logo appears briefly in the right place, but rapidly scales down and moves towards the middle of the left edge of the screen where it stays, about one third size. I can see a few pixels changing color, so I assume the animation is working. No menu items can be seen, and I have to CTRL-ALT-DELETE out of it. Log follows:

OpenAL 1.0
Available screen modes:
800 x 600 x 16 @0Hz
640 x 480 x 32 @0Hz
1280 x 1024 x 16 @0Hz
1024 x 768 x 32 @0Hz
800 x 600 x 32 @0Hz
1280 x 1024 x 32 @0Hz
1600 x 1200 x 16 @0Hz
640 x 480 x 16 @0Hz
1024 x 768 x 16 @0Hz
Sorted display modes:
800 x 600 x 16 @0Hz
800 x 600 x 32 @0Hz
640 x 480 x 16 @0Hz
640 x 480 x 32 @0Hz
1024 x 768 x 16 @0Hz
1024 x 768 x 32 @0Hz
1280 x 1024 x 16 @0Hz
1280 x 1024 x 32 @0Hz
1600 x 1200 x 16 @0Hz
Attempting to set displaymode: 800 x 600 x 16 @0Hz
Failed to reserve Nvidia ram.
AGP memory @ 327815168
AGP memory @ 327816192
AGP memory @ 328863744
AGP memory @ 327880704
AGP memory @ 327847936
AGP memory @ 327880704
AGP memory @ 328077312
Resetting feature: gidrah_explosion.colorsequence
Resetting feature: gidrah_beamin.colorsequence
Resetting feature: player_explosion.colorsequence
Resetting feature: player_beamin.colorsequence
Resetting feature: player_resout.colorsequence
Resetting feature: player_thruster.colorsequence
Resetting feature: rocket_thruster.colorsequence
Resetting feature: ricochet.colorsequence
Resetting feature: smoke.colorsequence
Resetting feature: blob_explosion.colorsequence
Resetting feature: jellyparticle.colorsequence
Resetting feature: jellybeaminparticle.colorsequence
Resetting feature: zsphereparticle.colorsequence
Resetting feature: gidrah_bullet.colorsequence
Resetting feature: golden_blob.colorsequence
Resetting feature: gidrah_explosion.particle
Resetting feature: eolg_explosion.particle
Resetting feature: player_explosion.particle
Resetting feature: blob_explosion.particle
Resetting feature: jelly_explosion.particle
Resetting feature: jelly_beamin.particle
Resetting feature: zsphere_explosion.particle
Resetting feature: ricochet.particle
Resetting feature: borg_laser.particle
Resetting feature: golden_blob.particle
Resetting feature: smoke.particle
Resetting feature: gunner_smoke.particle
Resetting feature: gidrah_beamin.particle
Resetting feature: eolg_beamin.particle
Resetting feature: player_beamin.particle
Resetting feature: player_resout.particle
Resetting feature: player_thruster.particle
Resetting feature: rocket_thruster.particle
Resetting feature: gidrah_bullet.particle
Resetting feature: gidrah_explosion_smoke.emitter
Resetting feature: gunner_smoke.emitter
Resetting feature: player_explosion_smoke.emitter
Resetting feature: gidrah_bullet.emitter
Resetting feature: ricochet.emitter
Resetting feature: borg_laser.emitter
Resetting feature: golden_blob.emitter
Resetting feature: gidrah_explosion.emitter
Resetting feature: eolg_explosion.emitter
Resetting feature: player_explosion.emitter
Resetting feature: blob_explosion.emitter
Resetting feature: jelly_explosion.emitter
Resetting feature: zsphere_explosion.emitter
Resetting feature: gidrah_beamin.emitter
Resetting feature: jelly_beamin.emitter
Resetting feature: eolg_beamin.emitter
Resetting feature: player_beamin.emitter
Resetting feature: player_resout.emitter
Resetting feature: player_thruster.emitter
Resetting feature: rocket_thruster.emitter
Resetting feature: gidrah_bubble
Resetting feature: gidrah_tringle
Resetting feature: gidrah_cube
Resetting feature: gidrah_madjelly
Resetting feature: gidrah_gunner
Resetting feature: gidrah_roving_eye
Resetting feature: gidrah_zsphere
Resetting feature: gidrah_isphere
Resetting feature: eolg0
Resetting feature: player_bonus.colorseq
Resetting feature: player
Resetting feature: blob_bonus.colorseq
Resetting feature: blob_name.colorseq
Resetting feature: blob
Resetting feature: gidrah.bullet
Resetting feature: borg_laser.colorseq
Resetting feature: gidrah.beam
Resetting feature: smartbomb
Resetting feature: smartbomb.colorseq
Resetting feature: player.laser0
Resetting feature: player.laser1
Resetting feature: player.laser2
Resetting feature: laser0.colorseq
Resetting feature: laser1.colorseq
Resetting feature: laser.colorseq
Resetting feature: orb
Resetting feature: rocket
Resetting feature: level_begin.colorseq
Resetting feature: level_0
Resetting feature: level_1
Resetting feature: level_2
Resetting feature: level_3
Resetting feature: level_4
Resetting feature: background0.colorsequence
Resetting feature: background1.colorsequence
Resetting feature: background2.colorsequence
Resetting feature: background3.colorsequence
Resetting feature: background4.colorsequence
Resetting feature: background.0
Resetting feature: background.1
Resetting feature: background.2
Resetting feature: background.3
Resetting feature: background.4
Resetting feature: powerup_label.colorseq
Resetting feature: extralife.powerup
Resetting feature: extrasmartbomb.powerup
Resetting feature: extrablob.powerup
Resetting feature: poweruplaser.powerup
Resetting feature: powerupautofire.powerup
Resetting feature: powerupshield.powerup
Resetting feature: extrarockets.powerup
Resetting feature: extraorb.powerup
Resetting feature: jelly_incursion
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
java.lang.NullPointerException
  (160 more lines like this)

works as usual :slight_smile:

(exe verison - specs: k7 500/128mb/gf2mx os: win98se)

-click on “use 32bit” results in a crash… after the crash it was enabled :>

-sound of the laser gets deeper and deeper and deeper… dunno it isnt supposed to be this way is it?

With the last JAR version, I consistently got weird “can’t find XXX in classpath” type errors. This is bizarre not just because I don’t use classpaths these days, and not just because everything was in the directory I was running from (or in directly attached sub-dirs for sub-packages etc), but because when I set a sensible classpath by hand, it still didn’t work, and when I used the -cp argument, again it still didn’t work.

This is JDK 1.4.1 under linux.

…but I shall try the new one as well, and hopefully this time it’ll run for me.

it switched to fullscreen here, but got no further.

had openal32.dll in my system32 dir, and got this:

org.lwjgl.openal.OpenALException: Unable to load function pointers to openal.

removed openal32.dll from system32, and got this:

Unexpected Signal : EXCEPTION_ACCESS_VIOLATION occurred at PC=0x6D3B1DD0
Function=[Unknown.]
Library=C:\java\dev\j2sdk1.4.1\jre\bin\client\jvm.dll

NOTE: We are unable to locate the function name symbol for the error
just occurred. Please refer to release documentation for possible
reason and solutions.

Current Java thread:
at org.lwjgl.openal.ALC.getIntegerv(Native Method)
at com.shavenpuppy.jglib.openal.AL.init(AL.java:149)
at org.lwjgl.openal.BaseAL.create(BaseAL.java:106)
at com.shavenpuppy.jglib.openal.AL.(AL.java:122)
at xap.Game.init(Game.java:411)
at xap.Game.main(Game.java:230)

JAR version, linux, JDK 1.4.1:

java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path

Oops, hit “Post” too soon…

…I meant to add that also use of -Djava.library.path=XXX didn’t work for XXX=the directory where lwjgl.dll had been unzipped to, neither with nor without trailing slash.

Nor did it work setting XXX to be the full path to the lwjgl.dll file.

I tried the EXE and it worked fine. NOTE: I ran it from the .zip :o hehe

Anyhow… the game was fast and fine in 16 bit, but in 32 bit it was sometimes unplayable.

blahblahblah - that’s a Windows .dll you’ve got there ::slight_smile: Maybe Elias can give you a Linux one. (I haven’t got an up-to-date one)

Charlie - sorry, accidentally broke it on non-nvidia hardware! Argh! Patched versions up shortly.

Cas :slight_smile:

Patched versions up now.

Problems with OpenAL: ok, try copying the OpenAL dll I supplied into your system32 directory. And make sure there’s no LWJGL dlls lurking in there while you’re at it.

Herk - seeing as I’m starting to tune the enemies now it’d be nice if you told me which ones are giving you too much grief! I know the little red crackly bugger is a right sod but it’s only supposed to appear if you take a long time over clearning a level. It’s not supposed to appear until much later on the last level but I haven’t coded that in yet.

Hint about Cubes of Doom: keep moving - they only hit you when you stand still.

Hint about Roving Eyes: they’ve got too many hitpoints at the moment - they should only take 2 shots to kill, not 3. Wait till they’ve stopped moving, aim directly at them and fire - taptaptap- and get your shields on so their bullets don’t get you.

Cas :slight_smile:

Just tried the EXE version.

Woohoo. It works!

Well, almost. I can see the lasers, particles and engines firing, but no ship or aliens. I did see a pink blob at the start for a few seconds before it disappeared. Then I can’t see a thing but the background and effects. Rather difficult under these circumstances :slight_smile:

But the sounds are great.

Here’s hoping you can tweak those graphics to be visible, Cas.

Another partial success :slight_smile: *

Remind me again of your hardware specs & drivers. As much info as you can. It really is difficult to see how it could decide to draw everything except sprites!

Cas :slight_smile:

  • like the flame-resistant underpants in Viz

Sorry, with the excitement of it actually running I forgot my specs. Basically :
Celeron 433, Win98SE, 256MB.
Intel 810 graphics. Video driver version 4.11

I’ll get some more details to you privately.

It would appear that you have some trouble with either display lists or textures > 256*256 in size. I’m willing to bet it’s texture size that’s the problem because if display lists didn’t work then all sorts of other applications would break.

I’ll rebuild the textures to be 256*256 and upload a patch file. To run the patch do this:


java -cp patch.jar;alienflux.jar xap.Game

Cas :slight_smile:

Theres a bunch of older 3D graphic cards with this issue. Some older Matrox cards come to mind where I seen this.

He PM’d me some kind of sys report which claims that it should handle 1024x1024 - but I don’t believe it for a minute :slight_smile: I bet that means 1024x1024x8bit, or 256x256x32bit.

Technically I should handle this myself in OpenGL and make a proxy texture - but all my graphics are prerendered and prepacked, so I can’t :frowning: So it looks like I’ll stick with 256x256 and see what happens.

Cas :slight_smile:

Nope, Jar version plus patch fails for me. Clicking New Game now produces a Windows error message - “Java has caused an error in . Java will now close.” Screen is left in 800x600 blah blah blah… you know the deal! ;D

Hrm, I wonder whether my hardware or software is just not what your code is expecting to have to deal with. What are your hardware and software requirements?

I ask for a screenmode that’s 800x600x16x60Hz. If I don’t get 16bit I’ll use 32bit. If I don’t get 60Hz I use the highest available frequency. If you’ve got the title screen up then we know this part works OK.

Next, if ARB_multitexture is supported and ARB_texture_env_dot3 is supported, you get the bumpmapped background rendered in two passes.

If ARB_multitexture is supported otherwise, you get a statically bumpmapped background rendered in one pass.

If neither is supported you’ll get the “cheapass” renderer (hint: try typing cheapass at the dropdown console and then go to options and change one of the checkboxes). The cheapass renderer draws a static bumpmapped background using two passes and no tricks at all.

If NV_vertex_array_range or NV_vertex_array_range2 is present I reserve some AGP ram if I can, and put all my vertex data in it, and create fences here and there and use VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV client state.

Otherwise if it’s not Nvidia and EXT_compiled_vertex_array is present I use glLockArraysEXT().

If EXT_draw_range_elements is present I’ll use glDrawRangeElements; otherwise I use just glDrawElements.

If WGL_EXT_swap_interval is present and I’ve got a 60Hz mode I’ll use a 1 frame swap interval; otherwise I sleep according to the hires timer every frame to get 60Hz.

That’s the sum total of extensions and how I use them.

Cas :slight_smile:

So if the worst comes to the worst, you’re still able to fall back as far as OpenGL 1.1. Nice.

Yep, a video mode is being obtained. My S3 doesn’t support ARB_multitexture or ARB_texture_env_dot3, so I should get the cheapass there. It doesn’t support any NV extensions, but it does support EXT_compiled_vertex_array so glLockArraysEXT will be being used. EXT_draw_range_elements is also unsupported, so glDrawElements it is. Surprisingly, it doesn’t seem to support WGL_EXT_swap_interval, so you’ll be sleeping then. This all looks fine.

It looks like my drivers are only OpenGL 1.1 - are you using any 1.2+ features at all, that aren’t protected behind extension-test blocks? If you were calling an unimplemented method, it’d complain most bitterly, wouldn’t it?

Hrm. What’s your minimum graphics RAM requirement? I expect I’m one of the few still with only 8MB…

Must buy more straws, these ones are over-grasped…