FoonLudum Dare ExplorerLD42 → Senbir

Senbir

By cliffracerx

View on ldjam.com

CategoryRankScoreCount
Overall5383.0924
Fun6742.4523
Innovation1463.6123
Theme4173.4223
Graphics5052.9023
Humor2992.5222
Mood4362.7821

Comments

team-on 2018-08-13 11:41

There are no "Downloads and Links".

cliffracerx 2018-08-13 19:51

@team-on I've put the downloads in the description as a backup. Not sure why the usual downloads/links widget isn't displaying right, but...Everything's exploding, basically. Would advise coming back ~24 hours from now to actually play/rate the game - there're some nigh game-breaking bugs still kicking around in the build that got pushed before my internet died. Will hopefully have a fixed version up tomorrow.

michael-feldman 2018-08-13 20:19

I am embaressed to say that as a computer engineer I was unable to illuminate the first pixel. It's a very robust system here. You've essentially created a computer within a computer. I usually try not to be too hard on games made in a 48 hour period, but I really wanted this one to work. That said I had trouble with the following:

-Some arguments were accepted as decimal, while others are read as binary. I never bothered with hex. Perhaps the counting system (base2,10,or 16) could be made more clear. (i.e SET 0 3 255 will actually compile to 01110xxxxxxxxxx25500000000000 or something to that effect.) I would also like to note that this contrasts with the documentation which reads that a set command should compile to 01111 in the first 5 bits. -For the second tutorial I was trying SETDATA 0 3 1048576 (which is decimal for 01000000.... which should mean color White, at (0,0) and the 0 fill the rest) It compiles to something unexpected and does not function.

At this point I stopped tinkering, and would like to take a step to just appreciate all that is good here. -The fact that there is documentation is cool and very realistic. -The flow of the game is good with instructions and hints along the way. -The potential for creativity is here. Players can use the game to develop games of their own in theory. This I like a lot and find quite inspirational.

Keep up the good work. Curiosity is key, and I can only imagine all the knowledge you'll accumulate from working on a project like this.

cliffracerx 2018-08-13 20:47

@michael-feldman Thanks for the feedback! I dunno if the docs are clear enough about this, but SETDATA's second argument (the 3 in your case) is a flag which decides what it's supposed to actually draw data from. Flag value 3 is "draw from register", meaning the argument you pass in should literally just be a register ID with the value you want (1048576, in this case) stored within, which you could set beforehand with, say, SET 0 0 01000000. My included "blinkenlights" program is this, roughly: ``` SET 0 0 11000000 //Set register 0 to the the command to pass to the monitor SETDATA 0 3 0 //Run monitor draw command (CCXXXXYYY000...) from register 0 (color=3, X=Y=0) HLT 28 //Halt for 28 cycles SETDATA 0 3 1 //Run monitor draw command (CCXXXXYYY000...) from register 1 (color=X=Y=0) HLT 28 //Halt for 28 cycles JMP 2 4 //Jump back 4 addresses to the first SETDATA operation ```

I'm really excited to keep working on hammering out the details (so less people have this sort of trouble with it x3), and to see what others come up with. I, myself, have set the ridiculous goal of writing an entire command-line operating system for it in Custom mode.

angela-k 2018-08-14 13:01

Sorry I couldn't get into it after being on a computer for 72 hours with minimal sleep. I started playing and it was something like being on a computer, after being on a computer, being a computer, I'm a computer, what's a computer.

michael-feldman 2018-08-14 13:58

@cliffracerx Thanks for the clarification. I totally get it now. Thanks for explaining.

balance686 2018-08-18 05:29

You're an absolute madman for this and I mean that in the best way lol. This has to be the most ambitious jam entry out there. Regarding the UI, it was ultra tiny on my 4K monitor. It'd be nice if it would scale up. Very interesting and unique submission!

dimesto52 2018-08-18 12:17

It's way too hard for me to understand, but I recon the complexity of the realization of this project

endurion 2018-08-18 13:04

Boy, that's one ambitious game/project. Unfortunately the 3d environment is rather detrimental to the actual game. On my PC the lights on the PC didn't work, so I had to guess by the appearance of the menu. The game would've worked completely without the 3d part.

I do use assembler (with my trusty C64), and so was confused why the tutorial mission solution would be SET 0 3 11111111. The intention of 3 seems to be to indicate the lowest byte of the 32bit value. I was thinking in little endian and would've thought 0 would indicate the lowest byte :)

Really really awesome what you created in a mere 48 hours, but also really very niche :)

mrjorts 2018-08-18 14:21

I'll echo everyone's sentiment that this is massively ambitious and impressive, not just to make a full simulated CPU and assembler for a 48 hour game jam, but to get as far as implementing a sequence of tutorial levels and documentation pages for it. Very cool.

However, I'll also echo the sentiment that even with assembly programming experience, I was unable to make any headway in this game. Basic things like what base the arguments should be provided in, which direction bits and bytes are counted from, etc. were not clear. I also had the bug where the computer's power light doesn't show up, and there's no reticle in mouse capture mode so I couldn't even tell if I had turned the computer on or not.

I know you wanted the game to be about discovering how to use the computer, but for as complex as a CPU architecture can be, it's hard to expect people to try to comprehend the documentation and work it out by trial and error (not to criticize your documentation, but anything produced in a 48 hour sleep deprived state is going to be a little all over the place).

For example, in the blinkenlights tutorial the hint merely says "you pretty much NEED to start off with a DATAC or SET operation" but it's unclear to me why that is. Shouldn't this command

SETDATA 0 0 0100000000000000000000

accomplish the correct thing? From my reading it should shift the argument into the correct place to be read by the monitor, but it doesn't work and I don't know why.

I think it's awesome you made this, and I think there's a lot of places you could go with it. I'm a big fan of Zachtronics' assembly puzzle games, and I've even shown the game Human Resource Machine to non-programmers and had them enjoy it a lot, so I think this is an idea worth pursuing as long as it could be made less opaque.

cliffracerx 2018-08-18 16:32

@mrjorts You're correct that SETDATA 0 0 0100000000000000000000 should work. I think you found a bug. >.<

(EDIT: Yep, found it, fixed it. The computer literally ignored flag 0. No longer! Hopefully.)

To everyone else: thanks for all the feedback! It's pretty clear now that the biggest thing to update down the line is the documentation, to make datatypes a bit more obvious. I wrote the TC-06 architecture (and its related documentation) thinking pretty much entirely in C# terms, and while I had a feeling that could be problematic for genuine assembly vets, I wasn't fully prepared for how bad it would be.

To clarify: SET's third argument is bits-only atm, and it works like an array, basically. Address[num][0] is the first 8 bits of the specified address, Address[num][1] is the second, etc. To ensure readability, addresses are always padded with 0s on the left - but small values will always start on the right. Setting register 0 to the integer 1 is literally just ``SET 0 3 00000001``. My usecases have always found the actual argument being raw bits to be more useful, but it wouldn't be hard to modify the assembler to parse both.

The language is usable to do some pretty fancy things (if you have the patience for it) - for instance, I was able to build a paint program for use in Extended mode. SenbirPaint.gif You can look at the code here, if you're curious. https://itch.io/t/279217/code-sharing-megathread

hjalte 2018-08-30 19:21

This is super awesome and great use of theme, but unfortunately I just couldnt get it to work. It was hard to understand..

f1krazy 2018-08-30 20:00

Well, first of all, I have to commend you for the sheer audacity of this game. I know you had some planning down on paper already, but to build an entire virtual computer in 48 hours, complete with such an in-depth tutorial... wow. That's impressive. (And a lot more original than my game was!)

Could have done with being a little more in-depth in explaining the controls, but I saw you acknowledged that in your post-mortem, so hopefully something for you to work on in the future. The UI could also use a lot of polishing, but considering the amount of work it must have taken just to get the actual game working, I can forgive you for not spending too much time on it.

As for the actual game, I'm not very good at it. I have no experience with assembly writing and can't wrap my head around the documentation, which is probably it. The lack of feedback doesn't really help either - I couldn't tell whether the computer was on or not because the indicator light doesn't seem to work (64-bit Windows build), and I didn't know whether or not I'd passed the first tutorial level until I went back and saw I'd unlocked the second tutorial level. So I assume I passed it.

Not the most "game" game here, but a fascinating piece of work nonetheless. Well done!

cliffracerx 2018-08-31 00:35

@f1krazy What graphics quality did you pick? I think it's possible the power light might not work right on low qualities. Alternatively, it's possible your compiled ROM took up >32 addresses - if you try to power on the computer like that, the game will silently error out and the computer won't turn on.

f1krazy 2018-08-31 17:45

@cliffracerx I chose Ultra graphics, but I was running 1280x720 in Windowed mode, dunno whether that would affect anything.

cliffracerx 2018-08-31 23:36

@f1krazy It shouldn't. Very odd indeed. Could you send me your log files? Probably either in C:\Users\\AppData\LocalLow\The 006 Cooperative\SenbirGame\Player.log, or in the SenbirGame_Data folder wherever you extracted the executable. This isn't the first report I've gotten about the lights being wonky, and I'd like to know what's going on.

andrei9 2018-09-04 18:46

Coool! Nice game :thumbsup: +++++