7DRL Day 3: Inventory, Messages, Improved Targeting

For those people who don’t care about the 7DRL game design challenge, don’t worry — things will be back to normal this weekend. I’ve just finished day 3 of the seven days, and I’ve almost finished the basic mechanics.

Today I added the inventory system and integrated it into the targeting window. You can only wield one item at a time; I’m not going to bother with armor and that stuff. If you want to use something, you will be holding it.

The targeting window show (in order of preference): What you’re targeting on the floor in the current room; what you are holding; or you. It shouldn’t be possible to have a blank targeting window. It looks weird when it’s empty.

Yesterday I had the targeting window and stuff in a gray box. Today I removed the gray box and just put the stuff on the side of the graph paper. I found a readable calligraphic font for the messages which I like very much. This game is not ending up very much like I had envisioned it, but I am constantly tweaking the game to make it look better and be more playable.

I have combat to add, and that will be tomorrow — combat, killing, monster loot, monster respawning and the ability to descend levels. I should probably put health bars somewhere. And it would be a good time to add the “you’re dead” screen.

I have a LOT of ideas for how I would do this game if I had more than seven days. But right now, I am just focused on finishing this and not making it too complicated. I’ve looked at previous 7DRL entries. Most of them are VERY simple, and I have to learn by their example and keep THIS simple.

7DRL Day 2: Monsters, Targets, Items

My 7DRL entry is moving along, but it’s not moving quickly. I’d said even before I started this that, given a full time job, how the game was at the end of Sunday — today — is how it would have to be.

I ALMOST got inventory in today; it is partially in, but I need to display it, and I will get to that, but it will likely be the last feature I implement. I need to start adding in the content.

So, plan for Monday night: Finish the inventory and add multiple floors. I’m sure glad that nobody will be playing this version. I have all sorts of ideas for how I might do it better. For one thing, I am backing away from making a ‘Roguelike’ that is a copy of Rogue. That’s been done, hundreds of times. Looking at some of the other entries has inspired me to take a step away from normalcy and really focus on unique features — I like the way my map looks, I think with some work I could expand on that kind of handmade look.

It doesn’t seem so, but the game today is double the complexity it was yesterday. But I am failing at putting the fun in. If all I do is work on mechanics, I’ll run out of time to add fun.

Note to self: need to add a scrolling message pane.

I wrote a media management library to handle all the images; it’s pretty sophisticated, handles all the graphics except for the map itself. Pretty proud of how that’s coming along.

The Pygame graphics library is slowly showing its power, as I get deeper into sprite management and layered groups. If nothing else, the NEXT game I write with Pygame should go a lot faster.

Note to self: Next game, we do that 2.5D perspective.

Here’s the video. I don’t know why the screen recording software adds those clicks.

7DRL: Milestone #1

I started working on my entry to the annual 7DRL (7 Day Rogue-like) game design challenge today. I’ve been working on algorithms for the game for the past week; today I took the algorithms for map generation and room connectivity and put them into real code.

It turned out pretty much exactly as I imagined — I am going for a game that looks like it’s being played with toys on a map drawn with marker on graph paper. When I got it first working, I realized I needed a way to show where you had already been, so I draw visited rooms in a muted shade to give the player SOME idea when they’ve cleared the map.

I haven’t started writing the UI yet. I have a lot to do before I get to THAT point.

Next step: Adding some monsters — the player is already a special case of a monster, so most of the code is already written. I just need to add a *little* AI. I won’t be adding combat quite yet.

After the monsters, I am going to add something to get to win the game. Yes, the game will initially be won by just wandering around the single map until you come across the object that lets you win. This gives me a full (though very boring) game. After THAT, I just keep adding things until it becomes fun.

Java Test: Ramping up for 7DRL

I’ve decided to take the jump and enter the Seven Day Roguelike (7DRL) competition starting next month. The challenge? Write a complete “rogue-like” adventure game in just seven days. The additional challenge is that these include WORKING days, so there’s far less time in which to do it.

My first inclination was to do it in Python with the PyGame SDL libraries on Linux. Trouble is, nobody will ever see the game that way. So while talking with Kasul last night, I decided to reach deep into my past and write it as a Java applet.

Years and years ago, I worked for a company called Harcourt, a publisher of textbooks that at that time was looking into running an online university for distance learning. Since the courses were to be web-based, they had a vast need of interactive web applications. I wrote a couple dozen small applets to support the courses, and along the way, I wrote the beginnings of a Java game engine to help make things pretty. The below applet illustrates the dual-slit diffraction experiment that helped prove that photons could be considered both as waves and as particles.

The smooth operation of the controls, the double buffered graphics…. The package also included a graph paper canvas which I used for several applets, including this one illustrating the tangents to arbitrary curves….

So, I have my old game engine available, and examples of my older applets to start with, and I think I’ve just shown I can get sophisticated programs working in a browser. It’s a start! All those years ago, I bet my career on Java Applets instead of Flash. That was a bad bet. Maybe someday they’ll make a huge comeback.