Mini Shaders by bestnickname

[raw]
made by bestnickname for LD 38 (COMPO)

Mini shaders is a programming puzzle game (inspired by the awesome games that zachtronics makes) that acts as a very high level and simplified version of shader programming. This isn't super related to the theme but in my head I was thinking "computers are basically small worlds, oh lets make a game about computers, oh lets make a game about programming, oh shaders are cool"...

screenshot.png

In this game, you are required to match your grid with a given reference grid using a set of provided commands. These same commands run for each grid cell so you are required to rely solely on state to determine what actually gets drawn.

These instructions and tips are given in the game, but for completeness sake, here they are: - The commands are executed for every grid cell - Commands can take any built in variables or numbers, defaults to 0 if not supported - Built in variables are r, x, y - x and y are the cell coordinates, (0,0) is bottom left - Hidden boolean c checks if current command is to be executed - +, -, %, *, / store result in r - >, <, = store result in c as (c AND result) - Set makes the square colour green - if c is false, next non-comparison command is skipped - c is reset back to true once the relevant command was skipped or executed - / or % with 0 gives 0 instead of undefined - The cost is determined by the cell that had the highest cost, lower cost is better - The Editor is scrollable

Tools used: - Unity - FL Studio for music - Hitting my keyboard really hard for sound effects - Inkscape for the graphics... which is really just a bordered square that gets used everywhere - www.dafont.com for fonts

Game can be downloaded at: - https://drive.google.com/open?id=0ByaymGrbjPRvZUVHTHktU2lYTkU (windows 32) - https://drive.google.com/open?id=0ByaymGrbjPRva3g1U3c3MUFYUGc (windows 64)

EDIT: uh I forgot to add the source code link initially... here it is, my bad -_-" https://github.com/igorawratu/ld38

EDIT2: It seems the "try again" button is broken

Ratings

Overall 304th 3.235⭐ 36🧑‍⚖️
Fun 289th 3.118⭐ 36🧑‍⚖️
Innovation 46th 3.882⭐ 36🧑‍⚖️
Theme 487th 2.545⭐ 35🧑‍⚖️
Graphics 425th 2.735⭐ 36🧑‍⚖️
Audio 331th 2.594⭐ 34🧑‍⚖️
Humor 397th 2.034⭐ 31🧑‍⚖️
Mood 299th 3.032⭐ 33🧑‍⚖️
Given 26🗳️ 16🗨️

Feedback

Endurion
02. May 2017 · 18:56 UTC
Now that's a game after my taste, but probably not many others :)

Took me a while to get it, but then it worked nicely. Having 0,0 in the bottom left is irritating, I prefer 0,0 in top,left.

Beat all 5 stages, with 3, 2, 6, 4, 4 moves.
🎤 bestnickname
03. May 2017 · 05:42 UTC
@endurion hah glad you enjoyed it :) your scores are better than mine even though I designed the puzzles... I feel inadequate now hehehe.
HuvaaKoodia
03. May 2017 · 07:27 UTC
I'm pretty sure there is a bug in the comparison operator or the plus operator or my head...
When I have the following commands:
X + Y
R < 3
SET

The whole screen becomes green! Except when it doesn't. Sometimes the value of R gets reset to 0 or the assignment just doesn't work.

Then I restarted the program and managed to complete all the levels just fine. That is a *bit* weird in it?

Other than the bug I really like it! Good work!
nilead
03. May 2017 · 10:14 UTC
Really hard but in a good way. Had a good time cracking it.
DiegoCTorguet
03. May 2017 · 11:50 UTC
Cool idea. It's not for everyone and that big block of text can break the experience, but I'm sure there will be some programmers that will enjoy the game. Good job!
Plepletier
04. May 2017 · 01:24 UTC
Very complex game, but I think the intensity is that right? If you put a small step-by-step tutorial to slow players is It would be great to get the gameplay fast. The art is minimal like a console, i like this. Good Job.
Smiling Cat Entertainment
07. May 2017 · 22:19 UTC
This is a fun little coding puzzle game. One idea I had in case you are interested in taking this further: The instruction set can get progressively more advanced as new hardware is introduced. For example, v2.0 of the instruction set can have stack capabilities, which would allow more complex puzzles AND possibly allow prior puzzles to be completed with fewer moves. Overall, great job!
IgorsGames
08. May 2017 · 21:01 UTC
Took me some time to realize that I can also input variable names in the fields:-) After that I beat the game, most of the levels were easy, except the diagonal double stripe one, which was a bit trickier:-) Anyway, the game is very nice!
madmaw
09. May 2017 · 06:09 UTC
I have to admit, when I first saw it, I was like "oh no! I have to think!" But once I got the hang of it, I really enjoyed learning how the machine worked and what all the commands did.
tajamsoft
10. May 2017 · 22:50 UTC
Cool puzzle game!

My only complaint is (0,0) being bottom left, being used to y+ goes down makes it a bit unintuitive.
srakowski
10. May 2017 · 23:15 UTC
Very cool! Took me a bit to grasp the concept, but once I got it was very intriguing. Well done!
Kataware
11. May 2017 · 00:26 UTC
PRE-PLAY
=====================================
First impressions of the game before playing: Looks like an interesting one, definetliy more unique than all the others I've seen. But also looks quiet complex.

Then I played the game


POST-PLAY
=====================================
-Music
The sound fit, especially the sound effects, and the music, but the music got repetitive after a while

-Gameplay
It was very, very hard to understand at first. I had to seriously read the instructions a few times, and even then it just reminded me that I have math notes to do xD The text and UI was also pretty small for me, so I a changeable screen size is recommended.

However, once the player truly grasps the full gameplay (which I still think I'm doing somewhat wrong) the game or puzzle itself is quite interesting and intriguing. However, I agree with one commenter, using y+ to go down is a bit strange.

I think a tutorial should be added, that explains things one by one (although I know how hard tutorials can be in Unity)

-Theme
To my best knowledge, this didn't fit the theme very well, but it didn't really matter

-Innovation:
The game itself was innovative, and much, much different than all the games I have rated so far.

EDIT
-Graphics
The graphics fit the overall aesthetic of the game, and it had a nice simple, clean feel to it with that still daunting display of commands and such. It added to the game really well.

OVERALL
=====================================
It was a unique, fun little puzzle game that was very hard to understand at first.
stevenjmiller
11. May 2017 · 00:48 UTC
Absolutely wonderful game! I feel like I probably could've done better, but my scores were 2, 2, 6, 5, and 5.
athomicus
11. May 2017 · 10:07 UTC
so nice and absoluty super game good job I like idea
japes
11. May 2017 · 21:39 UTC
Cool retro feel and music.
Bit overwhelming at first but in a good way, things look interesting so it makes me want to figure out what's going on. Then again I am a programmer, so maybe that won't apply to everyone.

Pity about the try again button bug! I had to redo some levels...but not that much of a train smash.
Would be cool if there were goals to try to achieve in terms of number of operations.

All in all a really cool little game!
🎤 bestnickname
12. May 2017 · 05:59 UTC
Hey all, thanks so much for the comments, it's really cool to see that people managed to get past the clutter and actually figure out the game (I was definitely worried that it might be a bit dense).

To address some of the comments:
-I definitely agree that both a better difficulty curve, as well as a tutorial would help a lot. If I were to work on this further, that would definitely be quite high priority.
-Definitely agree with the confusion of 0,0 being bottom left, luckily this is quite easy to change
-The stack idea is really good, and is definitely a good extension to the current model. I also think adding more commands such as abs would be good as it allows for distance calculations, resulting in shapes such as circles etc.
Lucas Ferrantelli
14. May 2017 · 10:20 UTC
U bring me back 15 years ago, good job !
Great mechanic and sound, nice entry !!
Aurel300
14. May 2017 · 18:15 UTC
Neat game, but needs lots of work in the UI and instructions. Maybe a short tutorial? Also games like this really benefit from having something like a debugger / stepper, so you can see what your program is doing step-by-step.
sgadrat
14. May 2017 · 20:55 UTC
I loved it, but not finished it as level 4 is too hard for me. So I'll suggest to add some step by step showing registers states to help debug, this should help debug/search when the player do not understand how to solve a level.
stuntddude
15. May 2017 · 02:20 UTC
It's a shame this is Windows-only, as cross-platform builds are one of the selling points of Unity... still, I love Zachtronics games and this looks super interesting, so I'll play it as soon as I get my PC working again.
madjackmcmad
15. May 2017 · 02:36 UTC
This is neat! I could spend a lot of time here messing around. Good work for 48 hours. Played about 15 minutes or so but had to push on because I'm streaming these games -- though a pro shader programmer would have cleared it in 10 minutes :)

Good job, keep it up!
Spaceman
15. May 2017 · 19:58 UTC
This is awesome! I love zachtronics games (we made a zach-like too...) and this was a really cool twist to their formula. It took me a while to figure out that all the variables were lower case since the font only has upper-case letters. It would save some frustration if the variables could be upper or lower case. I thought the music and the art fit really well (though I think the scanning lines looked a bit odd when they went underneath the output area, but that's just a nitpick). I think some of the initial confusion could be mitigated by having a help screen that can fit more words. It also took me longer than I'd like to admit to grasp the way comparisons worked. Something like the +/- system in Shenzen I/O would probably make that a bit easier to understand.

I also liked the score screen at the end: I got 3,3,5,6,5. I'll probably comeback later and come up with better some better solutions.

Overall really great!
csanyk
16. May 2017 · 01:28 UTC
This is impressive... Gameplay is a bit complicated, but it rewards taking the time to read the instructions and understand how to play. I think an introductory/tutorial level that explains how to play would make it more inviting to players who aren't already familiar with programming concepts and writing shaders. Really nice overall tho!
pascalman
16. May 2017 · 20:08 UTC
Good idea, great job!
stuntddude
16. May 2017 · 23:30 UTC
Proper review after playing the game for real: basically, I really like it. It has all the elements of a good Zach-like. But I do have a few criticisms:

- The instructions aren't written very well, so it can be hard to figure out what they mean at first. "Hidden boolean C checks if current command is to be executed" sounds like out-of-context word salad unless you already know what the "hidden boolean C" is all about. The explanation of control flow would likely have been better without mentioning a "hidden boolean" at all.
- Not being able to reorder commands isn't a big deal now because the programs are all so short, but it would be a real pain for larger programs.
- Due to only containing a few levels, most of the commands go unused.
- I'm not sure why there's a countdown between levels. I already verified that I'm ready to start the next level, so why make me wait?
- Clickable UI elements should
- I want more levels!

I'd love to see a post-jam version of this that adds more levels and possibly more features. I had a lot of fun trying to figure out optimal solutions, but in the end my scores were 2, 2, 6, 4, 5... clearly not all optimal! Maybe I'll have to revisit it later.