- Rebooting this
.plan after a long absence. It's a new year!
- Wrote a first draft of my proposal for a talk at ELS 2017.
- Made a little prototype name generator
based on some ideas from last week's Caves of Qud dev stream.
- Polished up my ELS paper.
- Finished and submitted the ELS paper.
- Worked a bit more on a platformer game assignment for a class. I hate
graphics/shader programming so much.
- Added a few docs to cl-ggp. Still got a bit more to write.
- Handed off maintainership of clojure-lanterna.
- More platformer work. Finally got the fucking sprite pack working. I hate
things with no documentation.
- Got nerd-sniped and ended up implementing PCG in Common Lisp.
- Started working on a constrained game with my team for AGDD.
- Added a bit of juice to the constrained game.
- Finally sorted out the AI/animation bullshit for my minimal game. Assets
without docs are the worst.
- More juice to the constrained game. Been doing non-computer stuff lately.
- Implemented a little easing API in my sandbox repo.
- Made the pluralization rules in Chancery slightly less awful. I should
just sit down and fix it right some day.
- Chatted with my advisor a bit and solidified my plans for the home stretch of
- Made a little Lisp wrapper for bearlibterminal. Learned more about SBCL's
floating-point traps than I wanted to.
- Worked more on our constrained game with my team. Got something almost
- More constrained game work. It's an actual game now. Fun.
- Changed all the
#:foo uninterned symbols in Temperance to regular
keywords. Memory is cheap.
- Finished the docs and pushed the 1.0.0 release of cl-ggp. I still need to
submit it to Quicklisp, but I need to submit Temperance first.
- Dusted off my old Project Euler repo and did another problem.
- Dumped initial commits of cl-pcg and cl-blt to the internet in case my
laptop catches fire. Still lots of work left to do on those.
- Added basic level generation and scrolling to my AGDD minimal game. Also
- Fleshed out cl-blt a tiny bit more. Ported a little terrain gen demo over
to it. It seems promising.
- Wrote a little harness for cl-pcg to test it with dieharder.
- Did another Project Euler problem over breakfast, and a couple more
after that. The early ones are simple to just brute-force.
- More work on the constrained game.
- More Project Euler. Math is fun.
- Fixed up the universe-based matching in Scully. I'll need it soon for the
- More tiny Project Euler problems.
- Finally got the percept filtering in Scully all figured out.
- Cleaned up Temperance and start writing docstrings. One more "Finishing
Friday" and it should be ready for an initial release. Not perfect, but good
enough for now.
- More Project Euler.
- Poked a bit more at my minimal game. It's gonna be very minimal.
- Chatted with my advisor and did more work on Scully. The home stretch is
- Tipsy Project Euler.
- More Project Euler.
- Watched the first part of the Merry Fragmas 3.0 Unity session. Multiplayer
FPS in Unity looks to be not too bad.
- Cleaned up the internal API in Scully a bit.
- More Project Euler.
- Watched the second part of the Merry Fragmas 3.0 Unity session.
- More Project Euler. Problem 51 was painfully underspecified, but
I finally got the stupid thing.
- Watched the last part of the Merry Fragmas 3.0 Unity session.
- Started poking at a prototype game my teammate made.
- Added a janky priority queue to cl-losh.
- Finished the stupid [Project Euler] poker problem. This isn't math.
- More Project Euler.
- Started documenting Chancery.
- Started working through Surreal Numbers. I'm going to try to code each
chapter up after I read it, to make sure I understand everything. So far I'm
done with chapter 2.
- Worked on our game with my team.
- Watched Math for Game Programmers: Building a Better
Jump over breakfast. I really
like the idea of deriving the gravity and initial velocity constants from jump
height/distance targets. I'll have to try that the next time I make
- Implemented a bunch of simple (but necessary) API functions in Scully.
- Did the final bit of plumbing to make Scully actually play games with the
game server. It works!
LICENSE.markdown files to all my projects. Annoying, but if it staves
off the people complaining for a while it's worth the extra wasted bytes.
- Chatted with my advisor about the next step for fixing the combinatorial rule
tree explosions in Scully.
- Added a restart to cl-nrepl to let me specify a new port to use more
easily, if the default one is already in use. Common Lisp's condition system
is really powerful but also really obtuse, and I don't seem to use it often
enough to really get it into my stupid brain.
- Added a couple of docstrings to cl-pcg. Still not sure about the API
layout... I think I need to try it in a real game to see how it feels.
- Did a bunch of stuff on my team's game. I really need to dig into the Unity
- Whipped up some docs for cl-pcg. I think I'll just call it released in
the next day or two and see where it goes from there.
- Watched a big chunk more of the Unity course. I've made a bunch in Unity
already but it's good to follow along with a class and fill in all the gaps in
my self-learned knowledge.
- Added a test harness to cl-pcg. Need to write a couple of simple tests.
- Worked on the game a bit more with my team at the end of class.
- Watched "5 Bits of Good Game Design from 2015" GMTK video. I especially
like the bits about downtime in games and about giving players a reason not
to do something (like saving or killing every enemy).
- Fixed a nasty bug in our game. Multiplayer is hard (at least in Unity).
- More game bugfixes in the lab.
- Pushed v1.0.0 of cl-pcg. Time to move on.
- Added a simple Monte Carlo player to cl-ggp. It'll be used as an example
during my ELS talk. Also added some additional GDL cleaning to cl-ggp's
- Looked around for a simple, cross-platform way to just play a WAV file from
Common Lisp (or at least from C (which I can wrap with CFFI) but apparently
nothing exists. Computers are awful.
- Gonna try updating this thing again now that I'm settled back into the US.
- Tried my first Aeropress coffee. It was a bit sour, which I think is due
to underextraction. Gonna try again with a finer grind (today's was a 13).
- Read a bit more of The Whole Shebang. It's good,
but the bit on the "evolution" of the universe seems like a bit of a stretch,
given that there's not replication mechanism like DNA has.
- Refactored the rate-limiting macro in Bria to be more general. Of course
I immediately ran into edge cases because I'm using this to rate-limit
reloading of the entire bot, which means than all the forms get re-evaluated.
So using a gensym for the key in the macro was not gonna work. But at least
I ran into those edge cases early.
- Started reading through ergolib. Lots of stuff in it, some of it
interesting, some of it a bit crazy. It's fun to see how other people
implement some of the utilities as in my own utils library.
- Read Fast generic dispatch for Common
Lisp. A pretty simple idea at
its core, but Common Lisp's support for highly-dynamic things like redefining
classes at runtime complicates things.
- Streamed some Common Lisp and
ncurses gamedev. Made a spooky little Halloween clicker game.
- Read more of Lisp.
- Started working on this month's Hackerbox.
Got the headers soldered to the Arduino Nano and the pan/tilt thing assembled.
Checked that the sketchy drivers worked to dump code to the Nano and they
appear to be okay.
- Finished reading the code of EasyWFC.
I'll probably try to implement Wave Function Collapse on stream this week.
- Did some preliminary work to get it out of the way for the WFC stream
tomorrow, mostly remembering how to use Sketch.
- Streamed. Did some work on WFC, though we didn't finish.
- Did a bit more on Hacker Box 24. Finished putting the hardware
together, and got the Processing sketch to work with the webcam (finally).
- Read more Lisp.
- Wrote a little Lisp program to calculate ideal padding for hanging two rows of
different-sized photos so that they'll match up.
- Realized that switching to Deploy to build my magitek lib fucked up
the random state generation, and fixed it. This bites me constantly in Lisp
and I hate it.