BIG UPS

Posted on 15th May 2011 in Something Daily

Yesterday was certainly one of the strangest days in recent memory, likely due to the fact that I, in a rare move against my antisocial tendencies, decided to go out. I presented my game Spaceratops to the Music Technology open house, where people who were considering joining the program came and checked out everyone’s projects from the past year. There were also a lot of people there who weren’t considering, but were just acquainted with somebody in the program and came to see cool stuff. So I had a more or less constant stream of people coming up to talk to me about my game. It was the only game at the open house, and the one that arguably had the least to do with “music technology”. But there were middle school kids (one of whom became seriously addicted to Spaceratops and played it three times), a guy with a Kraftwerk shirt, a lot of potential grad students, and a lot of people who heard from someone else that there was “someone around here who’s into chiptune” (me) and could not wait to talk to me about how Anamanaguchi went to NYU. But everybody seemed to really like the game. I didn’t know that there were any type of awards given out, but I ended up winning the award for the best undergraduate presentation (!!) to my complete surprise. I was blushing like a fool, I’m sure. But I got to plug my website a lot, and I made a lot of connections.

The other thing that happened was that I went to my first Big Ups performance last night at National Underground, and it was everything I expected and more. Big Ups are a punk band who are all juniors or seniors in music tech, and they put on crazy shows. During the second song, the singer, Joe, climbed up on this table that was out in the audience and wrapped his leg around one of the big columns that was holding it up. And of course he fell, knocking over a bunch of glasses and cutting his hand open. He rubbed the blood all over his face, it was awesome. Also one of the low-hanging stage lights got knocked over by the kids in the front who were moshing. I don’t know how the National Underground ownership feels about this. But it was an incredibly rad show.

Stick to WordPress

Posted on 12th April 2011 in Something Daily

In the wake of this weekend’s amazingly fun and educational hackathon, I find myself with a renewed drive to start learning and building cool stuff. You might have noticed that this drive, which is something that I usually have no problem cultivating, has recently been scarce for one reason or another – probably related to the rush of apartment-shopping as well as the letdown after finishing a major project such as Spaceratops. I was feeling pretty unmotivated, and when that happens, you start to get posts about Emma Watson and panda bears…which are actually great. I’m going to do more of that. But also, what in the world is going on in my tech life?

Like I said, my drive to learn stuff is firmly reinstated following the realisation that I actually do have some degree of sweet skills, as evidenced by the fact that I held my own on a group project and didn’t let everybody down by failing as I worried I might. Included in the new list of stuff that I want to accomplish: make a Twitter mashup – I don’t know what right now, but I want to play with Twitter and Hunch’s APIs (also Trendrr). Also, get deeper into web design/development. My Twitter profile says that I’m a “freelance web developer”, so maybe I should start living up to that. Yeah, sounds like a good plan. My roommate asked me to build his website for him, saying that his basic concept was a Tumblr blog with subpages (something that Tumblr doesn’t allow for).

Of course, I started off quite optimistic, only to realize fairly quickly that what I was setting myself up for was the singlehanded construction of my own content management system for this one website. He wanted his site to function as a blog, which would require all the functionality that we expect from WordPress of Tumblr (comments, administration, tags, all the rest). I realize that while, in truth, all of these things are completely within my current skill set, it would take me, one person, far more time that it’s worth to create something as full-featured and smooth as WordPress. This in combination with the fact that WordPress is free to download and supports custom styles has steered me off the path of committing myself to the creation of a decent CMS. (I still want to try my hand at this, and I will – just not for someone else.) So now, instead of writing the whole thing myself, the project has changed to the implementation of a custom WordPress theme for my roommate. Still a great thing to put in my portfolio, if perhaps not as gratifying as the singlehanded creation of the next big blogging platform.

And the funny thing, as my other roommate pointed out, is that knowing how to build a WordPress site may actually be more valuable to many employers than knowing how to do a CMS from scratch. There’s something sad about that to me – the fact that the one that requires less work and knowledge is more highly rewarded. But both are great learning experiences, so I’m not complaining.

One does not simply walk into the internet

Posted on 23rd March 2011 in Something Daily

It may be a little bit easier than getting into Mordor, but it’s still a bit of a process to build up an internet presence. I’m starting the process of writing a personal website for myself, which should be a great experience. I just bought the web host, which means that in a few hours I won’t have to use my roommate’s hosting anymore – it’s already been a bit weird telling people the URL for Spaceratops and having it include “.ericsluyter.com/”. Something’s wrong with that, I feel like. Still, awesome of him to lend me the space while I was learning.

So as a result of me now having web hosting, this blog may start to behave strangely in the near future. I’m going to move it to my own host, which means I’ll then be able to edit CSS myself and use custom plugins (like a random button – I’ve really been wanting that). I’ll do my best to never let threestegosaurusmoon.com actually go down at any point, but it may still happen. If so, rest assured that very soon it will be back and probably better.

As for the personal website, you may be thinking “but Danger, you already have a personal website – it’s called Three Stegosaurus Moon, which I know because I visit every day and have read everything you’ve ever posted.” To that, I would say thank you, first of all, and secondly that this website on which you read presently only represents a part of what I’d like my web presence to be. Here, I can talk about whatever’s on my mind, update daily, do sloppily-written video game reviews and shameless plugs of my own work, whatever I want, basically. It’s kind of fun. The idea I have for this new one is that it will be slightly more serious/professional and less dynamic than this blog. This isn’t to say that I won’t give it a crazy 8-bit rainbow theme, which I will, don’t worry…it’s just that the content there will be probably more interesting to someone looking at it from a professional standpoint. Like I can put up my resume (which is extremely impressive (<sarcasm)), a little bio (not a sci-fi story that I wrote in 45 minutes), a big compendium of things I've created, and a list of links to everywhere that I am on the internet. You know, like my home base. I'm just beginning to consider the design, but I'd like to have something going on there by the end of the term. I think it'll end up being awesome.

If I start doing more visual art, I may also start a tumblr, because I like their default layout for showing gifs and images.

Get excited. Stuff is about to start going down. And play Spaceratops.

Spaceratops Update

Posted on 23rd March 2011 in Something Daily

There were a lot of false starts and many attempts to get Spaceratops up and running properly, as I was just learning how to use Java Web Start this morning. But now, it appears as though you can follow this new, semipermanent link to the launcher. Click the Launch button, open or save the file, and then wait for the download to complete. After the download is done, the game should launch automatically (and you only need to go through the lengthy download process the first time you launch). Also, here’s the slightly updated source code if you care to view it.

As it’s turned out, this project has come right down to the wire. But it appears to be pretty much complete and working right now (knock on wood)(actually that’s an exaggeration, the leaderboard is broken, but I’m working on it). Anyway, have fun playing it in a form that is much more likely to actually work for you. Thanks for reading.

Spaceratops: The Game

Posted on 21st March 2011 in Something Daily

Over the last few months, I’ve been working on a Java game entitled Spaceratops. I started it after finishing CS 101, mainly as a tool to learn object oriented programming. It eventually grew into a project that I envisioned in my head as a grand production in for which I would draw all of the sprites, compose and record the soundtrack, design and program the game engine – something that I would see through from beginning to end as my own learning project, but also something that I could hopefully come away from being at least a little proud of. So it may not be as ‘grand’ as I’d initially intended, but it is indeed finished. I took a break of about two and a half months after completing the engine, with the thought that it would never really be finished, and then, for some reason, I picked the project up again in January.

So I can definitely say that I understand object oriented programming much more than I did when I started. I also am a lot better at programming in general (which is, I suppose, what one would hope for after completing a project of some magnitude). It’s really good to finally be done, though. I don’t know how soon I want to start another one, but something tells me that it could very well be sooner than I expect.

Try playing it, let me know what you think in the comments. Here’s the link, just click “Launch”, select “open”, and the file will download and the run automatically. I’m having issues with the leaderboard right now, but gameplay is unaffected. Also, here’s my source code, which I have been staring at without much break for the past few months, and which I’m more than happy for you to look at now.

If you have any questions or comments, please make them known. And if you finish all fifty waves, I’ll buy you lunch. Seriously. If you do, tell me your score. Thanks for playing!

comments: 1 » tags: , , ,

Bit Into Rainbow

Posted on 19th March 2011 in Something Daily

I just made another…I don’t know what’s happening to me.

I spent a good amount of time today Twitter-stalking what I imagine to be a secret society of gif makers, but in reality is probably just a few people who know each other (I’m not willing to completely throw out the secret society idea though). I am currently going through a phase in which I like making things flash lots of colors. True “animation” is still beyond me, but maybe that will change sometime soon.

Today seems to be the last day of work on Spaceratops, which is a quite welcome thought. I’ve been working on this project for far too long, and it’s time for somebody to play it. Namely, you. I’ve decided that once it’s up, I will buy lunch for the first person who finishes all fifty waves. It’s pretty hard (actually even though I’m the one who made it (I can “see the matrix, if you will), I still haven’t gotten to the end), so it might take a little while. But you can do it, I know you can. Very soon. If not tomorrow, then it will be linked to by Monday. Playable in your very own browser. I know, contain yourself. I can’t wait either.

I also took some quite nasty spills at the chelsea skatepark this afternoon, as I was feeling particularly bold and attempted a lot of stuff that I hadn’t before. Specifically, jumping off of ramps and dropping onto them from above, both of which caused me some degree of pants-rippery and knee-skinning. I did, however, eventually succeed in the landing on the ramp part, so now I’m tentatively capable of jumping onto the small box from the ramp, riding it, and then dropping onto the ramp on the other side. I think the box is about a foot, maybe 18 inches tall. So this is an improvement. Of course, it didn’t come without some bruises.

Farted a Rainbow

Posted on 18th March 2011 in Something Daily

I’m not entirely sure of the reason, but I got back from the skatepark today and immediately felt the urge to make this.

I know what you’re thinking. You’re thinking “this guy looks like the coolest little kid that the world has ever seen. He had video game sunglasses and rainbows behind him all the time.” And if you thought that, you’d be right. About everything you’re thinking with regard to this general topic.

Being at school over spring break is totally sweet, because I have entire days to myself with no commitments whatsoever. That typically means that I’m going to code a lot, play video games for a good deal of time, and probably skateboard. Today, then, has been the quintessential spring break day (in my mind, at least). I put in a big chunk of the last week’s worth of work on Spaceratops today, waking up at 8 and basically coding straight through until noon. I started from scratch learning about applets today, because I realized that, realistically, how likely is it that anyone would play my crappy game if they have to download it? As I see it, really the only way to get anyone to play is if it works from within a browser – so that’s the idea of converting it to an applet. (actually, I think I’ll get a decent amount of people to play that way, at least compared to the results if it was a download). So this game is in the final final stages and will be linked to RIGHT HERE by Wednesday, March 23rd. I swear it. I need to be done with this project.

Speaking of, I downloaded the Unity game engine today, which I’ll be experimenting with later in the evening after a bit of decompression via Metroid Prime (which I started speedrunning last night) and Easy Mac.

Oh yeah, anyway…the transition to applet was an easy one, for the most part. It’s essentially the same as a JPanel, but runs via an automatically generated HTML form. One thing that is different, though, is that there’s a disparity between the manner in which images are printed in a frame and in an applet – which means that my applet is very much prone to flickering. It’s not unplayable by any means, but the flicker is certainly annoying. So I’ll be working on that tomorrow.

And one more thing – I don’t know if you heard, but I set a new personal record for shortest Super Mario 64 completion on Wednesday night. 2.5 hours, 58 stars. Yes, I used the stair glitch, but there comes a time in every semi-pro SM64 player’s career when not using glitches just doesn’t cut it anymore. We get bored. But yeah, my last record was three hours and four minutes, so I’m moving up in the world, clearly.

[youtube http://www.youtube.com/watch?v=Q1lwD-jFHOE&w=480&h=390]

I’m going to go shoot stuff with lasers, and you can just sit here staring at my elementary school awesomeness in all of its rainbow wonderment.

Thoughts on Good Game Design

Posted on 14th March 2011 in Something Daily

I’m learning a lot about game design as a result of my endeavors into the field. When I began to create this game I’m working on, it wasn’t at all about what the design would ultimately be, it was more just a practice with object-oriented programming using graphics and keyboard controls, just because they were two things that I thought I could easily use to make a playground for myself to create sprites and animate them, learning the ideas of OOP in the process. In that sense, this project has been a complete success. I know objects very well now, as a result of using a nested class structure for every game entity. I also have come to understand privilege and how it can be used effectively, as well as making the appropriate variables global and nonglobal. That’s all great, but what I’m realizing now is that in addition to all of that new coding knowledge, I’m also coming away with a better understanding of what makes an effective game design.

One of the most important steps for me in this regard has been the playtesting that my friends and family have done during various stages of the development. I spent quite a while building the engine from the ground up, which was where I got my OOP practice, and which was what I originally thought would be the main bulk of the work. When the engine was finished (or nearly finished), though, and I started having people playtest it and give me their feedback, I started noticing a lot of commonalities between how the players reacted to certain game aspects. For example, every time people would play one version of it, one of their comments afterward would be something like “I lost really quickly because I was concentrating on dodging the asteroids.” This was interesting, because the asteroids were in fact part of the background image and not part of the gameplay mechanic at all, yet since people saw them flying by in the same direction and at a similar speed as the enemy projectiles, they assumed that they had to dodge them. This brought up the intersting issue of visual design – namely, how can I make an interesting setting for this game without making it detract from or confuse the player’s experience.

In more general terms, how can I make it immediately obvious what a game element’s function is? A powerup that gives the player more health should indicate that by how it looks. Something that makes sense in the context of the story (they’re little medical kits in Half-Life 2, for example) or even a simple heart. Something that stands out and is obviously condusive to the player winning the game. Similarly, an enemy should look menacing to some degree, whether it’s the goombas in Mario that have little frowns and are conveniently at foot-stomping level, or the alien swarm guys in Gears of War who look like big angry gray tanks who clearly want to murder you. If there’s something you need to avoid, like enemies or projectiles, it should be really easy to see and to avoid. The lasers the enemies shoot in Metroid Prime are all brightly colored and very clearly come from an unpleasant source. Ikaruga is another great example of this, where the game mechanic is mostly based on the avoidance of enemy projectiles; in that game, they’re all very well-lit and colored, to make it exceedingly obvious where the player needs to be. That’s not to say that it’s easy to avoid the projectiles, but it does mean that there is a correlation that the player can pick up on between being close to a projectile and losing a life. There are no surprises. Backgrounds and settings shouldn’t distract, but should only serve their purpose as a stage-setter; in a well designed game, the player never has to wonder what any aspect of the game does: it’s all so obvious.

Another thing I’ve come across is the need for well-thought-out gradation of difficulty. This can be restated by saying the the played needs to feel at once challenged and successful at all times in order to keep enjoying the game. Noone wants to play a game where you die on the very first level every time; nor does anyone play games in which you make it to the end having hardly put forth any effort at all. The player’s mental state during play is important for the designer to take into consideration, as it’s ultimately the deciding factor that controls whether they go tell their friends that your game is ‘fun’. A player needs to be given rewards; there needs to be a sense that progress is being made. Levels up, points, weapon upgrades, and powerups all aim toward this end. I don’t think it’s important exactly which of these elements are used; rather, only that they are used to synthesize an overall experience of challenge and reward. A well-developed difficulty curve can compliment this; for example, you don’t want to introduce a new challenge or mode of playing in a situation in which it’s impossible to learn.

A great instance of this is the Zelda games, in which a lot of the excitement comes from collecting new items and weapons. A trick that’s commonly used in these games is to put the item in a room that’s impossible to leave without the use of the new item – to leave the slingshot room in Ocarina, the player uses the slingshot to shoot down a ladder that leads to the door. Clever. It’s a semitransparent method of easing the player into the correct control of the new game mechanic, without having it seem completely like a tutorial stage. It’s my opinion that this method is a better design principle to follow than actually including an almost nondiegetic tutorial stage – it keeps the player fully embedded in the game world.

These are just some thoughts that have occurred to me over the course of my work with designing a game. It’s a great learning experience to make a game from the ground up, both in programming and design. I’ll talk more about this at a later date. For now, go play your favorite video game.

It’s Almost Done

Posted on 4th March 2011 in Something Daily

Recently I’ve been totally obsessed/preoccupied with finishing this Java game I’m working on, which is now called Spaceratops (because you’re a triceratops in space – so clever), and which I’ve been working on for a lot longer than I care to admit. But I mention it now because it’s my goal to have this be the last time I mention it here without it being finished. I mean it’s really close to being done. All the time this week that I haven’t spent in class or doing homework has mostly been spent refining the 3,000 lines of code that I’ve poured into this project.

Since the last time I talked about it, I’ve added a backstory that scrolls in star wars style, a bunch of flashy eye-candy type stuff, a leaderboard, a bunch of new enemies, enemy homing missiles, and the power for the player to shoot volleys of homing projectiles. I also made a lot of changes to the code that, among other things, improve the collision detection in all areas and increase the overall efficiency of the program (which was, before today, something that was severely lacking – major slowdown was starting to become a problem). Here are a few screenshots of what it looks like now, and what it will probably look like when it’s done, for the most part.

When it’s done, I’ll post a link to a .jar that you can download and run on your computer, no compilation required. Basically all that’s left to do is work out one or two trailing gameplay kinks, write a few more songs and add a few big boss enemies for the end of the game. Probably within two weeks it’ll be done. I’m looking forward to being able to really jump into some other project, which is why I’m just totally and completely obsessing over this one for the time being.

Preparing for Hackathon 2

Posted on 3rd March 2011 in Something Daily

Something exciting is on my mind since Tuesday: the next HackNY hackathon has been announced. I attended my first in October, but I didn’t know enough about anything that was going on there to really participate at all. I spent about five hours coding Spaceratops there, which I was in fact working on back in October. Side note: this is why I want to be done with that project. It’s taking too long. But anyway, the idea with the hackathons is that a bunch of representatives from startups come and demonstrate what their company’s API can do and then they give you a key and tell you to go nuts for the next twenty hours and hack together some sweet app from the tools that everyone’s given you. In October, this really was my first exposure to PHP, HTML (in recent years) and the idea of using API calls to build apps. So I didn’t join a team, I didn’t really meet anyone, and I didn’t build anything. I did make a lot of progress on Spaceratops that night. The experience of hanging out until all hours coding is extremely appealing to me, though (as is the prospect of free snacks, soda, and burritos all night), so I’m doing everything I can to prepare myself for the upcoming event. Whether I go by myself or with a friend, I’m going to introduce myself to some people, join their team, and help build something awesome. It’ll be awesome.

So to that end I’m going through as much of the W3Schools PHP tutorial as I think is necessary, and then I’m going to make something cool on my own. That’s the only way to learn this stuff: by actually building something. It may very well end up being something that uses Google maps or a calendar API – the choice is all mine. I just got PHP and MySQL running on my local server (for about the fourth time) and I’m tutorialing like crazy. Also Eric gave me subdirectory on his website, so I have some actual hosting. This may allow me to make Spaceratops into an applet that would be playable in a browser…that would be super rad. We’ll see.

And guess what I’m doing this weekend!? That’s right, more homework and coding. If I have my way, I’ll also finally finish Chrono Trigger. I’m at the last battle and it’s so nuts. Let’s do this.