A little teaser of what I created for Pigeon.
So, I always had an idea of making a graph of messages - what is sent to who, who receives what, who handles what. I’m a visual guy, who likes to literally see the connections and usually draws graphs on paper or in draw_io and this helps me to mentally maintain huge projects I’m working on, so it’s natural I wanted something like this for messaging system in Defold. I had it always in my mind, especially when working on Pigeon, as it simplifies sending messages to any subscribers, but there’s no quick way of verifying then, where are those sent (who are the subsrcibed currently subscribers) and most importantly who handles it and who’s not (yet). So sometimes I swear on my own tool, because simplyfing one thing it makes other stuff more complex. So a graph of dependencies like this would be a nice helper for the development.
I had some attempts e.g. ImNodes, and some projects also made in Defold, but coding it to be useful, handy and having nice UX is an ambitious task, so I never actually made something like this. I know I’m justifying now myself, when truth is, I’m too lazy and I just don’t want to spend time on it! So I took my chances with LLMs then, because why not. I spent a few minutes, maybe an hour, on preparing the research and gathering the backend knowledge, I am not actually familiar with, but that would solve my problem and veryfing it on several different levels, and then preparing the implementation with Codex and v’oila:
It doesn’t have to be perfectly coded (it isn’t), but it does the job! I’ll release it on a separate branch, as it injects some code into Pigeon itself, that I must verify, but maybe for someone, dived deep in a huge project that uses Pigeon - it might be as worthy as I think so!
It analyzes the code using Editor Script, this part I was already working on in the past, but the LLM also touched this part and added more dependencies checking, verification, errors and warnings for loose or unhandled messages etc and then produces a graph and visualizes it on a local website that is opened from Editor:
