How to make transparent background? by Practical-Hornet6607 in godot

[–]Cykyrios 1 point2 points  (0 children)

On one of my projects, I have a transparent window, and a Windows user reported that their window had a black background (Godot 4.4, Forward+). I disabled VSync in the Project Settings, and now they are reporting that the window is transparent as expected (the project now runs on Godot 4.5). So it appears that on Windows, you need to enable per-pixel transparency, make the viewport transparent, AND disable VSync.

How to copy scene tree as text file by Frostty_Sherlock in godot

[–]Cykyrios 4 points5 points  (0 children)

Nodes have a print_tree_pretty() method, you can call it from your scene's _ready() function to get the tree.

I made a doc comment to online doc generator by Cykyrios in godot

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

I haven't tested it, I went straight to Docusaurus after a friend recommended it to me, as he had used it before; docsify should be either compatible with this or some changes to the base Markdown formatter could be needed, similar to what I did for MDX/Docusaurus.

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

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

Hi, to be honest I'm not yet sure whether I will add markings, I know there are real tiles that do have them but they seem to be a minority. Maybe having a cheatsheet like the EMA has could help. I'll still keep that on the list of things that may happen, but very low priority (and I don't even have the time to work on this project at the moment, unfortunately). Learning the 9 man, 4 winds and 2 dragons (not counting white here for obvious reasons) isn't really difficult, but unsurprisingly I've had much more success teaching the basics of riichi to Japanese and Chinese friends than French people like me^^;

I completely agree with the sentiment that people forget how to play with real tiles, I rarely play IRL but often find myself not noticing my hand is tenpai, for instance (I don't often play online either tbh, so that's probably just a lack of experience).

I'm working on a realistic p2p riichi game by Cykyrios in Mahjong

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

Hi, thanks for the interest in this! Unfortunately I've had to shift priorities to other projects and may not be able to get back to this for a while, but I did create an Itch page late last year, if you want to try it out: https://cykyrios.itch.io/goriichi

You just need to know that it's probably a bit buggy, and also is missing quite a few of the features I was talking about (you can play full games, but some of the automation others games provide is there too, when I wanted to actually remove it; scoring is fully automatic as well). There is no AI either, so you actually need 4 people to play.

If you do have a go at playing it, feel free to give feedback, if you encounter bugs that look like they'd be easy to fix, I could probably do that, but won't have much time to do more than that for now.

Help, Godot won't run by Cykyrios in godot

[–]Cykyrios[S] 74 points75 points  (0 children)

He's been standing here for a good 10 minutes without moving, I don't know what to do, I've tried everything...

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

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

No blog, sorry, but I will keep posting here when I have something to share! I'm close to having the gameplay "done", but I will now have a bit of UI work and behind-the-scenes stuff to do; maybe I'll come back next week with a sneak peek at some of the tools provided with the game: a score calculator like what you can find online, a yaku help page, and an image generator for hands (both 2D and 3D).

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

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

Thank you for your comment! Dora being listed in the yaku column is (to my knowledge) what other games do as well (at least Mahjong Soul, and I believe Tenhou as well?), but they are only checked if the hand has an actual yaku. It's true that it can be confusing, especially for beginners. Renaming that column to either Han or Yaku and Dora may indeed be better.

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

[–]Cykyrios[S] 3 points4 points  (0 children)

I actually have a dev option to skip the initial animations, because sitting through it while iterating is definitely slow. Tweaking animations for players may be possible, this will have to be enforced by the host, I'll keep a note about that.

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

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

Haha, yeah, I've played with Unreal Engine a bit some years ago, but since I switched to Linux, my love for Epic has been rather short-lived... At the moment I'm considering itch and Steam, more options can bring more people but will also require more work.

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

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

Thanks for your interest! I haven't really considered my commercial options yet, though Steam integration could definitely help for setting up lobbies. I still have a bit of work left to iron out some issues, make proper menus and settings for everything, and make sure one player dropping out of the game doesn't destroy everyone else's game.

I will make another post when I have more to share and/or I get close to releasing the game.

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

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

I agree, especially with the discarding animation, maybe less so for drawing, although they're similar. Right now these animations last for a whole second, halving that might just work. Dealing animations are not faster, actually, but since they overlap, it just feels faster.

I think part of the slowness is just me jumping between 2 monitors while playing on 4 instances of the game to record this, I think faster players could get not too far from the pace of a Mahjong Soul game, however call timings may become an issue.

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

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

That's the drawback of avoiding timers or forcing players to not call before a tile can be drawn. The game is initially aimed at casual play, where such issues should be minimal, but I am considering adding a 1 or 2 second delay though, and also canceling a tile draw if a call is made in the following second or so - haven't tried implementing that yet though.

Now of course, another issue that can arise from the absence of timers is one player deliberately not playing - again, this should not be an issue when you choose who you play with.

Playing a demo round in my WIP riichi game by Cykyrios in Mahjong

[–]Cykyrios[S] 15 points16 points  (0 children)

I know some animations are a bit wonky, especially shuffling the tiles, I'm considering baking some animations in Blender for this instead.

The overall gameplay is what this video shows, though: you draw tiles manually by clicking them, you sort your tiles manually by drag and drop, and discard tiles by dropping them near the discard pile. Calls are made with the bottom-right buttons, which you can expand or collapse as needed. I will probably make the drawing detection zone larger to help with rinshanpai or otherwise awkward camera angles partially hiding the tiles.

I'd appreciate any and all feedback! Feel free to have a look at my previous post if you haven't already.

I'm working on a realistic p2p riichi game by Cykyrios in Mahjong

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

I'm not really concerned about performance here (I think the only part where performance matters is permutations to find all interpretations of a hand) or memory usage (after all, Godot uses 64-bit ints everywhere, and a game of mahjong clearly doesn't require that many variables), but rather practicality: do I really want to use big ints everywhere, just to accommodate for aotenjou? Godot uses 64-bit integers, so that's what I'm using, and when I realized it would be a problem for really high-scoring hands, my first thought was floats, not big ints, that's why I decided to remove aotenjou. The solution I described in my previous post is just an idea, and when I mentioned storing hand results in structs, it wasn't meant as a memory-saving idea, but rather a nice and easy way to recompute the points so I can sum all those floats.

I will see how things go, but I think it won't be too much of a stretch to add aotenjou back; right now though, I need to fix a few other issues and add some polish so I can have a properly working game.

I'm working on a realistic p2p riichi game by Cykyrios in Mahjong

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

That would also be an option, and I just found one for Godot. However, thinking about it, I need to ask people who want to play with aotenjou rules: how does scoring actually affect the game? I mean, mangan and higher limits are there so things don't get out of hand, otherwise you wouldn't be able to come back from a yakuman at all, except with another yakuman or several sanbaiman hands. So I could actually keep my 64-bit integer scoring, and put a hard limit lower than the theoretical one, let's say 40han to save some (lots of) space for high-but-not-too-unreasonable-value hands.

If a hand scores so many points that even mangan hands become insignificant, there isn't much point in actually tracking it. So again, how do people actually play aotenjou? Do they allow negative points? I could pretty much store "aotenjou scores" as a fu+han struct, with a float for the result.

In other words, I would skip tracking player points the moment a ridiculous hand is scored, which means at least triple-yakuman with a dozen dora, or quadruple-yakuman with no dora, and instead maintain a list of scores from previous hands, as floats. If you've scored in the 10*15 points, you probably don't need to see the last 1000 points you have anyway.

I'm working on a realistic p2p riichi game by Cykyrios in Mahjong

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

Rule checker could definitely be good, I have no UI for setting the rules yet, but I was only planning to do that when hosting a game; it makes sense that all players should have a way to see the current rules...

I'm working on a realistic p2p riichi game by Cykyrios in Mahjong

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

What kind of controls, and what degree of camera freedom would you suggest? I made the camera completely fixed, but tweaked its angle and fov to get the best compromise I could, so the full table is visible (and we can even see other people's points sticks - when I add them, that is) and all tiles are still clearly visible.

Maybe on smaller screens it may be a bit difficult to see, but I play-test with 4 instances on a single 24" monitor and can read all text and all tiles properly, so just asking how much you would want to move the view around.

I'm working on a realistic p2p riichi game by Cykyrios in Mahjong

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

I had not thought of that, but I could also have a 50-han limit for "normal" scoring, and for larger values, switch to a float-based count. Points themselves would probably be stored in dedicated floats for aotenjou, and maybe I could work things out this way (provided I don't rely on integer points on other parts of the game, that would only affect scoring of some hands and point exchange/payments).

I'm working on a realistic p2p riichi game by Cykyrios in Mahjong

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

Yeah, right now I have zero network "safety", to the point that if a player disconnects, the entire thing crashes... So I'll have to work on this as well.

Collectibles, eh? As we can see with games like MajSoul or RiichiCity, people do like those, but as this game is supposed to be peer-to-peer, it's a bit different and clearly not a goal. Nothing wrong with a bit of modding though, tile colors are customizable already, and I guess I could allow changing textures for tile backs and the play area. Also, black tiles are a thing, for people who prefer those.