Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411707 Posts in 69401 Topics- by 58457 Members - Latest Member: FezzikTheGiant

May 20, 2024, 10:37:45 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperPlaytesting5N²+6N-4 . . . . . .
Pages: [1] 2
Print
Author Topic: 5N²+6N-4 . . . . . .  (Read 5499 times)
a-k-
Level 2
**


View Profile
« on: November 23, 2019, 04:46:59 AM »



Hi all,

I would love to get some feedback on this.

HTML5 version (fullscreen):
itch.io (password: tigs)

Update: it's a lightweight programming puzzle with only 6 commands. No programming is needed - that is already taken care of for you.
« Last Edit: November 30, 2019, 07:30:21 AM by a-k- » Logged

marcgfx
Level 8
***


if you don't comment, who will?


View Profile WWW
« Reply #1 on: November 29, 2019, 04:01:45 AM »

Pretty weird. I did end up managing to make a cycle out of 4 nodes, so I felt like I understand what the main idea is. After the introduction where I had to move the nodes to get a specified shape, I was expecting something completely different. It turned into this semi-programming game. I did not thing it was introduced very well though, it required a lot of try and error to understand what the game wanted me to do. I did not read enough for sure, but it does not seem that complicated. Maybe you could just show actual examples instead of text? I also found the help text rather confusing. Telling the player to press the next button (that while looking like a button is not one, but you have to click top right).
Logged

a-k-
Level 2
**


View Profile
« Reply #2 on: November 30, 2019, 07:29:59 AM »

Thank you for the elaborate feedback!

Pretty weird. I did end up managing to make a cycle out of 4 nodes, so I felt like I understand what the main idea is. After the introduction where I had to move the nodes to get a specified shape, I was expecting something completely different. It turned into this semi-programming game.
That's funny! The itch.io page describes what the game is about but here I didn't provide any details, so I can see how the mini-game created different expectations. I've just updated the first post to reflect that. You've actually managed to learn 33-50% of the full commands toolbox (depending on which 4-cycles level you solved).

I did not thing it was introduced very well though, it required a lot of try and error to understand what the game wanted me to do. I did not read enough for sure, but it does not seem that complicated. Maybe you could just show actual examples instead of text?
The first 3 levels have a tutorial, or more precisely a hint system, that is opt-in and activated by the (apparently-small) "?" button. And it stops once the player makes progress, so they may need to click it again for more hints. I'll change things a little to make that more clear.

By the way, if you had known that the game was a programming puzzle, would you have paid more attention to the text? I'm not dismissing your feedback, certainly graphical examples would be way better than text. I'm just hoping to somehow work around that fact...

I also found the help text rather confusing. Telling the player to press the next button (that while looking like a button is not one, but you have to click top right).
I originally started with button references looking just like normal text, but later changed them to look more like actual buttons, only smaller and without a gradient, so that players don't miss them. I've made some dirty fix (added "at the top-right corner" in the first screens) but I'm going to address this issue much better, without even more text...
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #3 on: December 11, 2019, 09:50:05 PM »

I really like it! I was a bit confused at first but I got the hang of it. Here is my playthrough:





Nice work!
Logged

a-k-
Level 2
**


View Profile
« Reply #4 on: December 14, 2019, 01:17:12 AM »

I really like it! I was a bit confused at first but I got the hang of it. Here is my playthrough:





Nice work!

Whew, a playthrough! Thank you very much, michaelplzno! You've made excellent observations and suggestions, this is really invaluable! And many ideas pop up just from seeing you play. Which was fun to watch - it's immensely satisfying to see the level design meeting the player's reasoning in real time, all those little traps ultimately forming understanding!

I'll actually need to go over the whole video one more time. Expect to see it mentioned in future devlog posts quite a few times as I gradually attempt to address more issues. As a quick partial fix for the repeating ones (mentioned also above), the new game version I've just uploaded
- has introductions for the first two levels with 2-3 new graphics that provide all UI details needed to solve these levels, and less text,
- makes the hint button x3 wider, and
- removes gradients from almost all non-interactive elements.

The first two changes aim to better handle both players that read introductions and those that skip them. I'm hoping this is the right direction, otherwise I believe I'm quickly approaching the mandatory tutorial route.

As for the last one, I'm still on the fence regarding removing outlines - due to low contrast with some backgrounds. I think that for me, it may be easier to make the non-interactive elements interactive than keep adjusting colors. Anyway, something will need to be done.

And thanks for the kind words! The game tries really hard to optimize for the player's time. And with your feedback, it's going to improve!
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #5 on: December 16, 2019, 04:32:03 PM »

I had a lot of fun playing this and giving my feedback, I'm happy to play other versions as they come along!
Logged

a-k-
Level 2
**


View Profile
« Reply #6 on: January 03, 2020, 06:24:20 AM »

A quick update: following jbarrios's illuminating playthrough (thank you!), the first 2 levels have been turned into a tutorial and additional changes were made in order to facilitate onboarding and improve productivity for mouse players.

And there's more stuff to explore now (new levels etc.)
Logged

mapleOwO
Level 0
*



View Profile
« Reply #7 on: February 10, 2020, 10:10:31 PM »

This is really cool! I just played through the demo fully, which is up to 31 levels at the moment; sitting at 5525+9i score. Grin The mechanics all seemed natural, and there are lots of little qol choices (e.g. making the window resizable in either or both dimensions) which made the experience smooth. I can definitely see a lot of potential for interesting future levels with this framework.

I wonder if it would be feasible/desirable to make the scoring formula for a level transparent once it's been cleared. As it stands I don't really know which optimizations would actually lead to a score increase, especially around the "120x" expert score.

In any case, looking forward to seeing where this goes!


Logged
a-k-
Level 2
**


View Profile
« Reply #8 on: February 12, 2020, 12:10:21 PM »

This is really cool! I just played through the demo fully, which is up to 31 levels at the moment; sitting at 5525+9i score. Grin The mechanics all seemed natural, and there are lots of little qol choices (e.g. making the window resizable in either or both dimensions) which made the experience smooth. I can definitely see a lot of potential for interesting future levels with this framework.

I wonder if it would be feasible/desirable to make the scoring formula for a level transparent once it's been cleared. As it stands I don't really know which optimizations would actually lead to a score increase, especially around the "120x" expert score.

In any case, looking forward to seeing where this goes!

Thank you so much, mapleOwO! I was wondering who would finally kick me out of the 1st place on the leaderboards, and you are pretty close to that right now...

I did invest a lot of time in QoL. I haven't implemented everything that I would like to have as a user, but the majority is already available, and I'm glad to see that it pays off.

The scoring, well... I do plan to ultimately provide some in-game explanation, since it's hard to form a model of it just by playing the game. If you remember in which level you started feeling that it didn't make sense, maybe that would be the place to introduce it to players. It's not pretty. Actually, there are two systems at play here whose results are combined - calculation by geometric mean, and calculation according to "pareto frontier":

score = max(monotonic_function(ratio), K)

ratio = sqrt(expert_cost * expert_cycles) / sqrt(player_cost * player_cycles)
(if there are several expert solutions, the one with the best geometric mean is used)

K = 0 if the player solution is inferior to any expert solution, otherwise K = expert_score.
inferior means that (player_cost >= expert_cost) and (player_cycles >= expert_cycles), and at least one of the comparisons is strict.

monotonic_function is designed to tolerate poorer solutions. For example, if expert_score = 120, then
monotonic_function(2) = 2*120 = 240, while monotonic_function(0.5) = sqrt(0.5)*120 = 85.

In practice, for the linear-time algorithms of the demo, this implies that solutions with fewer commands are favored over faster solutions with more commands, and that if your score is already the expert score because of K, then improvement in one of the metrics (or even both) may not necessarily produce a better score (as you've experienced).

Actually, this scoring system is new - I had a simpler and more intuitive one for the previous demo (with 22 levels), but it didn't survive due to the need to accommodate loop unrolling. Everything is still open.
Logged

mapleOwO
Level 0
*



View Profile
« Reply #9 on: February 12, 2020, 05:38:29 PM »

That makes sense, I like it! Thanks for the explanation. And, now I'm up to 5525+118i 5620+23i 5533+289i.Grin

If I'm not mistaken then, the correct thing to optimize once any pareto frontier solution has been found for a level is cost*cycles. Maybe once a user has gotten the 120x score for a level, her cost*cycles minimum becomes visible in the level summary as a convenience? It might also be helpful to list somewhere what the expert_score is for each level, though it's not too difficult to figure that out as is.

I think I first got confused score-wise with C4, since I found a lot of ways to get to the 240. Perhaps there could (eventually, when the scoring is finalized) be a button in the settings menu or something similar which pulls up a full explanation for the score calculation. Then around when conditionals are unlocked (so cost can be fully defined), you can say what "cost" and "cycles" mean, mention that score is based on them, and direct the player to the relevant place if she wants the details. That way players don't need to see the details if they don't care much about optimizing the composite score, and the rest of us know where to look.

« Last Edit: February 13, 2020, 02:41:19 PM by mapleOwO » Logged
a-k-
Level 2
**


View Profile
« Reply #10 on: February 13, 2020, 03:17:38 PM »

That makes sense, I like it! Thanks for the explanation. And, now I'm up to 5525+118i 5620+23i 5533+289i.Grin

If I'm not mistaken then, the correct thing to optimize once any pareto frontier solution has been found for a level is cost*cycles. Maybe once a user has gotten the 120x score for a level, her cost*cycles minimum becomes visible in the level summary as a convenience? It might also be helpful to list somewhere what the expert_score is for each level, though it's not too difficult to figure that out as is.

I think I first got confused score-wise with C4, since I found a lot of ways to get to the 240. Perhaps there could (eventually, when the scoring is finalized) be a button in the settings menu or something similar which pulls up a full explanation for the score calculation. Then around when conditionals are unlocked (so cost can be fully defined), you can say what "cost" and "cycles" mean, mention that score is based on them, and direct the player to the relevant place if she wants the details. That way players don't need to see the details if they don't care much about optimizing the composite score, and the rest of us know where to look.

These are all great suggestions! I will probably go for a 'Scoring' button in the level summary, next to 'Cycles'. Coming to terms with these formulae may take a while, so I guess it won't be soon.

Your achievements are a big help! And they make the game more interesting for me, too. As you have already noticed, a few workers had to leave...
Logged

mapleOwO
Level 0
*



View Profile
« Reply #11 on: February 13, 2020, 04:06:49 PM »

The new C11 was quite cool! Amazing what three workers are capable of doing when they put their minds to it.

By the way, how much are imaginary points actually worth on the leaderboard? I remember seeing 5520+30i ">" 5525+9i, and now I notice 5533+289i ">" 5520+304i. My best guess is that they're worth half a real point?
Logged
a-k-
Level 2
**


View Profile
« Reply #12 on: February 14, 2020, 07:25:52 AM »

The new C11 was quite cool! Amazing what three workers are capable of doing when they put their minds to it.

By the way, how much are imaginary points actually worth on the leaderboard? I remember seeing 5520+30i ">" 5525+9i, and now I notice 5533+289i ">" 5520+304i. My best guess is that they're worth half a real point?
Well, the new C11 did have some complex effect on the leaderboards... I actually liked their previous state (I took a screenshot, it's in the devlog section here), and I hope that more players will be able to catch up with the new version in the future.

You've got the imaginary numbers thing right! There's explanation at the bottom of the leaderboards now. Esoteric programming calls for esoteric math!

Now after more playing, I understand much better how hard it is to determine whether a level is optimized or not by looking at the histograms. I have at least one level that I'm not sure about, and that's without considering potential rooted solutions. (Sure, I can run queries against the DB, and even decode the solutions there, but I'm playing just like anyone else.) And it can get more complex if the best score falls in the middle of the histograms.

Anyway, this was an important experience and I believe that I know what to do. Thank you!

Update: added a histogram of the geometric mean of cost and cycles. It helps!
« Last Edit: February 14, 2020, 10:04:30 AM by a-k- » Logged

mapleOwO
Level 0
*



View Profile
« Reply #13 on: February 14, 2020, 11:11:11 AM »

Indeed, and it's even harder to figure out which levels have root improvements since those solutions aren't represented in the histograms at all as far as I can tell.

I like the new histogram! As far as score-improvement goes, though, it's only really useful for users if anyone breaks past the expert_score for a level. This could happen in future levels, but after the newest update I wouldn't be too surprised if this was entirely impossible for the current ones!

A root histogram of this form would of course be useful (for levels where some strict improvement is possible) but it might make "chasing those imaginary points" a bit too easy. Speaking of which... that ball's back in your court. Grin
Logged
George Hennen
Level 0
***

yeet


View Profile
« Reply #14 on: February 15, 2020, 12:07:39 PM »

seems too complicated
Logged
a-k-
Level 2
**


View Profile
« Reply #15 on: February 17, 2020, 01:40:42 PM »

seems too complicated
Are you referring to the scoring system that is being discussed or to the game in general? If the latter, it would help if you elaborate a little, what makes it seem so?


Indeed, and it's even harder to figure out which levels have root improvements since those solutions aren't represented in the histograms at all as far as I can tell.
[...]
A root histogram of this form would of course be useful (for levels where some strict improvement is possible) but it might make "chasing those imaginary points" a bit too easy.

I share your view here, and a root histogram is not going to normally show up. But when you run a rooted solution, you get a small i in the histograms don't you?

I like the new histogram! As far as score-improvement goes, though, it's only really useful for users if anyone breaks past the expert_score for a level. This could happen in future levels, but after the newest update I wouldn't be too surprised if this was entirely impossible for the current ones!

Here's a diagram that summarizes my understanding of the possible scores, assuming 3 expert solutions. The curve represents the cost*cycles of the best one:



Everything below the curve (green) is > expert_score.
Solutions that are dominated by expert solutions (yellow) are < expert_score.
Both of these are graded according to the new histogram.

The rest of the cost-cycles domain (turquoise) simply gets expert_score, without any variation. And there's the discontinuity at the yellow-turquoise border. I really need to see if I can come up with some alternative.

Speaking of which... that ball's back in your court. Grin

I think my only hope is playing dirty... If C12 is to blame for your 2i advantage, then it's going away, and replaced by 2 new levels. Also included is one of my favorite achievements. Hopefully you won't find any loophole this time!

(Of course, I'm doing this for better level progression, together with other changes - C12 is just moving to a different area, and its solutions will be kept in the savefiles and the server, awaiting its return.)
« Last Edit: February 17, 2020, 01:54:32 PM by a-k- » Logged

mapleOwO
Level 0
*



View Profile
« Reply #16 on: February 17, 2020, 03:55:00 PM »

But when you run a rooted solution, you get a small i in the histograms don't you?

Indeed! Hadn't seen that before. I had only been checking the level stats page, where the root solutions don't show up (as far as I can see?). Maybe a "SHOW: ROOT" option would be cool.

Everything below the curve (green) is > expert_score.
Solutions that are dominated by expert solutions (yellow) are < expert_score.
Both of these are graded according to the new histogram.
Right. What I mean is, if all a user wants to know is whether any vanilla score optimization is possible for a level, her score tells her that already (under the assumption that the interior of green is unreachable).

The rest of the cost-cycles domain (turquoise) simply gets expert_score, without any variation. And there's the discontinuity at the yellow-turquoise border. I really need to see if I can come up with some alternative.

I have one idea for this... it's not great, but maybe it'll inspire something better. Smiley For P in the yellow region (which contains most of the boundary), let ratio=1-(1-sqrt(K/(P_cost*P_cycles)))*(1-R/(P_cost*P_cycles)), where K is the minimum expert cost*cycles, and R is the maximum cost*cycles among points in the blue region which dominate P. It's continuous at the yellow-blue boundary, very easy to compute, and monotonic in the sense that any improvement within the yellow region leads to a strict improvement in ratio. But, of course, it's quite ugly!  

I think my only hope is playing dirty... If C12 is to blame for your 2i advantage, then it's going away, and replaced by 2 new levels. Also included is one of my favorite achievements. Hopefully you won't find any loophole this time!

Aha! I suspected foul play when I saw C12 went missing. I think I have 4i extra there; which means I need to find still 2i points *somewhere* and figure out the last 3 real points in D2...
« Last Edit: February 17, 2020, 04:55:27 PM by mapleOwO » Logged
a-k-
Level 2
**


View Profile
« Reply #17 on: February 18, 2020, 10:25:22 AM »

[...] Maybe a "SHOW: ROOT" option would be cool.
Good idea! Will add a new button for that when coming from Stats.

[..]
I have one idea for this... it's not great, but maybe it'll inspire something better. Smiley For P in the yellow region (which contains most of the boundary), let ratio=1-(1-sqrt(K/(P_cost*P_cycles)))*(1-R/(P_cost*P_cycles)), where K is the minimum expert cost*cycles, and R is the maximum cost*cycles among points in the blue region which dominate P. It's continuous at the yellow-blue boundary, very easy to compute, and monotonic in the sense that any improvement within the yellow region leads to a strict improvement in ratio. But, of course, it's quite ugly! 
That's pretty interesting! Your choice of reference points is good, and also matches my intuition in the previous demo. It can be defined analogously for points in the blue region. But I believe that this formula suffers from similar issues, (denoting it by 1-(1-K/P)(1-R/P) where K<R<P are each sqrt(cost*cycle)), that that R is monotonic in P doesn't imply that the ratio is monotonic in P. Imagine "walking" near the border (but far from K), and P ~ R + const. In that case, it may be better to superficially add many commands than to eliminate one.

I think I'll start with providing more elaborate scores for the border first. When the time for extrapolation comes, some adaptation of your formula may fit (I don't mind ugly, I mind working...)
Logged

mapleOwO
Level 0
*



View Profile
« Reply #18 on: February 18, 2020, 11:56:10 AM »


 But I believe that this formula suffers from similar issues, (denoting it by 1-(1-K/P)(1-R/P) where K<R<P are each sqrt(cost*cycle)), that that R is monotonic in P doesn't imply that the ratio is monotonic in P. Imagine "walking" near the border (but far from K), and P ~ R + const. In that case, it may be better to superficially add many commands than to eliminate one.


What I mean is, it's monotonic in (P_cost, P_cycles). That is, given another point (P'_cost, P'_cycles) in the yellow region for which P'_cost>= P_cost and P'_cycles>=P_cycles, one can prove R/P>=R'/P' (and also clearly K/P>=K/P'). So if a solution improves in one or both metrics within the yellow region, it'll still improve the score as before. This does mean that cost*cycles wouldn't anymore be the thing to optimize in the yellow region (only the green), but that's unavoidable if one wants both continuity at the boundary and strict monotonicity in the yellow region.

In any case, I look forward to seeing what you come up with.  Smiley In the meantime, my hunt for 2i continues...

Logged
a-k-
Level 2
**


View Profile
« Reply #19 on: February 18, 2020, 02:16:48 PM »

What I mean is, it's monotonic in (P_cost, P_cycles). That is, given another point (P'_cost, P'_cycles) in the yellow region for which P'_cost>= P_cost and P'_cycles>=P_cycles, one can prove R/P>=R'/P' (and also clearly K/P>=K/P'). So if a solution improves in one or both metrics within the yellow region, it'll still improve the score as before. This does mean that cost*cycles wouldn't anymore be the thing to optimize in the yellow region (only the green), but that's unavoidable if one wants both continuity at the boundary and strict monotonicity in the yellow region.

In any case, I look forward to seeing what you come up with.  Smiley In the meantime, my hunt for 2i continues...
You're right! When P increases it can only stay R * const at best, not R + const, hence, monotonicity. That's great!

As for your hunt, the button is ready - it shows up only for levels where you have both normal and rooted solutions (even if their combined score is real).
Logged

Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic