[Burichan] [Futaba] [Nice] [Pony]  -  [WT]  [Home] [Manage]
[Catalog View] :: [Archive] :: [Graveyard] :: [Rules] :: [Quests] :: [Wiki]

[Return] [Entire Thread] [Last 50 posts]
Posting mode: Reply
Name (optional)
Email (optional, will be displayed)
Subject    (optional, usually best left blank)
File []
Embed (advanced)   Help
Password  (for deleting posts, automatically generated)
  • How to format text
  • Supported file types are: GIF, JPG, MP3, MP4, PNG, SWF, WEBM, ZIP
  • Maximum file size allowed is 25600 KB.
  • Images greater than 250x250 pixels will be thumbnailed.

File 137850981089.png - (52.46KB , 1218x667 , jspoker-screenshot.png )
75958 No. 75958 ID: 4a20fa

Expand all images
No. 75960 ID: 4a20fa

JSPoker is an open JavaScript poker game I have been working on on-and-off to keep useful skills sharp since about the time Lagotrope posted his Flash one ( >>66289 ).

* Supports multiple characters at the table, for a better game and more character humour banter
* Pretty simple to make basic characters
* Fairly simple to make basic characters with a few quirks
* Ridiculously powerful custom character behaviour if you want to get stuck in (write entirely custom AI, with a fairly solid base understanding of the game state already provided to build on)
* Actually gets most of the rules of Five-card draw Poker mostly right
* Sizes to basically any desktop resolution, and scales art with preserved aspect ratio
* Supports any image format modern browsers do
* Nothing to install
* People don't have to make rollups of characters and keep them up to date, either
* Open Source and heavily commented, along with example characters (I will be working on more, to better show of the ability for interaction)

Huge thanks to Lagotrope for contributing the source for his which has been looted and ported for AI routines and three initial example/demo characters. You can basically play the Polo/Rokoa/Pilon poker game now without Flash, scaled properly, and mixed arbitrarily with other characters as they're written.

It's now at the point where it's mostly complete and stable (hence posting); I don't forsee making any big changes which will break characters you work on, just bugfixes and bits of polish here and there (like making character loading more pleasant). There's a documentation link in the welcome message when you start it up, and on the wiki.

(I probably won't be offering hosting for characters. Sorry. I've got Lagotrope's there because I did the porting job. Almost any webspace should do, though.)
No. 75962 ID: e97f9d

This may be getting slightly ridiculous, I will admit.
No. 75963 ID: e983a7

Incredibly tempted to toy with the possibilities for ridiculously custom character behaviour.

Ridiculously so.

Oh, JavaScript, your lack of sandboxing is as terrible as it is amazing.
No. 75964 ID: 57a559

What's the most ridiculous thing about this project?

The fact that there's now three ongoing strip poker projects? The features of this specific project? The fact that tgchan may one day end up as pokerchan, with intrensic, involved strip poker storylines and characters?

Oh my god, a strip poker h-game whose majority of its content and gameplay is focused around poker instead of dialogue choices? Does that actually exist? It sounds like it would. Like how MonsterGirl Quest sounds like Earthbound with porn, or (I think) Rance is Fire Emblem with porn.
No. 75965 ID: e97f9d

MGQ is most definitely not Earthbound. It's actually pretty damn linear, and it certainly doesn't have pixel graphics. It's just a visual novel pretending to be an RPG, really.

I would hesitate to call Numbers's project "ongoing," honestly. I might discontinue my work on pypoker if LionsPhil is serious about this; his implementation is more professional and open-ended, and still just as free and open-source. Much as I appreciated the community's warm reception to my nights of furious coding and bug-fixing. I have other projects I'd like to pursue.

Congratulations, LP! It looks good.
No. 75967 ID: 26e322

Nice, but it seems everyone folds too easily. A bit frustrating.
No. 75973 ID: 4a20fa

Thanks; I was a bit worried I was sort of scooping you with this, especially when a few days ago you made yours support multiple characters. :)

I'm wary of saying I'm "serious" about this, because it's a hobby thing and prone to being ignored for months at a time if I'm not in the mood. But hopefully it's at a basically usable state, so you shouldn't be waiting on me.

Yeah, I dunno if I screwed something up porting Lago's AI, but I noticed that. I need to check it against the Flash version again.
No. 75974 ID: ba8629

>* Supports multiple characters at the table, for a better game and more character humour banter

Oh man, nice!
No. 75977 ID: e97f9d

Hey I did that first :C

(But you have to design the module that way)
No. 75979 ID: 57a559

You know, the multiple character feature has always confused me a bit. Particularly the ones with "favors" after the clothes have come off (Moalla's has several stages of favors).

If I loaded Nessie first and Moalla's losing... would it be Nessie getting a psychic handjob? Assuming "nobody"'s the player character instead and Nessie's there, is she just watching?
No. 75980 ID: e97f9d

Yeah... that's sort of why I demanded that modules with multiple characters be built for it. On pypoker you can set it so the screen locks on the loser, if you're doing a 1v1 between two characters.
No. 75981 ID: 67bfa9

why is everyone only making poker games?
poker is not really a fun game against AIs

I would love to contribute to a non-poker strip game
No. 75983 ID: e97f9d

What did you have in mind?
No. 75986 ID: 2234e2
File 137859446891.png - (81.39KB , 1284x668 , Folded.png )

I think I found a bug.
After getting new cards with me and Rokoa folded, Polo suddenly decided she should fold too before anyone put anything more in the pot. Then Pilon folded.
From this image, clicking -> brings up the selection screen like it's my turn and with all hands revealed, now clicking call, raise, or max GIVES me 40 from the pot, and fold does nothing. The pot is currently at -150 from me clicking things.
No. 75988 ID: 67bfa9

well me and kejardon are working on a turn based strategy
(thread can be found here)

here a couple other possible ideas
- a quiz game based on trivia on the quest the character is from
- a battlehip/minesweeper type game where you are looking for enemies while hiding your own
- maybe a simple dungeon crawler,
oviously with girls/guy taking off clothes through out

these are just ideas off the top of my head, I'm sure other people could come up with better ones
No. 75989 ID: 57a559

The only other strip game I can think of is Strip Monopoly. Well, maybe some others
Strip Battleship might be a creative new thing.
Strip Pong.
Strip Thumb Wrestling
Strip Rock Paper Scissors
Strip DanceDanceRevolution
Strip Staring Game
Strip Gun Range
Strip Trading Card Games
Strip You don't know Jack/Jeopardy/Trivia
No. 75990 ID: 07e3a8

Strip Questing.

Clothing gets removed with every bad suggestion, with additional penalties for actually acting on bad ideas. :V

(...and yes, strip questing itself totally counts as a bad idea).
No. 75991 ID: 75c260

How would a staring contest work as a flash game? Don't move your mouse, walk away, make a sandwich, and wait for Rokoa to be naked?

Also, I propose Strip Skiing and Strip Stand In A Desert And Try Not To Overheat From Being So Fluffy, just because they're terribly bad ideas.
No. 75992 ID: 67bfa9

I think strip pong and strip rock-paper-scissors are actually a thing in Japan

I 100% support strip-questing and would suggest every update
No. 75993 ID: 57a559

>Strip Skiing
Strip Skifree!
No. 75994 ID: 57a559

Annnnnd secondary response
So... are quest characters doing the stripping for every bad suggestion or are the suggestors?
No. 75996 ID: e97f9d

They take something off every time a puzzle is solved and put something on every time there's no good suggestions and /quest/ fucks up.
No. 75997 ID: 67bfa9

that's some motivation right there~
No. 75998 ID: e97f9d

Better make it a LFotS-style murder mystery, too.
No. 75999 ID: 67bfa9

do it squeegy, I believe in you
No. 76000 ID: 4a20fa

Well that's certainly exciting. There shouldn't be a discard phase if all but one player has folded. I'll see if I can figure out how that could have happened.

In general it can be useful to have the last few JavaScript console lines when it screws up (F12 in most browsers, but it might not capture them until its too late).

>>75988 etc.
Er, do you mind having this conversation somewhere that isn't here?
No. 76008 ID: 4a20fa

Right, reading your post again when it isn't 4AM, I see what happened. Logic to let every character to get a chance to raise after a new hand was overruling the combined not-folded/behind check. Should be fixed.

(gameShowdownIterate then skips over everyone without finding a winner, and gameShowdownConclude crashes without setting up a new continuation or generating any speech, letting the queue empty and return control to you. Clicking the buttons then jumps back into mid-round betting, which is completely screwed by this point.)

If it does blow up like this and you don't want to start over, you can try thegame.gameNewDeck(); in the JavaScript console. It has a reasonable chance of recovering. (Ever needing to is a bug, of course.)
No. 76187 ID: 4a20fa
File 137917699809.png - (22.26KB , 827x420 , pokerloadpane.png )

Loading characters no longer requires copy-pasting URLs. The game can read the wiki and load characters listed there directly.

You can still load from any old URL for while you're developing a character, or whatever.

(Yes, I know, you want the list to not vanish when you click one. There are a couple of not-brilliant reasons why it makes you go back to the setup button:
- None of the current ones do, but characters have the option to greet each-other. The load screen needs to get out of the way to show any dialogue. (The player list pane is going to be covered in game settings. Haven't hooked that up yet so it's in hiding until it does something.)
- Due to the wonderful world of JavaScript "security", there's actually a small race condition on loading that means if you start loading one character before another has finished, it can't tell which was which. I also can't tell when a load fails. So if I try to strictly serialize them, a broken character would also break loading. I'll see what I can do, but I'm not doing it right now.)
No. 76188 ID: 4a20fa

(Oh, and I also fixed a horrible bug where pressing enter in the "raise amount" box reset the game. Sorry if that hit anyone. It now raises the amount you typed instead, which is much less destructive.)
No. 76189 ID: da4ec6
File 137918265019.png - (23.74KB , 500x283 , standards.png )

No. 76190 ID: 4a20fa

Oh fuck off.
No. 76192 ID: e97f9d

No. 76193 ID: 4a20fa
File 137918803404.png - (4.85KB , 376x224 , pokersetuppane.png )

>The player list pane is going to be covered in game settings.
So that's a thing you can do too. Validation is deliberately loose. If you want a game where people go bust after a single hand, or the limit is stratospheric, knock yourself out.
No. 77966 ID: 30df25
File 138534549846.jpg - (186.76KB , 826x571 , tmp_DrOqSkFo.jpg )

I've converted the winsp.exe characters (including the ones made by mspachan) to this format. I don't load them as externals, rather I made a local mirror and included them there.

LionsPhil, what would you like me to do with this stuff?
No. 77982 ID: 4a20fa

Cool! I'm working on seeing if it's possible to pull down and unpack a per-character ZIP, so they can be hosted on the board.
No. 77986 ID: 30df25
File 138540450546.jpg - (165.59KB , 408x1122 , jspokedex.jpg )

You're saying you want *.zip files for each character?
http://www.mediafire.com/download/1l08nla0kcvpk33/chars_for_jspoker.zip (zip of zips)
No. 77995 ID: 4a20fa

After half a day, some fruitless debugging of a broken JS ZIP library, and a refactor for a painfully asynchronous one, JSPoker can now read a character directly from a single ZIP archive. See the instructions page, but it's basically "put files in ZIP, point to ZIP, don't do anything clever or it won't work".

So it should be possible to upload these (individually) to >>/moo/3165 and have JSPoker read them from there. Should. In practice that won't work until I co-ordinate with Dylan to get the appropriate CORS headers in, so I'd save yourself the effort until that's fixed.
No. 78018 ID: 4a20fa

Had a quick look through these and spotted a little fix; epraim.js's work should be "Eivr", I believe. (I don't know if Brom made that DLL or not, though.)
No. 78247 ID: 4a20fa
File 138620107619.png - (85.18KB , 1218x420 , 4444.png )

In the meantime, JSPoker can now be instructed by appropriately crafted links to batch-autoload characters, and set custom decks. This means you can get a game of Asteroid Quest poker going in one click. See the bottom of the wiki article ( http://tgchan.org/wiki/JSPoker#Groups ).

Pilon really, really shouldn't have folded.
No. 79364 ID: 85a30e

Just to clarify: JSPoker currently will or will not load other opponent zip files? I downloaded the goodies from 30df25 and extracted them on my HD. Found the folder in the browser, copied and pasted the URL into JSPoker and no joy. Does it need to load the .zip files over HTTP, or should a file:// URL work? Bug, problem URL, or unimplemented feature?
No. 79365 ID: 3bdaa2

Partially answering my own question: I was able to install Apache on my PC, extract the character files from the zip archive, put them in a directory accessible to the web server, and get the character to load. The .zip files don't appear to work from free file hosting sites, or from my own web server. But maybe I'm doing it wrong.
No. 79412 ID: 4a20fa

Loading ZIP files is done via XMLHTTPRequest, so is subject to the complexities of http://en.wikipedia.org/wiki/Cross-origin_resource_sharing . I guess file:// URIs may be blocked to stop scripts quietly stealing all your secret porn. JSPoker uses a workaround not unlike JSONP to load plain .js characters, so it can do that from anywhere, but that only works for them.

So if you also put the JSPoker files on your same webserver, it should load the ZIPs from there too. There's now a distribution ZIP on http://poker.lionsphil.co.uk/doc/ , under "Hosting". (It won't manage to load characters from tgchan via the list, because that depends on a tiny proxy you won't have, but it'll still load them from ZIPs.)

I been poking Dylan since >>77995 to get tgchan to let JSPoker pull attachments from it so people can just upload ZIPs to a thread and have it load them from there.
No. 79530 ID: 3bdaa2

I think there's a bug in the evaluation of hands in a showdown. I'm noticing that if 2 players each have 2 pair, the hand that should lose wins.

Haven't spent much time with Javascript, but I wonder if the problem is in:
file: pokerhands.js
var PokerCatTwoPair
... return this.pairhigh[0].rank.lessThan(this.pairhigh[0].rank);

Should it read:
return this.pairhigh[0].rank.lessThan(other.pairhigh[0].rank);
No. 79551 ID: 4a20fa

Ooh, good catch. Fixed.
No. 85092 ID: 4a20fa

Should you be quietly toiling on characters for this, there's recently been a huge rework of the character base classes. See the online docs for the new state of things, but I've tried fairly hard to not break anything already written. One big difference is that the default AI changes if you use the new base class.

Saged until I've got the character ready to really show off the new AI. Code's done, but still needs a whole bunch of images.
No. 85325 ID: 4a20fa
File 141072558162.png - (203.85KB , 1218x732 , jena-shouldnt-fold.png )

Major update!

New FlexibleAI, which is a tunable new AI implemenation. This is the default for new declarative characters, but there's also been some refactoring work so that you can use different AI implemenations without having to write code.

(PokerCharacterBasicAI is now deprecated. PokerCharacterBasicAIDeclarative is now a legacy compatability specialization of PokerCharacterDeclarative which sets up a LagotropeAI. PokerCharacterDeclarative is now just a PokerCharacter specialization, which gets its PokerAI implementation from an overridable getAI() method, which defaults to a FlexibleAI. If you've already written a character, nothing should have broken, but you can now write it with a different, customizable AI personality.)

Showcasing the FlexibleAI is Jena. Not entirely finished yet (a lot of art is missing and substituted, so it won't always match up the with tone of the text, and the tell icons are terrible), but I've been sitting on this for months waiting to get "enough" art done, and it demonstrates some of FlexAI's abilities. Beware drunk and aggressive squirrels, for they do not fold lightly. Load her from the setup dialogue.

Small tweaks and bugfixes:
- Favicon for the page
- Fix the grammar of hands involving the plural of "six"
- Fixed a nasty pair of core bugs where aggressive bidding wars could overinflate the pot, and the overinflated pot could then cause raise limiting to suddenly convert them into folds
- Various bugfixes to the character callbacks
- All kinds of boring minutae and internal rework
No. 85333 ID: 8b533b

Gave this a play, after not messing with it for a long time.

The game definitely feels a lot smoother than it used to, although there is a little weirdness. For instance, if a character hits zero, and wants money to keep bidding? I'd expect them to strip off a piece of clothing and get the money then and there. However, they don't seem to strip and get their money until the start of the next hand. Mostly this isn't a problem, but if you try to get them naked by inflating a bid when the AI thinks it has a winning hand? They can actually play from a pot of zero, not go negative, win their money back, and then not strip.

Messing with the asteroid quest package, if that matters.
No. 85339 ID: 4a20fa

Yeah, this is by design, although it's debatable if the design is correct. It allows players to go all-in, although without the side pot that would normally be involved (I've been debating implementing that). This is particularly important for characters that don't strip/sell things, such as Nobody. There's no free money here, although there is a little free credit since I believe under strict Poker rules they shouldn't get the whole pot. Bankrupcy only strikes when a player can't meet the ante for a new round.

I haven't done anything to the Asteroid set regarding this new AI; they're still running Lago's AI via the compatability classes.
No. 85342 ID: 3545be

Sometimes when I was playing, and I got a new hand, some of my cards wouldn't change. So, I would think I had such-and-such cards, but then after I had changed cards they would spontaneously transform and, whoops, I didn't actually have a pair after all.

I could notice sometimes, like when I had a pair and the game didn't put them next to each other automatically, but it was still very annoying. I don't know if any particular circumstances were associated with it.

Also, it's very easy to slip into a habit of clicking the arrow, then accidentally clicking 'change' when your option to exchange cards comes up, causing you to keep the cards you started with.
No. 85343 ID: 4a20fa

That's really strange. Hit F12 and see if it says "failed to precache" in the log. (Depending on your browser you may have to reload the page to get startup log messages.)

I'm open to suggestions on the Change button. It's narrower to try to be distinct, but I've kept the controls in one area to aid mouse locality; the advance button used to be on the dialogue pane but it was really irksome moving back and forth. Maybe at some point I'll set up keyboard controls and tackle it that way. Or I could just burn another row and give it some dedicated space below the other controls?

(The source ZIP is updated, by the way.)
No. 85357 ID: 4a20fa

(Cross-thread replying.)
>Is it possible to modify AI and Dialogue based on stage of undress yet?
You have to write a little code, but yes. Either overload parts of Declarative, or write an advanced character. Jena does actually retune her AI as the game goes on, mostly becoming more aggressive as she gets drunk.

>...how hard would it be to make it so modules can display multiple images or lines of dialogue in sequence to create "scenes"
Characters can respond to their own dialogue tags, so you can monologue that way. This is actually how the Asteroid lot do their two-stage losing. Other characters will be able to interject, though---there's currently no way to filibuster.

>or change out images from a list (possibly even based on in-game conditions) during play?
Jena's written this way, there's just not the art variations in place so it's currently hardcoded to always use "sober". Needs an advanced character (writing some code).
No. 85406 ID: 53548a

Are... are you replying to a question about my program like it was directed at yours?
No. 85421 ID: 4a20fa

Would you rather I did it in your thread?

People want a poker program that does X. I wrote one a year ago (everything except tunable AI there has been the case since when I first announced this). I don't see how it's unreasonable to state it does X, especially when you may have higher priorities than implementing X in yours.
No. 85432 ID: 53548a

Look, I'm totally cool with you making your own poker game. I wouldn't have open-sourced mine if I wasn't. But you gotta be less aggressive in promoting it. I think we can both benefit from shared ideas and friendly competition. But you're a smart guy, so I can't fathom you being blithely unaware of how it might be considered rude to intercept a question directed at someone else and use it to advertise your own features. Be cool, man, be cool. That's all I got to say on the matter.
No. 85445 ID: 4a20fa

>Look, I'm totally cool with you making your own poker game...
I'm sorry, I didn't realize I needed your fucking permission to write a poker game. I'll get in my time machine and chastise myself for starting my own little open source hobby project, back in January last year, before either of us had posted anything.

Holy fucking shit the sheer arrogance of that sentence floors me.

There is no general poker thread. You get pissy and territorial if I mention mine in response to "if only there were a poker game which..." posts in your thread. So I'm cross-thread replying instead and leaving yours alone. If you're going to get pissy about that, you can fucking well extend me the same courtesy and sod off. Hide the thread.

This is what this reply looks like after a day of "cooling off", by the way.


To everyone else, I am sorry if this has all gone a bit Phil Fish. All I am trying to do is provide a poker implemenation that actually lets people do some of the "wouldn't it be cool if" ideas that have been bandied around. Primarily "Poker Night at the Inventory"-style antics, so that not everything character-development-shaped on questdis has to be a means to an end of fapping but, hey, I'll play to the audience so it supports that too. And some of you have been great, and posted some feedback, and I've tried my damndest (within the limitiations that, y'know, this is something I do in my downtime, gratis and libre) to fix whatever bugs or UI niggles you've found, and finally the AI. The guy who ported all the old cast, seriously, thanks for slogging through that, I'm sorry I can't host them, and using /TEMP/ is out of my hands.

I am not sorry if I am trying to encourage questmasters to actually add their characters to it, and make use of the capabilities it has and that people have been asking for since Weaver dug up the Windows 3.1 poker game. That people still ask for things indicates they do not, in fact, already know that an implementation exists. I have done everything I can think of to make this easy. I can't do the things I can't think of because nobody has actually come to me with any problems. As far as I can tell nobody has tried.

We now return to your regularly scheduled *chan game of identifying emotions, "u mad bro". If you think I'm an asshole, the thread hide button is up there somewhere. Save us both the aggro.
No. 85446 ID: c4f9a2

4a20fa didn't seem rude to me, but your reaction is a little on the slimeball side of what I would expect from a soccer mom.

You're overreacting though. If all it takes to get you that mad is someone sort of being a shithead you're going to die of a stroke in your 30s.
No. 85452 ID: 00b2db

> Holy fucking shit the sheer arrogance of that sentence floors me.

I think you are really reading something into that that isn't there. Of course you don't need his permission, that's kind of obvious.
No. 85453 ID: 00b2db

i.e. hes isn't giving you permission, he's explaining what is and isn't annoying him.
No. 85463 ID: 53548a

I didn't say rude, I said could be considered rude. It's conveniently subjective.
No. 85464 ID: c4f9a2

I didn't call you a slimeball, I just said you acted like one. It's totally accurate.
No. 85474 ID: 53548a

I didn't dispute that so your response doesn't really make sense, but now that you mention it, I don't really get that insult. Are you calling me a soccer mom? Or are you calling me a slimeball? Are you insinuating that soccer moms are slimeballs? Do you legitimately think I am a soccer mom, and are calling me a slimeball? It's very vague. I'm nonplussed.
No. 85492 ID: 665deb

Hey, could you kids stop having a big dumb argument outside of the BDA thread? Maybe find each other on IRC and have it out there.
[Return] [Entire Thread] [Last 50 posts]

Delete post []
Report post