[TOC] [aeropress]: http://amzn.to/2zZq5GT [bearlibterminal]: https://bitbucket.org/cfyzium/bearlibterminal [bria]: https://bitbucket.org/sjl/bria/ [chancery]: https://bitbucket.org/sjl/chancery/ [cl-blt]: https://sjl.bitbucket.io/cl-blt/ [cl-ggp]: https://sjl.bitbucket.io/cl-ggp/ [cl-losh]: https://bitbucket.org/sjl/cl-losh/ [cl-nrepl]: https://bitbucket.org/sjl/cl-nrepl/ [cl-pcg]: https://sjl.bitbucket.io/cl-pcg/ [clojure-lanterna]: https://github.com/MultiMUD/clojure-lanterna/ [dieharder]: https://www.phy.duke.edu/~rgb/General/dieharder.php [ELS]: http://www.european-lisp-symposium.org/editions/2017/ [ergolib]: https://github.com/rongarret/ergolib [euler]: https://projecteuler.net/ [gmtk]: https://www.youtube.com/user/McBacon1337 [lisp3e]: http://amzn.to/2y0dnWG [local-time]: https://common-lisp.net/project/local-time/ [magitek]: https://github.com/sjl/magitek/ [pandabt]: http://www.pandabehaviour.com/ [PCG]: http://www.pcg-random.org/ [procjam]: http://www.procjam.com/ [qud-ds]: https://www.twitch.tv/ptychomancer [recreations]: http://amzn.to/2zfRHre [sand]: https://bitbucket.org/sjl/sand/ [scully]: https://bitbucket.org/sjl/scully/ [shebang]: http://amzn.to/2zYB1nN [sjleuler]: https://github.com/sjl/euler [Sketch]: https://github.com/vydd/sketch [surreal numbers]: http://www.amazon.com/dp/0201038129/?tag=stelos-20 [temperance]: https://bitbucket.org/sjl/temperance/ [deploy]: https://shinmera.github.io/deploy/ [hackerbox24]: https://hackerboxes.com/collections/frontpage/products/hackerbox-0024-vision-quest # January 2017 ## 2017-01-26 * 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](https://github.com/sjl/sand/blob/master/src/names.lisp) based on some ideas from last week's [Caves of Qud dev stream][qud-ds]. ## 2017-01-27 * Polished up my ELS paper. ## 2017-01-28 ## 2017-01-29 * 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. ## 2017-01-30 * Handed off maintainership of [clojure-lanterna][]. * More platformer work. Finally got the fucking sprite pack working. I hate things with no documentation. ## 2017-01-31 * Got nerd-sniped and ended up implementing [PCG][] in Common Lisp. # February 2017 ## 2017-02-01 * Started working on a constrained game with my team for AGDD. ## 2017-02-02 * 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. ## 2017-02-05 * More juice to the constrained game. Been doing non-computer stuff lately. ## 2017-02-06 * Implemented a little easing API in my [sandbox][sand] repo. * Made the pluralization rules in [Chancery][] slightly less awful. I should just sit down and fix it right some day. ## 2017-02-07 * Chatted with my advisor a bit and solidified my plans for the home stretch of [Scully][]. * Made a little Lisp wrapper for [bearlibterminal][]. Learned more about SBCL's floating-point traps than I wanted to. ## 2017-02-08 * Worked more on our constrained game with my team. Got something almost game-like now! ## 2017-02-09 * More constrained game work. It's an actual game now. Fun. * Changed all the `#:foo` uninterned symbols in [Temperance][] to regular `:foo` keywords. Memory is cheap. ## 2017-02-10 * 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][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. ## 2017-02-11 * Added basic level generation and scrolling to my AGDD minimal game. Also sound. * 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][]. ## 2017-02-12 * Did another [Project Euler][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. ## 2017-02-13 * More [Project Euler][euler]. Math is fun. * Fixed up the universe-based matching in Scully. I'll need it soon for the percept matching. ## 2017-02-16 * More [Project Euler][euler], this time I had an excuse to poke at [local-time][]. ## 2017-02-17 * More tiny [Project Euler][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. ## 2017-02-20 * More [Project Euler][euler]. * Poked a bit more at my minimal game. It's gonna be *very* minimal. ## 2017-02-21 * Finished the damn minimal game. * Another [Project Euler][euler] problem. ## 2017-02-24 * Chatted with my advisor and did more work on [Scully][]. The home stretch is in sight! * Tipsy [Project Euler][euler]. ## 2017-02-25 * More [Project Euler][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. ## 2017-02-26 * More [Project Euler][euler]. * Watched the second part of the Merry Fragmas 3.0 Unity session. ## 2017-02-28 * More [Project Euler][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. # March 2017 ## 2017-03-01 * Started poking at a prototype game my teammate made. * Added a janky priority queue to [cl-losh][]. ## 2017-03-02 * Finished the stupid [Project Euler][] poker problem. This isn't math. ## 2017-03-03 * More [Project Euler][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. ## 2017-03-04 * More [Project Euler][euler]. * Poked around at [PandaBT][]. Behavior trees are really weird. * Watched [Why is Gone Home a Game?](http://www.gdcvault.com/play/1020376/Why-Is-Gone-Home-a). * Read chapter 3 of [Surreal Numbers][]. Not much to code for this one, I think. ## 2017-03-05 * Worked on our game with my team. ## 2017-03-06 * Watched [Math for Game Programmers: Building a Better Jump](https://www.youtube.com/watch?v=hG9SzQxaCm8) 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 a platformer. * Implemented a bunch of simple (but necessary) API functions in [Scully][]. ## 2017-03-08 * Passed maintainership of [rerun](https://github.com/mandarg/rerun) over to [@mandarg](https://github.com/mandarg/). ## 2017-03-14 * Did the final bit of plumbing to make [Scully][] actually play games with the game server. It works! * Added `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. ## 2017-03-15 * Did a bunch of stuff on my team's game. I really need to dig into the Unity networking documentation... ## 2017-03-16 * 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. ## 2017-03-17 * 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. ## 2017-03-20 * 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. ## 2017-03-21 * 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). ## 2017-03-22 * More game bugfixes in the lab. ## 2017-03-23 * 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 reasoner. * 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. # October 2017 ## 2017-10-29 * 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][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. ## 2017-10-30 * Work. * Read [Fast generic dispatch for Common Lisp](http://metamodular.com/generic-dispatch.pdf). A pretty simple idea at its core, but Common Lisp's support for highly-dynamic things like redefining classes at runtime complicates things. ## 2017-10-31 * Work. * [Streamed](https://go.twitch.tv/videos/186653039?t=6m45s) some Common Lisp and ncurses gamedev. Made a spooky little Halloween clicker game. # November 2017 ## 2017-11-01 * Work. ## 2017-11-02 * Work. * Finished writing [documentation](https://sjl.bitbucket.io/chancery/usage/) for [Chancery][]. ## 2017-11-03 * Work. * Submitted [Chancery][] to Quicklisp. * Continued reading [Lisp][lisp3e]. Learned about [dribble](http://clhs.lisp.se/Body/f_dribbl.htm). ## 2017-11-04 * Read more of [The Whole Shebang][shebang]. * Read more of [Lisp][lisp3e]. * Read more of [Recreations in the Theory of Numbers][recreations]. Ended up implementing some [aliquot sequence](https://en.wikipedia.org/wiki/Aliquot_sequence) functions in [my Project Euler repo][sjleuler] for fun. * Fixed the bitrot in my [magitek][] repo so I can make some bots for [procjam][] later this week. * Did another section of the Udemy Ardunio class (sound sensing). ## 2017-11-05 * Read more of [Lisp][lisp3e]. * Started working on [this month's Hackerbox][hackerbox24]. 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](https://github.com/heyx3/EasyWFC). I'll probably try to implement Wave Function Collapse on stream this week. ## 2017-11-06 * Work. * Did some preliminary work to get it out of the way for the WFC stream tomorrow, mostly remembering how to use [Sketch][]. ## 2017-11-07 * Work. * Streamed. Did some work on WFC, though we didn't finish. * Did a bit more on [Hacker Box 24][hackerbox24]. Finished putting the hardware together, and got the Processing sketch to work with the webcam (finally). ## 2017-11-08 * Work. ## 2017-11-09 * Work. ## 2017-11-10 * Read more [Lisp][lisp3e]. * Wrote a little Lisp program to calculate ideal padding for hanging two rows of different-sized photos so that they'll match up. ## 2017-11-11 * 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.