Returning to simple-dots-game after a while

It has been a while since I worked on this game. And after being away for a while, I can't really see the sources of frustration that I felt before. They were probably residual feelings from the frustration of getting it to a functional state and figuring out the system.

But there's something that was missing. The game on the android store is far less generous, and I must assume that it weights against cycles being created by new dots. It also has a smaller board which is probably more likely to be the cause of the difference in scores and cycle prevalence.

Currently it checks a small section of the board to see if the addition allows a cycle, but it is not very smart, and it should be possible to check for any cycle. But there's a point where that just seems petty. So I added another color to the other 4, purple(and also lightened up the blue so you can see its label).

What the game looks like now

As you can see I haven't really figured out what to do to improve the overall experience.

You can find the repository here if you missed the link earlier 🙂

Initial impressions of Orbtk

I've been meaning to get into rust for a long time, but there were some pieces missing from the ecosystem(good rust bindings for GUI applications appear to be hard to come by), but rust isn't like most of those other languages, it requires a different approach because many of the gui frameworks that have worked historically have been object oriented, but maybe I've just misunderstood.

The Orbtk toolkit seemed at first to have found a sweet spot with a mixture of entity component framework patterns and a functional reactive model, it feels, well, actually not that bad to use. I wasn't prepared for all those static &strs that the examples pepper throughout.

The demands feel a bit different than other toolkits I've used. Rendering is separated from widget state, which doesn't feel particularly helpful in this case. It's probably just the friction from adjusting to a new way of structuring the application, but the mouthfeel isn't very good so far.

Part of that comes from fighting the model as I figure out how exactly this pattern is meant to work, and how the graphics are rendered(so far I'm still stumped). In the meantime I've figured out how to use buttons.

One of the problems is the styling engine. It is very much doing things I would rather it not, such as adding hover animations to the buttons that mess up the game's board and makes it look even worse. Disabling the style on the buttons worked fine however, so it wasn't of too much concern.

The performance leaves much to be desired, especially when built in debug mode, though when it's run with the release optimizations turned on, it runs acceptably. It probably doesn't like having a hundred buttons on the screen at once, but like, that's not really all that much to ask of a web browser or most mature toolkits.

But as I find myself managing to accomplish my goals with the GUI, I'm finding my criticism feels a bit less urgent, the performance isn't that bad.

But that's besides the point, while I think I might even like the toolkit, it looks very slow moving, and many of the the answers I have found to my questions were pried out of reading the source code rather than documentation, which is, where it exists, pretty alright actually.

I want to try out the other data-oriented toolkits too, especially druid, which looks quite nice.

Though, honestly, I don't think I'm going to polish this particular implementation of this project any further, it just takes a lot more code than I think should be necessary to do anything new.

Another thing I noticed was that it tends to cause my KDE Neon install's kwin to flicker when the applications terminate, which can be very frustrating, especially very early on when nothing you're trying is working and you're throwing handfuls of noodles at the wall until you find a fix.

In any case, I'm pleasantly surprised compared to the last time I tried building a GUI in rust. The frameworks I have tried have got a ways to go, but if they keep working on it, I think OrbTK could be very good with time.