signOS by Wendel Scardua

About signOS
On signOS you play as a robot going through some training models to train your AI about commanding other robots using signals in order to solve tasks.
Controls
| Web | NES | Action | |-|-|-| | Arrow keys | D-Pad | Turn or move the robot | | Z | B | Prepare a signal. The next inputs will be stored to be sent to another robot. | | X | A | Send the prepared signal. If the signal hits a robot, it will follow the programmed inputs. | | Shift | Select | Quit current level, back to "Training models" screen |
Important
- The ~~training models~~ levels are not sorted by difficulty, other than Aries being almost a tutorial/playground (completing it unlocks the other 11). Feel free to pick and choose in any order.
- When preparing a signal, you can input not only directions but also nested prepare/send commands. Each inner "prepare" command must have a matching "send".
| Link | https://wendelscardua.itch.io/signos |
| Link | https://wendelscardua.itch.io/signos |
| Link | https://github.com/wendelscardua/signos |
| Original URL | https://ldjam.com/events/ludum-dare/59/signos |
Ratings
| Given | 41🗳️ | 38🗨️ |
I'm very curious about your process for making something like this. What sorts of tools do you use?
- I'd love to have more audio as well, but I'm not good at it 😅 (I only transcribed the first notes from Windows XP start up jingle I found a music sheet for); this game I did recently for Down2Jam is an example of how my audio sounds like: https://d2jam.com/g/memory-in-plants . Next time I should find a composer who knows how to use FamiTracker...
- You know what, I'm kinda wondering if I should make a proper post with my process. I will think about it, but for know, this post lists my current "stack": https://ldjam.com/events/ludum-dare/59/signos/im-in-or-am-i
Incredible Jam entry!
I *love* that you could/had to nest signals to get a robot to get a robot to do something - thats an a really cool level of recursive thinking needed! You also had a surprising amount of levels for the timeframe. Very cool!
> Sorry, did you write this for the NES?
Yep, mostly coded in C++ with a dash of assembly... This reminds me, I can edit the game page to link to the (ugly) source code
> Very cool!
Thanks :)
Pros: a really well thought out puzzler Cons: not enough time in the world
I was a bit frustrated by the controls though. It's really easy to accidentally mess up a command, and send a robot to a place where it's inaccessible, forcing you to restart the game. Maybe I just need some more moder controls and clearer tutorials.
But still a very impressive project, hats off for programming this in C++ & assembly.
In the Virgo level, I first got stuck, so I did the other levels. When I revisited this level, I had an idea how to start with it at least, but the game kept freezing at this point:

I could not move anything anymore... Otherwise, I got so far!

Creat concept, nice pixel art, challenging puzzles: well done! :clap: :heart:
The puzzles here were diabolical. An undo queue would be MASSIVE for this game, but I know from experience that that can be VERY difficult to implement if you don't architect for it ahead of time. :pray:
Nice job!
I think the level difficultly ramps up a bit too fast. Also, it lacks much audio and I do love me some audio.
Fantastic job here, Wendel. Cheers!
But I think at least allowing the player to cancel the script if they made a mistake would already do wonders to usability (or, with a proper tutorial, I could make Select/Start be the Prepare/Send buttons, then "B" could be the backspace/cancel button... and maybe "A" could be a new action, who knows).
> I think the level difficultly ramps up a bit too fast.
Yeah, as I wrote in the description, the difficulty doesn't much ramps, it goes on a rollercoaster 😅. But I intended (and may even do it in the future) to have some sort of "2D" level progression: each level unlocks one in the front and one below, with levels on the same row using the same concept in progressively harder puzzles while each row introduces a different concept.
> Also, it lacks much audio and I do love me some audio.
It does. It does lack audio a lot. I need some help with that.
(btw thanks for your comments, y'all)
> When I revisited this level, I had an idea how to start with it at least, but the game kept freezing at this point:
Just so I know, did you mean "freezing" as the game itself stopped working, or just that you were locked out of options to solve it?
PS: thanks for the comment
You could definitely push the idea in some interesting directions if you wanted to take it further.
Well done!
*Full commentary in the VOD.* The tldr: I struggled to understand which character I was playing at the start. I think the choice to make the player character red and the npcs yellow is confusing considering the visual language that has been standardized for decades now. I am talking about a red = bad, green = good, sort of thing. By all accounts I thought the player character was an NPC. Did not even register that the character was moving because of my inputs. A simple indication, even just an arrow pointing to the sprite would be fine.
The on-boarding is pretty rough. It is mentioned in the landing page that the levels are not in order of difficulty. For reference: I did not seek out easier layouts because I was not versed in the mechanics, so I tried to be patient and experiment a bit figuring out each scenario I played. Again, yadda, yadda, "standardized things," consecutively ordering levels by difficulty is something players are conditioned for, so not having this off the get-go was frustrating for me as a player.
The input system is tricky to understand at first. The intended behavior being that arrows steer the character but will only move the character if the next directional input is the same direction the character is facing. This seems counter intuitive and adds extra steps. Perhaps I did not play far enough to understand the complexity you were introducing with this implementation, but it makes more sense to me to remove that redundancy and have the one direction steer and move the character at the same time. This would also reduce the number of inputs and allow more efficiency with input sequencing.
Visually, the aesthetics are nice. Other than my issues with some of the color choices, the sprite work is on point. Everything in the environment is distinct and easy to read. I understand windows are meant to block my character but not my signal. Solid walls block everything and gates can open when the connected button is pressed. I do think the gate should be a solid object if it will be blocking my signals aswell. Right now it looks like a cage where there are gaps in the sprite, this would suggest my signal should travel through it.
This concept is engaging and with more refinement could be an exciting puzzle game to master. I hope you continue expanding on this idea and I will absolutely play again if a post jam version is ever released.
I just want to mention two funny(?) things:
- About the gate blocking signals, it actually wasn't my original plan. I did think about letting it pass through the gaps... and now I don't remember why I ended up not doing just that. oops😅
- About the robot colors, I *did* start designing the yellow robot with the intention of it being the player, and then just applied some random palette and called those sprites "other robot" (like, I had RobotIdle1 and OtherRobotIdle1, etc). But it felt dumb to have to double every sprite just to recolor it, so I made the software recolor the sprite instead. Given the only different robot was the player, I ended up keeping the original color for the other robots, and only the player got recolored. If I ever make a post jam version (and the feedback I'm getting is making it more and more likely), I'll be sure to make the player be yellow again as intended.
My opinion from earlier has not changed, but giving more time with this game allowed me to understand the complexity of what you were going for. Not sure if I had the patience or the smarts to figure it out otherwise. But it does feel rewarding and I am glad I did.
But I really like the concept! :robot: :arrow_left: :arrow_up: :arrow_right: :sparkler:
There's a lot of potential here. It's fun to imagine autonomous robot-NPC's roaming about and sending procedural signals that could mess up the player character.
---
The system reminded me of an [old programmable toy-car](https://tinyurl.com/Silverlit-Programmable-Car) I had as a kid.
I couldn't remember the brand-name or anything, but after a little detective work I managed to look it up. It seems that there's still a handful of them [for sale](https://www.ebay.com/itm/277909761100) in web-auctions.
I begged my parents to order the [black one](https://thumbs.worthpoint.com/zoom/images4/1/0611/07/turbo-32-sl-endless-programmable_1_540d4b54ac8deb3eb46cb049f6e29a05.jpg) from some magazine back in the day, but can't remember whatever happened to it. Had almost forgotten about it! I didn't find it as fun to play with as one would imagine, but the programmable trail-system stuck in my head as an interesting concept.
If you want to dive into the rabbit hole, here's a 20+ year old [capture](https://web.archive.org/web/20050305122539/http://www.silverlit.com/aboutus.htm) of the manufacturer's website. The archive actually goes all the way back into 1999.
---
Apparently they're still pushing up similar stuff to this day, contributing to global waste as the landfills keep expanding forevermore until the final reckoning of our modern way of life! (...way to end my story on a positive note, huh?)
Hope you didn't mind my little reminiscing!
Keep on jamming!
I beat Leo before I stopped. Idk why but I was completely overthinking the beginning of that level and thought I had to somehow overtake the first robot and be the first through the gate. I eventually figured it out tho.
Great job making an actually fun and engaging puzzle game for LD!
Eu não poderia esperar menos de você. Sempre com jogos inteligentes e divertidos. E na vibe dos nintendinhos que eu adoro.
Cara, que quebra-cabeças complicadinho. Eu me confundi muito com aquele comando de looping. Eu não fazia ideia do que fazer no começo e penei pra entender. Com algum tempo eu comecei a entender. Mesmo assim, nos niveis finais, que tem looping dentro de looping, foi difícil (se lembre que para a minha cabeça não programadora uma variável já é complicado de entender).
Realmente a música faz muita falta! Pra você ter uma ideia eu liguei uma playlist de NES aqui pra entrar na onda. Estava valendo qualquer coisas pra não torrar a cabeça no silêncio absoluto. Já sabe quem chamar na próxima.
Alguns bugs apareceram na jogatina. Aparecem mais janelinhas e as coisas ficam bagunçadas (vide imagem).
A arte está muito bonita. Claro que eu adoro os sprites de nintendinho isso me cativa. Eu estou estudando um pouco sobre os sprites de NES.
Deu bastante trabalho, mas eu consegui terminar o jogo (imagem). Quebra-cabeças bem desafiadores. Principalemte do meio pra frente. É uma pena que não conseguiu terminar a tempo. Sabe se os extras também entram no ranking? Eu espero que sim, porque o seu, com certeza, terá ótimas avaliações.
Parabéns meu amigo!

> Eu me confundi muito com aquele comando de looping. Eu não fazia ideia do que fazer no começo e penei pra entender.
> Com algum tempo eu comecei a entender. Mesmo assim, nos niveis finais, que tem looping dentro de looping, foi difícil
> (se lembre que para a minha cabeça não programadora uma variável já é complicado de entender).
Curioso, nunca tinha parado pra pensar nisso como "looping".
Eu só tava seguindo a lógica de:
- o jogador aperta botões pra mandar seu próprio robô fazer coisas
- duas essas coisas são preparar um pacote de botões pra mandar pra outro robô, e mandar esse pacote
- (sacada 1) hm, se ele pode mandar botões, ele também pode mandar esses dois aí né
- (sacada 2) hm, se ele também é um robô, ele também pode receber esses pacotes
> Realmente a música faz muita falta! Pra você ter uma ideia eu liguei uma playlist de NES aqui pra entrar na onda. Estava valendo qualquer coisas pra não torrar a cabeça no silêncio absoluto. Já sabe quem chamar na próxima.
Sim, mil vezes sim. Alguns streamers inclusive eu sugeri que deixassem tocando algo de fundo. E, talvez não só "pra próxima", deixa só eu acabar (quando?) o Miroh Jr e o La Patifferie, que eu tô cogitando bastante fazer uma versão definitiva o signOS em algum momento. Ainda não sei se isso vai acontecer com meu time de sempre (Plem/M-Tee no design, Jordan/Raftronaut no áudio), mas se eu for fazer praticamente solo eu te chamo pra ajudar com a música.
> Alguns bugs apareceram na jogatina. Aparecem mais janelinhas e as coisas ficam bagunçadas (vide imagem).
Eu vi um streamer tendo esse e outro bug. Pelo menos o outro eu tenho um palpite vago, esse daí eu teria que parar pra ver.
> A arte está muito bonita.
Eu que vejo o que o pessoal anda fazendo ainda acho que falta muito pra minha arte ficar aceitável 😅 mas eu ainda sinto orgulho de como ficou o robozinho, mesmo nessa arte de programador.
> Claro que eu adoro os sprites de nintendinho isso me cativa. Eu estou estudando um pouco sobre os sprites de NES.
Eu acho engraçado que existem dois lados nisso. Eu, por exemplo, tendo a fazer os jogos seguindo as restrições típicas do NES (tipo a imagem de fundo só pode usar uma paleta de 4 cores pra cada área 16x16). Do outro lado, tem gente que taca tecnologia (mapper) no cartucho pra burlar essas restrições (num caso extremo, [Former Dawn](https://www.kickstarter.com/projects/something-nerdy/former-dawn) quer simular como seria se o NES tivesse recebido uma extensão pra ler CD-ROM nos anos 90, e consegue fazer absurdos com imagem e som).
> Deu bastante trabalho, mas eu consegui terminar o jogo (imagem). Quebra-cabeças bem desafiadores. Principalemte do meio pra frente. É uma pena que não conseguiu terminar a tempo.
É, eu não consegui ordenar formalmente a dificuldade do mais fácil pro mais difícil mas tentei deixar as fazes mais complicadinhas na segunda metade. Só Capricórnio que eu tive que simplificar porque tava causando lag no jogo. É, eu só peguei o trocadilho "sign OS" = "Signos" e desenhei o chão das fases baseado no zodíaco 😅.
> Sabe se os extras também entram no ranking? Eu espero que sim, porque o seu, com certeza, terá ótimas avaliações.
Então, os extras só ganham o direito de ter e dar notas, mas não entram em ranking. O que é até ok, eu não teria muito mesmo chance de ranquear alto, eu fico feliz se as coisas que me esforcei tiverem nota >= 3.
Obrigado pelo review e parabéns por ter conseguindo terminar :)
Fun entry!