Tag Archives: programming

Starting work on Cybrinth again!

so I’m starting to work on Cybrinth once more. There’s a lot of stuff on my todo list for the game, the most important of which is the implementation of a settings screen so players can change settings in-game, without having to go and edit the settings file manually. Now I face two challenges:

  • Decide whether all the settings should be accessible from the settings screen, or only some. If not all, which?
  • Preferably preserve all the comments in the settings file, as I feel that they serve as useful documentation when somebody does edit the file manually.

Looking for a cheap & hackable phablet

so my Kindle Fire tablet died a few days ago. Completely dead. Once it died I tore it apart to see if it had an SD card inside which might have private data (it didn’t have a card). Now I’m looking for a smartphone or tablet to replace it.

  • Must be cheap. Like $20 cheap. All I ever used the KF for was listening to podcasts and occasionally checking email, both of which I can easily do with my laptop. I carry my laptop everywhere anyway; the only benefit to using a separate device was that I could use it without having to pause whatever game I happened to be playing on my laptop. I like to game while listening to podcasts.
  • Should be a phone, does not have to be. I have a cameraphone which works well enough, but I do like the idea of having one device that does everything. I sometimes wonder why bigger computers don’t have phone capabilities. I mean, it used to be common to see physically large phones sitting on a person’s desk right next to their physically large desktop computer. Computers even used to have modems, by which phone functionality could be integrated into these general-purpose computers. I want cell phone abilities in my laptop: the ability to make and receive calls (all laptops now have speakers and microphones) and to type SMS text messages on a real keyboard (ok, I know you can do that: you can send them as emails, but you’ve got to know which carrier originally issued the phone number. E.g., my phone number was originally issued by AT&T, so if you wanted to email my phone you would send the message to [phone number]@txt.att.net even though I’m now a Consumer Cellular customer. My point is this functionality should be built-in and should require as little guesswork/research as it does when using a phone.)
  • Must be hackable. I believe in the concept of property and the first sale doctrine. When I buy something, I want it to be mine. Not Apple’s, Microsoft’s, or Motorola’s. I want to be able to install F-Droid and CyanogenMod and Clapdroid and anything else, without having to seek the approval of some company convinced that they own my legally bought and paid for device.

Auto-publishing posts from Python

As I work on my latest program, Markov Comic Generator, I find myself increasingly wishing that it had the ability to automatically post the generated comics to this site. The way I’m currently handling auto-posting of Mimi and Markov works but is not optimal: I wrote a shell script which, after running MCG, scp‘s two copies of each comic to a certain directory on the server. One of the copies is named with the current date, the other is always given the name “current.png”. On this site I have a static page which always shows “current.png”. I also have a WordPress plugin called FileAway which is responsible for generating the RSS feed and the file list displayed on the past comics page.

This is undesirable because it relies on extra software being installed on both the blog server (FileAway) and the computer running MCG (scp).

I’ve found out that both WordPress and Python support this protocol called XML-RPC. All I have to do now is figure out how to get them to play nice together…

The design philosophy behind Cybrinth

I wrote this earlier today for my game project Cybrinth. I figured I’d post it here as a blog post.

The game’s design philosophy is really quite simple: Make as few assumptions as possible about the player or the computer on which the game will be played. That’s it, summarized in one sentence. That’s the reason behind nearly every decision.

Resulting from that overarching goal are some subgoals: Continue reading The design philosophy behind Cybrinth

Cybrinth update

Just thought I’d post a small update about Cybrinth, the maze game I announced in my last post.

I’ve added AI now. The bots aren’t very smart, but they’re certain to finish the maze eventually. You can change the number of bots (anywhere from 0 to 255) by editing the game’s config file. It’s really mesmerizing, just sitting back and watching a hundred or so of them wander through maze after maze. The AIs don’t yet have all the features I’ve planned for them; I have yet to add any solving algorithms other than depth-first search, they all must find the solution as they play (as opposed to already knowing the best path to take), and they forget everything once all the keys have been found. That’s my quick-and-dirty solution to let them deal with a changing maze: when the locks disappear, the bots forget everything they know about the maze and start exploring all over again. Even if the last key is right next to the goal, there’s a good chance that a bot will turn around and explore the whole rest of the maze all over again. Continue reading Cybrinth update

Announcing Cybrinth

I’ve been working on this project for several months now, off and on (mostly off). It’s a low-priority side project that I pick up whenever I feel like programming, which is not often.

The project is a game called Cybrinth. It’s a simple maze game which draws stylistic inspiration from early video games, particularly EGA/CGA games for the IBM PC. I even decided to limit myself to using only CGA colors, though I can use all 16 of them at once rather than being limited to four like on a real CGA system. In terms of screen resolution, I opted for as much flexibility as possible: this would probably work on a screen as tiny as 320×200 (the resolution of CGA’s standard graphics mode) or on a modern 1920×1080 display. For music, I wanted something which reminds me of retro video games but still takes advantage of modern technological abilities. Something with sort of an electropop or chiptune style. The tune that has inspired me most in this regard, and which the game currently plays as background music, is “Beavis II” by Maf, found on Jamendo. Continue reading Announcing Cybrinth