stacktrace by TheMorfeus
You work for a shady government organization, that specializes in software and encryption.
One day, the superiors had brought you this machine and only one task: fix it. No questions asked.
But at what cost?
The game will require you to analyze inputs, and guess what kind of actions you have to perform on them, to give the expected outputs.
As you fix the machine, messages from unlocked memory banks pop up, containing a bit more info than some would like to know about what’s it used for…
Will you keep coding?
=====IMPORTANT=====
DO NOT download the game if you do not like or do not know how to code.
This game requires you to write code in an assembly-like language.
===LESS IMPORTANT===
Read the assignment before you start playing!
Also, the emulator can run infinite times until it gets the correct answers, so you can play around with the language and code, and practice at any time you want.
===HOW TO RUN===
1)Make sure you have Java 8 installed
2)Extract the zip file
3)Double click Stacktrace.jar file.
BEFORE YOU RATE THE THEME: Play the whole game. The story is really unclear until the last level is beaten.
ALSO: The game might, and probably will be buggy! If it ends right after a cutscene, doesnt work or something, LET ME KNOW!
One day, the superiors had brought you this machine and only one task: fix it. No questions asked.
But at what cost?
The game will require you to analyze inputs, and guess what kind of actions you have to perform on them, to give the expected outputs.
As you fix the machine, messages from unlocked memory banks pop up, containing a bit more info than some would like to know about what’s it used for…
Will you keep coding?
=====IMPORTANT=====
DO NOT download the game if you do not like or do not know how to code.
This game requires you to write code in an assembly-like language.
===LESS IMPORTANT===
Read the assignment before you start playing!
Also, the emulator can run infinite times until it gets the correct answers, so you can play around with the language and code, and practice at any time you want.
===HOW TO RUN===
1)Make sure you have Java 8 installed
2)Extract the zip file
3)Double click Stacktrace.jar file.
BEFORE YOU RATE THE THEME: Play the whole game. The story is really unclear until the last level is beaten.
ALSO: The game might, and probably will be buggy! If it ends right after a cutscene, doesnt work or something, LET ME KNOW!
| Desktop (java multiplatform) | https://www.dropbox.com/s/u791qlatmohf2rn/stacktrace_ld33.zip?dl=0 |
| My Twitter - report bugs there! | http://twitter.com/themorfeus |
| Timelapse | https://www.youtube.com/watch?v=WWaYph1Ze38 |
| Original URL | https://ludumdare.com/compo/ludum-dare-33/?action=preview&uid=36140 |
Ratings
| Coolness | 57% | 3 |
| Overall | 3.68 | 128 |
| Audio | 2.64 | 502 |
| Fun | 3.24 | 313 |
| Graphics | 3.17 | 425 |
| Innovation | 3.83 | 60 |
| Mood | 3.38 | 211 |
| Theme | 2.89 | 738 |
I believe in you, Ludum Dare people!
I was really sleepy, sorry ;)
I have the java runtime installed and fully updated. Any ideas? The game looks really interesting!
[Assets] Loading assets from C:\Users\dalbi\Downloads\stacktrace_ld33\assets.pak
...
[Assets] Done loading.
1.0 2.0 2.0
2.0 2.0 4.0
2.0 1.0 4.0
4.0 2.0 6.0
0.0 1.0 2.0
Note that no other UI window attempted to open, just that as a message and no further.
Forgot to remove debug part, which shuts the program down at the start. Fixed version up now.
Gosh, i hate such stupid mistakes.
[Assets.getTexture] Texture not found! 1.png
java.lang.NullPointerException
at com.mgzdev.spc.Assets.getTexture(Assets.java:125)
at com.mgzdev.spc.Assets.getTexture(Assets.java:117)
at com.mgzdev.spc.screens.StoryScreen.<init>(StoryScreen.java:90)
at com.mgzdev.spc.screens.GameScreen.render(GameScreen.java:204)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.mgzdev.spc.SPC.render(SPC.java:72)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:214)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.badlogic.gdx.graphics.g2d.SpriteBatch.flush(SpriteBatch.java:955)
at com.badlogic.gdx.graphics.g2d.SpriteBatch.switchTexture(SpriteBatch.java:1047)
at com.badlogic.gdx.graphics.g2d.SpriteBatch.draw(SpriteBatch.java:512)
at com.mgzdev.spc.screens.StoryScreen.render(StoryScreen.java:119)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.mgzdev.spc.SPC.render(SPC.java:72)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:214)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:120)
Some things are _very_ annoying though:
- Having to constantly use the mouse to click run and then click back into the editor
- Not being able to move the caret. I don't know what drove this decision
- The weird operator order: B A OP. I can understand wanting to make it unique but this makes it even less accessible and does not add anything to the game in my opinion
Overall I really liked it though, I'd actually love to know more about the story but it is a little too cumbersome for me right now. The PDFs rock! I really like the idea of having "real" documents that explain stuff about the game. Reminds me of oldschool game manuals with lots of cool stuff in them.
Also, I find it pretty ironic how a game about assembly programming is written in Java. That's not a negative of course, just a remark. ;-)
I do not really remember why i thought that having to click on it is a good idea. Probably sleepiness. The caret is a different thing though - i had to write the whole editor from scratch. And rendering the caret at the correct position was painful enough. That + not enough time in the compo
And the operator order, is called the Reverse Polish Notation. And i just love it, because it makes writing the interpreter/compiler sooo much easier. The language is stack-based as well, so it allows for some fun tricks (which of none are used in the game, sadly)
I actually just looked into your manual again to see what it says about pushing operands, and lo and behold it says it black on white.
But maybe you could make it a little more clear by pointing out that A B MUL really isn't one instruction like you would expect coming from x86 asm but rather three instructions:
push A
push B
mul
Also showing the top of the stack (maybe the top 4 or 8 items) could maybe give a better feel?
You've been pretty active in the comments, maybe you could give me a little nudge to get started with this game?
I knew i'd make this error finally, i am fucking stupid.
Reuploaded. Should work fine now. Gosh, why dont i test things
Also, the test 3 is not broken, it is working perfectly. The output is calculated for that incorrect subtracting. (65533 = -2)
Will fix that though.
When i created this game, i knew it was inspired by something i had already seen some time ago. A game called TIS-100
TIS-100 sat in my mind quietly after i watched a review somewhere online, long time ago. And i forgot about it. During LD i had remembered that there was a game about coding in assembly, so i thought why not have a go at it?
Well, turns out the games are pretty much identical (mechanic-wise that is. They both need the player to read documentation first, both machines spew out random data etc), and that was NOT intentional. Human subconsciousness can be a bitch sometimes. And this time it was. I just remembered that the game was about coding in assembly.
Still, have fun, just like i did creating stacktrace. Hope you won't kill me for that.
Check out the 'original' here: http://www.zachtronics.com/tis-100/
Oh and also bugs should be fixed, have fun.
Here are additional info if you get lost:
1 READ the pdf files with the game!
2 The goal of challenge for each level is all in the attachment_2
3 This program will simply output everything input
0 HWR
1 HWR
Hope it can get you started
My only suggestion is that it's difficult to edit a program once written. If you make a mistake, you need to delete back to the mistake. I understand writing a text editor is very hard, so I won't begrudge the difficulty in program editing.