Pages

12.18.2013

Failing the October Challenge

Two and a half months ago, I set a goal to finish Glass before the end of October, and then proceeded to fail. Finishing up turned out to be more time consuming than I anticipated, and trying to do it while also dealing with midterms was rather stressful. After October ended, I decided to give myself two more weeks, then failed to meet that goal as well, and pretty much stopped working on Glass altogether.

I did, however, manage to complete 27 out of 81 planned levels for the beta test. Ten folks have installed, although I don't actually know how many have completed past the first set of 9 levels.

Three things I learned from this experience:
1. Don't pull something like this during exams. It was too stressful, I burned out, and had no motivation after.
2. Making each individual puzzle takes a long time. It's not trivial at all.
3. Git is so very convenient, much better than uploading a zip file with everything in it to Google Drives every time something changes.

Winter break begins next week, and will last for four more weeks. Let's hope that I can accomplish something during that time.

10.22.2013

Glass - Beta

I decided at the start of this month that I would attempt to complete the October Challenge and finish Glass. It's been a lousy few weeks trying to finishing everything up for Glass and deal with midterms at the same time, but Glass is now ready for beta testing. The last twelve hours have been spent finishing the tutorial, completing the level editor, making the first set of levels for the game, and putting it up on Google Play. Turns out that it takes a few hours for the app to be processed, so it'll be awhile before I know for sure that it's online.

For a sneak peak of gameplay, here's a gif that I posted on Reddit gamedev's Screenshot Saturday thread last last Saturday.



Since it's in private beta, only folks who have been invited will be able to download it, so anyone interested can just send me a message.

As a bonus, here is a screenshot of what happens when you pave the entire screen with convex lenses.


Also, I have a Facebook page.

9.15.2013

Glass - September Progress Update

Fun fact: the code for Glass is currently 388,903 bytes long. One character of ASCII text takes up one byte, which means 388,903 characters of code. Brave New World, according to Amazon's book stats, is 380,626 characters long. Glass is now longer than Brave New World.

The game is nearly done. I'm finished with most of the user interface, am done adding new gameplay features, and made a half-baked soundtrack for the title screen over the last two months. Sound effects are in the works. In terms of code and asset development, I expect to be finished in less than a month. It's a generous deadline, but I'm pretty terrible with deadlines. All that's left after that is to crank out eighty different levels.

In any case, this means that it's almost time to start beta-testing the game. In other words, for the next few months, I am going to have to start bugging everybody I know that owns an Android device to play and give me feedback. It's kind of scary to start opening up this project of mine to be criticized, but it's got to be done.

I'm also thinking of maybe making an actual website now, instead of just a blog, but that's a lot more work, plus money for a domain name and hosting.

7.14.2013

Glass - July Progress Update 1

Procrastination is a disgusting brain parasite, and sadly, I have acquired it.

In what little time I've actually spent on this project in the last few weeks, I've started putting together a graphical level builder. Before, I had been making levels by editing each levels' data in Notepad, which, as you might imagine, is somewhat inefficient. Java's swing package, which contains several GUI components and basic drawing functions, makes putting together something like this much easier than in libgdx, since I don't have to write my own buttons or deal with textures. It's kind of ugly, but very convenient.



In an ideal world, everybody would know the RGB color wheel and would be able to discern what proportion of red, green, and blue any color is made up of just by looking at it. Sadly, this is not how reality works, which forces me to devise some way of telling players what each target color is composed of. Currently, players touch each target to bring up a diagram that will tell them the exact composition of the target color. I've gone through several iterations of how this diagram should look/work, before settling on this one. All of the other ones either looked terrible, were too confusing, or both.

This lovely peach color is made of red at 100% power, green at 75% power, and blue at 50% power.
Each ring corresponds to either red, green, or blue, and the fraction that is lit represents how much of that color channel is required.

I'd like to have the user interface completely done before the end of next week, so let's hope that I can squish the procrastination wormthing.

6.18.2013

Glass - June Progress Update 2

Level selection and saving game progress is done. It took longer than expected, since I had to rewrite a bunch of code so that levels could be organized into "packs" and load nicely. The nice thing about the code, though, is that the layout of the buttons is procedurally generated. If I add more levels and more buttons, which I will, the size and arrangement of the buttons will automatically change to accommodate it. The levels are also loaded so that adding more levels to the game is easy and requires no additional coding. Making it this way took a little more time and planning, but updating the game in the future will be much easier.

Needs more levels.
Stuff that still needs to be done:
  • Tutorials
  • Level design
  • In-game menu
  • Sound effects/music
My goal is to have the tutorials, in-game menu, and the code for the sound effects done before the end of June. The audio itself will be interesting, because I have absolutely no experience, equipment, or software, but I'll figure something out.

6.04.2013

Glass - June Progress Update 1

Thankfully, summer session is leaving me with a decent amount of free time, which hopefully means more progress if I can focus, which I haven't been able to do very well. I suppose that regular updates will help motivate me to get stuff done though, so I might start doing that.

Most progress since the last update was spent squishing a few bugs, which were all sitting around in code that I haven't touched for months. In other words, they've been around for a very long time, and I'm somewhat surprised that I didn't catch them earlier. The biggest one is an issue with how lights interact with rounded mirrors. I somehow managed to screw up the collision detection completely and failed to realize for seven months or so, mainly because I didn't actually have any rounded mirrors in the game until recently. It turns out that the botched code came from one of my 3 am half-asleep coding sessions, when I tried to add a small improvement to the code for mirrors and ended up making it more stupid. It's fixed now.


Also, I've finally gotten around to being able to draw text onto the screen, which means the "Play" button actually says "Play" now. I assume that people will be less confused about what to do the title screen now.

By the end of this coming weekend, I'm hoping to have the level selection screen mostly done, which also means figuring out a good way of saving player progress as they unlock levels.

The circle on the right is the mirror.
The white line is the laser. This is clearly broken.
Fixed. These screenshots are of a program
that I wrote to visualize the optics engine behind Glass,
before it was actually a game.

5.25.2013

Glass - May Progress Update

Two main changes: several updated graphics, and tweaks to how levels are loaded.

Several textures have been updated with the intent of making them show up more clearly against the background.

Also, additive blending. Before, if a blue beam of light shows up on top of a green beam of light, the blue would cover the green. With additive blending, the overlap appears cyan. The difference is especially noticeable where the prism splits white light into separate colors.

All of the levels used to be loaded when the game was opened, which was sloppy. Now, each level is loaded when the player gets there. Thanks to this change, the game now starts up almost instantly.

Finally, made a few small changes so that the game handles different screen resolutions more elegantly.

Before.
After.

5.12.2013

Good morning.

Here's this blog, home-to-be of codestuffs.

Enjoy.