He shoots, he scores!

dominantSpeciesGUI6

I don’t suppose that in the entire history of development diaries, there has ever been a more detailed one for such a tiny hobby project. I mean, I Kickstarted Shadowrun Returns and their dev diaries are often months apart. And they are a multi-million dollar project. As of this writing, there hasn’t been a peep from them since January.

Anyway, it’s not like people are reading this right now. This is something for me to preserve for posterity. Sort of a chronicle of my attempt to become a computer programmer and game designer in less than a year from scratch at the age of 31 (now 32). Call it a quest. From God. Or Shiva. Or Quetzalcoatl. Yeah, probably Quetzalcoatl.

Anyway, from the screenshot above, you can see that a scoreboard has been implemented, which reflects the variable starting point totals that you get with a random board setup. I think the colors look stupid at this point, but this isn’t about beauty, this is about functionality.

Also–and you can’t see this from the screenshot–the action board can now be dismissed at will by clicking the button on the bottom of the screen that looks like an eyeball. It’s actually a player pawn icon from the game board itself. The other two icons are currently placeholders for the two other dismissable/summonable HUD elements.

That’s where I’m at. Getting tedious, but still fun.

Ich bin die Dunkelheit, du bist die Sterne.

Elements.

dominantSpeciesGUI2

Just a quick update. Once you get this stuff figured out, it seems to move along quite nicely. The elements are now rendering, as is the initial glaciated hex. Next task is to get player pawns rendering and then I will add the HUD.

I should point out that, while I can’t show you here, I can drag the board around with the mouse by right clicking, which is pretty neat. I can also zoom in and out with the mousewheel which is even neater.

It’s not completely smooth yet, but the crazy thing is that I know how to make it more fluid but it’s a low-priority task. What that means is, my workflow has become priority-based. There are multiple things that I know how to do and I can prioritize. This is very different from my usual hobbies (like writing fiction), where there’s a more or less linear progression. I could jump around from scene to scene, but I usually don’t. It’s a strange feeling and it has forced me to keep a small notebook full of things that need to be accomplished.

And here’s the kicker: when I get bored with one task, I can actually move on to something else for a while, which is something that is something that I could never really do when writing fiction. About the only thing that I could do when writing to alleviate a boredom-block would be to go back and edit (which is certainly not a bad thing to do, and is something that I honestly enjoy from time to time, it’s just… this feels very different.

Anyway, things are moving.

Nur das Licht fantastisch.

All the little creatures!

dominantSpeciesGUIpoc

The data structure which will represent the game is, for the most part, complete. Of course, this is the mathematical model that represents the state of the game at any particular time. Specifically, the very beginning. The functions and interactivity are not there yet. All the user can do right now is open the game, start a new game, interact with an option panel to determine the number of players, their colors and respective animals, and then begin the game, after which the randomly generated world will appear.

Remember, this is just a board game, so there is not procedural generation here. The terrain tiles are drawn from a deck of tiles (in Computer Science terms, it’s a Stack!).

But this is huge for me. The damned thing is rendering. From here, my path is clear. Establish game states, demand input from the user, and start keeping score. The UI is proofed. I know how it will work. I can present the world to the user. It’s… really something special for me.

I have also added a new feature to my workflow on this project. Git. It’s…remarkable in many ways. I wanted to install a git repository here on this domain, but since this is a shared hosting plan (the cheapest possible plan available), and I would have to pay about 3 times as many dollars for a VPS, I cannot do it. I’m not sure I’m up to the task of running a VPS, to be completely honest. So I’m hosting the git repository over on assembla and it is working out just fine. They aren’t charging me any dollars and it has completely changed the way I work on this project.

I used to talk a lot of politics and even discuss some science on this blog. I haven’t in quite some time. That’s not because I’m not still interested in politics. I am. I just hate it right now. Maybe later this week I’ll expound on that a bit. But I might not.

Be advised: New link on the sidebar to Sean Froyd PhD, a colleague and friend who blogs way more than I do and often has interesting things to say. I’ve been involved in some of his projects in the past. And there’s also the possibility of joint work in the future. So he’s up there on the bogroll!

Ninja edit to the Bogroll: Notes from the Apocalypse. Some very interesting projects from my good friend Dr. Quaddle, a doctor after my own heart.

Überprüfen Sie sich, bevor Sie sich zu ruinieren.

Backing up a bit.

tokens

The holidays were busy. I accomplished exactly nothing. Well, except for one important thing. My original project is being put on hold for a while. I realized something very important, and if you are a programmer (and happen to be following this…the odds of which are slim, I know), then you have been expecting this: I have absolutely no idea what I’m doing.

That said, I’m going to tackle something a little simpler. I’m going to port a board game into Java. It’s going to be a board game where you don’t need a sophisticated interface or hidden information (no hidden hand cards yet…I’ll wait to program network play until I can get hotseat down). It will be, in short, a dry run. Something simple so I can practice my programming ability without needing to know as much about graphics.

It will still use OpenGL, specifically LWJGL. So, I’m working toward that ultimate goal. It’s just something a little more attainable. We’ll see how it goes.

Above is a scan of some tokens from the game. Do you know what it is?

Menschen sind nicht die dominante Spezies.

Breakthrough

Not only was today my birthday, but I got the map demo to function properly. The current code can generate a random heightmap from a seed integer, render it to the screen, and–and–I can scroll around map with arrow keys or by grabbing it with the mouse. For a 96×96 tile map, I get an even 30 frames per second. This is not ideal. I’m not sure how to make it render faster, but honestly, I feel pretty damned good about this. It looks good, it slides well, and I really think it’s a success.

Next task, I think I’m going to try my hand at spriting. I’m going to create a player avatar and attempt to animate him/her. Maybe once he/she is ready, and I have a few other game assets (and a new ground tileset), I’ll tell you all what the core concept of the game will be.

I’m starting to feel hopeful about this.

Alles Gute zum Geburtstag fur mich.