I had a discussion with a colleague quite some time back about the stackexchange concept.
I had recently joined, and while I had not answered anything or asked anything, I was commenting here or there.
Suddenly I had a badge for filling out my profile.
Oooh… a BADGE.
And I had a reputation, or “score”.
Oooh. A SCORE.
A short time ago, I discovered the game development one.
(This reminds me of the time when the first put LEGO and Star Wars together… it was a combination I simply could not resist!)
So now I compete for score and badges.
As a digital sharecropper.
But its OK.
Because I have almost 500 points and 10 badges! TAKE THAT!!!!!
While I like that I’m working on a new Dungeon Delver in Java, it has occurred to me that I don’t have a single clue about how to deploy a Java app.
I know how to CONSUME Java apps, and I’d like for DD to be able to be consumed in each of the following ways:
- In the browser
- Downloadable exe for windows
- Downloadable JAR for not-windows
More importantly, I want to be able to base my games on LWJGL and Slick2D.
LWJGL has native binaries, and those are particular for each of the three OSs I’m targeting: Windows, Mac, and Linux.
So, an interim step for me is to make a small proof of concept game that is distributed in the three ways desired.
The choice of prototype game is pretty simple. Usually I would go for JetLag, but this time I’m going to go with Click the Yellow Rhombus.
My game has to do three things:
- Read from an XML resource.
- Load an image and display it.
- Load and play a sound effect.
But before anything happens at all, I’m just going to have an app that does those three things.
In the end, I hope to have them work on all of the machines in my office: the Win7 x64 box, the Mac Mini, and the old laptop running Ubuntu.
Wish me luck.
I did a rough implementation of one of the features for TurtlePop.
I implemented themes, and put in four of them.
I plan to dip into IconBuffet for quite a few more, as well as my angband graphics collection.
Some time soon, the game will be renamed “Object Ouster”.
Yesterday, my wife was playing a game at pogo.com called Poppit!
She was not satisfied with exploding pies. She mentioned that I should make a game like is, so behold:
I unleash upon the world another hastily thrown together hopelessly derivative game!
It is called Turtle-Pop, and you can play it here.
The state at this time is “barely functional”. It does not detect the “no more moves” condition. It does no collapsing animation in the slightest. It represents all of about three hours worth of work, and more importantly it includes the use of Angband graphics.
At some point, I will re-theme it with the creatures of hamquest, or perhaps the items, depending on what images are most easily differentiated.
In fact, I think all of my games should be re-themed with hamquest graphics.
Over the last couple of days, I learned a few things.
One, that my status of “student” is far more valuable that I first realized:
- I was able to verify my status for DreamSpark, and there are a number of tools I now get to make use of for free, namely Visual Studio NON-Express.
- I was able to get a free developer account for the windows mobile marketplace.
Two, I improved my XAML skills, mostly as a result of using Visual Studio 2010 for Windows Phone. Considering that I’ve been making HamQuest in Silverlight, the fact that I can also use Silverlight for the phone appeals. Also the fact that the resolution of the phone screen is 480×800 means that my 480×480 map area actually fits, which means I don’t actually have to change the size of the map, I just have to rearrange the screen somewhat in order to get HQ onto it.
But before that, I decided to whip up a copy of “Feed the Fish” for the phone. Unlike the couple of times I attempted to get into iPhone development, I’m not going to do excessive Yak Shaving. A game of feed the fish is fine. A game of click the yellow rhombus is also fine. A game of jetlag is fine. Pipes. Hammurabi. Hunt the Wumpus. Even a port of HamQuest, since it is for all intents and purposes a complete game that I’m simply adding features to. I’m *NOT* going to start some big project specifically for the platform. Forget it.
Plus, I think I’ve made peace with my artistic aesthetic: ugly, cheesy games that are fun.
I got a good session in last night, doing some plumbing code for OpenGL games. My need for OpenGL is modest here. Basically I just want to be able to use it as a 2D API to render rectangular areas with images.
So I came up with a few simple objects to help me: VertexSquare, ColorSquare, TextureSquare. These encapsulate an array of values that need to be used in order to render a simple rectangle. These give me, respectively, the vertices, colors, and texture coordinates of the rectangle.
I have already set up a matrix to pretend that the upper left of the screen is (0,0) and the lower right is (40,25). This way I can use a grid of VertexSquares (actually, there is an object called VertexGrid for this purpose), and I can split up a texture into a bunch of TextureSquares (called a TextureGrid) in order to make a tileset.
I also encapsulate a VertexSquare, a ColorSquare, and a TextureSquare, in conjunction with a Texture object (that actually wraps a real texture) into something called a RenderSquare.
A lot of this exercise is to give myself those classes that I know will be useful in hammering out games. Pretty much any language and platform I’m on needs a set of things like these in order to make work go faster. I don’t want to have to put together texture coordinates and vertices and color arrays. I want to have an object to point to and say: use this texture, this part of the texture, this color, and at these coordinates, and render.
I’m also getting re-used to the retain/release memory management stuff in Objective-C. I stuff a series of TextureSquares into an NSMutableArray in order to create a TextureGrid. I always make mistakes initially until I’m reused to these things.
I got trap disarming functional today. The new version is uploaded at the site.