Daedalus - no escape

This is bloody amazing :smiley:

I’m still only a newbie (to programming in general), and it’s really exciting to see the power of things like libgdx and lwjgl.

Do you plan to release this on mobile devices and make yourself some dollars? I think that this would sell really well.

Wow - just tested it and it really looks amazing - the effects are remarkable!

I also totally think you should port this to make some money with it: but I think because of the controls it wouldn’t be good for smartphones. Maybe you want to port it to Ouya. That shouldn’t be too complicated as it is also java and it surely would be a lot of fun on the big screen! :wink:

Thanks guys, I’m glad you liked it :slight_smile:

Right now, I’m aiming only desktop via steam ( if I’m lucky enough to get greenlit … and that’s a big IF :slight_smile: ). As I’m not using libgdx at all for the game ( only for the editor’s UI ), having it ported to android may not be so simple. But for sure porting it to Ouya is very tempting :slight_smile: I’m just a bit afraid by the performance of the tegra3 … I have no idea how it compares to desktop GPUs, and I’m not sure it would be enough to run my game ( without reducing visual quality … )

I had the same fear, however, after setting my game up on a Nexus 7 (Tegra3 as well), I got these results.

Thanks for the figures :wink: It seems that for the view, the FPS are capped to 60 ?

The Tegra3 is a pretty serviceable GPU, it’s just the CPU part that doesn’t knock my socks off. Ouya should do better there too since it runs all cores flat out with no power management governing it.

I guess so, but not from my side.

The game looks awesome!

I’m getting this error:


java.lang.RuntimeException: Cannot compile shader /shaders/basique.frag : 
Fragment shader failed to compile with the following errors:
ERROR: 0:7: '' : Declaration must include a precision qualifier or the default precision must have been previously declared. 
WARNING: 0:7: implicit cast from ivec2 to vec2
WARNING: 0:8: implicit cast from int to float
ERROR:  compilation errors.  No code generated.

	at com.deathpat.shoot.util.ShaderUtils.createShader(ShaderUtils.java:36)
	at com.deathpat.shoot.util.ShaderUtils.createProgram(ShaderUtils.java:67)
	at com.deathpat.shoot.model.renderer.Shader.create(Shader.java:50)
	at com.deathpat.shoot.display.gui.PanelDisplay.init(PanelDisplay.java:197)
	at com.deathpat.shoot.display.gui.PanelDisplay.<init>(PanelDisplay.java:139)
	at com.deathpat.shoot.display.gui.sets.MainPanelSet.<init>(MainPanelSet.java:23)
	at com.deathpat.shoot.model.scene.scenes.MainMenu.onInit(MainMenu.java:69)
	at com.deathpat.shoot.engine.scene.Scene.init(Scene.java:182)
	at com.deathpat.shoot.engine.scene.Scene.update(Scene.java:114)
	at com.deathpat.shoot.engine.scene.SceneManager.update(SceneManager.java:97)
	at com.deathpat.shoot.engine.Engine.oneLoop(Engine.java:348)
	at com.deathpat.shoot.engine.Engine.start(Engine.java:325)
	at com.deathpat.shoot.Daedalus.<init>(Daedalus.java:58)
	at com.deathpat.shoot.Daedalus.main(Daedalus.java:42)

I’m on Windows 7, Radeon X1950 Pro

I was also having problems regarding Basique on a laptop with crappy Gl support (game crashed before main menu showed up), but I found that if you take out the #version on the fist line of the shader file, the game works fine.

Hope somebody finds this useful.

I gave that a try, now I get this error:


java.lang.RuntimeException: Cannot compile shader /shaders/basique.frag : 
Fragment shader failed to compile with the following errors:
WARNING: 0:7: implicit cast from ivec2 to vec2
WARNING: 0:8: implicit cast from int to float
ERROR: 0:7: Compiler error: This built-in function is not supported on the hw.
ERROR:  compilation errors.  No code generated.

	at com.deathpat.shoot.util.ShaderUtils.createShader(ShaderUtils.java:36)
	at com.deathpat.shoot.util.ShaderUtils.createProgram(ShaderUtils.java:67)
	at com.deathpat.shoot.model.renderer.Shader.create(Shader.java:50)
	at com.deathpat.shoot.display.gui.PanelDisplay.init(PanelDisplay.java:197)
	at com.deathpat.shoot.display.gui.PanelDisplay.<init>(PanelDisplay.java:139)
	at com.deathpat.shoot.display.gui.sets.MainPanelSet.<init>(MainPanelSet.java:23)
	at com.deathpat.shoot.model.scene.scenes.MainMenu.onInit(MainMenu.java:69)
	at com.deathpat.shoot.engine.scene.Scene.init(Scene.java:182)
	at com.deathpat.shoot.engine.scene.Scene.update(Scene.java:114)
	at com.deathpat.shoot.engine.scene.SceneManager.update(SceneManager.java:97)
	at com.deathpat.shoot.engine.Engine.oneLoop(Engine.java:348)
	at com.deathpat.shoot.engine.Engine.start(Engine.java:325)
	at com.deathpat.shoot.Daedalus.<init>(Daedalus.java:58)
	at com.deathpat.shoot.Daedalus.main(Daedalus.java:42)

I didn’t think my graphics card was that old, I guess it may be time for an upgrade :’(

It’s my first time to see this

ERROR:  compilation errors.  No code generated.

hmm I’m not really surprised by this error :slight_smile: In fact I did something quite hacky in this shader as a quick workaround: testing the texture size using textureSize(…) to determine if a texture is binded … But textureSize() is only available in GLSL 1.3 which is apparently not supported by your card. So I’m going to fix this in a proper way instead of relying on this dirty hack: I just have to always bind a texture even to draw solid colors ( I’ll just bind a white texture in this case … )

It will be fixed in the next update I’ll post … so you can keep your graphic card :wink:

Thanks for testing !

EDIT: just realized that I already fixed this some time ago by just removing the fragment shader which basically does nothing … :slight_smile: I really should post a new version, the one here is quite old …

Please do! This game looks amazing! This is the type of game I’ve been wanting to make. I don’t know if this has been asked, any plans to open the source up?

Kudos.

Just had a game. Fantastic. Didnt realise it would be like 2D quake 3! amazing :slight_smile:

I was able to play it by removing the contents of the main() in the shader.

Very well done. Game play is smooth, graphics are fantastic. The bots kicked my butt.

no I don’t plan to open source it, or maybe only if I’m not able to sell it :slight_smile:

ah ah cool ! Kicking butts is the main hobby of the bots, they like it :slight_smile:

This is awesome!
Too bad you ruined my night sleep …

I love the light engine! Only suggestion is center the camera on the player, otherwise it’s pretty hard to get the hang of the controls. Also I was met with an error having to do with the AI after the session was over:
[spoiler]


java.lang.ArrayIndexOutOfBoundsException: -1
	at com.deathpat.shoot.model.map.MapGraph.calculateCostToTravelBetweenNodes(MapGraph.java:191)
	at com.deathpat.shoot.model.creature.bot.PathPlanner.getCostToPosition(PathPlanner.java:194)
	at com.deathpat.shoot.model.creature.bot.brain.goals.GoalExplore.activate(GoalExplore.java:52)
	at com.deathpat.shoot.model.creature.bot.brain.Goal.activateIfInactive(Goal.java:94)
	at com.deathpat.shoot.model.creature.bot.brain.goals.GoalExplore.process(GoalExplore.java:75)
	at com.deathpat.shoot.model.creature.bot.brain.GoalComposite.processSubgoals(GoalComposite.java:49)
	at com.deathpat.shoot.model.creature.bot.brain.goals.GoalThink.process(GoalThink.java:112)
	at com.deathpat.shoot.model.creature.BotPlayer.updateBehavior(BotPlayer.java:307)
	at com.deathpat.shoot.model.creature.Player.updateState(Player.java:617)
	at com.deathpat.shoot.model.GameWorld.updateState(GameWorld.java:257)
	at com.deathpat.shoot.model.game.states.solo.SoloGamePlaying.updateState(SoloGamePlaying.java:44)
	at com.deathpat.shoot.engine.state.StateMachine.updateState(StateMachine.java:182)
	at com.deathpat.shoot.model.game.SoloScoreGame.updateState(SoloScoreGame.java:122)
	at com.deathpat.shoot.model.scene.scenes.InGame.updateState(InGame.java:129)
	at com.deathpat.shoot.model.scene.GameScene.onUpdate(GameScene.java:55)
	at com.deathpat.shoot.engine.scene.Scene.update(Scene.java:123)
	at com.deathpat.shoot.engine.scene.SceneManager.update(SceneManager.java:97)
	at com.deathpat.shoot.engine.Engine.oneLoop(Engine.java:348)
	at com.deathpat.shoot.engine.Engine.start(Engine.java:325)
	at com.deathpat.shoot.Daedalus.<init>(Daedalus.java:58)
	at com.deathpat.shoot.Daedalus.main(Daedalus.java:42)

[/spoiler]

I love the light engine! Only suggestion is center the camera on the player, otherwise it’s pretty hard to get the hang of the controls. Also I was met with an error having to do with the AI after the session was over:
[spoiler]


java.lang.ArrayIndexOutOfBoundsException: -1
	at com.deathpat.shoot.model.map.MapGraph.calculateCostToTravelBetweenNodes(MapGraph.java:191)
	at com.deathpat.shoot.model.creature.bot.PathPlanner.getCostToPosition(PathPlanner.java:194)
	at com.deathpat.shoot.model.creature.bot.brain.goals.GoalExplore.activate(GoalExplore.java:52)
	at com.deathpat.shoot.model.creature.bot.brain.Goal.activateIfInactive(Goal.java:94)
	at com.deathpat.shoot.model.creature.bot.brain.goals.GoalExplore.process(GoalExplore.java:75)
	at com.deathpat.shoot.model.creature.bot.brain.GoalComposite.processSubgoals(GoalComposite.java:49)
	at com.deathpat.shoot.model.creature.bot.brain.goals.GoalThink.process(GoalThink.java:112)
	at com.deathpat.shoot.model.creature.BotPlayer.updateBehavior(BotPlayer.java:307)
	at com.deathpat.shoot.model.creature.Player.updateState(Player.java:617)
	at com.deathpat.shoot.model.GameWorld.updateState(GameWorld.java:257)
	at com.deathpat.shoot.model.game.states.solo.SoloGamePlaying.updateState(SoloGamePlaying.java:44)
	at com.deathpat.shoot.engine.state.StateMachine.updateState(StateMachine.java:182)
	at com.deathpat.shoot.model.game.SoloScoreGame.updateState(SoloScoreGame.java:122)
	at com.deathpat.shoot.model.scene.scenes.InGame.updateState(InGame.java:129)
	at com.deathpat.shoot.model.scene.GameScene.onUpdate(GameScene.java:55)
	at com.deathpat.shoot.engine.scene.Scene.update(Scene.java:123)
	at com.deathpat.shoot.engine.scene.SceneManager.update(SceneManager.java:97)
	at com.deathpat.shoot.engine.Engine.oneLoop(Engine.java:348)
	at com.deathpat.shoot.engine.Engine.start(Engine.java:325)
	at com.deathpat.shoot.Daedalus.<init>(Daedalus.java:58)
	at com.deathpat.shoot.Daedalus.main(Daedalus.java:42)

[/spoiler]

Thanks for testing, this error is fixed for quite some time so it will be ok in the next release I’ll post. Thanks for reporting anyway :wink:

A bit of an announcement:

I just opened a post on steam greenlight so if you happen to have an account on steam please vote for me ! :slight_smile:

http://steamcommunity.com/sharedfiles/filedetails/?id=143234929

I will post a new release here real soon, certainly next week

cheers