Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

CakeEaterGames

126
Posts
6
Topics
51
Followers
3
Following
A member registered Jul 11, 2018 · View creator page →

Creator of

Recent community posts

I think the discord link is broken. Can't join the server

Any plans for steam workshop? Custom user levels?

Cool! That's great news! If you want to you can dm me if you'll need any help with Steam. I've released 2 games on Steam (kinda). I love this game and I'd be happy to help 

Also I haven't published the assembler anywhere yet, but if someone wants it you can dm me

(2 edits)

Hi

Wasn't expecting this to get updated. After beating this game a while ago I got very inspired. I felt like there was one aspect of the game that was missing. I really wanted this game to have more program space and the requirement to write actual functions. So I made my own macro assembler :)

It basically has the same functionality SIC-1 has but with more readable syntax, and macross. Here's some example code

function sub(a,b)
{
    b,a,?+1
}
function set(a, b)
{
    !var temp 0
    clear(a)
    clear(temp)
    sub(temp, b)
    sub(a, temp)
}
function add(a, b)
{
    !var temp 0
    clear(temp)
    sub(temp, b)
    sub(a, temp)
}


It all just compilers down to subleq It's quite satisfying to write in. I've made a lot of cool stuff with it.

cool thing. (does something interesting, see for yourself ;) )

So yeah! Thank you for introducing me to this strange language!

Honestly, I have no idea

cat

I don't understand why would you need a separate server for a game like GD.  And what I don't understand even more, is why are you asking money for features from the base game? That's very suspicious. 

(1 edit)

Itch removes extra lines and the code becomes harder to read

(4 edits)
;------------------------------------------------------------------------------------;
;                                Token recognition Block                             ;
;------------------------------------------------------------------------------------;
 subleq 0, 0, @start             ;Reserve the memory for the program
 subleq 0, 0, 0
 subleq 0, 0, 0
 subleq 0, 0, 0
 subleq 0, 0, 0
 subleq 0, 0, 0
 subleq 0, 0, 0
@start:
 subleq 2, 2                     ;Clear the first instruction
@readToken:
 subleq @t, @t
 subleq @t, @IN                  ;Check what word is coming (\0 \n . s)
 subleq @a, @a
 subleq @a, @t, 0                ;if \0 jump to the begining of a stored program
 subleq @a, @p10, @readToken     ;if \n read another line
 subleq @a, @p36, @dotToken      ;if '.' .data token
 subleq @a, @p69, @sToken        ;if 's' subleq token
                                 ;Random numbers because it's faster to subtract differences between symbols
                                 ;instead of comparing to each one
                                 ;10 = 10-0    ;36 = 46-10    ;69 = 115-46 (\n=10 .=46 s=115)
@dotToken:
 subleq @i, @p1                  ;Set loop variable to 1 (only 1 number after .data)
 subleq @a, @p4                  ;Read 5 more symbols ."data "
@dotInLoop:                      ;By the time we get here @a is zero so no need to clear it
 subleq @t, @IN
 subleq @a, @n1, @dotInLoop
 subleq @a, @a, @readNumber
@sToken:
 subleq @i, @p3                  ;Set loop variable to 3 (3 numbers after subleq)
 subleq @a, @p5                  ;Read 6 more symbols s"ubleq "
@sInLoop:                        ;By the time we get here @a is zero so no need to clear it
 subleq @t, @IN
 subleq @a, @n1, @sInLoop
 subleq @a, @a, @readNumber
;------------------------------------------------------------------------------------;
;                                   Number parsing Block                             ;
;------------------------------------------------------------------------------------;
@readNumber:
 subleq @a, @IN               ;@a is cleared after we get a token
 subleq @t, @t
 subleq @t, @a, @endOfNum     
 subleq @t, @p32, @endOfNum   ;Check if less than or equal to 32. \n or space
 subleq @t, @p13, @foundMinus ;Check if minus
 subleq @a,@a, @skipMinus     ;both sets @a to zero and skips the negative flag
@foundMinus:
 subleq @isPositive, @n1      ;If there was a minus in the number set the minus flag and read another number
 subleq @a, @a, @readNumber   ;This check is made in every digit, inefficient but short
@skipMinus:
                              ;To add digit A to the end of number B And get new number C
                              ;C = B * 10 + A
 
 subleq @t, @p3               ;finish converting ascii to int
 subleq @ml, @p9              ;Set mul loop variable to 9. Multiply 9 times. Not 10. The 10th part is added after the loop
@mulLoop:                     ;Since @ml always ends up being 1 at the end of the loop, no need to clear it
 subleq @a,@numb
 subleq @ml, @n1, @mulLoop
 subleq @numb, @a             ;Add the multiplied by 9 part of a number to itself.
 subleq @numb, @t             ;Add the next digit to the number
 subleq @a,@a, @readNumber    ;Read another number
;------------------------------------------------------------------------------------;
;                                  Write to memory Block                             ;
;------------------------------------------------------------------------------------;
@endOfNum:
 subleq @t, @t
 subleq @isPositive, @p0, @skipNegative          ;Negate a number if a flag is set
@neg:
 subleq @isPositive, @isPositive
 subleq @t, @numb
 subleq @a, @a
 subleq @a, @t               
 subleq @numb, @a             ;I think this can be shorter somehow
 subleq @numb, @a
@skipNegative: 
 subleq @t, @numb              ;Check if number is 255
 subleq @t, @n1, @ch255        ;The program shouldn't jump to 255 when it ends
 subleq @t, @t, @writeMem      
             
@ch255:
 subleq @t, @n1, @writeMem
 subleq @numb, @numb           ;found 255
 subleq @numb, @resetPos       ;Instead it jumps to the @resetLoop lable to start the process over
 subleq @t, @t, @writeMem      
@writeMem:
 subleq 0, @numb               ;Write the number to the memory
 subleq @writeMem, @n1         ;increment the memory pointer
 subleq @resetLoopPtr, @n1     ;increment pointers for clearing memory
 subleq @resetLoopPtr+1, @n1 
 subleq @len, @p1              ;Count how long the program is
 subleq @numb, @numb         
 subleq @a, @a
 subleq @i,@n1, @readNumber    ;While have more numbers, keep reading
 subleq @t, @t, @readToken     ;Read another token if don't have more numbers
;------------------------------------------------------------------------------------;
;                                        Reset Block                                 ;
;------------------------------------------------------------------------------------;
@resetLoop:
 subleq @writeMem, @p1         
 subleq @resetLoopPtr, @p1      ;Decrement all pointers
 subleq @resetLoopPtr+1, @p1
@resetLoopPtr:
 subleq 0, 0                    ;Clear the memory
 subleq @len, @n1, @resetLoop   
 subleq @t, @t, @readToken      ;Go back to reading new tokens for a new program
@numb: .data 0        ;For storing the number
@t: .data 0
@a: .data 0
@i: .data 1           ;Input number count loop
@ml: .data 1          ;Multiplication loop
@len: .data 1         ;Program length 
@isPositive: .data 0  ;Flag for negative numbers
@n1: .data -1
@p0: .data 0
@p1: .data 1
@p3: .data 3
@p4: .data 4
@p5: .data 5           ;Constants sea
@p9: .data 9           
@p10: .data 10
@p13: .data 13
@p32: .data 32
@p36: .data 36
@p69: .data 69
@resetPos: .data -64 ;Location of a @resetLoop

I've uploaded my solution to github. "SIC-1-Self-Hosting-Solution" 

Done! Solved!

Sorry for blog posting in here. It's 6:30 am and I shouldn't've stayed up for so long. I can't feel my brain

I wrote comments for my code. Should I post it here?

UGHHH! OKAY!

I'm fighting the final puzzle and for a while I was convinced that your tests are wrong. I even ran the program on paper. It seems like everything should work. That's the most EVIL final test. The "subleq 254 0 3"! Since I placed the program after my own code and applied offsets, all values went out of the window. The test not only wants to get the program to modify itself, it also wants the program to be at a correct place... idk if it makes sence but I guess I'll have to restructure a lot of code. 

Which SUCKS cause it passes every other test

Oh! i'm in top 10 players now!

I'll eventually get to the top 

(1 edit)

Before I start to reinvent the wheel.

Are the inputs in "Mode" puzzle in second test as low as in the first test? 

Inputs in test one are from 0 to 3

Is it the same in other tests? or will it hit me with 0-100? 

Do I have to write a HashMap or just use inputs as offsets

Nevermind XD

I managed to save the my alg by making it ONE BYTE SMALLER! 

Ok, I'm stuck on sorting :D

The worst part is that I know how most of the sorting algorithms work, but I just can't fit my program into 253 bytes...

What algorithm do you recommend to use? I chose Bubble cause it seemed like it would be very simple to code

already did :)

My head hurts :D

a ye!

le weed! :D

When I started playing I thought that I was saving the guy... but it turns out I was a delivery drone :D

It is the simplest interpretation of the theme but it is also incredibly fun! I love how you iterated on the idea of delivering the object to the goal. Bigger guy, more guys, MORE GUYS :D

Good level design! 

______________________________________________________________ 

If you could also play our game, that would be awesome!

Yay! I beat it!

It reminds me of portal a little bit. Solid puzzle design. Small rooms but a lot of different possibilities.

 Good job!

______________________________________________________________ 

If you could also play our game, that would be awesome!

It would've been nice to play through smaller levels first of making sub parts to understand how it all works but I guess you ran into time problems!

The plan was to gradually unlock more recepies as you play but we couldn't make it in time. I agree that it would've been a lot more digestible this way. 

Thanks for playing! 

(1 edit)

Holy cow! You made this in 48 hours?! You game has an atmosphere stronger then games made outside of game jams! You can make a full game just with these assets and publish it on Steam.

This certainly one of the top games in this jam! Amazing!

______________________________________________________________ 

If you could also play our game, that would be awesome!

That is an interesting idea but it would've been so much better if you could see the entire play-field. A couple of small levels that fit in one screen. I couldn't beat it but I still ike it!

Good job!

Nice played it to the end! Very stylish game! I love how calm and simple it is

Did you draw all sprites on paper and then took pictures of them? 

______________________________________________________________

If you could also play our game, that would be awesome!

Couldn't run it

No, it's good! Just hard enough 

Wow that was surprisingly hard! Couldn't beat the "L" shaped level. Challenging, simple and enjoyable!

______________________________________________________________

If you could also play our game, that would be awesome!

Couldn't run it :(

oh... sorry about that

Thank you! The belt extension was available at first, but it caused a lot of bugs, so we removed it. And for the reverse thing... We have the code that checks for "impossible" rotations and disables the factory if they were found. But we decided that it would be more fun, to let players still play the game even if they messed up the connections. The game is hard on it's own. 

Thank you for your review I'll play your game too later

Nice puzzle game! It would be better if you could see the entire level at all once so that you could plan ahead your moves. And the mouse buttons controls are strange couldn't get used to it for a while.

Other than that a very good game! Congrats! 

That was fun for a few minutes!

I wish the enemies wouldn't spawn on top of my peeps and some gameplay variety!

The game looks very simplistic, in a good way!

Good job!

Doesn't fit the theme

Cool concept! That would be more fun if i'd play it in coop with an actual player.

You should try to expand it and add more gameplay variety!

Good job

Very meh