Carcassonne Central

Carc Central Community => Online Games and Competitions => JCloisterZone FAQ, Suggestions & Bug Reports => Topic started by: mike_bike_kite on November 13, 2014, 12:41:56 PM

Title: A few suggestions for JCloister
Post by: mike_bike_kite on November 13, 2014, 12:41:56 PM
I have been using Jcloister for a while and wanted to give some suggestions:

User interface issues:
AI:
General Info:
Nice to have:

I know there are a lot of points above but I was asked to put my suggestions on this forum so here they are. I'm actually very impressed by JCloister and the current version is great fun to play but there's always a little more that can be done and these were my suggestions. Feel free to comment.

Mike

Did anyone else find it took them 7 attempts to register (perhaps I really am a robot :-[ )
and now there's more questions before I can post  >:D
I think it was easier to get my passport!  :)
Title: Re: A few suggestions for JCloister
Post by: farin on November 15, 2014, 11:10:57 AM
UI
1 - there is  scrollbar, but you are definitely right it is sick. I want to improve it soon.
2 - what do you mean? You must extract it and you delete zip immediately. Or do you mean icon of .jar file?
3 - One reason is that you may want to rotate first than move to tile when you place. But it is probably less common scenario
and you are not first who request it. I will probably change it to skip invalid rotation with config option to use current way
4 - use tab or right click to toggle. Is it enough?
5 - it should remember it. One connected to point 2. Do you run it directly from zip? In such case config wouldn't be writable ...
6 - you can play both rivers. Do you have any issue with it?

AI
yep, nice to have but quite complex task. road map is now focusing to public server (human to human play is better)

General
1. you right, it useless
2. when public server will be done it will be possible, it is not bad idea
3. yep

nice to have
i am not graphics designer, if somebody wants participate is open to such things

Title: Re: A few suggestions for JCloister
Post by: danisthirty on November 15, 2014, 11:15:48 PM
Hi Mike, welcome to the forums.  :(y)

Please consider that farin has a family and a full-time job, and that his work on JCloisterZone is just a "labour of love" for him. Furthermore, he doesn't receive any money for it and consequently doesn't owe us anything...

A lot of the suggestions you've come up with might indeed seem easy to implement but this all takes time and there are other areas of the program that farin is concentrating on at present (providing a dedicated server for online play is huge, and keeping on top of bug reports, feature requests and new expansions could easily be a full-time job in itself for many people).

I don't know how much you've played with JCloisterZone but I've played probably about 300 games spread fairly evenly between human and AI opponents. Others here have played many more than this! I think the ui is something that you get used to the more you play it. In response to points 3 and 4 of yours regarding this, I don't see either of these as issues at all. The tile thing I don't even notice and the way of selecting meeple types (or other options i.e. princess, fairy, tower etc) by tabbing across works very well as it is (in my opinion).

Also, AI is massive! I can't begin to imagine how to program a computer to beat even my 3 year-old daughter at Carcassonne and I have a degree in Computing! When compared to some other electronic versions of Carcassonne such as the Android app, farin's AI is actually a lot better and those other versions are worked on by teams of developers who are being paid for their efforts! There's certainly room for improvement and perhaps some different "styles" of play, but this has never felt like something that urgently needs to be looked at.

I'll check whether your account has been properly verified. Any question answering before posting should only be a very temporary measure.

Dan  :)
Title: Re: A few suggestions for JCloister
Post by: mike_bike_kite on November 16, 2014, 02:22:00 AM
Please consider that farin has a family and a full-time job, and that his work on JCloisterZone is just a "labour of love" for him. Furthermore, he doesn't receive any money for it and consequently doesn't owe us anything...
I think the work he's done is great and my points weren't complaints but suggestions for making the game even better.

I don't know how much you've played with JCloisterZone but  ... I don't even notice and the way of selecting meeple types
If you do something a lot then it will become automatic but if you're a new user trying the game out then it's a painful barrier. The obvious solution is to keep the various key presses for "power users" and have the floating icons for those of us who need a more intuitive interface.

Also, AI is massive! I can't begin to imagine how to program a computer to beat even my 3 year-old daughter at Carcassonne and I have a degree in Computing!
I write classical games as a hobby (chess, draughts, othello, connect 4 etc) so I fully understand that this part is quite difficult. Improving the AI is certainly tough but luckily this isn't a huge issue. Getting a range of skill levels for the existing AI's is quite straightforward - all you do is alter the weighting of the various scoring methods and perhaps introduce a small random element for each AI. You might have an AI called Emma that put's much more weighting on farms than normal while an AI called Peter might try to stop you building cities at every turn. You could then play all these new personalities against each other to come up with a league table of AI personalities.

UI
1 - there is  scrollbar, but you are definitely right it is sick. I want to improve it soon.
2 - what do you mean? You must extract it and you delete zip immediately. Or do you mean icon of .jar file?
3 - One reason is that you may want to rotate first than move to tile when you place. But it is probably less common scenario
and you are not first who request it. I will probably change it to skip invalid rotation with config option to use current way
4 - use tab or right click to toggle. Is it enough?
5 - it should remember it. One connected to point 2. Do you run it directly from zip? In such case config wouldn't be writable ...
6 - you can play both rivers. Do you have any issue with it?

AI
yep, nice to have but quite complex task. road map is now focusing to public server (human to human play is better)

General
1. you right, it useless
2. when public server will be done it will be possible, it is not bad idea
3. yep

nice to have
i am not graphics designer, if somebody wants participate is open to such things
UI 1 - the scrollbar definitely doesn't show on my laptop (a C720 running Linux). The start game button is off the screen to the right and the options at the bottom of the screen are also impossible to view. An easy fix would be to put "start game" in the pull down menu as well.
UI 2 - I was after an icon to view on my desktop. At the moment I have lot's of professional looking icons on my desktop that go with various programs but for JCloister I have no graphic at all. I'll try and attach an icon to this post.
UI 4 - No. Regular users of your program will quickly adopt to any set of random key presses to control your program but if you want a wider audience then you need to make this part much more intuitive. I'll admit I nearly deleted your program from my PC when I was clicking a tile that wouldn't rotate for some reason (it was a previous version) when suddenly it rotated, added a meeple in the wrong place and ended my go.
UI 5 - The only way to get the program to remember your settings is to edit the settings file and save it. This seems a little crazy to me as you have a reasonable GUI interface to the settings in the program yet it does nothing when I press save. The program is unzipped etc. Have you considered using java.util.prefs.Preferences for saving settings etc?
UI 6 - my bad  :-[
AI  - see my reply to Dan above.
Nice to have - perhaps it might be worthwhile to have a list of tasks that you might like help with.
Title: Re: A few suggestions for JCloister
Post by: Gerry on November 16, 2014, 11:06:54 AM
Since the program is written using JAVA perhaps Farin could arrange for it to make some coffee while we are playing   :@
Title: Re: A few suggestions for JCloister
Post by: farin on November 16, 2014, 01:40:42 PM
feedback from fresh players is great, they don't suffer with blindness to flaws we are used to

mike_bike_kite: I want to examine more settings saving problem. To be sure. you say that if you change item in settings menu it is not remember in next app run, is it? (same presets is not saved ok?)
Could you please provide your java version
$ java -version

and run app from console with more detailed logging:
$ java -jar JCloisterZone.jar -Dorg.slf4j.simpleLogger.defaultLogLevel=info

try change settings and paste console output

btw AI improvements is big point in roadmap, maybe during next year ...
Title: Re: A few suggestions for JCloister
Post by: mike_bike_kite on November 17, 2014, 01:30:10 AM
Version:
Code: [Select]
E:\Dropbox\Projects\AlienSwarm>java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)

Detailed logging:
Code: [Select]
E:\Program Files (x86)\JCloisterZone>dir
 Volume in drive E is New Volume
 Volume Serial Number is 28DF-AF11

 Directory of E:\Program Files (x86)\JCloisterZone

15/11/2014  10:38    <DIR>          .
15/11/2014  10:38    <DIR>          ..
13/11/2014  19:34             1,954 config.yaml
15/11/2014  10:38               154 error.log
13/11/2014  19:33         5,603,035 JCloisterZone.jar
13/11/2014  19:33               762 JCloisterZone.jar - Shortcut.lnk
13/11/2014  19:33    <DIR>          plugins
05/01/2014  23:19    <DIR>          saves
               4 File(s)      5,605,905 bytes
               4 Dir(s)  795,501,604,864 bytes free

E:\Program Files (x86)\JCloisterZone>java -jar JCloisterZone.jar -Dorg.slf4j.sim
pleLogger.defaultLogLevel=info
[AWT-EventQueue-0] WARN com.jcloisterzone.config.ConfigLoader - Unable to create
 configuration file E:\Program%20Files%20(x86)\JCloisterZone\config.yaml
It seems it can't write to this directory. Should it be writing elsewhere? should the program be elsewhere? should jcloister just be using the prefs class (http://www.vogella.com/tutorials/JavaPreferences/article.html)?

Yet more suggestions:
  • Can the settings screen be split into 2 with one screen to choose players and the other for settings?
  • Could the player screen have avatar images of the AI players?
  • Could the settings screen include the settings from the extra settings that are only available from the menu?
  • It would look pretty if the settings screen just had small images of the expansions with a tick if they were active. Not sure how you'd stand on copy-write here.

Regards the AI stuff: strangely I always preferred working on the AI to the graphics stuff, I felt like a new father when my chess program beat me for the first time. I think you should have a way of altering the personalities (and strength) of the AI's before you make the AI stronger though. It would be off putting for a new player to start up JCloister and be crushed by the AI on every turn.
Title: Re: A few suggestions for JCloister
Post by: farin on November 17, 2014, 04:37:13 AM
thanks, it will try it myself with jcz in same location lnk shortcut.

yaml fits better then prefs, better for human reading, debugging etc, power users making changes directly to it (eg changing timeout to dismiss score etc.)
I will rather make some fallback for write restriction (maybe using prefs)

game setup is in single page because you can setup game and other people can connect
don't care much about it now, roadmap for 3.2 is more granular expansion and rules settings which needs this page completely redesign.

Main problem with AI is that it was quite old part of code. In 3.0 I made bug refactoring and way to improve this is open. But it is gradual process.
Title: Re: A few suggestions for JCloister
Post by: mike_bike_kite on November 17, 2014, 05:22:49 AM
Thanks for considering the suggestions Farin but remember they are only suggestions  :)
You could consider the idea of making the project an open source project though I'll admit I've never released any of my projects this way.
If not then you could just have a list of items you might like help on - things like the graphics and sounds could be done by others without accessing your code.

Mike

PS remember that power users are only about 5% of your user base. Making it easy to use for the other 95% should be a higher priority but it's your choice.
Title: Re: A few suggestions for JCloister
Post by: MrNumbers on November 17, 2014, 05:29:04 AM
You could consider the idea of making the project an open source project

The project is already open source.
Title: Re: A few suggestions for JCloister
Post by: Hounk on January 11, 2015, 03:02:55 AM
I was not aware while playing my first online game, that I was doing it against the programmer of this very fine software. Thanks a lot for it and high regards to you, farin.

Anyway, one thing which was not easy at first glance to figure out was, how to include AI players to the game. (Pressing a button twice.) Maybe this could be added to the control sheet of the help section. I must add, that I use JCZ with German language setting. This is perfect with me and I would not know, how to change it, it was the setup by default. So I do not know, if this is an issue in the English version as well.
Title: Re: A few suggestions for JCloister
Post by: MrNumbers on February 01, 2015, 12:07:22 PM
I've just got an idea that doesn't take much time and work to implement:
Playing with "Traders & Builders", it would be nice to know, how efficiently the builder was used by every player.
I see it as an additional line in the results window in a very simple manner: "Tiles drawn" (or "Tiles placed").
Since it is a very popular expansion and is used in almost every game, I think this information is good to know.

What do you think?

P.S. It's a pity that I've got this idea almost at the end of "Traders & Builders" League :-\
Title: Re: A few suggestions for JCloister
Post by: danisthirty on February 01, 2015, 12:31:59 PM
Great idea. Seeing the number of bonus/ builder turns generated by each player would be really interesting. I have a feeling my builder is often somewhat underutilised...
Title: Re: A few suggestions for JCloister
Post by: Carcking on February 01, 2015, 07:45:15 PM
Sounds like a great idea. Seems simple but that is speaking from ignorance of the JCloister code.  ???
Title: Re: A few suggestions for JCloister
Post by: Hounk on February 02, 2015, 12:08:32 AM
One possibility might be, to count and show how many tiles each player has placed during the game. Of course, this would also indicate the possible advantage of being first in line and in a future version, which might include "The Messengers" also the extras turns generated by this expansion. But in first place, the difference will always be mainly because of the use of the builder.
Title: Re: A few suggestions for JCloister
Post by: farin on February 02, 2015, 02:50:51 AM
all these kinds of stats are very easy to implement (i think i have already some idea about extending stats with other then point lines and then completely forget about it :-)
adding task to github
Title: Re: A few suggestions for JCloister
Post by: mike_bike_kite on February 11, 2015, 12:29:38 PM
I like the idea of the stats to - I quite often under use builders and pigs etc.

Adding players: Rather than having the current system where you click, click and click again until you get the right option - just have two options to either add a human player or a computer player. This might allow you to add some simple graphics to the set up screen. It would be nice if it could remember your name (and the rest of your settings!!) after you set in once in the GUI.

Please say if you want any ideas for improving the AI. I have lot's of thoughts but you might already of done much of it.