Wednesday, June 9, 2010

New Ubuntu and new indie games, a great combination

Where to start...
It's been far too long since my last blog entry and a lot has been going on in the FLOSS / Indie Gaming since I posted. So while I can't talk about everything, here are a couple of the latest happenings.

First off, Ubuntu 10.04 LTS Lucid Lynx is out and after waiting a week or two to make sure that it wasn't going to torch my system, I upgraded. Frankly, besides the new Mac^H^H^H purple theme, an improvement over the brown one, the biggest change has been adapting to the shift of the buttons to the upper left instead of the upper right of windows. Debate on this topic has been heated. Some people like the change, while others are less happy. In the end, I'm not finding it as hard to adjust to as I had imagined, but it still feels like an unnecessary change that will hamper adoption by Windows refugees. While my system has never been unstable under Linux, Lucid hasn't crashed yet, surviving several of my battles with PulseAudio without faltering. I've glanced at some of the packaged software changes, but since I only upgraded an existing install of 9.10 instead of installing fresh, I already have most of my standard programs installed. Overall, it seems like a step up, definitely a cleaner and better upgrade than from 9.04 to 9.10.

Next, the Humble Indie Bundle has come and gone. I offer my condolences to anyone that missed out on this awesome deal. In case you missed it, a group of indie game developers each put a game in and the bundle was sold as "Pay what you want" with the proceeds being split between the developers, the EFF and Child's Play. Once they hit a million dollars, the sale was extended and 4 of the 5 developers committed to releasing their games (or at least their engines) as open source. In the end they brought in a little over a million and a quarter, with over $200k going to each of the charities.

In addition to raising a ton of money, the Humble Indie Bundle made some remarkable discoveries. One feature of the bundle is interoperability. All the games run natively on Windows, Mac and Linux. During the sale, the page displayed the average amount paid and the total collect broken down by operating system. While Windows users accounted for around half of the money collected, Linux users accounted for 25% of the money collected despite making up less than 5% of the desktop market. Further, on average, Linux users paid around 80% more than Windows users and 40% more than Mac users per purchase. Linux users are usually seen as cheap since they are using a "free" operating system, but we are clearly willing to open our wallets for a decent product, and when we do, we are more generous.

The other observation, made on Wolfire, was that despite the bundle being available for as little as a penny, there was still a significant amount of piracy via posting of download links. While some folks are just pirates-4-life and will pirate everything regardless of price, john, the author of the post, opines that most of the pirates in this case where potential customers that simply did not have access to the tools needed to pay, namely a PayPal account or a credit card. In the end, the programs are DRM free, so the organizer's response was to just ask those that needed to pirate the games to use Bittorent instead to save on their bandwidth.

I hope to post some reviews of the bundle games over the next few weeks so stay tuned.

Wednesday, April 7, 2010

7DRL Aftermath

So it's been about 3 weeks since the 2010 7DRL contest ended and I am starting to look back to see what I did right and wrong and how the contest went overall. In the end, there were 85 competitors in the contest, of which 50 submitted a finished product. I was part of a panel that reviewed all of the completed projects giving scores and feedback, where my project earned a respectable 1.96 overall score putting it at about the 50th percentile. Not bad for my first game I suppose. I got hit hardest in the Roguelike category of all things. I knew that I wasn't going to be earning a 3 in that category, but I was hoping for at least a 2 (a Roguelike-like rating), but apperently, I was unable to sway the judges with my own treatise on the subject. So far I have managed to give two of the top three games a try, PrincessRL and Harmless7DRL.

PrincessRL is a Roguelike adaptation of the Gainax Princess Maker series. The objective is to train your character (a would be princess) proper manners and how to beat people up. Sounds odd, but that's the objective of the source material as well. I haven't completed the game yet, but it is very complete for a 7DRL project, easy just pick up and play (if you are familiar with roguelikes) and innovative.

Harmless7DRL is a more traditional than PrincessRL, it puts you in the shoes of an apprentice magician who must dive into a dungeon to find a missing professor. The game differs from you average RL by making the hero extremely vulenable to attack. To survive, you must collect magical runes to assemble spells to protect yourself. It is also very complete, at least as far as I managed to get, and it too can be pick up and played. It might not be as innovative as PrincessRL, but it follows the Roguelike blueprint more strictly.
As far as my own project is concerned, I got high marks for Innovation, and average marks for most everything else. Oddly enough I managed to get all three possible scores in the Aesthitics category. One reviewer that it was nice looking and easy to use and another thought it was angry fruit salad, so I guess beauty is in the eye of the beholder.

Lessons Learned

I coded the entire project in Notepad++, a handy little text editor that will highlight syntax and help you match parens and brackets. While I think it was a decent enough tool for this job, I think that I would have faired better this a more powerful IDE like Eclipse. I even went through the trouble of getting Eclipse up and running before the contest, but I didn't have the time to familiarize myself use it.
Smart AIs are a pain to program. The one I included in WWRL is functional enough, but it's limited to chasing the player down and beating on him. Next time, if I want to make a decent AI, I'm going to have to cut back on the rest of the project.
Time wasted isn't always time wasted. On day 3, I spent way too long developing the facing algorithms for WWRL. In the end, they were a work of art, but they over 2 hours to code. I thought that I had made a big mistake and that I would regret the lost time later. However, it turns out that the algorithms were actually fairly bulletproof, even when used for a variety of other movement activities. So much so that I only had to make some minor additions when hitching various attacks, jumps, and interrupts to the algorithms. In the end I probably saved several hours because I invested the extra time.

Monday, March 15, 2010

7DRL Day 7: Sleepless Victory

At 2am, 161 hours after I began, I announced the completion of my Seven day Roguelike. It came down the the wire as I tried to force my sleep deprived mind to comprehend the intricacies of how jar'ing java class files until collapsed at the keyboard, my hand striking the submit key as I fell.

...

Well ... maybe it wasn't that epic, but hunting for the instructions on how to handle classpaths in jar manifest files at 2am isn't a task I'd inflict on anyone.

In the end, WWRL has a character selection, a information screen, "full" featured combat, and plenty of room for enhancement. It can be download from the WWRL Google Code project.

I've included a manual, but if anyone has any questions, drop me a message in the comments or head over to the rec.games.roguelike.development mailing list, and I'll see what I can do. Any and all feedback is welcome.

Sunday, March 14, 2010

7DRL Day 6: Spit and Polish

After 6 days I have a game. It isn't a great game, it isn't a game that is quite ready for release, but it is a game. During day 6 I completed the character selection and information screens. I added around a half dozen moves and I streamlined the process of adding moves and wrestlers. I refactored the AI section, but I didn't really improve it much. I think that the AI only needs to be taught to vary it's attacks and pin at this point. Overall, day 6 was a victory.

Choose your wrestler!


He may wear pink , but I still wouldn't want to get in his way.

Objectives for the 7th and final day are to get defensive and fan maneuver working, implement throws, teach the AI to do more than use it's first move, implement jumping attacks and add moves. It's fair too ambitious, but I'll try.

Saturday, March 13, 2010

7DRL Day 5: Working but not Finished

At the end of day 5 it looks like I have the frameworks for setups in place, if not working 100% correctly, running attack at a lot more predictable, and the in game message system works and scrolls correctly. I even added the Inverted Cloverleaf as a move, but it isn't much to see yet. Attacking prone opponents now yields more damage and the player can now make speculative attacks. Overall, I wanted to add more moves and finish setups, but I'm still calling today a victory.

No screenshots today, not much new to see. I'm hoping to have a gameplay video tonight.

Goals for day 6 are, in order: clean up setups and holds, implement character select screen, refactor AI, and add moves.


edit: okay, one screenshot:

You can feel the pain, in an ASCII kinda way

Friday, March 12, 2010

7DRL Day 4: Fighting and Falling

Day four is done, and I now have a "playable" game. Playable to be interpreted loosely. Gameplay currently consists of:
1. Kicking your opponent while he punches you2. Running away from him when your stamina is low to recover
3. Repeating steps 1 and 2 until your opponent's fatigue bar fills up
4. Performing a running kicking to knock your opponent to the mat
5. Pinning him to win
Well, I suppose I've played Tiger handhelds with less gameplay than that, be it still needs some work before I can call it a roguelike. However, since my goal for day 4 was to deliver a barebones game, I am declaring victory.

My boot in yo' face!


A winner is you!

The goals for tomorrow (well, today now) in order of priority are: Add support for additional setup maneuvers, clean up running attacks, add damage modifiers for prone and climbing wrestlers, finish message boxes, and add moves. I probably won't get them all done, but the more the merrier.

Wednesday, March 10, 2010

7DRL Day 3: Sprinting Wrestlers and Lost Time

At the end of day three, I have wrestlers on the mat, and the player controlled one can walk, run, and try to climb. In addition both wrestlers now have faces, or at least a direction they are facing. My target yesterday was to have the message boxes completed and content for the wrestlers to use for the big day tomorrow. Neither of these were quite completed and movement still needs some more work. Today w asn't the victory days 1 and 2 were, but I am hoping to make up time tomorrow.

An, as yet, unpopulated character details screen

A Wrestler running around as his opponent tracks him and the clock ticks.

The goal for tomorrow is to have a bare bones game completed by the end of the day. This might sound a bit too much of a stretch, but I have the day off and hope to be able to devote 8+ hours to development. I've also been doing a lot of work as I go to set up the infrastructure I am going to need.