|
On February 18 2014 03:04 Blazinghand wrote:Show nested quote +On February 17 2014 11:58 Promethelax wrote:On February 16 2014 20:03 Xatalos wrote:On February 14 2014 11:32 Promethelax wrote:On January 27 2014 04:56 Xatalos wrote:On January 27 2014 00:43 raynpelikoneet wrote: I think the optimal/suboptimal play is the most decideing factor in a game. Agreed, probably impossible to balance since you can't know or predict where the suboptimal play happens (is it going to be mafia, town??) and it's impossible to calculate.
If you look at Really Small mini mafia for example: 1 doctor, 4 VT vs 2 goon (+ instant majority lynch which usually favors mafia). Your program gives the following chances: Town 45.16 % Mafia 54.84 % -> Overwhelming town victory
After the game i talked with Mocsta about the game. He asked me "how is mafia supposed to win that game?". I don't know, if we assume all the players played as optimally they did in that game, regardless who was mafia i think mafia wouldn't have stood a chance. When townies look town there are no mislynces. So what do you do? You most likely lose because you need to make up things as there is no bad play to punish and good players will see through your bullshit.
So all in all i think the play of players is the biggest factor in games, regardless of the roles, but it is impossible to balance as you can't predict the "level of play" beforehand. That's an interesting example. I agree that it gets harder for Mafia if everyone is playing "perfectly". On the other hand, if everyone *is* playing perfectly, then Mafia should be favored, since it would be just random chance to hit Mafia (which is more unlikely). But it's a lot harder for Mafia than for town to really appear town in an environment where every townie appears townish. Setup balance does still play a role and should be focused on - since it's the only truly predictable part of game balance. Another way might be to somehow balance the players (an equal share of "good" players for both teams?), but then that would create a new area of setup speculation  Maybe some hosts already do balancing like this and I'm just not familiar with it. It doesn't actually seem like that bad of an idea considering the fairness/balance of games. Some hosts do balance that way, more often with vets rather than good players but the idea remains the same, I don't condone it but some do. Hm. Isn't it better if not all the veteran players are on the same team? Pure randomness could produce games where one of the teams never stood a chance, I'd think? You would think that but individual play is what wins and loses games, sometimes vets rotfl stomp newbies (fruity) and sometimes newbies destroy vets (les mafia). I prefer these random draws because it gives town one less thing to game, there is already setup speculation and I personally find vet balance speculation totally worthless because it is not mafia. Also because RNG is king and we must bow down to it
RNG
|
|
I made a small update to the program based on a problem we encountered during the pre-game of I'm a cop you idiot mafia 2.
Basically the method for calculating Mafia's fastest possible victory was flawed. Now it should be fixed - or at least the setup for I'm a cop you idiot mafia 2 produces the right result for Mafia's fastest possible victory (as well as a couple of larger setups I tested). Enjoy!
https://www.dropbox.com/s/zb7oxzsz177h4f7/Mafia_Balance_Tester.jar
|
Also, I've been thinking of possibly creating a utility website for Mafia. It could possibly have features such as these:
1) A simple balance tester (similar to this one that I have currently as a Java program - but naturally usable without installing anything and even usable on mobile devices) 2) A C9++ setup speculation calculator (which setups are possible with the currently revealed roles?) 3) A place for storing notes about players (kind of like Google Spreadsheet but focused on this kind of note-making) 4) A player relationship analyser (the user would input his/her opinion about various relationships between the players - like two players being against each other and thus less likely to be of the same alignment, or two players agreeing about something meaningful and thus more likely to be of the same alignment - and then the algorithm would present the most likely Mafia teams and other things such as "town circles" etc.)
I've never used much of JavaScript/PHP before though, only some basic HTML. That's why this might not be a project for the immediate future. In any case, it might be an interesting project (maybe for summer?) to learn new stuff as well. So here are some questions:
1) What do you think about the general idea of such a website? 2) Which features would be most useful? The current possible ideas or something else? 3) How important is the appearance of the website? Should it be pretty basic or should I focus on making it look good/modern?
|
/bump
Maybe somebody will have an opinion
|
Blazinghand
United States25550 Posts
I think that would be cool! Unfortunately I haven't gotten a chance to check out the Automatic Balance Tester but I'll run my next normal mini through it and let you know what I think
|
OK. It's probably better to introduce yourself to the Java program first before commenting on an expanded website project.
|
I like the general idea. The c9++ speculation calculator won't be that useful for TL mafia since none of us use the vanilla c9 setup. If it is easy to code it can't hurt but it will not be beneficial to the players in this site.
|
1) Cool! But yeah, it seems like a big project. If you manage to do it alone then awesome! You already have the automatic balance tester written in java. You could use a Java backend, and just integrate the code you already have, and put the same balance tester into the web app.
2)
a)The simple balance tester would be better off in a web app yes I believe. Hell, you can even include links and stuff so hosts and players can easily refer to it in the middle of the game, or in pregame, or stuff like that!
b)Yeah, like Prome said, I dunno how much useful it will be in TL mafia. However, if you talk with other hosts, Foo and shit, it might be the starting point into seeing more vanilla C9++ setups in here, and then it might be more powerful
c)This would be awesome. However, it would need some innovative features and the like if you want to override spreadsheets for the same purpose (or notepads like I use).
d)This might be nice, but I'm not sure exactly how it would work...? This kind of stuff seems too subjective to me. You'd have to come up with a way to configure this "algorithm" to use all the personal subjective tells you use. If not, the algorithm may tell you stuff about certain pairs, that you disagree with. In that case it'd be useless, and maybe annoying ("Damn, this thing keeps telling me these 2 are scumbuddies because they have a town read on each other when it's obviously bullshit, get the fuck off here!")
3) I'd say it's important to have a minimal "visual pleasure". At least in a way that it makes it easier to use. You can use frameworks and stuff that already exist, like Twitter Bootstrap, Foundation 4, HTML Boilerplate, JQuery UI, etc.
|
On March 05 2014 07:05 gonzaw wrote: 1) Cool! But yeah, it seems like a big project. If you manage to do it alone then awesome! You already have the automatic balance tester written in java. You could use a Java backend, and just integrate the code you already have, and put the same balance tester into the web app.
2)
a)The simple balance tester would be better off in a web app yes I believe. Hell, you can even include links and stuff so hosts and players can easily refer to it in the middle of the game, or in pregame, or stuff like that!
b)Yeah, like Prome said, I dunno how much useful it will be in TL mafia. However, if you talk with other hosts, Foo and shit, it might be the starting point into seeing more vanilla C9++ setups in here, and then it might be more powerful
c)This would be awesome. However, it would need some innovative features and the like if you want to override spreadsheets for the same purpose (or notepads like I use).
d)This might be nice, but I'm not sure exactly how it would work...? This kind of stuff seems too subjective to me. You'd have to come up with a way to configure this "algorithm" to use all the personal subjective tells you use. If not, the algorithm may tell you stuff about certain pairs, that you disagree with. In that case it'd be useless, and maybe annoying ("Damn, this thing keeps telling me these 2 are scumbuddies because they have a town read on each other when it's obviously bullshit, get the fuck off here!")
3) I'd say it's important to have a minimal "visual pleasure". At least in a way that it makes it easier to use. You can use frameworks and stuff that already exist, like Twitter Bootstrap, Foundation 4, HTML Boilerplate, JQuery UI, etc.
1) Yeah, it's a big project (and I'm not certain if it will come true). It'll especially take more work since I've barely touched web technologies and I already had some experience with Java when I started making the Java program... But I'll have a course about web technologies (among other things) soon and that should help a bit too.
I'm not really familiar with using Java in that way. Would the user still need to install JRE? Or would the Java code be only on the background? Naturally it would be easier to use anyways without needing to install the Java program itself.
2) a) Yeah, it's definitely better as a web app It's also pretty much the starting point of this idea.
b) It seems pretty rare, yeah. I think I've seen it in a couple of games though (like this one: http://www.teamliquid.net/forum/mafia/434723-newbie-mini-mafia-li). It doesn't seem very complicated to implement, but I can't be sure until I try. Probably I'll at least test out the idea.
c) Yeah, it's not that easy to make it the "ultimate" solution - and if it's not, then what's the point? I guess the advantage would be to be the only "specialized" tool, but still, it would have to be made from scratch compared to the long histories of the existing tools.
d) This is surely the hardest idea to implement It would require a very intelligent algorithm to work (and preferably one that would develop based on the user as well) so it might just be a theoretical idea.
By the way, I'd appreciate completely new ideas as well. I'm not sure what all could be possibly needed in a multi-purpose Mafia tool 
3) Probably it's the easiest solution to use some kind of an interface package, yeah. I'll probably use something like that.
|
kitaman27
United States9244 Posts
Ultimately, I'd focus on things that you're interested in learning and if you happen to produce something useful, then that's a nice bonus. I think the time you spend on 2) or 3) would likely exceed the amount of time you would save others in the long run, but that's not necessarily a bad thing if you get the experience out of it. In my opinion, number 1) would probably get the most use.
Number 4) seems a bit too ambitious, although it does remind me of a tool that someone posted a few years back. Someone apparently attempted to write an program that would identify mafia based on the size, frequency, and format of their posts and the vocabulary that they used.
|
On March 06 2014 06:26 Xatalos wrote:Show nested quote +On March 05 2014 07:05 gonzaw wrote: 1) Cool! But yeah, it seems like a big project. If you manage to do it alone then awesome! You already have the automatic balance tester written in java. You could use a Java backend, and just integrate the code you already have, and put the same balance tester into the web app.
2)
a)The simple balance tester would be better off in a web app yes I believe. Hell, you can even include links and stuff so hosts and players can easily refer to it in the middle of the game, or in pregame, or stuff like that!
b)Yeah, like Prome said, I dunno how much useful it will be in TL mafia. However, if you talk with other hosts, Foo and shit, it might be the starting point into seeing more vanilla C9++ setups in here, and then it might be more powerful
c)This would be awesome. However, it would need some innovative features and the like if you want to override spreadsheets for the same purpose (or notepads like I use).
d)This might be nice, but I'm not sure exactly how it would work...? This kind of stuff seems too subjective to me. You'd have to come up with a way to configure this "algorithm" to use all the personal subjective tells you use. If not, the algorithm may tell you stuff about certain pairs, that you disagree with. In that case it'd be useless, and maybe annoying ("Damn, this thing keeps telling me these 2 are scumbuddies because they have a town read on each other when it's obviously bullshit, get the fuck off here!")
3) I'd say it's important to have a minimal "visual pleasure". At least in a way that it makes it easier to use. You can use frameworks and stuff that already exist, like Twitter Bootstrap, Foundation 4, HTML Boilerplate, JQuery UI, etc. 1) Yeah, it's a big project (and I'm not certain if it will come true). It'll especially take more work since I've barely touched web technologies and I already had some experience with Java when I started making the Java program... But I'll have a course about web technologies (among other things) soon and that should help a bit too. I'm not really familiar with using Java in that way. Would the user still need to install JRE? Or would the Java code be only on the background? Naturally it would be easier to use anyways without needing to install the Java program itself.
1)The user only interacts with the web app via the browser. He doesn't need anything else. The Java stuff is in your own server (YOU would need JRE in there, as well as maybe some web server and stuff like Tomcat/Jetty/JBoss/Glassfish/etc) That is if you made your code so the logic is independent of the UI. In that case you just copy+paste the code to your server. If you made it intertwined with the UI (if you make calls like "button.AddCallback(..)" and stuff in the middle of the code), then either you refactor it...or yeah start over in another language or whatever.
I tried doing a super ambitious project like a year ago, and knew little of web development like you did (although I did know about Java web technologies). I didn't even start it because it was just so fucking big, and I could not possibly do it alone. Be careful with this kind of stuff, don't make it super ambitious if you are not confident you can pull through. Starting with "baby steps" like you are doing is fine, and I think might be the best option, specially as you get more comfortable with the technologies and the like.
If you are gonna make it, I can help you with advice, telling you how to start, how to set up shit, and the like. Dunno if I can help programming and the like though, I have to see how much free time I have after I get into all my uni courses in the next few weeks. I had planned on investigating some technologies, requirements, etc, to kind of "kickstart" my previous "enormous" project (here: http://www.teamliquid.net/forum/mafia/383168-mafia-system-updates-and-suggestions ). I kind of got "hooked" reading some documentation, examples, guides and the like of some stuff, so I haven't really started anything yet lolol (I have like 15 tabs of different documentation for stuff, which I kind of made my inner goal to read ALL of it before starting ). Dunno, maybe some of that stuff may interest you. Although most of it is heavy read, and heavy "get your hands dirty" kind of stuff if you really want to "get" it.
If you want to make a web application, think about how you want the user to interact with it. You have basically 4 possibilities:
1)It's just static stuff, like a blog (i.e you make the web page beforehand, and nothing changes, there is no interaction with the user, barring some links) 2)It has basic interaction. The user goes to a page, fills a form, then goes to another page and sees the info. 3)Heavy interaction with the user. The user clicks stuff, and other stuff instantly appears in the page. He sees live changes he makes in the page, like having lists and tables and grids and slideshows and insta-loading content, etc 4)You basically have a desktop application running on the web. You have everything you'd ever want as an application: menu, tooltips, context menu (right clicking and getting the popup menu), lots of popup windows, etc. Basically, something like Gmail, Outlook, Google Drive, or "online applications" (online editors, etc)
I think it's kind of important which one you choose, because it basically determines what framework, or models you can choose. If you just want static stuff [1], just go with PHP and some static pages (if you want easy), or ANY other framework If you want the basic stuff [2], you can go with Ruby on Rails, or other frameworks like JEE (the Java one, you could use JSP or JSF), ASP.NET, Play, any MVC framework, etc If you want the more "rich application" stuff [3], you can go with client-side frameworks, like AngularJS, KnockoutJS, Backbone, Ember, etc. You can integrate these ones with the frameworks from [1] or [2]. You could also just use the frameworks from [2], but include lots of AJAX, maybe REST web services, and lots of client-side libraries (like jQuery), to deal with that "dynamism". There are also frameworks that rely on the server more than the client (GWT, Wicket, Lift, JSF works a little bit like it too) that work similarly (i.e, it's more "user interaction" oriented). If you want the "full desktop application look", you can go with ExtJS, and others (basically a huge fucking framework where everything is done for you, and you basically develop it like a desktop application and everything else is done "behind your back").
As you can see, depending on what you want, there are a lot of stuff you may use, and stuff you can and CANT use (at least without some headaches, and lots of time and effort in figuring out how to do so).
Anyways, in terms of where you'd want to start, I'd say [2] fits the bill perhaps. For example, I see the balance tester, the "notes" thing, etc, as a user just filling forms and the like. Not much interaction needed. Plus, these frameworks are the "friendliest" ones, for example Rails. They have bigger communities, more examples, more guides, more walkthroughs, more intuitive designs, are easier to figure out, etc. Stuff from [3] and [4] I believe might be too much out of your comfort zone (they basically are new paradigms and ways to look at web development, and you may need to learn OTHER technologies on top of those to make any use of them, and learn how to integrate them, and that's harder than the [2] frameworks). Also stuff from [4] (like ExtJS)....basically costs a lot. Although if you have 1000 dollars to spare, then be my guest and try it! :D
...anyways meh now you notice why I read so much of this stuff and do so little 
c) Yeah, it's not that easy to make it the "ultimate" solution - and if it's not, then what's the point? I guess the advantage would be to be the only "specialized" tool, but still, it would have to be made from scratch compared to the long histories of the existing tools.
If you are interested in the "spreadsheet for players to use notes, and maybe other stuff", you might be interested in my Mafia Spreadsheet project: http://www.teamliquid.net/forum/mafia/445046-the-mafia-spreadsheet
I plan on having that kind of "ability for players to take notes" stuff into it in the future (when in the future....I don't know). Wouldn't mind new people to help me with it 
But other than that, yes, I think you'd need a specific idea you want to implement to make use of that "stuff for players to take notes". Notice that you have to keep track of all games, all players from each game, what happens in each cycle (if a player dies, you should not allow another player to make notes on him for instance). Also you need to make sure your users (guys that log in to the system) are the players of the game perhaps. Or alternatively just leave everything as vague as possible, like just a plain text sheet for them to write. But then again the more vague and "feature-less" you go, the less power your solution has over other "plain" solutions (like any normal spreadsheet or notepad file).
d) This is surely the hardest idea to implement  It would require a very intelligent algorithm to work (and preferably one that would develop based on the user as well) so it might just be a theoretical idea.
Seems to me it's quite heavy on the theoretical side yes. Hmm, my best bet would be to leave it be for now. I mean, you are treading onto AI territory here. Not only that, but on Mafia AI territory and theoretical analysis. That's like.....a sector that there is ZERO info, development, etc about in the whole universe. If you do something like that you'd be the first one in history to do so and would be a fucking pioneer lol. But you'd need to post like 10 research papers to MIT and Harvard before proceeding I believe 
I mean, if you want to make a simple one then it's okay, go ahead. I mean stuff like kita's "Combinatronics" or whatever, where you just pair up players, and let the player himself determine what he thinks of those pairs ("is it a likely scum pair or not?"). That works. Hell, kita will love you if you make a formal hosted Combinatronics thing.
But if you start getting into automated analysis on that kind of stuff (I guess based on posts it automatically reads from the thread? Or from specific input from the user you have to define), then it gets a LOT harder, and yes, maybe too ambitious.
By the way, I'd appreciate completely new ideas as well. I'm not sure what all could be possibly needed in a multi-purpose Mafia tool 
You can check my "Mafia System" thread for ideas if you want ( http://www.teamliquid.net/forum/mafia/383168-mafia-system-updates-and-suggestions ). I posted lots of crazy shit in there lol (like having a self-regulating "TL admin circle" that included the game queue and I dunno what other crazy ambitious obviously-never-going-to-work-unless-I-bring-1000-developers ideas lol).
|
EBWOP:
Also, please don't use PHP
I hate PHP.
Well...you can use it.....but I won't touch it with a 10 foot pole (I seriously hate it. Hell I never even touched PHP code and hate it just by reading about it).
|
On March 06 2014 07:26 gonzaw wrote:Show nested quote +On March 06 2014 06:26 Xatalos wrote:On March 05 2014 07:05 gonzaw wrote: 1) Cool! But yeah, it seems like a big project. If you manage to do it alone then awesome! You already have the automatic balance tester written in java. You could use a Java backend, and just integrate the code you already have, and put the same balance tester into the web app.
2)
a)The simple balance tester would be better off in a web app yes I believe. Hell, you can even include links and stuff so hosts and players can easily refer to it in the middle of the game, or in pregame, or stuff like that!
b)Yeah, like Prome said, I dunno how much useful it will be in TL mafia. However, if you talk with other hosts, Foo and shit, it might be the starting point into seeing more vanilla C9++ setups in here, and then it might be more powerful
c)This would be awesome. However, it would need some innovative features and the like if you want to override spreadsheets for the same purpose (or notepads like I use).
d)This might be nice, but I'm not sure exactly how it would work...? This kind of stuff seems too subjective to me. You'd have to come up with a way to configure this "algorithm" to use all the personal subjective tells you use. If not, the algorithm may tell you stuff about certain pairs, that you disagree with. In that case it'd be useless, and maybe annoying ("Damn, this thing keeps telling me these 2 are scumbuddies because they have a town read on each other when it's obviously bullshit, get the fuck off here!")
3) I'd say it's important to have a minimal "visual pleasure". At least in a way that it makes it easier to use. You can use frameworks and stuff that already exist, like Twitter Bootstrap, Foundation 4, HTML Boilerplate, JQuery UI, etc. 1) Yeah, it's a big project (and I'm not certain if it will come true). It'll especially take more work since I've barely touched web technologies and I already had some experience with Java when I started making the Java program... But I'll have a course about web technologies (among other things) soon and that should help a bit too. I'm not really familiar with using Java in that way. Would the user still need to install JRE? Or would the Java code be only on the background? Naturally it would be easier to use anyways without needing to install the Java program itself. 1)The user only interacts with the web app via the browser. He doesn't need anything else. The Java stuff is in your own server (YOU would need JRE in there, as well as maybe some web server and stuff like Tomcat/Jetty/JBoss/Glassfish/etc) That is if you made your code so the logic is independent of the UI. In that case you just copy+paste the code to your server. If you made it intertwined with the UI (if you make calls like "button.AddCallback(..)" and stuff in the middle of the code), then either you refactor it...or yeah start over in another language or whatever. I tried doing a super ambitious project like a year ago, and knew little of web development like you did (although I did know about Java web technologies). I didn't even start it because it was just so fucking big, and I could not possibly do it alone. Be careful with this kind of stuff, don't make it super ambitious if you are not confident you can pull through. Starting with "baby steps" like you are doing is fine, and I think might be the best option, specially as you get more comfortable with the technologies and the like. If you are gonna make it, I can help you with advice, telling you how to start, how to set up shit, and the like. Dunno if I can help programming and the like though, I have to see how much free time I have after I get into all my uni courses in the next few weeks. I had planned on investigating some technologies, requirements, etc, to kind of "kickstart" my previous "enormous" project (here: http://www.teamliquid.net/forum/mafia/383168-mafia-system-updates-and-suggestions ). I kind of got "hooked" reading some documentation, examples, guides and the like of some stuff, so I haven't really started anything yet lolol (I have like 15 tabs of different documentation for stuff, which I kind of made my inner goal to read ALL of it before starting  ). Dunno, maybe some of that stuff may interest you. Although most of it is heavy read, and heavy "get your hands dirty" kind of stuff if you really want to "get" it. If you want to make a web application, think about how you want the user to interact with it. You have basically 4 possibilities: 1)It's just static stuff, like a blog (i.e you make the web page beforehand, and nothing changes, there is no interaction with the user, barring some links) 2)It has basic interaction. The user goes to a page, fills a form, then goes to another page and sees the info. 3)Heavy interaction with the user. The user clicks stuff, and other stuff instantly appears in the page. He sees live changes he makes in the page, like having lists and tables and grids and slideshows and insta-loading content, etc 4)You basically have a desktop application running on the web. You have everything you'd ever want as an application: menu, tooltips, context menu (right clicking and getting the popup menu), lots of popup windows, etc. Basically, something like Gmail, Outlook, Google Drive, or "online applications" (online editors, etc) I think it's kind of important which one you choose, because it basically determines what framework, or models you can choose. If you just want static stuff [1], just go with PHP and some static pages (if you want easy), or ANY other framework If you want the basic stuff [2], you can go with Ruby on Rails, or other frameworks like JEE (the Java one, you could use JSP or JSF), ASP.NET, Play, any MVC framework, etc If you want the more "rich application" stuff [3], you can go with client-side frameworks, like AngularJS, KnockoutJS, Backbone, Ember, etc. You can integrate these ones with the frameworks from [1] or [2]. You could also just use the frameworks from [2], but include lots of AJAX, maybe REST web services, and lots of client-side libraries (like jQuery), to deal with that "dynamism". There are also frameworks that rely on the server more than the client (GWT, Wicket, Lift, JSF works a little bit like it too) that work similarly (i.e, it's more "user interaction" oriented). If you want the "full desktop application look", you can go with ExtJS, and others (basically a huge fucking framework where everything is done for you, and you basically develop it like a desktop application and everything else is done "behind your back"). As you can see, depending on what you want, there are a lot of stuff you may use, and stuff you can and CANT use (at least without some headaches, and lots of time and effort in figuring out how to do so). Anyways, in terms of where you'd want to start, I'd say [2] fits the bill perhaps. For example, I see the balance tester, the "notes" thing, etc, as a user just filling forms and the like. Not much interaction needed. Plus, these frameworks are the "friendliest" ones, for example Rails. They have bigger communities, more examples, more guides, more walkthroughs, more intuitive designs, are easier to figure out, etc. Stuff from [3] and [4] I believe might be too much out of your comfort zone (they basically are new paradigms and ways to look at web development, and you may need to learn OTHER technologies on top of those to make any use of them, and learn how to integrate them, and that's harder than the [2] frameworks). Also stuff from [4] (like ExtJS)....basically costs a lot. Although if you have 1000 dollars to spare, then be my guest and try it! :D ...anyways meh now you notice why I read so much of this stuff and do so little  Show nested quote + c) Yeah, it's not that easy to make it the "ultimate" solution - and if it's not, then what's the point? I guess the advantage would be to be the only "specialized" tool, but still, it would have to be made from scratch compared to the long histories of the existing tools.
If you are interested in the "spreadsheet for players to use notes, and maybe other stuff", you might be interested in my Mafia Spreadsheet project: http://www.teamliquid.net/forum/mafia/445046-the-mafia-spreadsheetI plan on having that kind of "ability for players to take notes" stuff into it in the future (when in the future....I don't know). Wouldn't mind new people to help me with it  But other than that, yes, I think you'd need a specific idea you want to implement to make use of that "stuff for players to take notes". Notice that you have to keep track of all games, all players from each game, what happens in each cycle (if a player dies, you should not allow another player to make notes on him for instance). Also you need to make sure your users (guys that log in to the system) are the players of the game perhaps. Or alternatively just leave everything as vague as possible, like just a plain text sheet for them to write. But then again the more vague and "feature-less" you go, the less power your solution has over other "plain" solutions (like any normal spreadsheet or notepad file). Show nested quote +d) This is surely the hardest idea to implement  It would require a very intelligent algorithm to work (and preferably one that would develop based on the user as well) so it might just be a theoretical idea. Seems to me it's quite heavy on the theoretical side yes. Hmm, my best bet would be to leave it be for now. I mean, you are treading onto AI territory here. Not only that, but on Mafia AI territory and theoretical analysis. That's like.....a sector that there is ZERO info, development, etc about in the whole universe. If you do something like that you'd be the first one in history to do so and would be a fucking pioneer lol. But you'd need to post like 10 research papers to MIT and Harvard before proceeding I believe  I mean, if you want to make a simple one then it's okay, go ahead. I mean stuff like kita's "Combinatronics" or whatever, where you just pair up players, and let the player himself determine what he thinks of those pairs ("is it a likely scum pair or not?"). That works. Hell, kita will love you if you make a formal hosted Combinatronics thing. But if you start getting into automated analysis on that kind of stuff (I guess based on posts it automatically reads from the thread? Or from specific input from the user you have to define), then it gets a LOT harder, and yes, maybe too ambitious. Show nested quote +By the way, I'd appreciate completely new ideas as well. I'm not sure what all could be possibly needed in a multi-purpose Mafia tool  You can check my "Mafia System" thread for ideas if you want ( http://www.teamliquid.net/forum/mafia/383168-mafia-system-updates-and-suggestions ). I posted lots of crazy shit in there lol (like having a self-regulating "TL admin circle" that included the game queue and I dunno what other crazy ambitious obviously-never-going-to-work-unless-I-bring-1000-developers ideas lol).
That's a really detailed post, thanks! 
The logic classes and the UI classes are separate from each other, yeah. Good to hear that JRE isn't required by the user in that situation. I'll have to take a closer look at how it all works later.
That's indeed a big project you had there :D Did something "usable" come out of it?
I'm not sure if [2] is the way to go. It seems easier, yeah, so it might be a good way to start... But the balance tester basically requires constant changes by the user and it would be harder to use if you had to make a new page for every change. So [3] seems the most fitting choice. Although we'll see, maybe I could try a simpler approach as well (like choosing the roles on the first page and then showing the balance stats on the next page) But then that would be inferior to the desktop application... :/ I guess using the existing program as a Java backend qualifies under [3]?
That spreadsheet project seems interesting. You've clearly put a lot of effort into it already. Actually it might be a better way to approach taking notes than creating a whole new system... Since Google Spreadsheets are already proven to be effective for that purpose and making customized templates / automating the process more within that existing system could be a better solution. Google Spreadsheets also have powerful tools to personalize your notes more to your own liking (and not just strictly follow any set model for taking notes). So the player can basically make use of your tools but not be limited by them in any way compared to just using a plain Google Spreadsheet. Good idea! 
Haha, I didn't really mean to go too far into AI research with that idea... It was just a vague thought about possibly helping in scumhunting (new connections between players, new perspectives etc. based on your own input). What's that kita combinatronics thing? Sounds interesting haha
But yeah, for now this is just more of a possible project and not a concrete plan like I had with the Java program. So that means that its chances of coming true are much, much lower, but you never know, maybe I'll really get into it and learn all that new stuff at the same time 
Btw you talked earlier about making an algorithm to find out the "average" result of a chosen setup. Currently I have an algorithm to find out the "best" results for both sides, which wasn't too hard, but it's quite complicated to find out the average result. Like... 100x more complicated than the best results. At least with more complicated setups. It might be possible for an all vanilla setup, but power roles really make it difficult :D I'm not sure if I'll even be attempting that after all, but maybe some day.
I'll send you the source code of the Java program too. It might be easier for you if you see completely how the program works currently. At least the method names should be well named, but it's probably a bit hard to immediately grasp how everything works, so feel free to ask And suggestions are of course welcome.
|
On March 06 2014 07:27 gonzaw wrote:EBWOP: Also, please don't use PHP I hate PHP. Well...you can use it.....but I won't touch it with a 10 foot pole  (I seriously hate it. Hell I never even touched PHP code and hate it just by reading about it).
LOL Actually the course I'm about to take soon is mostly about PHP and stuff... Well, it's not certain that I will be using it even so
|
On March 07 2014 03:31 Xatalos wrote:. The logic classes and the UI classes are separate from each other, yeah. Good to hear that JRE isn't required by the user in that situation. I'll have to take a closer look at how it all works later.
Oh, that's great. It would also be better if you separated the persistence (store the info in the database). Did you use persistence at all?
That's indeed a big project you had there :D Did something "usable" come out of it?
Ehmm.....no >_> <_< Well, at least all the possible ideas about any possible mafia automated tool is there 
I'm not sure if [2] is the way to go. It seems easier, yeah, so it might be a good way to start... But the balance tester basically requires constant changes by the user and it would be harder to use if you had to make a new page for every change. So [3] seems the most fitting choice. Although we'll see, maybe I could try a simpler approach as well (like choosing the roles on the first page and then showing the balance stats on the next page) But then that would be inferior to the desktop application... :/ I guess using the existing program as a Java backend qualifies under [3]?
Well, yeah, of course. Naturally you want your web app to be as close to [4] as possible, so the user has a better experience using it. But it comes down to complexity, integration with systems and technologies, availability, support, price, etc, etc, that would make you go more towards [1] in the scale.
So you want [3]...hmmm.
Okay, so let's get stuff clear: -You already have your logic for the automatic tester written in java -You want a somewhat reactive and responsive web app (also because your own code is written in a similar way)
Seems to me using JEE, with JSF/Primefaces/Richfaces, and a java web/application server, might be your best bet. However, these technologies are somewhat "verbose", with lots and lots of documentation, and you can get lost. Anyways, here is a good site with tutorials about Java stuff (if any stuff about certain Java technologies popup, go there and see if there are tutorials about it): http://www.coreservlets.com/JSF-Tutorial/
Here is the JSF and Primefaces tutorials: http://www.coreservlets.com/JSF-Tutorial/jsf2/ http://www.coreservlets.com/JSF-Tutorial/primefaces/
Here is the showcase with all the stuff you can use in primefaces: http://www.primefaces.org/showcase/ui/home.jsf
This guy has some nice tutorials on JSF and other java stuff: http://www.mkyong.com/
But first, you need to know about application servers and JEE. This is a good way to start I suppose: http://docs.oracle.com/javaee/7/firstcup/doc/home.htm Full documentation: http://docs.oracle.com/javaee/7/tutorial/doc/home.htm
For that documentation, you can do like I did and just read it for your own amusement (i.e the joy to learn something new). If not you could just jumpstart to some more "get started" tutorials.
Hmm, actually, nevermind. Just skim over the Primefaces and JSF 2.2 stuff. See the examples, see the showcase. See if you like it. After that, if you decide to use it (remember, it has Java on the server, so you can copy+paste your balance tester code, and call its functions from the servlets/beans/etc), we can figure out how exactly you can use it. You could use normal Tomcat, and configure some stuff to be able to use it. Or you could use lightweight JEE servers, like Jetty. Or you could use the full heavyweight JEE stuff like JBoss/Glassfish/others. It's very verbose, and at times gives you headaches, so just start from what you would want to do, and then continue with the lightest stuff possible in a KISS fashion (Tomcat -> Jetty -> JBoss in my opinion).
You have to start investigating on your own though. The Java universe is....well...chaotic in a sense. There is no single guide you can just use and POP you have your perfect web application with everything you want (unlike other frameworks perhaps).
If you don't like JSF nor Primefaces, no worries, we can do other stuff. For example, you can use other JVM programming languages and frameworks. You can use JRuby, Clojure, Scala, Jython, etc, and all the web frameworks they have. Granted, you'll have to learn those as well, but well, learning doesn't hurt. Because they are JVM languages, you can call Java code from them, so you can use your own balance tester code with those.
Haha, I didn't really mean to go too far into AI research with that idea... It was just a vague thought about possibly helping in scumhunting (new connections between players, new perspectives etc. based on your own input). What's that kita combinatronics thing? Sounds interesting haha
It's a thing where you put all possible pairs of players. Imagine there are 2 scum left, and 5 players: A, B, C, D, E. So you put these pairs: A-B, A-C, A-D, A-E, B-C, B-D, B-E, C-D, C-E, D-E.
Then you go "Okay, the pair B-D can't be the remaining scumteam because of reason X, so we take it out". Then you go "Scum pair A-C would make sense as a scumteam yes, we leave it in". In the end, with this process, you are left with some potential mafia scumteams and pairs. You then use those (somehow) to further your reads.
Or just ask kita for more info 
But yeah, for now this is just more of a possible project and not a concrete plan like I had with the Java program. So that means that its chances of coming true are much, much lower, but you never know, maybe I'll really get into it and learn all that new stuff at the same time
If you don't know much about web development and want to make an ambitious project, then yes. But if you start small and slow, then nah.
For instance, why don't you make your 1st step, to just host your balance tester in the web? Forget about the algorithms for scumhunting, the notes, etc. Just take your own code you already made, and figure out how to make it work as a web application.
That is not such a big project, you can do it. Also, when you are done, the rest (specially developing your balance tester) will fall into place much much easier! Like, having your stuff hosted in a web site would mean 99% of hosts would use it. Right now, people have to download a zip file, download JRE or update Java, then run that app. It's too cumbersome. If someone can just fire up a link in a new tab, and start using your tester, it'll be much much more awesome
Also, some other people could give you advice as well on how to do it. Don't blindly follow everything I say...just in case 
Btw you talked earlier about making an algorithm to find out the "average" result of a chosen setup. Currently I have an algorithm to find out the "best" results for both sides, which wasn't too hard, but it's quite complicated to find out the average result. Like... 100x more complicated than the best results. At least with more complicated setups. It might be possible for an all vanilla setup, but power roles really make it difficult :D I'm not sure if I'll even be attempting that after all, but maybe some day.
Yeah, this also seems to go into the "Theoretical Mafia" territory.
Basically, you have a pool of scenarios, which is each exact scenario of how a mafia game turns out (for instance "D1 scum lynch -> N1 town kill -> D2 scum lynch GG" is one scenario, "D1 town lynch -> N1 town kill and another town vig shot -> D2 scum lynch -> N2 town kill -> D3 town lynch GG" is another scenario, etc). This is your "random variable". I.e it's what you want to find the probabilities of. "What is the probability that 1st scenario happens?" Then you group together scenarios into "Town Win", "Mafia Win", "Serial Killer Win", etc. These are new variables, and now you want to find the probabilities of THOSE. In statistics, each random variable has a median, mean/average (could or could not have), variance, etc. So basically you have a complex mechanism to create your first random variable X (those "game scenarios"), based on lynches, night kills, roles, cycles, etc. Then, you have more complex mechanisms to create your other random variables Y,Z,K, etc ("Town Win", etc), based on that first variable X. Then, AFTER figuring all this stuff out, you have to figure out all the properties and shit of them. Either do it mathematically, or statistically with the law of large numbers perhaps, dunno.
....yeah also I most likely fucked up there too. So kind of difficult.
I'll send you the source code of the Java program too. It might be easier for you if you see completely how the program works currently. At least the method names should be well named, but it's probably a bit hard to immediately grasp how everything works, so feel free to ask And suggestions are of course welcome.
Koo'. I'll check it when I have time
|
On March 07 2014 03:33 Xatalos wrote:Show nested quote +On March 06 2014 07:27 gonzaw wrote:EBWOP: Also, please don't use PHP I hate PHP. Well...you can use it.....but I won't touch it with a 10 foot pole  (I seriously hate it. Hell I never even touched PHP code and hate it just by reading about it). LOL  Actually the course I'm about to take soon is mostly about PHP and stuff... Well, it's not certain that I will be using it even so 
Yeah lol like I said don't listen to me 
If you like PHP and already know about it and have courses and shit, use it, no problemo. But I won't be able to help much though (not just because I don't like it, but because I don't know much about it in technical terms, technologies, etc).
|
There's no persistence in the program currently. It's always a clean start every time you launch the program.
Yeah, it's never bad to try something out Maybe someone else can make use of that material (even me possibly).
That's a lot of material :D Thanks for the links! Also it's a good point to start with just getting the Java program working on a website rather than starting with a larger project immediately. That's probably the best way to go about it.
Yeah, that kind of connection elimination is kind of fun You can sometimes nail the Mafia team by eliminating impossible Mafia pairs and being left with at best only one pair.
Your posts have really been a lot more than I hoped for and I'll return to them more closely probably in May. The Java program itself is in pretty good condition right now. Of course it's not perfect (and the execution is far from optimal) but it works, somehow The biggest improvement for it would probably be to make it function on a website rather than as an independent program.
|
kitaman27
United States9244 Posts
On March 07 2014 05:36 gonzaw wrote:It's a thing where you put all possible pairs of players. Imagine there are 2 scum left, and 5 players: A, B, C, D, E. So you put these pairs: A-B, A-C, A-D, A-E, B-C, B-D, B-E, C-D, C-E, D-E. Then you go "Okay, the pair B-D can't be the remaining scumteam because of reason X, so we take it out". Then you go "Scum pair A-C would make sense as a scumteam yes, we leave it in". In the end, with this process, you are left with some potential mafia scumteams and pairs. You then use those (somehow) to further your reads. Or just ask kita for more info 
I think we can all agree that this forum needs more pre-flip association analysis. Don't listen to the haters.
|
On March 07 2014 07:07 kitaman27 wrote:Show nested quote +On March 07 2014 05:36 gonzaw wrote:It's a thing where you put all possible pairs of players. Imagine there are 2 scum left, and 5 players: A, B, C, D, E. So you put these pairs: A-B, A-C, A-D, A-E, B-C, B-D, B-E, C-D, C-E, D-E. Then you go "Okay, the pair B-D can't be the remaining scumteam because of reason X, so we take it out". Then you go "Scum pair A-C would make sense as a scumteam yes, we leave it in". In the end, with this process, you are left with some potential mafia scumteams and pairs. You then use those (somehow) to further your reads. Or just ask kita for more info  I think we can all agree that this forum needs more pre-flip association analysis. Don't listen to the haters.
Yeah, I think this was my greatest moment on TL Mafia http://www.teamliquid.net/forum/mafia/418049-nuclear-winter-mafia?page=115#2289 Go pre-flip association speculation!!!
|
|
|
|