The following in my journal for the December Adventure. The most recent post will always be a the top. You can jump to the start here.
Idea Board
|
|
December 22th (Day 22)
You are at the lastest entry.
Music by World's Favorite Mutt (aka Lobo) check a look.
Ow, text. Text wrapping. Text styling. oofies. We think love actually supports a lot of this out of the box. However, we were paying massively for over drawing. I have no idea how many draw calls love.graphics.printf cost.
A while back, when using Haiku, we tested it's graphics ability. On Haiku, it could only do software rendering. Looking back through some Discord logs. My FPS on the uxn bunny mark would immediately drop to 30FPS the moment one bunny appeared. And could do roughly 3000 at 15FPS.
I eventually switch to Linux to have support for the GMA 3150, It can pull 1000 bunnies at 30FPS on uxn (and nearly 60FPS on LOVE until thermal throttling kicks in).
So, much of this work was to keep the number of draw-call I make to <1000.Future and relative to the past and that wrote the above for, so that was all billshit. Apparently there is only 6 draw calls happening ??? Okay, maybe hypothesis 2 of "this CPU is super weak" is more correct. Man... just how weak is an Atom N-series...
The CPU is definitely throttling from some kind of thermal problem. (It also gets that funny "hot electronics smell". If I was bolder and this laptop easier to service, I'd probably look into redoing the paste somehow.
But also, it kinda seems like the Atom N-series is just kinda dogshit 💀. Someone was showing off an FPGA out performing my laptop's software rendering at 50MHz...
I still find joy in using this thing tho. It's 10.1" size makes it very easy to pull out and put away. Also, it's hand to test stuff on something that isn't a literal super computer (i.e my gaming desktop PC).
Looking at the docs, it seems mostly intended for static strings rather than dynamically growing buffers. It might actually be more of a hassle in the future than rolling it myself.
Improved console for Mold. Work will likely be backported to Fungus.
Ideas for tomorrow
Dunno, definitely need a break from Serious Coding (tm) after that. Also, Christmas nears.
Listening to...
Dance 2 by World's Favorite Mutt.
(back to latest day)December 21th (Day 21)
Worked on MOLD a little bit. Trying to improve the text console so I can add a bit of text styling to it. Instead of a stack of lines, it's just one buffer. I've also implemented word-wrapping instead of character-wrapping.
The new console in action.
Ideally, it's backwards compatable with the previous one. It's just now new rots won't have to manually wrap text. Also, one reason MOLD is designed the way it is, is that I want it to work on my Aspire One D255 netbook.
1024 x 600 isn't a lot of space.
Oh, also MOLD no longer runs at 60FPS burning a whole through the Atom N450 CPU this laptop has. Draw updates only happen when a frame is requested.
Ideas for tomorrow
Dunno, maybe a break from all this coding. I did have this week marked out for work on Nova. Might play with scratch, tho.
Listening to...
Skate Story: Vol. 2 by John Fio
(back to latest day)December 20th (Day 20)
You should know better than to leave software sitting outside.
MOLD is basically functional and able to make little games, unfortunately, I missed the deadline getting greedy with things after loosing track of time. However, MOLD is definitely worth refining.
We literally had MOLD presentable, but just had to work on a second little demo of the engine.
Grave digging game.
Game script.
There is a lot I want to do here still. Between this and Fungus, this adventure has been going well.
Also, L5 is proving to be the best way for me to work with LÖVE. It really just lets me focus in on things.
Ideas for tomorrow
Write up stuff about MOLD. Polish up a bunch of things about its editor (scrolling first and for most). Add %line for formatting text a bit. Improve console to wrap-by-word.
December 19th (Day 19)
Guilded can make little movement toys. Finally managed to just cut out all the noise from my various desires and get to something I could push forward. MOLD finally has scripting.
Script a simple player.
It is super hacked together. Basically, the interpreter keeps running a script until a) it completes or b) produces a command. Currently, the commands are hard coded:
%movegenerates a{move $dir $x $y}command%waitgenerates a{wait}command%saygenerates a{say $message}command
It also comes with a bunch of builtins and dynamic variables that are shared among all actors. So, you can do things like half-assed co-ordination.
Left. Right. Left. Right. Hup, hup, hup.
It gets the job done, and is pretty neat. I do remember what lead to me building Gilded: I have no means of building commands. At least, I can't build any command that can't be defined as a static, scopeless quotation.
Ideas for tomorrow
Probably adding deletion, saving, and entities reaching to being touched. Dunno if I'll have a game by the end of this. I'll certainly have some kind of game editor.
(back to latest day)December 18th (Day 18)
This is a retroactive entry added on the 19th. On this day, I mostly fapped about. I was kinda stuck on MOLD cause Gilded was just too interesting and too much for the LangJam GameJam. Mostly just cleaned up my wiki: added 404 and a page for my adventure logs.
December 17th (Day 17)
Today was a longer than expected day at work. Christmas party stuff. It was nice, but I didn't feel like working on MOLD. I also didn't pull down my changes so I couldn't really do anything. When I got home, I implemented some I/O for fungus. Well, just /O.
It's got a console output now for text.
Hello and Goodbye
Tomorrow's a doctor's appointment, but also the start of my time off (well, technically that's the day after friday). My work on Fungus has seemingly inspired someone else to work on a Fungeoid. The mycelium grows.
It's dawning on me as I close out this entry. I've survived this year. I'm somewhere better than last. As much as I thought and wanted to die, I didn't.
The rice soaks and rinses. A new year starts. Despite everything, dying is somehow still harder than living.
Ideas for tomorrow
Dunno, just excited for vacation. And surprisingly, I think I'm looking forward to Christmas again. I'm sure Grandad would be happy I finally moved on. My he rest in peace.
Whatever happens in 2026, I think I'll enjoy this moment instead of dreading the next.
Listening to...
Where The City Can't See, Blood Cultures, Skate Story: Vol. I
At the right place Pleased to meet you out tonight
And the right time
Who else would
Would I find
In these cities
These cities
These cities
These cities
December 16th (Day 16)
Gotta head to bed, work in the morning. Gonna keep this brief. Managed to get Gilded working. It's a little prototype-based flavored catlang. Originally, every quotation was gonna push a scope, but I quickly hit a hitch. You can only effect the top scope on the namespace stack.
It's really the year of the OOP catlang, and surprisingly the prototype-based catlang. Between us, StackTalk, and a few folks on the catlang discord, there seems to be 4 or so explorations of prototype-based OOP happening.
This means nested quotations can't effect the current object. Something like Yumaikas's me stack could work, but I opted for "transparent quotations". These are quotations that don't carry a dynamic scope. This is what Gilded ended up looking like:
: sq dup * ;
: keep
over { call } dip ;
: mag@ 'mag@ print
'x @ dup print sq
'y @ dup print sq
+ sqrt ;
: move@
'y @ + 'y =@
'x @ + 'x =@ ;
: :mag
'mag swap call ;
: :move
'move swap call ;
: [point] [
{
{ dup 'get = } { pop @ }
{ dup 'set = } { pop =@ }
{ dup 'mag = } { pop mag@ }
{ dup 'move = } { pop move@ }
} cond
] { 'x 'y } bind ;
10 20 [point] 'position =@
-7 -16 'position @ { :move } keep :mag
The heart breaking this is after getting all this working. It's way to much. Gonna toss (metaphorically, I'll keep the code around) all this. Try to just builda simple scripting system for MOLD instead.
I won't lie, we just kinda keep wanting to inject Nova into this, lol. Maybe after the jam.
Ideas for tomorrow
Get through the last day of work before my winter break, design a stack-based scripting language for MOLD that isn't as involved. Gilded has way to many possible edgecases to work out.
(back to latest day)December 15th (Day 15)
Day 2 of the langjam has come to a close. Today was mostly spent fleshing out MOLD's text editor. Added the ability to navigate up and down lines, click to a specific location, and also gave the caret a "desired" position. Much of this is loosely based on prior editors, the notes of Kartik Agaram, and Devine's Left.
Tho, it's mostly based on Left. Mold's editor manily works via what I call "hunt-and-peck". You hunt for desired positions or indicators of text structure, the place your caret offset at that location. Hunt for the spot, peck the location. It's not the most efficient approach, but it does get you up and running fast.
I also decided to make a simplication to MOLD's expressiveness: all characters shall be the same actor. Also, there won't be styling of text via colors. That's just to much work and also implicates a "actor palette". Decided to just nip that.
Actors and editing.
Finally, decided I will implement a Joy-like language called Gilded. One thing I realized while reveiwing the notes of Bob Nystrom (agian) is "I need objects". Actions and ActionResults implicate extra chunks of data. This morphed a Forth-like idea into a Joy-like idea.
( global world script )
: move-right
[
@my .pos empty?
[ 1 @ 'x -> 1 + 1 @ 'x <- success ]
when
fail
] 1 bind ;
( ... etc ... )
( actor level script )
: take-turn
'key @ "a" = [
'me @ move-right
] when
( ... etc ... ) ;
The yearned for design of Gilded.
Won't explain everything here. The just of the idea is that quotations implement a form of dynamic scoping (which I think is far from a dead-end topic. See [1] [2] [3]). bind would capture values and stash it into numerically indexed slots. An alternative idea is something like [ ... ] stash. Where stash would take two quotations: the code to be scoped and the slots to bind.
[ 'x @ dup 'y @ dup ] [ 'x 'y ] stash
This kinda gives me object-shaped things without needing objects as a construct. Well, unless it comes creeping out of the muck. It also means variable usage can be refactor. For example, a counter:
: count++ ( @count -- @count x )
'count @ 1 + dup 1 =@ ;
: count-- ( @count -- @count x )
'count @ 1 - dup 1 =@ ;
: [counter] ( initial-count -- [counter] )
[
[
[ "decerment" = ] [ count++ ]
[ "increment" = ] [ count-- ]
] case
] [ 'count ] stash ;
( using out object )
[counter] 'counter =@
"decrement" 'counter call@ print
"increment" 'counter call@ print
The idea of all this mumbo jumbo is "define methods for any scope with a 'count field", "construct a counter object with two methods", "run the methods". All this is pure vibes, but I'll have to consult the and Intilligence (&I, patent, trademark, and copyright pending) tomorrow to implement this.
Dunno how far we'll get on that tho. Won't lie, improving the editor was us procrastinating to avoid language implementation, lol. Also, not totally set on all this. Notice the arrows I didn't even think about! Don't know what those do...
Won't lie, it's some cowboy shit.
Also, drew some smut.
Ideas for tomorrow
Probably implementing Gilded. Oh, also probably moving my music onto my phone. Thanks to a combination of "bandcamp saves to local storage for its app" and "Google has locked off app-local storage", I can't actually access the shit I have downloaded !!!
The only reason I got an Android was cause I had stary eyed hopes that mobile phones could be some cool computing device. But that dream is dead. I might as well just get an MP3 player. Ideally *just* an MP3 player. With a jack. and kers.
I wish I never broke that old slide phone in highschoool... I miss you buddy.
Listening to
Unarchiver, Blood Cultures, Skate Story: Vol. I
(back to latest day)December 14th (Day 14)
What is MOLD?
Today marks the start of the "langjam". Not totally sure I'll finish this. What I'm making is basically a "more ambitious Fungus w/ custom scripting". I still don't have an idea for the execution engine. But, I'm getting a basic editor in place.
The WIP of MOLD in action.
My idea is something like kooltool but for textmode turn-based games. Like, Fungus, this is another tool inspired by my desire to "be in the world you are programming". It's not good enough to just hot-reload a program. I want to physically explore it. Well, as physically as cyberspace gets.
Ideas for tomorrow
Probably figuring out how code executes in MOLD. The scripting language is likely to be something inspired by Joy. My work week starts so my actions are gonna have to be small and deliberate.
MOLD Joy perhaps?
Alternatively, I say "to hell with the langjam". There is a lot of people missing the point of jams by pulling out "agentic coding tools". It's definitely not my kind of crowd for jamming. Just ruins the fun. Fungus is already a very promising project.
(back to latest day)Also, the skill that gamejams are meant to hone are:
- Your ability to accept imperfection.
- Your ability to discard ideas quickly without getting to attached.
- Your ability to rutherlessly cut down your scope.
Generative AI tools pray on peoples fears of failure, imperfection, and "not being a Big Idea". These tools pray on insecurity and burnout. These tools can only create more insecurity and more burnout. Infinite acceleration shall destroy ya engine.
December 13th (Day 13)
I've more or less completed Fungus. Well, completed everything I wanted to refresh myself on before the Langjam Gamejam. Today's additions where:
- Finishing the CLI to implement saving and loading.
- Added new opcodes to the instruction set.
- Added speed controls.
I wasn't sure how to actually implement custom execution speed. Making things run fast is pretty obvious. However, I also wanted to slow execution.
Luckily, I remembered Bob Nystrom's talk "Is There More to Game Architecture than ECS" had a solution to this. He showed off a simple energy system for a roguelike. Every turn, actors would gain "energy". If they had enough energy, a turn would be taken by that actor.
So, I implemented the same stratgy for my interpreter. To slow down execution, I also had an excitedLevel parameter.
function interpreter:gainEnergy()
self.energy = self.energy + self.energyGain
end
function interpreter:energized()
return self.energy >= self.excitedLevel
end
function interpreter:spendEnergy()
self.energy = math.max(self.energy - self.excitedLevel, 0)
end
function interpreter:faster()
if self.excitedLevel ~= 1 then
self.excitedLevel = self.excitedLevel - 1
else
self.energyGain = self.energyGain + 1
end
end
function interpreter:slower()
if self.energyGain ~= 1 then
self.energyGain = self.energyGain - 1
else
self.excitedLevel = self.excitedLevel + 1
end
end
function interpreter:updateInterpret()
self:gainEnergy()
while self:energized() do
self:spendEnergy()
local halted = self:eval(grid:at(you:location()))
if halted then
self.energy = 0
break
end
you:forwards()
end
end
This solution unified the idea of speed into one concept (using energy) instead of two (going faster vs going slower). It's rather nice how effective this was.
A sorting algorithm in Fungus. Dunno if it is bubble sort, insertion sort, or selection sort tbh. One of the slow ones.
Miscellenious things
- Updated my CSS for
<code>elements. - Added GridNotes to my unusual editors list.
- Gave
<pre>blocks the same splash of color.
Ideas for tomorrow
Tomorrow marks the start of the Langjam Gamejam. Fungus was a good little refresher on doing grid-shaped stuff. Still not totally sure I'll have the gas to make something for it. My work week will eat most of the jamtime.
Listening to: Skate Story: Vol. 2 by John Flo
(back to latest day)December 12th (Day 12)
Today I finished Skate Story. An abosultely incredible experience. Left me a bit buzzed from the thrill of it all.
I've additionally started up a projects page. It links to the very projects I've made that lurk around my wiki. As well as my main itch.io.
Finally, cleaning up Fungus's interals as well as mocking out a CLI for the editor. I need some way to input stuff as well as do things like "project management".
Proof of concept CLI bar.
Ideas for tomorrow
Dunno, possibly more Fungus? Tho, I think I want a break from coding up stuff.
(back to latest day)December 11th (Day 11)
Today was pretty good. While riding in on the train into work, I managed to get stack operations (: [dup] ~ [swap] R [move to right stack] L [move to left stack]), hexdigits (0-f), and halting (.) done. On my lunch break, I got basic math operations implemented.
After toying around, I decided having dedicated (L)eft stack and (R)ight stack operations kinda clunky. Especially for (~) Swap, (:) Dup, et cetera. So, I instead implemented % (Swap hands) and \ (Move to off-hand).
A never ending factorial in Fungus.
1:E1+:\*%\%S N W
Same program, but with less wasted space.
1:E1+:\S N%\%*W
This saves me a lot of hassle figuring out how to implement modes for opcodes. Instead of every opcode having modes, you just "change hands". I also think the metaphor is pretty cute.
Once I implement branching operations, Fungus should be able to do actual computations. I also want to modify delete/backspace to be "erase, then move" instead of "move, then erase". Other QoL improvements include:
- Implement slower run speeds
- Implement in-place deletion
- Implement step excution
I think I'm gonna call my adventure here. The langjam is coming up and I think I have a pretty good handle of doing grid-based stuff again. Tho, I'm realizing my idea might be too big for the langjam gamejam after doing this. At least, not without some sort of compromise.
Oh, I also added candle's website to the crossroads
Ideas for tomorrow
Probably something Fungus related unless art calls to me. I've been getting lots of ideas for stuff. My little comic thing (still keeping secret) is coming along nicely. Not sure how long I'll keep working on it? Maybe it'll be a big surprise at the end or maybe I'll get bored and it'll never be seen again! Who knows.
(back to latest day)It's mostly something that keeps me busy at work.
December 10th (Day 10)
Did some more work on Fungus. It's some kind of fungeoid thing. Reworked it so the world contains different states it can be in. Each object now defines a thing:[event][state]() method. The toplevel [event] method now matches on the state before calling the approirate method.
That super depression that hit me last night passed (yippie). I ended up working on some little things today.
Also, got a very basic interpreted mode going.
A demo of interpet mode with support for (n)orth, (e)ast, (s)outh, and (w)est commands.
This is all just kinda a warm up for the langjam gamejam. It's been a while since I've worked with grids and states.
I also added some new pages to my wiki for Kevo and templates for my wiki. The Kevo page was originally supposed to be a few article, but I kinda forgot about it for a year or so. Decided to extract what I had and dump it to a page. It's an interesting look at object-oriented programming for Forth.
Ideas for tomorrow
Tomorrow is another office day, so maybe playing with Fungus some more. I've also been working on a little comic thing. I picked up some sketchbooks on clearance and they've got a nice coarse texture that works well with ball point pen.
(back to latest day)December 9th (Day 9)
They day before
Tommorrow marks the start of my in person shifts. Dunno what I want to do tomorrow. Possibly just resting after work or drawing for my game idea.
The day of
Just played Skate Story. Drew stuff. Didn't have time to uploaded. Made a repo for Fungus. In-office time makes trying to be creative depressing with the time constraints. Will be skipping Tu/We/Ths.
December 8th (Day 8)
They day before
Decided to steal this from aleteoryx. She has this planning section. So now I have this planning section.
Tomorrow marks the start of my dayjob. Got meetings and shit. But I want to try to do one of the following:
- Progress the aformationed game in Day 7
- A mini-fungeoid as a warm up for the langjam
The day of
Alright, decided to do the mini-fungeoid. But also, I decided to implement an editor for it. Well, turns out I got caught up in the editor. Made the horrible decision to have two modes: in-place mode and automove mode. Ended up in state machine hell cause I effectively had two different object interweaved. Decided to just make automove the default and ditch in-place mode.
A video of me typing out "hello world goodbye cruel world" in 2D text space.
Also, this project is taking advantage of L5. It's so far wonderful. I did make a change to keyIsDown to match LÖVE's love.keyboard.isDown. LÖVE supports checking if any of multiple keys are down, so I updated L5 to match.
Skate Story came out so I'm probably gonna spend the rest of the night playing that.
(back to latest day)December 7th (Day 7)
Mostly just a chill and sleepy day. Didn't really do much of anything. Just kind sat around, laid around. I did start up some work on a little game thing in Scratch.
It's pornographic, involves blackmail, and is inspired loosely by growing up in a conservative suburb. Also, that one time a pastor tried using me as their online role-play buddy or something idfk.
I guess this is what you'd call, like, an artist statement.
The rough idea is you catch your bigot neighbor doing some weird sex shit, and then blackmail them into weirder sex shit.
I grew up largely in a quiet suburb. A >90% white suburb. In the cusp of the bible belt. As a black person. As a black queer person. It was actually pretty okay. People were Friendly (tm). People were Good (tm). Then that false vacuum collapsed violently under the 2020 election.
I could feel glares every day. People rolled out trump flags, thin-blue line flags. My daily skate turned into a hostile experience. One day, I stopped to chat with the old guy that's always on his pourch. He was always nice to me. But, I felt something grow... distance when I looked over his yard. He had a thin blue line flag.
It just kinda stuck with me.
Somewhate related, is this weird moment. A long time ago, I once got an out-of-the-blue message from a dude that was a youth pasture trying to talk kink-and-fetish stuff at me. It was surreal cause like... I found his actual church cause he had like zero opsecs on this "secret account".
Fun fact: we click on all your links. If you join a space I moderate, we do some searching of your name. The andopticon is watching.
Do you know how weird it is to like... be aware you are someone's secret sin? Their dirty little thing? All while knowning this person would just like... discard you in a heart beat politically? This was back when I was still active on twitter, so it had to be like height of Trump #1 or beginning of Biden.
Anyways, not wanting someone to stray for the Light of God 😇🙏, I blocked him, forgot about him, did send a screenshot to some friends for a laugh. But like, what if I blackedmailed him. And like, what if he lived in my neighborhood. And like, what if I felt like being evil.
I guess you can say I'm mad. And, I've been mad. So, I guess I'm making a game about that.
(back to latest day)In hindslight and the current context, it does feel like I was kinda dilusional for thinking I could make steady living of this kind of art. I mean, when you get a steady period influx of some variation of "kill yourself". Probably not a good indicator of your longevity as an artist.
Maybe one day I'll be interested in making Hug Quest, Wholesome Acceptable (Hetro) Handholding. Things will only get worse for my work. But, I'm tired of hiding it. Tho, perhaps now is the worst time to become tired of hiding it.
(Also, if this entry gets me blocked in the UK, it'd be really fucking funny. I swear the UK looks over at the US and just goes "oi chaps, we can't let the Yankees out do us now!".)
December 6th (Day 6)
Today was a chill day. I wrote a lullaby and a eulogy for Zē's Mother. My he rest in enternal peace.
(back to latest day)December 5th (Day 5)
Today, I decided to write some lore for Zē Rō. It's a diety fursona of mine. I think this drawing really captures its personality.
December 4th (Day 4)
My in office period is over and the weekend approaches, means I can have more fun with some bigger ideas.
While on the train into work, I wrote a little bit of Nova. It's been a while, so I just wrote a another example program for Wul. It's a small "guess the number game".
{ @ play a guessing game from 1 to 100 }
@ play a guessing game from $min to $max {
@ pick a number from $min to $max ,
begin game loop ;
}
@ begin game loop {
@ print [enter a guess:] ,
read a number ,
compare guess with target ,
decide on next step ,
}
@ pick a number from $min to $max {
[target] $n ; @code [
$n = tostring(math.random($min, $max))
]
}
@ read a number {
[guess] $n ; @code [
repeat
$n = io.read("*line")
until tonumber($n)
$n = tostring(tonumber($n))
]
}
@ compare guess with target ; [guess] $n ; [target] $n {
[state] win
}
@ compare guess with target ; [guess] $n ; [target] $m {
[state] $state ; [target] $m ; @code [
if tonumber($n) < tonumber($m) then
$state = "too low"
else
$state = "too high"
end
]
}
@ decide on next step ; state [win] {
@ print [you win!]
}
@ decide on next step ; state $s {
@ print $s , begin game loop
}
@ print $message {
@code [print($message)]
}
At some point I'd like a way to decouple inline code from the body of rules. LVERA defined "ports" seperately from the rules that used them. I think it might be handy to bring this ability back. One thing I never got around to was supporting multiple backends under the same port.
Perhaps something like for Wul:
@ print $message {
@action print $message
}
@backend lua , @action print $message {
@code [print($message)]
}
@backend js , @action print $message {
@code [console.log($message)]
}
LVERA had like, a whole ass DSL for this. It wasn't the nicest. Vera only had the ability to work with labelled counters. So there wasn't much metadata for doing DSL building. Defining ports looked like this:
|#port, on set player direction, needs, @set player direction
, takes, @dir up, @dir down, @dir left, @dir right|
|#port body, on set player direction, lua| [%
local player = state.player
player.dir_y = (dir_down - dir_up)
player.dir_x = (dir_right - dir_left)
%]
However, that is gonna be on hold. This weekend I want to work on something smutty with TurboWarp.
(back to latest day)December 3rd (Day 3)
Nothing to interesting today. Mostly a busy day at work. Did manage to kill some time with some scribble bugs. Still trying to warm up for some bigger ideas, but alas work kinda tapers what I can do.
A video of a bunch of circles zipping around with fading trails behind them.
December 2nd (Day 2)
Today wasn't to adventureful. My in-office period has started up so the energy for working on stuff is low. Jotted out a blank template for LOVE.
However, I got side tracked while doing that. The result was a new page for my wikithing. It's about non-lexical variable. I always find things like this useful cause the need for non-local things always comes up when working on games.
Been listing to "desert sand feels warm at night - 夢の砂漠".
Finally, I'm rewatching "Is There More to Game Architecture than ECS?". It's a facinating talk about command-oriented design. The just is "turn methods on objects into action objects".
(back to latest day)Also, someone put signs all over Nowhere. Probably the ands again.
December 1st (Day 1)
(Day 1) Day Dreaming
I've been apart of a langdev project for the past year now called Nova. I've mostly been exploring different textual representation. My latested daydream for a syntax. May not implement this in december as I've already got Wul.
note: search for the number 7 in the stack labelled "pile"
find 7. pile: 1 3 8 4 2 7 9 0.
[ find $x. pile: $x? position: $n ] {
results: $x at $n
fix pile.
}
[ find $x. pile: $y. position: $n ] {
position << ($n + 1). find $x.
pile explored: $y
}
[ find $x. position: $n ] {
results: $x not found in pile.
fix pile.
}
[ find $x? ] {
position: 0
}
[ fix pile? pile expored: $x ] {
pile: $x
}
(Day 1) Drawing
Happened to be out and about on Black Friday, there was a (terrible) discount on some (cheap) 12 pack canvas. Figured they could be fun with my crayons. And they were! Streched canvas was kinda the wrong choice here.
A city on a sunny day.
Wax pastel on canvas.
(Day 1) Random Stuff
Ending the day setting up some repos for a LOVE project. Shooting the shit with June and Yumaikas about Nova. Dreaming up some fun ideas.
November 30th (Day 0)
I have a weird habit of making drawing tools.
A drawing program made with LOVE design around floating text boxes and a canvas with two layers.
I've probably made a dozen of these things if not more. It's often the first thing I think to do. Lately, I've been feeling unsatified with the process of making interactive art.
An interactive art tool built in LOVE designed around flick-like point and click games.
A lot of tools make the Art secondary. Many developers shy away at the vary thought of building even the most rudimentary drawing tool. Most interactive art tools are limited to tile-based games.
A proof of concept drawing tool with a text area below the drawing area.
I've never felt satified with this tile-oriented design. The projects that had inspired my jounery into making games were Flash projects, weird hodgepodge projects like Peen Peen, concepts like SOUP-likes, and projects like 50 SHORT GAMES.
Isn't weird how no visual noval engine lets you pause a scene and start drawing stuff? If you know one, please hit me up.
Projects like Paradise and kooltool have always facinated me as means of crafting interactive art. There is no seperation between the art, the application development, and world. Projects like Decker get close, but ultimately push you into "building software".
An example of one issue with Decker. When the script editor is pulled up, Decker will obscure the current card. X-ray mode can be used to see what's underneath, however, it only shows widgets. Additionally, every widget will be stripped of its appearance. Decker also has a "prototype editor" (prefabs in Unity lingo and Scenes in Godot lingo). However, this just compounds the problem. Prototpes are edited in a backrooms enviroment further removed from the main card.
Building interactive art and games has been rough this year. A bulk of my work is sexual. Pornographic is you will. And, the space has been devistated. Again. And, again. And again, for years.
With a full time job, I have little extrinsic motivations to actually deal with software, it's "engineering principles", and "programming language theory". None of it has made making art easier. And, I don't think any of it will.
This December, I want to mess about with making interactive art tools using LOVE. I'm not building tools for software, I think there is enough of that. Especially if that software is a database interface.
(back to latest day)