Our new game Glow, first public alpha available to download now

Hey guys!

It’s Matthias from Impetus Games here. We are happy to announce the first public alpha release of our game Glow. It’s basically a top-down 2d shooter, in the spirit of some old Arcade games and classics like Cannon Fodder … even though in another setting :slight_smile:

Glow is being developed using libGDX and Groovy, you can grab it from here:

https://impetus-games.com/glow

(free download for Win and Linux, Mac will follow soon)

https://impetus-games.com/uploads/images/Gallery/glow_screenshots/screenshot-03.jpg

This alpha is a bit of a prototype, far from a full-featured game. Nevertheless we very eager to hear feedback from not just our friends but also you, fellow game developers and the wide audience in general. Thus I would like to ask you for your honest opinion:

  • What do you think of the game (mechanics) in general?
  • What do you like, what would you rather see changed?
  • Are game play and mechanics understandable?
  • Are there any bugs or flaws?
  • Any other comments?

We would really love to hear from you. And if you want to do us an extra favour it would be awesome if you could fill out our online survey. I guarantee you it won’t cost you more than one minute!

Last but not least, here is our first gameplay trailer:

jX72AraEpNc

So long, I am looking forward to all your feedback :slight_smile:

Actual gameplay was almost impossible for me because it was fairly difficult. But I was really impressed by the website, and the polish of your intro. The game intro looks very nice.

Thank you very much for your feedback, I appreciate it!

Regarding the difficulty: Have you managed to find out how the mechanics work eventually?
If not, would you have continued to play if there was some kind of in-game tutorial?
Last but not least: have you red the short help screen in the beginning of the game?

Bealtiful game, good job.

Are you using box2D Light?

Yes, indeed, box2dlights it is :slight_smile:

I’m running on Linux but the screen just dissapears after I press escape to start the game, is there a log file anywhere?

Edit : Ran it from the command line, error attached. It just so happen that I am running the open jdk 8 (as I experimented building it from source earlier on today) so this might be the error. Stack trace below


java.lang.VerifyError: Bad <init> method call from inside of a branch
Exception Details:
  Location:
    ai/behaviours/steering/MoveAroundPositionBehaviour.<init>()V @91: invokespecial
  Reason:
    Error exists in the bytecode
  Bytecode:
    0000000: 04bd 002e 5903 b200 30b8 0036 b200 3ab8
    0000010: 0040 5359 10ff 1202 b800 442a 5fab 0000
    0000020: 0000 00b6 0000 0006 0000 9b75 0000 003b
    0000030: 0013 3aeb 0000 0044 1259 9e57 0000 0054
    0000040: 34ec a228 0000 0069 38da 9449 0000 007e
    0000050: 68a8 0a98 0000 009a 5f5a 57b7 0045 a700
    0000060: 7f5f 5a59 0332 b800 4b5f 57b7 004d a700
    0000070: 6f5f 5a59 0332 124f b800 53c0 004f 5f57
    0000080: b700 54a7 005a 5f5a 5903 3212 56b8 0053
    0000090: c000 565f 57b7 0057 a700 455f 5a59 0332
    00000a0: 124f b800 53c0 004f 5f59 0432 b800 4b5f
    00000b0: 57b7 0059 a700 295f 5a59 0332 1256 b800
    00000c0: 53c0 0056 5f59 0432 b800 4b5f 57b7 005b
    00000d0: a700 0dbb 005d 5912 5fb7 0062 bf57 b1  
  Stackmap Table:
    full_frame(@88,{UninitializedThis},{Object[#100],UninitializedThis})
    full_frame(@97,{UninitializedThis},{Object[#100],UninitializedThis})
    full_frame(@113,{UninitializedThis},{Object[#100],UninitializedThis})
    full_frame(@134,{UninitializedThis},{Object[#100],UninitializedThis})
    full_frame(@155,{UninitializedThis},{Object[#100],UninitializedThis})
    full_frame(@183,{UninitializedThis},{Object[#100],UninitializedThis})
    full_frame(@211,{UninitializedThis},{Object[#100],UninitializedThis})
    full_frame(@221,{Object[#2]},{Object[#100]})

	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2658)
	at java.lang.Class.getDeclaredConstructors(Class.java:2007)
	at org.codehaus.groovy.reflection.CachedClass$2$1.run(CachedClass.java:71)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:68)
	at org.codehaus.groovy.reflection.CachedClass$2.initValue(CachedClass.java:66)
	at org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)
	at org.codehaus.groovy.util.LazyReference.get(LazyReference.java:33)
	at org.codehaus.groovy.reflection.CachedClass.getConstructors(CachedClass.java:265)
	at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:215)
	at groovy.lang.MetaClassImpl.<init>(MetaClassImpl.java:225)
	at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createNormalMetaClass(MetaClassRegistry.java:168)
	at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.createWithCustomLookup(MetaClassRegistry.java:158)
	at groovy.lang.MetaClassRegistry$MetaClassCreationHandle.create(MetaClassRegistry.java:141)
	at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:250)
	at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:282)
	at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.getMetaClass(MetaClassRegistryImpl.java:255)
	at org.codehaus.groovy.runtime.InvokerHelper.invokeConstructorOf(InvokerHelper.java:944)
	at org.codehaus.groovy.runtime.DefaultGroovyMethods.newInstance(DefaultGroovyMethods.java:15420)
	at ai.behaviours.trees.tasks.AddSteeringBhvTask.update(AddSteeringBhvTask.groovy:41)
	at ai.behaviours.trees.tasks.SequenceTask.update(SequenceTask.groovy:33)
	at ai.behaviours.trees.tasks.SelectorTask.update(SelectorTask.groovy:33)
	at ai.behaviours.trees.tasks.ForeverTask.update(ForeverTask.groovy:29)
	at ai.behaviours.trees.tasks.SequenceTask.update(SequenceTask.groovy:33)
	at ai.behaviours.trees.tasks.RootNodeTask.update(RootNodeTask.groovy:38)
	at ai.behaviours.trees.BtTreeInstance.update(BtTreeInstance.groovy:47)
	at ecs.lib.sys.BehaviourTreeSystem.tickPreRender(BehaviourTreeSystem.groovy:21)
	at ecs.SystemController.tickPreRenderSystems(SystemController.groovy:49)
	at ecs.SystemController.tickPreRenderSystems(SystemController.groovy)
	at lib.game.GameScreen.render(GameScreen.groovy:220)
	at com.badlogic.gdx.Game.render(Game.java:46)
	at lib.game.MyGame.render(MyGame.groovy:127)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:214)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
AL lib: (EE) alc_cleanup: 1 device not closed


Thank you very much for your bug report. It should run fine on Linux, in fact I am developing on Linux as well. However, as of now the game needs the Oracle JRE to run correctly. We will ship a private JRE with the game for in the future…

Any chance you can test it with an Oracle JRE?

Looks like I didn’t acutally have JAVA_HOME set for openjdk so it was actually using the oracle jdk

Version is below


java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

On the positive side, when forcing the JRE to be


openjdk version "1.8.0-jdk8u60-b06"
OpenJDK Runtime Environment (build 1.8.0-jdk8u60-b06-20150314)
OpenJDK 64-Bit Server VM (build 25.60-b06, mixed mode)

The code did work! I guess there is a bug in the version of oracle java I am using, although I use this version for LWJGL with no issue.

That’s strange, from our experiments it should run much better with Oracle JRE than with OpenJDK :slight_smile: