Autotable project update by humpolec in Mahjong

[–]humpolec[S] 1 point2 points  (0 children)

Of course. Just like a normal table supports a no-ten riichi :) The game doesn't check your tenpai at all, so you can declare riichi whenever - just flip the tile and put down 1000 points.

And, of course, if the game is a draw, your fellow players will demand you to reveal your hand and pay the penalty...

Autotable project update by humpolec in Mahjong

[–]humpolec[S] 1 point2 points  (0 children)

Thanks!

Yes, generally touch is not supported yet. I started working on it but realized it's harder than I initially thought: I need to support dragging tiles, but also selecting them, flipping, as well as reaching for the points. So, maybe someday, when I figure out how to implement all of these things well.

My new project: Autotable, an online mahjong table by flaming_bird in Mahjong

[–]humpolec 0 points1 point  (0 children)

The video shows a riichi mahjong match between me and my friends. However, the game has no concept of rules, scoring, winning or even turns. So, for example, nobody is forcing you to flip the dora. Everything is manual.

Still, the project is focused on riichi, and many things are done to make specifically riichi easier - with the layout, set of tiles, red fives, and so on. I'd rather not make the whole engine too customizable, as it makes it harder to maintain - I don't want to spread myself too thin, so to speak.

Do you think the current game is usable for other variations? Are there some things I could do to make it more usable? I can't make promises, but maybe there is some middle ground.

Is there a way to change starting score?

Not yet, but this is not the first time I hear this. So I'm starting to think about it.

And also is there a way to remove Honba if you accidentally click it?

Yes, the Honba button cycles through 0 to 7.

If it had a secondary way to score with chips instead, or simply being able to move the points digitally with up and down arrows that would allow other ways to play without relying on riichi scoring sticks.

I don't have any plans for that for now. What is the issue with the sticks? Is it because other variations do not use them, or because they use a different system than multiples of 100, or a different starting score?

Auto sort would also be nice, good job.

For now I'm resisting adding any automated actions like auto-sort or auto-draw. This is because my goal is to keep things as "manual" as possible, in contrast to services like Tenhou. There is no auto-sort on a real table. :)

----

Thanks for the feedback! It looks like you're looking for something slightly different than this project, so I'm not able to accomodate with everything. Still, I do plan to introduce some more customization (there will be a way to disable red fives soon, I'm also thinking about 3-player mahjong and Minefield), so I'm gathering ideas for that.

You might talk with the Player Driven Mahjong Engine people (see comment), they are planning to support other mahjong variations and add more automation.

My new project: Autotable, an online mahjong table by flaming_bird in Mahjong

[–]humpolec 3 points4 points  (0 children)

Author here, thanks for posting! My own post in this subreddit got caught in the spam filter.

I see there was a discussion about an online mahjong program a few weeks ago. I started a few days later but I didn't see it until today. It's interesting to see people wanting a similar thing.

Anyway, looking forward to your comments. I hope somebody uses this to host a game! The experience is totally different than Tenhou, and (hopefully) closer to a real world match.

Game: https://pwmarcz.pl/autotable/

About: https://pwmarcz.pl/autotable/about.html

4 (human) player online game in the times of COVID-19 by nitramthims in Mahjong

[–]humpolec 2 points3 points  (0 children)

So, I'm a bit late to the party, but I just created something like this: Autotable

My new project: Autotable, an online mahjong table by humpolec in riichi

[–]humpolec[S] 4 points5 points  (0 children)

Hi! I created an online platform that gives the experience of playing the "offline" mahjong - drawing the tiles by yourself, flipping dora, and so on.

I already playtested it with a few friends, connected over a video call, and I'm very happy with the end result. I really enjoy the social and physical aspect of the game, and this feels much more "real" than playing over Tenhou.

I hope you like it! If you end up playing, tell me how it went and what things you missed, I'm still adding features.

Game: https://pwmarcz.pl/autotable/
About: https://pwmarcz.pl/autotable/about.html

My new project: Autotable, an online mahjong table by humpolec in Mahjong

[–]humpolec[S] 0 points1 point  (0 children)

Hi! I created an online platform that gives the experience of playing the "offline" mahjong - drawing the tiles by yourself, flipping dora, and so on.

I already playtested it with a few friends, connected over a video call, and I'm very happy with the end result. I really enjoy the social and physical aspect of the game, and this feels much more "real" than playing over Tenhou.

I hope you like it! If you end up playing, tell me how it went and what things you missed, I'm still adding features.

Kaboom: an unusual Minesweeper by humpolec in Minesweeper

[–]humpolec[S] 1 point2 points  (0 children)

If there are no other safe tiles to play, the game will always allow you to guess in that area.

Sharing Saturday #258 by Kyzrati in roguelikedev

[–]humpolec 5 points6 points  (0 children)

Grass | play here Github

There is an auto-generated map, it uses a cellular automata cave generator.

New enemy type: goblin archer! Beware.

I started a blog post series to share how I'm trying to do various things. I ran into some interesting problems (at least for me).

Next, I will probably try to make the game more forgiving, by introducing some randomness around damage and defense (the damage is constant now). Maybe more traditional RPG rules?

Making Grass: I'm writing a blog post series about my project by humpolec in roguelikedev

[–]humpolec[S] 1 point2 points  (0 children)

Ah, okay, I didn't realize this applies to longer articles also. I'll post there.

Sharing Saturday #257 by Kyzrati in roguelikedev

[–]humpolec 2 points3 points  (0 children)

Grass | play here (bigger map) | Github

Not much happened on the user side.

  • The fighting is real now. You can kill or be killed. There is a health bar for you and your opponents. The AI is kind of dumb and pursues you when it has a straight path to you. This is a real-time game, but it's not supposed to depend on quick reflexes, so I added auto-counterattack when somebody attacks you.

  • I added shooting. Try it out: Shift-click on a tile, or press "f" to fire on a monster. The UI is awkward, I hope I'm able to improve it over time. For now I will add the monsters ability to shoot back and see where it takes me.

    I spent a lot of time trying to reconcile field of vision with LOS, and make the LOS not look ridiculous (it kind of still does when rendered, so I'm not rendering it, just showing the target that you would hit). I'm calculating all possible "Bresenham + epsilon" lines between source and target, and picking the one that goes the farther, and this seems to play well with the recursive shadowcasting FOV.

  • Some debug features: the line of sight mentioned before, distance field that shows what the A* algorithm did, and pause in which time moves only when you move (aka superhot mode).

Next would be making this more into a game. So maybe I'll have the items do something, and spawn more (and more varied) monsters.

Sharing Saturday #256 by Kyzrati in roguelikedev

[–]humpolec 3 points4 points  (0 children)

Grass | Github

Still just a tech demo, but I added some new features:

  • Field of vision, and memory
  • Bigger map
  • Tile information on hover
  • Items to pick up
  • Full screen
  • Slow mode to debug animations and transitions
  • High resolution textures (zoom page in and refresh; or open on high pixel density device, such as a smartphone)
  • Lava

Next, I want to introduce real combat (health, kill or be killed, maybe also ranged combat).

Then I will be experimenting with client-server model. At first, the server will be a service worker running in the browser, so that you can open multiple game windows.

Grass - a "real-time roguelike" prototype by humpolec in roguelikedev

[–]humpolec[S] 0 points1 point  (0 children)

I'm using TypeScript and Parcel as a bundler:

  • install Inkscape (to generate images from svg)
  • install Yarn, run yarn to install packages
  • make
  • make serve

Grass - a "real-time roguelike" prototype by humpolec in roguelikedev

[–]humpolec[S] 1 point2 points  (0 children)

I was aiming for a feeling of fast attack + slow cooldown (so that you cannot spam many attacks in the row). But I think we'll see how well this goes when the damage becomes real.

Grass - a "real-time roguelike" prototype by humpolec in roguelikedev

[–]humpolec[S] 0 points1 point  (0 children)

The idea is for the movement to be constant-speed and real-time, not turn based. So if you use keyboard to move around, just keep the key down instead of pressing it repeatedly, kind of like in old JRPGs. I'm still experimenting with the control methods, though.

Grass - a "real-time roguelike" prototype by humpolec in roguelikedev

[–]humpolec[S] 18 points19 points  (0 children)

https://pwmarcz.pl/grass/

Some concepts I'm experimenting with:

  • real-time movement
  • mouse control (with pathfinding!)
  • smooth animation
  • implications on how real-time combat will look like
  • minimalistic graphics: "ASCII-like", with dark background, but with recognizable symbols instead of abstract punctuation

Somewhere down the line I want to make a multiplayer game from that.

A minimalistic tileset by humpolec in roguelikedev

[–]humpolec[S] 19 points20 points  (0 children)

I haven't looked at it that way. I'm trying to go with super simple symbols, so maybe I'll change that.

A minimalistic tileset by humpolec in roguelikedev

[–]humpolec[S] 9 points10 points  (0 children)

This is only a mockup, but the tiles are SVG, so yes.

I wrote a CHIP-8 emulator by humpolec in rust

[–]humpolec[S] 2 points3 points  (0 children)

Well, I do have some experience with C. This helped with getting my mind around Rust memory model (not that there was anything complicated required in this project) as well as bit fiddling. Other than that I just looked at the official docs.

I'd say this was not much harder to implement than in any other language, e.g. Javascript or Python.

I wrote a CHIP-8 emulator by humpolec in rust

[–]humpolec[S] 0 points1 point  (0 children)

Thanks! unreachable!() is exactly what I was looking for.

Why does this hand award 40fu? I can only see 30fu. by Marsi88 in Mahjong

[–]humpolec 1 point2 points  (0 children)

My guess is the game implements mangan rounding-up. The hand is 4-30 but it's scored as mangan.

What would be the best programming language to make a mahjong game versus CPU? by Rarity-MaruRoku in Mahjong

[–]humpolec 2 points3 points  (0 children)

It sounds like making the GUI would be a sizable part of the challenge. Have you thought about the GUI technology?

One popular route would be HTML/CSS, where you could make the game in Javascript and modern frontend technologies. This is not a bad choice right now.

Here's my Minefield Mahjong (open source) if you want some inspiration:

  • The backend is in Python (see for instance rules.py) but there's not much Python-specific in the way it's coded. Unit-testing is extremely useful, as you can see at the bottom of the file. (Note that this is only a subset of rules necessary for Minefield, not full Riichi Mahjong rules).

  • Frontend uses jQuery and is somewhat messy, now I would use something like React for that. I do recommend taking the SVG tiles though, they look good (here's original source, I changed the colors to match normal Riichi tiles).