I forgot IntroComp ended this weekend. But since it did, I figured it was worth it to write a postmortem for Grubbyville, my IntroComp game. Thanks to @harpua and @vlaviano for their time and ideas helping me place!
Still banging through an IFComp candidate. I might not make the cut. I took a detour to rejig a puzzle in A Roiling Original. It was something I sort of forced to make sense but it feels smoother now.
I had to grep a lot of auxiliary and text files to make things consistent, and while it was some busy work, Iām confident I fixed the main stuff. I even uncovered a small bug from when I rotated the names of 5 rooms. Itās wonderful how the simplest parts of grep can go a long way.
Iām still trying to do one small but significant GitHub change per day. Iām 7 weeks away from one per day per year.
Under a month to go with my GItHub goal, with at least a daily code upload.
Iāve been working on a Spring Thing project. A sequel to my IFComp game. Itās kept worrying about reviews on the back shelf. Iāve been trading ideas with someone else who wants to enter in Spring Thing. And that goes to my private BitBucket account, where Iāve been trying to make a daily change too.
But one thing Iāve been happy with is that Iāve used FreeCell as a way to learn new programming languages. I already sort of knew python, but writing a full game in the language helped me learn.
Then I wrote a stripped down version in Ruby and planned one out in Go . With each language I learn I realize that new languages have to make at least as much sense as the previous ones. And the basic building blocks can and should be easy to learn.
11 days til my GitHub goal.
The ideas are still dripping in for Problems Compound, which I should probably release already. I have a big file full of ideas Iāve never used, as if I were waiting for a big moment. But this week I cleared a lot of sections. Maybe not the big ones, but enough to show that the organization worked and I got a lot done.
One thing that keeps slipping away is updates for Slicker City. Someone contacted me on Twitter about an alternate solution for the second-final puzzle, and I realized I hadnāt properly tested some other small fixes.
Also I managed to implement a lot of shortcuts into my Python FreeCell game, including one that lets the game spew moves when youāre close to winning. One of them currently caused a hang, but I have the debug tools in place to fix that.
4 days. Despite the distraction of the election, I got stuff done. In fact, with it over, I chipped away at a lot of weird tools. I guess I had been building up stuff to put off.
The final Slicker City updates got in, and I wrote tests for them, which Iād like to have done in September. I see I could have, and it would not have been that hard, and Iāve jumped ahead to the next game in terms of implementing skeleton puzzles while ignoring the
I had a tangle with changing the name of a commit for my private SC repository. I labeled a commit as āadd file Xā when I didnāt notice Iād only modified file Y. And somehow I messed up deleting the last few pushes and merged, and I went down a whole rabbit hole about learning about git.
I learned why itās so hard to do (altering history in a project is a bad idea because usually it affects other people, and GIT makes you check a few boxes so othersā history isnāt corrupt) as well as a few other things. I have a big long cheat sheet of commands I use regularly with whys and hows, and it helps. I know I spent a lot of time worrying āHow to learn source controlā when really I just needed to get started with a project and go with it.
Iām going to need to merge my post-comp branch this week. There may not be a lot to merge, but the point is to step through and get the basics done. Somehow, just posting that sort of thing here helps me go through with things.
So Iām at a year in a row of commits for GitHub. Some people here already likeād my tweet (thanks!) and, well, a bunch of other people did & it felt cool. And Iāve kept the streak going. Iād like to write a blog post or something about it, the ups and downs, the days I made a cheap silly contribution, and the days I held back just for the streakās sake so Iād be sure of something to do tomorrow. I learned a lot from it all. I think the goal helped me waste less time, period.
I found some bug cases for FreeCell python and in fact the codeacademy site has helped fill in some beginner stuff I ignored for this project so thatās productive. One thing Iām pleased with is that I have a āpā command which stands for plow through the remaining board, or āp2ā plows through row/column 2. So in other words I waste less time per game but thatās no assurance Iāll waste time overall
Since Iām running out of features to add, so I think this project can be wrapped up.
With codeacademy, Iāve learned a lot about javascript, and jquery is now āOh neat thatās what it doesā instead of āsomething powerful and important I donāt know if I should be scared of.ā
I wrote a PERL script to act like a Windows cron job in conjunction with the task schedulerāit runs every half hour. Itās handy as I often dump websites I want to check once a dayāand I donāt have to use the brainpower to REMEMBER them. Itās in my miscellaneous github repository, and itās already helped. For instance I check chessgames.com for quizzes once a day at 11:03 PM with the line
23|DEF http://www.chessgames.com
(It changes midnight Eastern, Iām Central, I put in a few minutesā buffer just in case)
Or I run daily builds of my text adventures with
7h|c:\writing\dict\nitely.pl -a
(7:30)
I also have a pile of writing notes I need to clean up (eg small ideas to add to various games) and thatās sort of a constant problem.
Non programming but still tech-y: I never got around to watching Star Trek as a kid & Iām on season 3 now and will be done soon. So thatās been taking up my time but itās been neat to see āOh thatās where (word X/idea X I remember) came from!ā
Like I didnāt know TāPau (rock group) was named after a character, or Redjac from the Apple II game Taxman (Pac-Man clone) was named after a cosmic ghost-thing. So thatās been fun and amusing.
A year of commits is always impressive!
Thanks! It was well worth it.
I finished Star Trek but also finished some other stuff. A lot more FreeCell fixes and I even tweaked my PERL script to customize a lot. Itās great not to have to remember stuff, and even the command line box popping up reminds me I may have other stuff I want to do.
For my spring thing game I fixed a bug in a semi-complex puzzle. I donāt want to spoil it, but it was a parity problem, and the board layout wasnāt always solvable. I had a sense I was thinking of stuff wrong, and just after midnight I figured the right way to do things. I was about to ask on http://math.stackexchange.com until I figured what to do, and the code cleaned up a lot.
I stayed up a few more hours because that kind of freed my mind for more mundane stuff game coding I needed to do anyway.
I also realized how to replace the final puzzle in A Roiling Original. It was PULL LEVER before but now I have an appropriate verb. This after someone reminded me how I meant to change the dial in Shuffling Around to a lid, so it canāt be budged afterwards. (Howād I miss that for so long?)
I finally wrote that PERL script to shuffle IDās in Trizbort. Itās crude, and it is hard coded to one of my own maps, but it doesnāt corrupt the data. So that was a project I always wanted to check off on. Iād still like to sort the IDās by number, but thatās the next step
I reorganized my new anagram sorter script. I donāt need any new ones, but it was neat to be able to label stuff
"anagram"x
"anagram"d
"anagram"u
And send them to separate sections to add to the code whenever.
A transcript for my Spring Thing game also netted some obvious changes, and I figured how to extend a puzzle and make a silly last lousy point. Itās good to have a head start, and the map finally feels stable. Iām finally committing regularly to Bitbucket even though it doesnāt track things immediately like Github does.
Oops, forgot my update this week.
I got sidetracked with learning other languages, but testing another game shook out some simple things for me. In Slicker City, I realized
A Rate Coop could be a Groove Stone, which more effectively blocks you and is easier to slip a paper into.
I also wrote up some general metrics for my idea files. They track how many ideas are left each day. If an idea is commented out, it doesnāt count. So my nightly build counts up whatās left. Itās effective as a nudge to say, ok, do something today. Iād like to add a target date that says, ok, I need to look through X ideas per day to clear it all out by April 1 or whenever.
One puzzle I completed in my Spring Thing game opened up some questions about PERL/Python I forgot I had. Thereās a lot of stuff I do automatically and finally I was able to question that and see the real reasons why you do things a certain way.
I got all sorts of utilities done but the biggest thing mayāve been rearranging 300 objects from my Spring Thing game to a table. Objects take up a lot of memory and disk space, and the thing is, they were person names. Once I rearranged I saved 170k disk space and 200 memory, which also allows me to write in new code lines easier going forward.
I had to do a lot of hard code I wrote 6 months ago when I considered this solution but dismissed it as too simple, but at the end, I figured a few ways to tweak puzzles with the new organization. So it was a big win.
This week I managed to invoke a daily script which shows my progress in whittling down ideas. I just comment them out for later and I can kick the commented ideas to the end of a long list. Iām on pace to look through all my ideas by March 1st.
I also planned to ask a bunch of questions at stackoverflow to get my rep over 100, but itās stalled at 88. Whenever I research beforehand, Iām able to work out what to do.
Hashes really can do everything in PERL.
My before year end goal is to have a look at COBOL, LISP and FORTRAN and understand the basic language. New Year resolutions can be sticky but fitting in one or two things before the new year usually works for me.
My RPG tools repo (specifically my map converter) has been getting a lot of small fixes. Itās amazing how much having source control helps me nail down, try out, and test ideas rigorously. The one cute thing I always wanted to do was to be able to generate LCD-style number icons, and when I wrote it down while working out, well, there it was.
Iām also working on testing a non-text adventure. I donāt know if I can publicize it, but itās helped me tweak the āmapconvā app and try new things I always meant to. I only wish I could find more 8-bit RPGs to write maps for. I donāt know of any that need them, so any help is appreciated.
I had a nice breakthrough for my Spring Thing game, where I managed to look through all my basic ideas. I figured the names of the towns/areas. I only had one before and it felt a bit awkward, but it was a good stater idea. One of the final towns still may not be 100% right but itās a lot better. This is what starting earlier and regularly thinking about something can do. I also implemented the final puzzle even though Iām not sure how to get there yet.
I took a look at the repository, but Iām unclear on what the map converter does. What does it do and how does it work?
Oops. The readme files werenāt up to scratch.
The basic idea is that mapcpy reads data from a binary file and dumps it onto a bmp. for instance if there are 400 bytes that specify a 20x20 town, you can specify h=20, w=20, etc.
Then once mapcpy is run, mapconv reads in the BMP file created and links it with an icon file. For instance, if the created bitmap file reads (with each 256-row)
01 01 01 01 01 ā¦
00 00 01 00 00 ā¦
00 00 01 00 00 ā¦
00 00 01 00 00 ā¦
01 01 01 01 01 ā¦
and the nmr files says 0,0,4,4, and 0x01 is defined as a red block and 0x00 as black in the icons file, youād get a red I.
I probably need a more visual example of this, but your question started me going, so thanks for that.
You had mentioned the trouble of finding 8-bit games to test the system on, which got me wondering if your system could be applied to tile-based systems like games created with the Adventure Creation Kit (despite not being 8-bit). Looking at it closer myself, I imagine itās both out of your programās scope and that ACKās map editor already provides the a similar functionality.
Iāll be curious to hear about other games that meet your requirements, though!
OMGā¦I had no clue there was a modern working version of ACSā¦And it works on Mac!!!
I have long said I would love to mess around with this!!
I didnāt realize it had taken so long for my next post. But after organizing MAPCPY a bit more (basically writing files to convert several old games), I realized Iād missed a few, so I may write a few maps I never considered this year.
My files are at https://github.com/andrewschultz/rpg-mapping-tools/tree/master/samples ⦠this is a big project for me as I remember writing about 30 very similar apps and thinking, well, youād need a super advanced expert to pull it all together. After some thinking I saw a way to maybe conglomerate MAPCPY and MAPCONV. Which would also be big.
Iāve had a lot of other progress such as a silly app to clean up my PERL scripts. Until last year I never used
use strict;
use warnings;
So my task was to find and clean up everything and fix up weak code on the way. I even wrote a clever (I think) regex to convert ā@x[1]ā to ā$x[1]ā.
One thing I did was to add Trizbort logic-flow maps for all the areas of A Roiling Original that needed it. Itās a bit more feature-creep, but Iām pleased how they turned out.
https://github.com/andrewschultz/stale-tales-slate/commits/master/Roiling/maps
The thing is Iāve been doing something every day but nothing spectacular popped out yet.
Well, it hasnāt been a full week yet, but I remember saying that before and then not doing anthing here for 3 weeks.
I wrote up Shuffling Around flowchart maps to go with my Roiling Original maps. I even cleaned up all of the Roiling maps so that the lines donāt intersect. It was a fun puzzle and got me interested in if this is always possible, or not.
I think these will make nice feelies for the next release, which has already been delayed long enough.
I also realized I could roll up all these maps into one big PDF with PDFTK. I can throw on an introductory page and itāll make a nice document, I think. Iāll try to do that tonight.
My Spring Thing game is finally falling into place, I think.
I also managed to finish a piece of code that takes some old maps I wrote and breaks down the 8x8 icons, a sort of reverse OCR. Nothing that complex, but I managed to add a lot of optionsāand it works.
I also put the finishing touches on a program to figure out ELO ratings for the Big Ten. Iāve been hanging around a Purdue site (I was born there) and hadnāt seen an ELO rater and always wanted to do one for a real world scenario. I wrote one for a review contest years ago but finally put it in place with predictors, home/away adjustments, etc. It was neat to watch ratings bump up and down. Some people gave ideas for features, and that made it a neat project.