Blog posts tagged "projects"

This is a post that I intended on writing yesterday, but I got distracted with providing context and the post got too long. So I'm going to talk about Godot today!

For some (quick) context, I work on a randomizer mod for a game called Lingo. Lingo was made in Godot 3.5, which makes it pretty easy for me to mod it. I can write scripts that just get arbitrarily executed within the game's context, and Godot has some nice features for modding including allowing me to inject my own code by subclassing the base game's scripts and then replacing them live with mine. It's pretty wild how it works. Here I am straight up disabling a feature on one of the game's object types:

extends "res://scripts/panelEnd.gd"


func handle_correct():
    # We don't call the base method because we want to suppress the original
    # behaviour.
    pass

I'm kind of abusing the game's custom map system to do this, but even without a built-in hook like that, Godot has ways to allow players to execute arbitrary code in the context of any game.

Now, one of the interesting things about working on this mod has been distribution. Lingo has Steam Workshop integration, where you can upload custom maps (which my mod technically is) and then subscribe to them in order to make them available right in your game. However, you can only upload a single file as your custom map... or, at least, that's what I thought for a very long time. This eventually turned out to not be true, but for now let's assume we have the restriction of only distributing a single map file.

Read more...
Hatkirby on
πŸ‘ 5 πŸ‘Ž

There's a game called Lingo that I am both an avid player and modder of. It's like a cross between The Witness, Antichamber, and word puzzles. You're trapped in a maze of non-euclidean hallways filled with word puzzles and you have to figure out the rules to those puzzles yourself. There's also way more base game content than you'd expect. You should play it! There's my spiel.

In fact, if you have any interest in playing this game, you may want to give at least the first level a good try before reading on in this post, because towards the end I spoil some of the puzzle mechanics.

Anyway, I said that I both play and mod this game. I've mentioned in a previous post that I'm involved in a randomizer project called Archipelago. It's an open source framework for randomizing multiple games together, and I maintain the randomizer for Lingo. It's been a lot of fun to work on over the past couple of years, and I've continued adding features to it long after release. One of the features that people have continually asked for since the very beginning is new puzzle generation.

Read more...
Hatkirby on
πŸ‘ 7 πŸ‘Ž

Back in 2009, I made a little game called Maze Of Life. In each level, you are placed into a randomly generated maze, and you have to make your way to the centre. The goal is to complete as many levels as possible without getting stuck.

The natural question here would be -- how do you get stuck in a maze? Therein lies the twist with this game. The mazes are generated using a cellular automata similar to Conway's Game of Life, and the rules of the automata continue to apply while you are playing the level. This means that the walls of the maze can shift around you when you walk by them. Every level begins in a completable state, but you can make it incompletable based on your actions. You can get pretty far using skill -- there are patterns to the shifts in the maze that you can pick up on -- but sometimes? Sometimes your luck just runs out.

To make a long story short, despite this game being written in C++, it is now available to play within your browser:

And now I'm going to talk about it, because I have a tooth infection and I'm too dizzy to play video games.

Read more...
Hatkirby on
πŸ‘ 2 πŸ‘Ž

Thumbnail2So, as you may have noticed, Four Island was just down for about a week. Nearly. Well, you may have not in fact noticed this because you may have instead noticed that I haven't posted for about four months. Yikes. I have some weak, barely feasible excuses that I will talk about later, but I first want to talk about Four Island's recent downtime.

As you may know, Hurricane Irene recently hit New York, bringing with it a huge reaction of "WHAT THE FRUGALITY IS GOING ON I DON'T UNDERSTAND THIS AND THAT MAKES ME ANGRY" from virulent New Yorkers who have never seen a hurricane before and really just wanted something to overreact about. Sure, if you add the earthquake a couple of weeks ago, we have been experiencing some natural phenomena that we aren't really used to as East Coasters, but Irene was just downright exploitable. I'm getting kind of sick of the "HURT BY IRENE? WE'VE GOT YOUR BACK--AND YOUR TORSO TOO! LOL" commercials all over the radio. Oh, and I don't care that Irene was only a category 1 tropical storm by the time it reached New York, it has an official name. That name is Hurricane Irene. Stop trying to be so smart.

Irene did have quite an impact on Four Island, anyway, as it caused a record number of power outages across Long Island. Yeah, we were all quite angry at LIPA. I've never been in a power outage longer than a day before and this was pretty ridiculous, especially considering LIPA completely refused to give out any information to anyone. I walked down the street I live on (since by the third day, everyone around us (we live on a corner) had regained power and it was pretty much just our street that was still out) and saw a broken box with severed wires hanging from the power line and took a picture of it, as can be seen to the right, but apparently that can't possibly cause a power outage. :| The actual problem was a whole bunch of fallen power lines down at the end of the street, but still. At least power has finally been restored.

Thumbnail3Now, on a completely different subject, as an official iOS developer (check out the business my friends and I set up! Apathetic Ink), I have access to some neat prerelease stuff. This includes iOS 5 beta, which has been tempting me for a while and god I just have to try it out. My dilemma? No untethered jailbreak. I wasn't really sure if I would be cool with a tethered jailbreak, but I eventually figured that the main and almost only reason I jailbreak is for scrobbling, right? Well, if I tethered jailbreak, it's A) unlikely that I'll ever really be more than a day away from my computer, so I'll always be able to rejailbreak pretty quickly and B) I could find some ugly app on the App Store that scrobbled in the foreground and use that when I lost my jailbreak. Sounds okay, right? Besides, iOS 5 just sounded so great and I had to have it.

Well, how did it go? Well, first of all, iOS 5 is just amazing. Can't wait until Apple releases it, hoping they first polish some stuff up. Notification Center? Freaking amazing. I love you, I love you Notification Center! iMessage, too, is amazing and makes me wonder why I even installed WhatsApp. Syncing in the background, though I already had that functionality through my jailbreak, is another great feature and all the other little features Apple has sprinkled over this update really just... make it difficult for me to go back to 4.3. Why would I do that? Well, remember when I said I would only have a tethered jailbreak? Yeah, barely. Somehow, before upgrading to iOS 5 (perhaps because I hadn't read it yet), I missed this paragraph in the text about redsn0w for iOS 5 beta:

THIS JAILBREAK IS INTENDED ONLY FOR DEVELOPERS OF JAILBROKEN APPS! There are just too many broken components (Apple’s official apps, 3rd-party App Store apps, Cydia apps, MobileSubstrate apps, etc) for this to be useful to anyone but those truly looking to fix bugs in their iOS 5 jailbroken apps. (Seriously!)

iPhone Dev Team

There was one app, ONLY ONE APP that I needed to work on jailbroken iOS 5... and Scrobbl disappointed. Gah. I tried to find some way to survive; I downloaded iScrob from the App Store, and as you can see to the left, it is rather ugly. Sorry developer. Sitting here, listening to Adele (darn this is catchy), I decided I really was not very happy with it, and I was especially not very happy with having to break away from the official Music app. I'm fairly sure now that after I'm done writing this post, I'm going to restore to iOS 4.3.3. Thank god for SHSHes.

Apple, please listen to me: INTEGRATE LAST.FM INTO iOS. You integrated Twitter, why not last.fm? Spotify has it, please join the party. You would make a lot of people very happy and I probably wouldn't even jailbreak if I could scrobble songs from the official Music app.

Now, finally, I'm going to talk a little about Four Island 3. I've been mentioning the new version of my website for quite a while now and while I don't want to get any hopes up, it may be coming out fairly soon. As soon as I get a good upgrade plan down (god I'm busy), it should be good to go. The reasons I haven't really been posting lately are A) April-June was an ehh time for me and posting wasn't really my first priority and B) once I finally had some free time around August, I decided I didn't want to post until Four Island 3 came out. Then, Irene and iOS 5 happened and I realized that, ugly as my website is at the moment, I really want to write stuff and have other people read it. I'm really hoping, though, that I'll get around to releasing Four Island 3 soon because it will be great and awesome. Expect a massive post explaining a whole ton of superfluous stuff when it gets released. :P

Hatkirby on
πŸ‘ 0 πŸ‘Ž

Sometime last year, after MSN became uncool and before I realized there was such a thing as Google Talk, Skype became the primary method of communication in my circle of friends. I have to say I regret this decision SO much, and it's due to one single fact: I am insane. Lol, no, but the problem is, as I've mentioned before, I have to have a log of every conversation I've had with my friends and while Skype will log your conversations for you, it makes it very difficult for you to interact with them. You have to actually use the Skype client to read your chatlogs--they aren't stored in text files and you can't just go find the files and read them. Also, Skype displays all of your conversations with a contact at the same time and you have to wait while Skype loads them all. Clearly, for an insane person like me, this isn't acceptable.

Since then, I have mainly switched to Google Talk and so have a few of my friends. Some of them still use Skype, however, and so I am forced to use the skype4pidgin Pidgin plugin to communicate with them. Sure, it requires that Skype is kept open, but it doesn't matter to me because Pidgin logs our conversations and that's all I really care about.

However, there is still one problem: all my logs from before the switch are still trapped inside of Skype. How do I get them out? I've searched around on Google quite a bit and finally found a solution: Skype has a feature in it called the Public API. With a bit of coding skill, you could use that to get information out of Skype. Perhaps even, chatlogs? :P

Anyway, the only bindings for the Skype API I could find were in Python (Skype4Py), so I quickly learned the basics of Python and set myself to work. And soon enough, I had a little script that could export all of your Skype chatlogs into HTML files, similar to how Pidgin stores your logs. I was really quite excited about this and decided that I wanted to share it as it was probably a common goal of many people.

Here it is, my little script that could: Download skypelogs2text.py.

Here's how to run this script. First off, make sure that Skype is running and that you are logged in. Next, if you run Linux:

sudo apt-get install wget python python-skype
mkdir skypelogs2text
cd skypelogs2text
wget http://other.fourisland.com/skypelogs2text.py
chmod +x skypelogs2text.py
./skypelogs2text.py

Skype will ask you if you want to allow the script access to the Public API and you should let it. :P Anyway, if you have Windows, since you are probably less familiar with the terminal interface, let's run through this graphically:

  1. Download Python from its website and install it.
  2. Download Skype4Py from Sourceforge and install it.
  3. Download my script into an empty folder.
  4. Double click on my script.
  5. Skype will ask you if you want to allow the script access to the Public API. Click "Allow".

Either way, you will then have to wait. Depending on how many conversations you have stored in Skype, this may take quite a while. I had 371 on Linux and it took eight minutes and six seconds. Regardless, when you are done, you should have a folder called "logs" that contains a folder called "skype" that contains a folder with the same name as your Skype handle that contains all your logs. Isn't that great? The logs folder can be integrated with your normal Pidgin logs folder and then you will be able to read your logs from the Pidgin log viewer. :D

So, now that I've accomplished this, what's next on my checklist? Get my friends to stop using Skype! (And Facebook Chat, for that matter, but that's going to be taken care of :P) I would like it if more people switched Google Talk (my favorite feature of theirs is that all conversations are logged on the server so even if you cannot log from your client, they will log for you :P), but it's lack of accessible video-chat may be stopping that from happening. However, you just wait: when FourChat comes out, there will be no stopping me! laughs evilly :P

Hatkirby on
πŸ‘ 0 πŸ‘Ž

Yes, the public has spoken. I have gone quite insane. Look see:

Randomlog. Awesome idea or Starla's gone insane again? OMG THIS IS SO AWESOMELY RANDOM I LUV RANDOM YAY INSANE LOL YAY - 2 vote(s)! whut. You're already insane. You're more than that! Do something! - 5 vote(s)! What's Randomlog? - 1 vote(s)! Indifferent - 1 vote(s)!

So, Randomlog has been dissolved. I know, I think I went temporarily insane last week. However, I have a replacement life for it. Don't think it's legacy is dead! Because... something!

I have been trying for A VERA LONG TIME to get it through my THICK head that THIS IS MY PERSONAL WEBSITE. OMG. I CAN POST. WHAT I WANT. ON IT. AAAH. I've keep telling myself that I can post freely here, and yet, it never happens. However, I think that is going to finally change. Now that Randomlog has been dissolved, I need another place to pour that random creativity into. Where should that be? Right here, right? No, I won't be posting Pink Panthers here because I know they are heavily despised. No, come back! :P

Now, Randomlog, as seen above and from the results of this week's poll that have already come it, was not a very popular place. I blame Pink Panther. :P However, I really liked both the Caption'd thing and the My Life Is Happy segment (which I never actually explained), so what I've decided is that I'll post a Caption'd along with every week's poll results and I'll just post My Life Is Happy pieces, as well as other randomly fun stuff, directly to my blog. Won't this be fun?

Because four Caption'd images have already been exhibited, I won't be cheap and spend four weeks showing images that have already been seen. I'll post those four images today PLUS a new one, and every week from now, I'll post one. Doesn't that sound great? prays

What I Like About... Starch Image

Gleefully Descrated Image

What I Like About... Tina Image

Robes Image

And here's the new one!

Tina's Creation Image

Yay! Anyway, my final topic in this extremely long poll post is that I really didn't like what I did last week with combining a poll post with a real post. It just produces too many problems. Therefore, while last week will not count as breaking my annual goal, I will no longer be posting ONLY on Saturday. I have to post at least one more time during that week.

Really, I think my problem with poll posts is that, because I don't post other things that frequently, there's so many of them. With this (hopeful) new posting regime, this shouldn't be a problem anymore. Yay! Let's see how it works out. :)

Hatkirby on
πŸ‘ 0 πŸ‘Ž

For a very, very, very long time, native Four Islanders have communicated via a channel known as "Yaplet". However, many scorned Yaplet for it was never available, often slow and, possibly the most annoying (to me, anyway :P), did not allow you to log chats. Yes, as stated earlier, I'm a freak obsessed with chatlogs. :P

Anyway, the other day, I was discussing on The Fourm how we needed to find another place to talk in a room and suddenly, it hit me: start an IRC server! So I did! An hour later, FourNet was born. Yes, it really took an hour to set up the server. What can you expect? I had a bad SSH connection and atheme was stabbing me.

I made a pretty page for FourNet. The FourNet Page! YAY! There's an IRC web-client on that page that you can use if you want to see FourNet without downloading an IRC client, and there's also a page with some cool statistics about random people who frequent #fourisland. :P

It's not just a boring old chatroom, btw. I installed a chat bot! Meet Fourie! Fourie (who was named after the Four Island mascot, obviously) is very odd and has already spawned some pretty hilarious quotes such as:

359 - Intern molesting

361 - I Love TimTam

362 - Leaving

368 - Kicked

369 - Hatkirby's Virginity

Anyway, YAY! FourNet is a fun place and we like messing with Fourie's mind. Come and join our insanity by visiting the FourNet page and.... yay! :D Have fun, random stuff!

Hatkirby on
πŸ‘ 0 πŸ‘Ž

I quite clearly have a problem. I call myself a programmer, but really, when was the last time that I programmed? My project management system tells me that the last commit on The TGS Website, my current project, was on March 16th. The most recent thing that I've released was probably Layout 7 back in August. Therefore, I'm a fail.

What do I blame my current programming laziness on? My extreme obsession with archiving. I'm sure that's a mental disorder or at least a byproduct of my obsessive-compulsive disorder because it's really unhealthy. My music library has the have the exact date I started listening to a song and it has to have the exact number of times I listened to it. When I chat with someone, I must be able to access some form of log. And when I started the revival of the TGS website project, I started to track the time I program.

I have an extremely tight procedure when it comes to programming: write a ticket, start the timer, implement the feature, commit the code, close the ticket and log the time. This is very unhealthy as it puts me off from coding because I feel that it's too much work to fix a simple bug or implement a simple feature. While I know that source control and issue tracking are very good practices, I am very strict with my implementation of them and the addition of time tracking is too much.

Therefore, I need to come up with a new strategy. I think the best thing to do would be to eradicate the time tracking part of the process. While that doesn't resolve everything, it would get me back to where I was before, and didn't I manage to release Layout 7 for Four Island last year? I think that if I try to maintain a healthier programming strategy, this laziness streak would end. I sure hope so, anyway.

If anyone has any suggestions for a healthier programming procedure, I'd be very happy to hear about it. Leave a comment! :P And new commits should start appearing in the TGS Website repository before long if this decision works :).

Hatkirby on
πŸ‘ 0 πŸ‘Ž

YAY I LIKE PILLOWCASE. Anyway, yay! I guess it was worth the wait, eh?

AWWW YEAHHHHHH - 10 vote(s)! No, I mean no, I mean no, I mean no, I mean no - 0 vote(s)! Maybe? - 0 vote(s)! Indifferent - 1 vote(s)!

Okay, I know, I failed. I ultimately failed with my True Falsities revival. I posted once, and then ate a brick. Sorry. I really don't know how I can try to revive TF if I can't even post on it. So, first off, I failed my goal. No neutrality, I just flat-out failed it. Second, I'm reconsidering freezing True Falsities. We could either freeze it and leave it as it is, or keep it unfrozen in case anyone randomly decides to post on it. I doubt people would post on it anymore, but it's not my choice (well, it sort of is), it's the voters' choice. Sort of. :P

Hatkirby on
πŸ‘ 0 πŸ‘Ž

Through the popularity of my current comic (Pillowcase!), it's sometimes difficult to remember that I once had a different comic: Kirby's Fan Mail. Yeah, remember that? That was a.... weird little comic, wasn't it? Yes, anyway, I recently had it brought back to my attention when I was looking through my Google Analytics. I saw a referral to Four Island from something called badwebcomics.wikidot.com, and I though, "Hm, what could that be?" So I went to the page in question and found.... a review of Kirby's Fan Mail explaining how it fails and how I'm mentally challenged! YAY! :P

Seriously, I'm not being sarcastic. The article actually was about how stupid the comic was and I seriously find it VERY amusing. Read it here, plez. 'Tis awesome. Like how he points out that I can't draw or that I think word salads are comedic gold.

However true or funny the article may be, however, there are some points I would like to make in my defense:

  • First of all, the author of the article spelled my last name incorrectly. It's Insigna, not Insignia.
  • One of the author's favorite things to make fun of was a comic of mine called Shimi's Warning, which he described as incredibly stupid because it was just a picture with a link to an off-site comic. There are several reasons that I had to do this. First off, Shimi's Warning was done in Flash, which, due to a technical limitation of the comic hosting software, could not be hosted directly on the site. Second, the only thing you can post in the comic area on that site is comics. You cannot just post text. Yes, I probably should've provided a text version of the URL so people could just copy/paste it, which I eventually did. However, the comic itself has since gone down which is really not quite a shame because it was pretty bad.

And.... that's really all I can think of right now. It's not too easy to defend KFM :P. In fact, here are some things that I think the article lacks:

  • Blatant copyright thievery - After writing a comic involving a cookbook, I posted a comic from the original Kirby manga because it had to do with the previous comic. Yeah.
  • My total non-coolness - Yeah, four years ago, I didn't know what "emo" meant. So I probably embarrassed myself.
  • The whole "world trip" debacle - For a few comics, I talked about having Kirby go on a trip to other people's comics and do stuff. Instead, I stopped posting comics for two months and simply had him write a letter of apology when I got back. Wow, my failness never fails to fail!
  • Same with the "awesome" 50th Comic Party.
  • Homophobia.
  • There is clearly no food in this one, yet he claims he is eating it.
  • The punch line of this one is the fact that the sender of the letter didn't leave a name. Ha-ha.
  • I'm not going to pretend to know what I was on while writing this one.
  • My total disregard for an update schedule. For a time, I would post like 10 comics a day, and then I wouldn't post for like a month. Then, I stopped doing the comic in 2007, only to pick it up for a month in 2009. I'm surprised people actually still read it.

Clearly, I could go on for much longer, but I don't feel like it. Instead, I'll let you, the reader, either read the article I linked to above or search through Kirby's Fan Mail for more of my failness. Oh yes, and check out my recently revived comic, Pillowcase! Thank you and good night! :P

Hatkirby on
πŸ‘ 0 πŸ‘Ž