Ludum Dare 36 — August 26th-29th, 2016 — Theme: Ancient Technology

Back to Browse Entries

Brainfuck: The Game

by PotatoIng_ - Competition Entry

Quick, get back to your computer!
Oh, you forgot why?
You're a programmer and need to finish levels, with the Acient Technology of Brainfuck!

Main game features:
-Learn programming language Brainfuck the fun way!!
-Improve your logical thinking!!
-Get creative with solving Brainfuck challanges in the most optimal way possible!!
-Use debug mode to find errors in your programs!!
-Cry a bit, because the default font is Comic Sans..
-And much more!!

---------------

These great resources help you learn Brainfuck, in under 5 minutes, if you don't understand the in-game tutorial:
https://learnxinyminutes.com/docs/brainfuck/
https://esolangs.org/wiki/Hello_world_program_in_esoteric_languages
https://en.wikipedia.org/wiki/Brainfuck

Stuck on a level? No problem! Download save files from:
https://drive.google.com/open?id=0B7AV-TpUIxQEc3ZZUEw3RnpqaWc
(Put the extracted folder next to your BrainfuckTheGame.jar file.)

Found a bug? Please let me know in the ludum dare comments or tweet me @PotatoIng_.

Game inspired by Tis-100 and Human Resource Machine.

Game requires Java to run (non Java version coming soon)!

Own summary:
This is the first time I was working with GUI in java and I learned quite a bit. Sadly, there are still a few bugs and some unfinished features, because I ran out of time. However it was really fun to experiment with brainfuck and really fun to program this game, so I'll be making a post-compo version. If you're interested, follow me on twitter (@PotatoIng_) for updates. I hope you'll enjoy playing this game as much as I do. :)

Downloads and Links


Comments

Teekeks says ...
Aug 29, 2016 @ 1:08am

But why brainfuck D: Hard stuff!

PotatoIng_ says ...
Aug 29, 2016 @ 1:12am

@Teekeks Sorry for that:(. But i promise you, that it takes under 5 minutes to learn and it's really fun once you get into it!:3

crazyrems says ...
Aug 29, 2016 @ 1:47am

I never used brainfuck. I can't tell that anymore :).

MaTeX-7seven says ...
Aug 29, 2016 @ 2:06am

Hahah finally got a chance to test out this so popular brainfuck XD nice work

BurntFeelings says ...
Aug 29, 2016 @ 2:29am

Hahaha what is this ? :D

Gray Sullivan says ...
Aug 29, 2016 @ 2:39am

Hard as hell but clever and cool!

KevKevOnFire says ...
Aug 29, 2016 @ 2:44am

I would've really liked this, first few levels were pretty neat with some clever ways to cheese them available. Unfortunately bugs left it unplayable for me a few levels in :(

dwhiffing says ...
Aug 29, 2016 @ 3:15am

Pretty awesome idea! Too hard for me right now, but I'll definitely try again later :) Nice work

Flatgub says ...
Aug 29, 2016 @ 3:49am

Wow O_O
This is by far one of the most unique programming games I've ever played. And on top of that, I've now learned brainfuck which is cool! I doubt I'll ever finish this game because I'm struggling with even level 2 ><

Azlen says ...
Aug 29, 2016 @ 4:01am

That's really cool! I managed to complete a few levels. Brainfuck and Comic Sans are not a good combination!

PotatoIng_ says ...
Aug 29, 2016 @ 4:54am

@crazyrems I hope you enojyed it! You can now put brainfuck on your resumee:).

PotatoIng_ says ...
Aug 29, 2016 @ 4:55am

@MaTeX-7seven Glad I could have been the one, that made you try:). Thank you for the positive comment!

PotatoIng_ says ...
Aug 29, 2016 @ 4:56am

@BurntFeelings brainfuck is an actual programming language. And it's really funto program in! I suggest you to look into it:)

PotatoIng_ says ...
Aug 29, 2016 @ 4:57am

@Gray Sullivan ( @graysullivan ). Thank you very much for the positive comment! I tried to make the difficulty scailing, but there's only so much you can program in Brainfuck:D

PotatoIng_ says ...
Aug 29, 2016 @ 4:58am

Tahnk you:3. That's kinda sad to hear:(. What kind of bugs? If you report them here, I can try and fix them:))

PotatoIng_ says ...
Aug 29, 2016 @ 4:58am

@KevKevOnFire Tahnk you:3. That's kinda sad to hear:(. What kind of bugs? If you report them here, I can try and fix them:))

Oops, forgot to mention name:0

PotatoIng_ says ...
Aug 29, 2016 @ 4:59am

@dwhiffing after two full days of coding, there's nothing better to do than to code:D. Thank you very much, I hope you'll have a blast playing, once you do!:3

PotatoIng_ says ...
Aug 29, 2016 @ 5:00am

@Flatgub Level 2 is a bit long:0. But after finnishing it, you can put brainfuck on your resumee!:).

Also, thank you very much! It's so awesome to hear this! x3

PotatoIng_ says ...
Aug 29, 2016 @ 5:01am

@Azlen I made brainfuck, even more brainfucky ;). Thank you for the positive comment! :33

Paximillian says ...
Aug 29, 2016 @ 5:29am

Ah, I've always heard tales of Brainfuck, but never actually got into it.
It's basically a turing machine lol

Anyway, lots of bugs, but thank you for exposing us to this hell of a language haha

PotatoIng_ says ...
Aug 29, 2016 @ 5:41am

@Paximillian sadly there are a few bugs. If you could mention any, that bugged you the most?:0

Also, thanks for the review:) Brainfuk is really fun and it's amazing to see what people can create with it, even if it's just a turning machine:D.

danilafe says ...
Aug 29, 2016 @ 5:42am

Am I really seeing comic sans? Woah there, man.
Love the hint on the first level.
Couldn't be bothered to learn brainfuck to play, but the concept is definitely very nice.

PotatoIng_ says ...
Aug 29, 2016 @ 5:49am

@danilafe sorry for that:D. I can see, why you wouldn't want to learn brainfuck:). Thank you :)

Bogden says ...
Aug 29, 2016 @ 6:01am

Thanks for this first intro into brainfuck. Neat progression of levels, and good that they gradually incorporate previous solutions.

PotatoIng_ says ...
Aug 29, 2016 @ 6:05am

@Bogden Intro was mostly just copied from a website, but you're welcome:). I tried to make the difficulty scale up:0. Hope you understood brainfuck and ejnoyed the game! Thank you, for the review:3

eevee says ...
Aug 29, 2016 @ 6:22am

FINALLY, someone has gamified Brainfuck. Bless you.

Putting "Hello world" as level 1 seems kind of intense, especially when level 2 is merely clearing a cell. :)

This is a perfect game jam concept: you can't really go much further with it without just becoming "write software in Brainfuck", which nobody really wants to do. But what's there is enough to be entertaining for a few minutes.

PotatoIng_ says ...
Aug 29, 2016 @ 6:32am

@eevee thank you very much for the kind comment!

I was justifying putting Hello World program first, as, that it doesn't require thinking - unlike clearing a cell:).

There are still some features I wanted to add - perhaps make it seem, like you're typing into a console - to make it look even more game like and less like a "write braifuck software" app. I'm glad this did the effect for you and that you seem to have enjoyed it!:)

Ghen says ...
Aug 29, 2016 @ 7:28am

i heard brainfuck programming a while ago, never really look it up, but holy mother of god....its no make sense lol xD
i'm really glad that you made a game out of it, at least now i can say "i already try brainfuck" lol

peterthehe says ...
Aug 29, 2016 @ 8:04am

A very clear tutorial - infinitely better than many of those online. Very much well done. If there were a ratings system, this would be pretty high up for me.

CptBubbles says ...
Aug 29, 2016 @ 8:28am

This is pretty fun and a nice way to learn a useless language! :)
I noticed a bug on Linux though: If a cell is over 2 digits long, it isn't fully displayed (just one digit plus "...") which can be a problem.

Other than that, great job!

tomisoka says ...
Aug 29, 2016 @ 9:58am

Nice game!
I found a bug on Linux. Any text that doesn't fit in the window is displayed as "Use Brainfuck to sol...", which makes it unusable since it can't be resized (window can be resized, but it's not updated to new window size).

PotatoIng_ says ...
Aug 29, 2016 @ 11:10am

@Ghen It looks complicated but only has 8 thingies, it's super easy to learn!:)

PotatoIng_ says ...
Aug 29, 2016 @ 11:11am

@peterthehe tank you very much, these kinds of comment are awesome to hear! Glad you enjoyed it:3

PotatoIng_ says ...
Aug 29, 2016 @ 11:12am

@CptBubbles It's fun to see, what you can program in Brainfuck, once you learn the kanguage:).

I didn't test on Linux, sorry:(. It's a simple one line fix, so I'll submit it soon:)

PotatoIng_ says ...
Aug 29, 2016 @ 11:26am

@tomisoka thank you for the kind comment and for letting me know of a new bug! I uploaded a temporary fix, that let's you resize the window:). (I'll admit, I haven't done much testing on linux/mac:0, sorry!)

Joff says ...
Aug 29, 2016 @ 11:37am

There is a special place in hell reserved just for Brainfuck and this game...

I would say it was fun to play but that would be a lie, It is a good game and a good take on the theme.

PotatoIng_ says ...
Aug 29, 2016 @ 11:46am

@Joff For whatever reason, I feel like brainfuck is pretty fun:D. I was not actually sure, if it entirely fits into the theme:0 Thank you for the comment!:)

Graham Weldon says ...
Aug 29, 2016 @ 12:08pm

Brainfuck, now this takes be back... Nice :)

onyon says ...
Aug 29, 2016 @ 12:17pm

Best programming tutorial in the world. 11101/10

snake5 says ...
Aug 29, 2016 @ 12:25pm

This is the first time ever I've tried to use Brainfuck for anything. While I can't say the language has warmed up to me (but then again, who could?), it was interesting to try and think from a different perspective.

Level 1 was an odd one though, seemed more like an exercise in typing or Wikipedia copy-pasting than actual thinking.

LCMW_Spud says ...
Aug 29, 2016 @ 12:27pm

Art

PotatoIng_ says ...
Aug 29, 2016 @ 12:58pm

@Graham Weldon ( @GrahamWeldom ) Glad to be the one, who reminded of the ol days:)

PotatoIng_ says ...
Aug 29, 2016 @ 12:59pm

@onyon providing only the highest quality content :P Thanks for the comment:)

PotatoIng_ says ...
Aug 29, 2016 @ 1:00pm

@LCMW_Spud for maximum enjoyment, play blues music in background, while playing the game.

PotatoIng_ says ...
Aug 29, 2016 @ 1:01pm

@snake5 It's nice to see, what you can do in Brainfuck, test your skills :).

Sadly, I need to agree, level 1 was a bit useless. It was more filling the hole, than being a level and teaching you anything.

Thank you for the review!:3

AWOL says ...
Aug 29, 2016 @ 8:54pm

Nice Work!

Aug 30, 2016 @ 12:54am

Man woah! Cool AF.

tomisoka says ...
Aug 30, 2016 @ 8:40am

@Potatoing_
Well, it doesn't seem to fix the issue.
Here is a screenshot of the game (left side is old version, right side is new version): https://www.dropbox.com/s/dbd8cbmrnfx7gyj/Screenshot-16_08_30-10_28_37.jpg?dl=0

It might be also a problem because I am using i3 but I don't think it can cause such a problem.


Also another bug occurs when using "step" - only first cell is set to non-zero value even though in "run" there are more cells set to non-zero value.

PotatoIng_ says ...
Aug 30, 2016 @ 9:49am

@tomisoka That is not a problem, the problem is me baing a bat programmer, don't worry:). I'm really sorry, that it didn;'t work and it should now! Thank you very much, for helping me port it. I uploaded a version, that should fix the problem. Thank you very much!

PotatoIng_ says ...
Aug 30, 2016 @ 9:50am

@AWOL Thank you :)!

PotatoIng_ says ...
Aug 30, 2016 @ 9:51am

@TMAT Productions ( @TMATProductions ) Thank you very much!:3 Hope you had fun playing!:)

chrisdugne says ...
Aug 30, 2016 @ 8:26pm

Discovering brainfuck thanks to you : ) madness !

PotatoIng_ says ...
Aug 30, 2016 @ 9:29pm

@chrisdugne Thank you:) I hope you had fun with brainfuck!:)

tomisoka says ...
Aug 31, 2016 @ 6:31am

@Potatoing_
I have no idea what exactly you are doing but it doesn't help. Anyway I downloaded source code and "fixed" it by:
lblWork.setBounds(10, 11, 810, 14);
instead of:
lblWork.setBounds(10, 11, 410, 14);

What makes me wonder is why it works on Windows since it should suffer the same problem - text is longer than bounds.
So maybe the linux version uses different font? I am quite sure that "Comic Sans MS" is not standard linux font.

PotatoIng_ says ...
Aug 31, 2016 @ 11:15am

@tomisoka I actually did the same thing:0 sorry, that you had to fix it this way:(. Well, I'm not a programmer, but I think, that it's because of java. Basically, java looks different on all Operating Systems. On Windows it looks one way, on Linux it looks different way. Sorry, that you had to fix it this way:(.

tmpxyz says ...
Sep 1, 2016 @ 5:43am

After 72 hours coding, I would skip a low-level programming language.

Just kidding, this's a nice programming game.

leondryaso says ...
Sep 4, 2016 @ 1:46pm

Really great idea! Finally got to use Brainfuck this way :D Only if I accidentally got into while(true), I couldn't stop it anyhow. Also, "aNcient", right? ^_^

btw, the LD map says you're Czech as well, is it correct?

PotatoIng_ says ...
Sep 4, 2016 @ 2:31pm

@tmpxyz :D hope you enjoyed it:3

PotatoIng_ says ...
Sep 4, 2016 @ 2:34pm

@leondryaso The while true loop is a bit of a problem;(. I'm trying to make it so, the program recognizes a while true loop and doesn't allow for the program to start or something like that. :P

I am! I'm living near the capital!:)

leondryaso says ...
Sep 5, 2016 @ 4:48pm

@PotatoIng_ looking into your code, I suggest major cleanup (everything copy-pasted isn't really a great solution). A hot-patch here may be a simple counter variable that would be increased every loop and it would stop when it reaches a certain high value. For final implementation, I would probably run the whole interpreter in another thread that could be interrupted manually.

Dobré tady vidět nějakou blízkou duši :D

PotatoIng_ says ...
Sep 17, 2016 @ 6:26am

@leondryaso Sadly I need to agree. The plan was to make a level class and just pass it parameters, but then it turned out into this mess. Good idea! Thanks!:)

To vskutku je:D

Sep 17, 2016 @ 8:17pm

I liked this game. I haven't actually done any BF stuff before, so this was a nice little experience. ;)

I think that the Hello World program is in the wrong spot - the two methods for Hello World are either brute force all the characters using long strings of +'s, or - if you know BF well enough, you can use more advanced multiplication and things to make it smaller. I don't think anybody new to the language will be able to do that by level 2, so it's kind of just a bad placement for that level.

I couldn't get past the 6th and 7th levels. :(

I think the main thing that could improve a game like this is story - basically each challenge is part of some new thing that the company needs to do.

I think a more unique UI would also do it good - basically some kind of really cool looking IDE thing (my personal opinion is that it would be good in pixel art).

But it's certainly a good idea, especially for this theme. :)

You must sign in to comment.


Mini Submission FAQ

TEAMS: Teams entering the Jam should pick a single representative to submit your game, or create a team specific account you can share. We currently do not support Team Voting, but sharing an account and together playing and rating games is acceptable.

CAN I ENTER BOTH EVENTS?: You should pick 1 event, whichever you think it’ll do better in. If the idea is strong, and everything plays well enough, you can go Compo. If you’re a perfectionist, and would prefer people to play a more polished game, do the Jam. Many solo participants enter the Jam.

If you made 2 games, unfortunately, the website doesn’t support multiple submissions per user. To submit your 2nd game, you will have to make a 2nd account. Only do this if you made 2 games. Alternatively, if one game is better than the other, then consider just entering the better game.

CAN I KEEP WORKING UNTIL THE DEADLINE?: Yes! Immediately after the 48 or 72 hours, we do something called Submission Hour. As the name suggests, it’s an extra hour for you to package, upload, and submit your games. If there were catastrophic issues trying submitting your game, or you misunderstood how submissions work, that’s okay. It happens. We’re flexible. If you need advice, check with the folks on IRC. If you need an admin, get in touch.

CAN I KEEP WORKING ON MY GAME?: Oh definitely! You should! But for the sake of judging, keep the Compo or Jam version around. You can include a link to the Post-Compo/Post-Jam version of your game on your games page, but sure your main links are the original version.

PORTS: Ports to other platforms can be done after the deadline. That said, the sooner you finish your port, the sooner people can play your game, improving your chances of placing in the final results. For best results, provide a Web version of your game, or a Windows version with no dependencies. Also be sure to rate at least 20 games to improve your visibility (Coolness).

MY GAME CRASHES, IS UNBEATABLE, OR I MADE A TYPO: We allow you to fix crashes, win condition, or tiny bugs after the deadline. In a sense, this is like “porting” to support more players. We leave this open to interpretation, but generally speaking your game should be identical to the game you submitted. No new features, just fixing mistakes you should have caught had you been better rested.

MY GAME DOESN’T SHOW UP: If you can’t find your game, it’s usually because the URL to your downloads are missing ‘http://‘. Fix your URLs (http://mysite.com/mygame.zip) and you will show up. Alternatively, if you just posted it, wait a minute. The cache may not have refreshed yet.

NOT LOGGED IN?: If you get a message about not being logged in, even though you are, it’s because your web browser cached the non-logged in page. You can fix this by either refreshing your cache or clearing your cache. CTRL+F5 in many browsers. Chrome is a bit more work. Press F12 to enable Developer Mode, then you can right click on the refresh button and select “Empty Cache and Hard Reload”. This option is unavailable if you are not in Developer Mode.


[cache: storing page]