I’m a big fan of everything Uxn related. The architecture is fun to work with, and unlike most low-level architectures it is very event driven making interactive programs quite easy to make.
I’m exploring building a game around it (not in it) with Kikai, an unholy marriage between zachtronics games and starcraft, where units (and buildings) are uxn machines with devices to interact with the outside world. This allows you to fully customize the whole army and strategy to be whatever you like.
Buildings for example, take a bit of the role of linkers (or even compilers), they are just another Uxn machine with a Factory device. The most basic form of a building and the one that you will have by default is just a memcpy of bytes from a source ROM to bytes in the RAM of the newly created unit. But by investing a bit of time you could for example have pre-made behaviours that you can link on runtime based on that particular match needs. Units also have a radio and can send messages between them. WIth some more code you could have a handler that rewrites parts of the code broadcasted from a building allowing you to deliver OTA updates!
My objective for the game is that it works out of the box as a normal RTS but that once you get the gist of it you can start automating here and there so there is no high cost of entry but there is infinite extendibility.
There is another very interesting project in the same direction that Devine (the creator of Uxn, Varavara, Orca and Nebu, as well as many others) shared with me recently when I explained my project to him: Doldrusidus which is incredibly fascinating. It goes in the same vein, small ships in a multiplayer universe each of them running Uxn machines inside.
Yeah, part of the idea came from Screeps. However I had a problem with Screeps and it's the onboarding. It feels like you have to build a lot of code just to start playing. Which is it's own niche of course, but I wanted the onboarding experience to be more incremental.
I'm a very quick-feedback-loop interactive developer so I kinda struggled with that.
I'd like people starting with my game to start where they feel comfortable. If they want to go directly into full coding and automating they can do that, if they want to start playing, get a feel for the game and automate incrementally they can do that as well. In Screeps you feel like "Immunity will end in a few weeks, hurry up, rush to something so you don't get destroyed" and I want to avoid that feeling if that makes sense.
I think factorio really nailed this, almost everything you want can be done manually first. You start mining coal yourself, then start incrementally automating more and more as you understand how materials flow in your factory. I want a similar feel.
This is also why the first part I'm building is the sandbox where you can edit units, spawn them, play with them and debug them all from the same screen, it serves both to refine the development loop and to help me build the basic unit behaviours.
Another thing I wanted to do is bring a bit of a lower level programming. Closer to a Zachtronics game, where you have a simplified microcontroler-like architecture and a nicely written datasheet-like manual you can print and browse at your convencience.
I did something similar in Unity a few years ago but the agents were all 6502s with memory-mapped peripherals that were software defined. It was neat but I could never really find an application for it. Never considered making an RTS.
Devine's work on these projects along with the language that it is written in Uxntal https://wiki.xxiivv.com/site/uxntal.html is nothing short of astounding and frankly a much healthier sustainable way of computing. They created the language after getting tired of the endless dependency chain massive language stacks that are required to make ios apps, electron/web apps etc. Having a set of applications that is only a few kb in size and source code that fits in one file could mean that this stack will stick around for decades to come. Their way of viewing sustainability in computing has brought back some passion that's been drained out of me by this industry. Rek and Devine's joint website is also a joy to behold https://100r.co/site/about.html
>> "They created the language after getting tired of the endless dependency chain massive language stacks that are required to make ios apps, electron/web apps"
As a mobile app dev, I definitely understand this pain:
-For developing iOS app: needs XCode and and some simulators which can easily take something like like... 40 GB
-For developing Android apps: after working on some Android projects, your Gradle folder can take at least 15 GB
But what can we do to improve the situation? Many years ago, before Android Studio and Gradle days, Android development was definitely less painful.
I’m a big fan of everything Uxn related. The architecture is fun to work with, and unlike most low-level architectures it is very event driven making interactive programs quite easy to make.
I’m exploring building a game around it (not in it) with Kikai, an unholy marriage between zachtronics games and starcraft, where units (and buildings) are uxn machines with devices to interact with the outside world. This allows you to fully customize the whole army and strategy to be whatever you like.
Buildings for example, take a bit of the role of linkers (or even compilers), they are just another Uxn machine with a Factory device. The most basic form of a building and the one that you will have by default is just a memcpy of bytes from a source ROM to bytes in the RAM of the newly created unit. But by investing a bit of time you could for example have pre-made behaviours that you can link on runtime based on that particular match needs. Units also have a radio and can send messages between them. WIth some more code you could have a handler that rewrites parts of the code broadcasted from a building allowing you to deliver OTA updates!
My objective for the game is that it works out of the box as a normal RTS but that once you get the gist of it you can start automating here and there so there is no high cost of entry but there is infinite extendibility.
There is another very interesting project in the same direction that Devine (the creator of Uxn, Varavara, Orca and Nebu, as well as many others) shared with me recently when I explained my project to him: Doldrusidus which is incredibly fascinating. It goes in the same vein, small ships in a multiplayer universe each of them running Uxn machines inside.
Kikai and devlogs: https://marcecoll.itch.io/kikai Doldrusidus: https://desertslug.itch.io/doldrusidus
I assume you've seen it, but Screeps was(/is?) a very enjoyable game to play around with for the programming-strategy/RTS blend.
Yeah, part of the idea came from Screeps. However I had a problem with Screeps and it's the onboarding. It feels like you have to build a lot of code just to start playing. Which is it's own niche of course, but I wanted the onboarding experience to be more incremental.
I'm a very quick-feedback-loop interactive developer so I kinda struggled with that.
I'd like people starting with my game to start where they feel comfortable. If they want to go directly into full coding and automating they can do that, if they want to start playing, get a feel for the game and automate incrementally they can do that as well. In Screeps you feel like "Immunity will end in a few weeks, hurry up, rush to something so you don't get destroyed" and I want to avoid that feeling if that makes sense.
I think factorio really nailed this, almost everything you want can be done manually first. You start mining coal yourself, then start incrementally automating more and more as you understand how materials flow in your factory. I want a similar feel.
This is also why the first part I'm building is the sandbox where you can edit units, spawn them, play with them and debug them all from the same screen, it serves both to refine the development loop and to help me build the basic unit behaviours.
Another thing I wanted to do is bring a bit of a lower level programming. Closer to a Zachtronics game, where you have a simplified microcontroler-like architecture and a nicely written datasheet-like manual you can print and browse at your convencience.
I did something similar in Unity a few years ago but the agents were all 6502s with memory-mapped peripherals that were software defined. It was neat but I could never really find an application for it. Never considered making an RTS.
an rts-lite has been likely the most commercially successful implementation of this concept (later open-sourced): https://colobot.info/
Devine's work on these projects along with the language that it is written in Uxntal https://wiki.xxiivv.com/site/uxntal.html is nothing short of astounding and frankly a much healthier sustainable way of computing. They created the language after getting tired of the endless dependency chain massive language stacks that are required to make ios apps, electron/web apps etc. Having a set of applications that is only a few kb in size and source code that fits in one file could mean that this stack will stick around for decades to come. Their way of viewing sustainability in computing has brought back some passion that's been drained out of me by this industry. Rek and Devine's joint website is also a joy to behold https://100r.co/site/about.html
For completeness, a critique of Uxn (and other "simpler" computing stacks): https://applied-langua.ge/posts/i-dont-want-to-go-to-chel-c....
This HN discussion about this critique is also quite interesting: https://news.ycombinator.com/item?id=31705239
One of the replies is from Devine: https://news.ycombinator.com/item?id=31708175
>> "They created the language after getting tired of the endless dependency chain massive language stacks that are required to make ios apps, electron/web apps"
As a mobile app dev, I definitely understand this pain:
-For developing iOS app: needs XCode and and some simulators which can easily take something like like... 40 GB
-For developing Android apps: after working on some Android projects, your Gradle folder can take at least 15 GB
But what can we do to improve the situation? Many years ago, before Android Studio and Gradle days, Android development was definitely less painful.
I can’t pronounce two of the four words in that domain, that’s impressive.
One of my biggest gripes with csv/tsv is that they don't have formulas, for good reason (most of the time) - this format however is REALLY nice imo.
hard (but probably possible) to shoot yourself in the foot, and yet it's not nearly as easy as it is in excel.
Are there other "smart csv" formats/editors out there?
I love the old-style Mac window decorations. Part of me still associates that with simple, usable UX.