I’m a professional developer. I’m lucky enough that my job is also my hobby and as such I have tinkered with many side projects. Some of those are merely proof of concepts. Others develop into functioning programs. Those other projects come up from time to time in conversation so I finally figured that I would post them online. Now, besides being proof that they actually exists, I can also get comments on how they were designed and implemented.
My friend hosts a Minecraft server. Over Christmas one year he convinced me to look into the Turtles Mod. It basically lets you program a block that can move left, right, up, down, forward, and backward to perform tasks. Watching how people were using the “Turtles” i came up with some utility function that I build into a library between Christmas and New Years.
My favorite programs is “atn” or Advanced Turtle Notation. This program took a string of characters to drive the Turtle based on the keys used in first person games; asdw. So to have the Turtle go forward 3 and turn left and go backward 2 your would type “atn wwwass”. Now, that was a big improvement of having to write a custom program for that or call different programs for forward and turn, but it could be better. That’s where the advanced part of the Turtle notation comes in. I made it so you could queue up commands and that it was fully recursive. To go in a circle 4 times you could just write “atn 4(4(wd))”. With the ability to dig and place blocks added in its uses were endless, endless.
Other good programs were fuel, and consume.
Fuel was designed to refuel and display the current fuel of a Turtle. I like it cause of its simple interface. Type the command “fuel” and you see the fuel level, pass in a parameter for where the fuel is in the inventory and it would consume it to refuel the Turtle.
Consume was fun because it leverages the functional nature of Lua. Its not exceptionally hard to write a program to recursively search out the next touching block and consume it, even in three space, but to to it with calls to an function that is a template for an action and pass the steps in as a function was a challenge. I honestly look at it and laugh sometimes as I remember how it works.
A WPF 3D demo I made to try out ray tracing to a background element. When you click the tile will change to an inverse color scheme. The tiles are hexes and require that they be laid in an offset pattern. Most WPF / Silverlight examples the view is almost entirely done in markup this I built though code at runtime. I was really excited about property assignment at construction and lambdas at the time so I attempted to make the code look as if C# was a functional language.
The source to a 3×8 pixel LED scroller. Full design and write up is here on this blog!