Conquer - LWJGL Turnbased Strategy

yeah I’d have to strip it down like crazy though. Don’t know if I can handle that :wink: I’m a victim of feature creep. I would never be satisfied submitting something with that limit. Right now the jarred up class files amount to 200k.

Played this for the first time :slight_smile:

I initially felt overwhelmed by all the windows and couldn’t immediately figure what to do. I found the help, but then kicked off a computer versus computer game as I hadn’t added any Human players. Started a new game, but didn’t know what to put in the ‘Type’ box when adding a new player. The Help system rescued me, although I note that the box says ‘Add Human Player’, but is also used for adding computer players.

Having successfully started a new game, everything dropped into place & I had an enjoyable game, where I started off well, but then over depleted my starting bases, allowing the computer to make a comeback.

Overall, the basic game reminds me a bit of the board & cardboard ship game ‘Starfire’ by Task Force Games (now out of print)which I played a lot in my Uni days. I believe it got turned into an online version at some point. It was a good game, but took hours & hours to play with the ‘Empires’ rules (where you captured planets as per your game), so games seldom completed.

Ships came in several hull sizes & you could fit in your choice of engines, cargo bays, armour, shields & various weapons, as your cash & hull size permitted. In practice there were two basic strategies. You either built lots of cheap small light ships with one weapon, or a few expensive heavy armoured ships with multiple weapons. If you attacked a heavily armoured ship with lots of light-weight ships, then the heavy ship could cut down a few lightweight ships every turn, but couldn’t kill them all at once. In the meantime the combined firepower of the remaining ships would wear down the heavy ships shields.

Overall I loved your game.

Wonders where he put the Starfire games

Thanks for your response! I’ll fix that but with the name of the text field :slight_smile: I’m glad it went well for you. I hope to add more features in the future to make the game more interesting without making it overly complicated. We’ll see how that goes :slight_smile:

Every time I try to start up a game of Conquer after I have played it exited, then try to play again a day or 2 later, I get this exception:


java.lang.NumberFormatException: For input string: "-8453889<PLAYERS.DUMBAIPLAYER>name=Comp 1<PLAYERS.DUMBAIPLAYER>"
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Integer.parseInt(Unknown Source)
	at java.lang.Integer.valueOf(Unknown Source)
	at com.gamelizard.util.DBConnection.SaveMap.getInt(SaveMap.java:87)
	at conquer.players.Player.createSavedObject(Player.java:244)
	at conquer.MuffinManager.loadMuffin(MuffinManager.java:70)
	at conquer.MuffinManager.<init>(MuffinManager.java:34)
	at conquer.LWJGLRunner.<init>(LWJGLRunner.java:84)
	at conquer.LWJGLRunner.main(LWJGLRunner.java:55)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.continueLaunch(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

I have to remove it and then re-download it every time.

Finally remembered my password again, sigh…

Looking good now, you fixed the error I got :wink: and nice end game info screen.
If you could add/change the add human player thingy you’ve got a syntactically sound game to my liking.
(just set ‘human’ and a team name into the gui by default and show an ‘Are you sure you want no human players?’ window when the player wants to start … or something)

The idea is simple, but its very hard to beat the cpu, although I’ve noticed that they ALWAYS go for your nearest planet first, thereby allowing you to replenish that one with ships from the planets further back. But I still suck at it :stuck_out_tongue:

@CaptainJester: should be fixed now, thank you!

@Warren_Head: I changed the text to “Add Player” now.

I’m currently adding some keyboard support so you should be able to do all the functionality you use now with the keyboard. I’m thinking perhaps if you have so many Planets that they go into the double digits, pressing a letter will just cycle through all of the planets whose names start with that letter. For most games you’ll have instant, [letter] [letter] [action] for each move. For larger games, you’ll have to cycle just a bit. We’ll see how it goes! :slight_smile:

I’m also pondering a dumber AI to help those first learning. Most of my friends still need some tactical advice when first learning. For me playing the original, I had to get my butt whooped a few times to realize how I needed to strategize :wink: Still I think a dumber AI could be helpful. I’ll work on that too!

Warren, I just added your suggestion for the defaults in the text fields. I hope that helps new players get started :slight_smile: I also added key support. Click on the Grid Board to give it key focus, then press the first letter of the desired planet you would normally click on, and if it’s the wrong one, click Tab or Shift+Tab to cycle through other possible planets that start with the same letter until you get the one you want. Once you’ve selected a source and destination, typing the number in (backspacing if you need to) should work like normal. Enter submits, End does Submit All, and Space ends your turn.

Try it out and let me know how it’s working!

Known limitations: Selecting a planet doesn’t show it in the InfoDisplay yet. You can’t send ships to your own planets yet. I’ll fix both of these soon, but go ahead and try it out and we’ll see what else should be done with it.

Thanks!

Found a bug. I made my settings 1024x768 fullscreen. After I exited and cam e back another time, it restarted the game in a window. The window was 800x600, but the game was still drawing for 1024x768. Also the cursor would not go all the way to the top of the window, so I could not access any of the menus. When the cursor got about 2 inches from the top, the native cursor would appear outside the game window, so it looks like your mouse coordinates didn’t jive with actual coordinates.

The other problem is fixed now.

[EDIT]
I wiped the game and redownloaded, but it still did not erase some old settings, so it is still happening.

[2nd EDIT]
I tried a complete wipe of the cache, not just deleting conquer, and that removed the old settings. Can play it now.

[Update]
It happens whether you are in windowed or fullscreen mode.

I’ve got an issue with the resolution changing code on WinXP Pro.

If I select, for example, 1280x1024 (fullscreen), the game tries to set the refresh rate to 150hz, which my monitor does not support. I can close the application via Alt+F4, but when I restart the game it’s in a window, and still somehow on 1280x1024 (well, the game is on this resolution, but the window it’s approx. 800x600).

The issue prevents me from accessing the menu to change the resolution again - kind of a pain.

Also, if I go into Java Web Start directly, and “Remove Application” it does so, but when I download the game again, it’s still stuck on that awkward, pseudo resolution, and the game is totally unplayable (because I can’t make basic interactions with it).

Otherwise, before I messed around with the resolution/fullscreen setting I was having a lot of fun.

==========
EDIT: Okay, somehow I thought there was only 1 page of posts, and I missed the other 3 pages when I originally posted this. I’m having exactly the same issue as CaptainJester is describing.

And the same issue appears on OS X as well - even if I don’t use fullscreen mode.

so that means LWJGL is telling me that one of your supported modes has a refresh rate of 150hz. The only resolutions I set are taken directly from the list LWJGL hands to me. I don’t ever create any new ones. Does that mean it’s a LWJGL problem? CaptainJester, I think I can work on that one. I’ll let you know how that goes!

Edit:
OK I fixed the wrong-resolution-loading bug. I have no idea what to do about the invalid display mode bug. Any suggestions? Should I bark at the LWJGL people? :slight_smile:

Edit2:
The filter code now caps acceptable refresh rates at 85hz. I hope that helps. Let me know if there are any more problems!

It could actually be a OpenGL problem. I know that my video card can display higher refresh rates than my monitor can handle. Those high refresh rates are still on the list of DisplayModes returned by LWJGL(OpenGL).

In Windows display settings, it corrects for this by providing a checkbox to allow me to limit the available refresh rates to what the monitor can handle.

I was about to suggest the same thing. Is there any way to get a list of display modes supported by your monitor under LWJGL, and sort of logically AND the two lists together (you know what I mean)?

The other option, which is a nice catch-all that I personally like, is that thing that Windows does when you change your resolution. It pops up a dialog for 15 seconds asking, “Do you want to keep these settings?”. The idea being that it forces the user to acknowledge the dialog within 15 seconds, and if they don’t, it automatically switches the display mode back to the mode it just came from. It’s a simple way to prevent such issues, and doesn’t force the player to quit and restart your game everytime they accidentally select an invalid display mode.

I’ve seen features like this in other professional games as well - I guess the idea is that you never know for sure if the display mode you select is actually going to work, without asking the user.

videomodes are tested against for validity using ChangeDisplaySettings (CDS_TEST) on Windows. So it should be valid, according to Windows. If this isn’t the case, we can’t do much about it.

Alrighty then I’ll work on the pop up box if anyone reports another issue! Thanks for that suggestion guys.

Hey, I’ve got a feature suggestion:

How about highlighting (perhaps with a red circle, or flashing colors) the planets of the current player that were attacked in the last turn. This wouldn’t reveal anymore information than is already available (since you can just watch the logs), but it would make it much quicker to get at this information. It would also more clearly allow the player to see the areas under contest. Again, since this information is already available via the log, it doesn’t reveal any more information, and thus shouldn’t affect strategy.

'Course the goal is to mimick Konquest, right? I’ve never played it, does it have any such feature besides a battle log?

Konquest doesn’t have it, but I agree that Conquer should :slight_smile: I’ll have that done.

Unfortunately, I got this error after starting to play Conqueror again.

java.lang.NullPointerException
at conquer.MuffinManager.loadAfterInit(MuffinManager.java:67)
at conquer.LWJGLRunner.(LWJGLRunner.java:100)
at conquer.LWJGLRunner.main(LWJGLRunner.java:55)
etc…

I removed the application, removed the temporary files and reinstalled it, but still this error.

Oh, one more feature suggestion:

I’ve almost stopped playing GTA: San Andreas because I’ve spent so much time on this game! So freakin’ addictive! It’s great for a quick 10-30 minute session.

Alright - how about multi-planet selection. That is, allow the player to select multiple planets at once (perhaps with a drag-selection, or CTRL+Click) so as to allow quick movement of large numbers of ships to a particular planet. Well, maybe the drag-selection won’t work, because that would change the way that you pan the map - which already works quite well.

I’ve been playing super-dense maps against 2 AI players - working with multiple thousands of ships on the map. Speaking of which, what’s the maximum number of ships allowed on a single planet? I’ve had up to 8,000+. I suppose it’s 2^31 right?

@Warren: Sorry about that! I screwed it up in the latest update :slight_smile:

@kul_th_las: Great to hear!! I’m really glad you like it :slight_smile: I’m working on multiple selection now!
Max ships per fleet/planet is Integer.MAX_VALUE ;D

I just uploaded a fix for the bug Warren hit and it also includes a new “flash” feature. When you lose a planet, it flashes red. When you conquer one, it flashes green. I don’t think the image is bright enough yet, but that’ll change asap. Until then, let me know what you think!

By the way, is the keyboard setup good/helpful? Anyone trying it yet?