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.
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
(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
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
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
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” to “$x”.
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.
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.