VibeCity
The ui is basically jme quads and two shaders, one for all background stuff, and one for text/icon rendering. All from scratch, the only external library is lwjgl:stb_truetype to generate the sdf atlas. The noise textures are regular jme textures byte array from the noisesource to jme.
As for the AI tools, i am using gemini and claude from command line. gemini mostly for the simple task because it is far cheaper. and claude for the more complex one. I am still learning how to use AI, but i switched from the fully automated development to a more managed workflow, i design the interfaces and and the we discuss implementation details, or if the design is valid for my usecase. then i let the agent work on it. then i test and fix-promt each feature. I also “gave the order” to not explore the codebase automatically. so i have to be very careful that i hint at everything already existing that should be used. if i do not do that you run into context limitation quite soon. (at least i did) I also found out that even all new ai tools have something like auto-compact when the context is full, but from my experience you never now what happens once you compact the ruleset. So i disabled it and i have to make sure that each task is small enough to fit into one context. So far this works good, and i am keeping the token consumtion quite low. Subagents or the new agentic team feature of claude helps of course to stay in the context limit.
If someone has a different workflow or suggestions i am always open to hear them.
Discussion in the ATmosphere