Turnbased simultaneous strategy

Hi!

Server is up (A newly registered user can always start new games, but the client is NOT user friendly, I’m working on a new client).

Play it here (webstart):
http://chief.foldspace.com/ (<— this is a new server, much faster than the earlier)
http://chief.foldspace.com/chief2.jnlp (<— this is a new client, much cooler than the earlier)

My new game project is ready for early tests. It’s no cool technology (no, hibernate with annotations does NOT qualify as cool) or anything but hopefully good strategy gameplay. The game is played in turns and all players give simulataneous order.
In an early phase, orders where emailed as text (Alpha attack Beta) to the game administrator. Now, you play through a java client that talks webservices with the server. Everything is point and click. The number of players is not limited (but the size of the map has a practical limit). 1-10 players should be no problem. 10-20 should be ok but the map would need to be huge.

Synth LF
It’s all swing (apart from the map of course). I have designed the Look and feel myself (using synth). Synth is a great idea, but with lots of oddness and almost zero documentation. I really hope sun fixes this in the future. Lots of stuff that worked great on jdk 5 didn’t work when I tested it with jdk 6. I have my own custom painter. A lot of methods only draw white backgrounds in text boxes.

here are some games played on the old system:
The site with the games has been hacked!

And the site with a manual (rules are somewhat old):
The same site, so it is hacked.

I’m doing an animated manual (in powerpoint), it’s as basic as possible (also somewhat old):
Get it here:
http://groups.google.com/group/strategy-wargame/files

I will monitor it when I can. New games will be started when I am awake. There is an ingame chat, talk to me!

Looks nice, but I would prefer a faster interaction. So either AI Computer Opponents or Online Multiplayer. 2 Moves per week wont keep me interested for a time.

Anyway, the idea and look is really nice. Im just no play by Email friend. And hobby games can always have trouble finding enough players, so AI opponents are a must.

-JAW

Thanks!
When the (or maybe if) the final version is out, it will be playable through a java-client. And then you can have whatever pace you want as long as all players agree.
But it is my hope that this will attract players who like diplomacy or stars! pbem, and then it is one order per day or something like that. I aim for games with lots of players (thats why it is simultaneous which is a pain to do good).

I agree, AI would be very nice. If you want a quick game and you have no friends online or if you want to learn or try out a new strategy. I haven’t been thinking about how to do it.

See the new page at:

http://www.gunslinger.se/

It should be lots faster than my own server. The documents are updated but the gameplay example is the same as before.

The first game has started:

http://www.gunslinger.se/game_a/

I’m thinking hard on an AI. Non-deterministic rules and simultaneous orders are not easy compared to othello(reversi) (the only other strategy game I have written an AI for).

The AI is ready for action. Already It defends itself admirably (attack is the best defence).
If anyone is willing to try it out, send me a message.

Example of me playing the AI is here:

http://www.gunslinger.se/output-x/

Several games has been played. But not all of them are online. Here are some urls to games in progress:

http://www.gunslinger.se/game
http://www.gunslinger.se/game2
http://www.gunslinger.se/game3
http://www.gunslinger.se/game4

Here is the new manual:

http://www.gunslinger.se/Joomla/ (click wargame)

I’m currently rewriting the engine to use Hibernate with annotations instead of text-files. This should make it easier to integrate the system into a server. The goal right now is to have a web client. You log into your account, see what games require your attention. Maybe play a game against the AI. Maybe review your orders waiting to be executed etc etc.

The game is playable against the AI, but it is not very user friendly (type orders as text into a textfile, run game, read html-file, repeat). Download latest package here:
http://gunslinger-game.mine.nu/dist.zip

Read the quickstart in the manual for instructions.

Links updated in start post.

I’m currently deciding on the webclient technology. Right now the history function is a series of images. Each image is >200k. Each turn consists of 15 images. You do the math. It puts a strain on bandwidth and server storage. Maybe not now, but in the long run. I would like to save ALL game history.

Right now I’m thinking of html and css. The map image is always the same and it will almost always be cached. On top of this

tags could display each army and all other elements. The graphics is very simple.

I’ve had my thoughts with openLaszlo that generates a flash movie for each turn beeing played. This have several advantages. It works the same in most browsers. It can easily be distributed via mail etc…

I’m doing an animated manual (in powerpoint), it’s as basic as possible:
Get it here:
http://groups.google.com/group/strategy-wargame/files

http://chief.mine.nu/chief.jnlp

The fat client is finally in early testing. I will keep track of registered users and start new games when I can. Right now, only a two player map is available.

The server is currently offline. I have done some testing and found some bugs.

As for the architecture, this is tomcat running webservices (Metro from sun).
Behind the curtain is a hibernate that talks to a mysql database.

The client is swing. Map display is drawn with java2d.

Why not add a web interface?

[quote]Why not add a web interface?
[/quote]
It’s on the todo-list. I hesitated a long time before deciding to write a fat client. But in the end I though on how much more I like to program java and swing over html and javascript (I’m not that good with any other web technology).

I want to finish the game (that means adding airfleets and naval units), build a whole lot of maps, make scenarios for different historical wars and build a living community first. If all that succede, I will write the web client. Webstart seems to work quite good at the moment. In a year I hope there will be a clearer picture of what technology to use, flash, openLazlo, silverlight, html+javascript, google web toolkit etc…


javax.xml.ws.WebServiceException: Failed to access the WSDL at: http://chief.mine.nu:8080/cic?wsdl. It failed with: 
	Connection refused: connect.
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(RuntimeWSDLParser.java:162)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:144)
	at com.sun.xml.ws.client.WSServiceDelegate.parseWSDL(WSServiceDelegate.java:263)
	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:226)
	at com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:174)
	at com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:104)
	at javax.xml.ws.Service.<init>(Unknown Source)
	at borb.cic.wsclient.CicServiceService.<init>(CicServiceService.java:42)
	at borb.cic.client.CicClient.<init>(CicClient.java:165)
	at borb.cic.client.CicClient.main(CicClient.java:145)
	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.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(Unknown Source)
	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
	at java.net.PlainSocketImpl.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at java.net.Socket.connect(Unknown Source)
	at sun.net.NetworkClient.doConnect(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.openServer(Unknown Source)
	at sun.net.www.http.HttpClient.<init>(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.http.HttpClient.New(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.URL.openStream(Unknown Source)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.createReader(RuntimeWSDLParser.java:805)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.resolveWSDL(RuntimeWSDLParser.java:262)
	at com.sun.xml.ws.wsdl.parser.RuntimeWSDLParser.parse(RuntimeWSDLParser.java:129)
	... 17 more


Yeah… sorry. The server is currently offline. And it’s a bad error message, I know.

I found a couple of pretty nasty bugs, one of them an infinite loop that filled the disk on my server. I have fixed it now and am in the process of uploading the new version.

Server is up.

Sorry for the short post but I was in a hurry.

The reason why I was asking was because it all seemed to look like an interesting project that would really have potential as a browser based game and the requirements are also not so high.

Also, from the tech you are using, you could also think about using some kind of app server like JBoss, which would offer all that you need + tons of features.
While getting my feet wet with JBoss I had done my trials with the idea of making a small web-based game.
Not to mention it offers a kind of extended RMI access and thus saves you from using SOAP.
I can gladly help you with any questions you have and some implementation help (as JBoss, EJB3 and like being OS projects the documentation is scarce and if available often does not fulfil the needs).

Hi!

First of all, I am pretty content with how the client server architecture works right now. Using metro on both the server and client really keep it out of my hair. Now when the ant scripts is set up correctly, calling the server is exactly as easy as calling a normal method. Metro and tomcat takes care of the rest for me.

But I used both hibernate and webservices to learn more about them. I’ve hade my problems but in the end I’m happy about my choice in software stack.

JBoss is also on my private todo-list to learn, just not right now… Thanks for the offer, I might call you in a year! :slight_smile:

I have fixed lots of bugs during the last few days. The game is starting to come together (client still looks like crap though). There are four maps. Two symmetrical duels, one Germany vs France WWII and one symmetrical four player game. It’s really easy making new maps.

On the todo list:
air units
pretty user friendly client

I’m now trying to show all dates and times in your local format. Please tell me if this is not the case (along with your OS, java version etc etc, you know the drill). Thanks! :slight_smile: