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 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.

Tuesday, March 9, 2010

7DRL Day 2: A Wrestler Grows Legs

At the end of day two, I have wrestlers on the mat, and at least one of them is walking around. Admittedly, my target yesterday was to have them both moving around, but it wouldn't be to hard to fake the AI walking in circles if I wanted, so I'm declaring victory.

"Select a Wrestler" Screen, currently unpopulated

Wrestler walking around, not really constrained by time or space

Tomorrow, my goal is to create enough content to give my wrestlers (or at least non-AI wrestler) something to do, to complete the display (Stamina bar, clock, etc.) and put the finishing touches on the message boxes (content to be added later).

Monday, March 8, 2010

7DRL Day 1: A Screen Takes Shape

Day 1 of my 7DRL project, the World Wrestling Roguelike, is drawing to a close and I remain optimistic that I can pull this off. My objective for today was to get the title screen and main wrestling arena screens designed and in place as well as reminding myself as to exactly how Java works.
Title Screen - Verbiage to be improved later

Wrestling Arena - Needs Wrestlers, shouting press, statues, etc.

Tomorrow, my objective is to get wrestlers moving around the ring, updating the graphics accordingly and to start work on message presentation.

Monday, March 1, 2010

Like a Roguelike

In the family of video game genres, Roguelikes are the crazy uncle that no one really talks about and most everyone agrees that is way past him prime. Everyone knows that without him the Diablo family wouldn't be around, but over the years he's refused to stay with the times and stodgily clings to his ASCII and tile-based graphics and midi-quality sound. In recent years he's started to let himself go, spawning a whole genre of Roguelike-likes and a mess of games with acronyms like 7DRLs and <1KBRLs. Though despite his lack of flashy graphics and sounds, he still manages to gather an audience.

Wikipedia explains that Roguelikes are "a sub-genre of role-playing video games, characterized by randomization for replayability, permanent death, and turn-based movement", which is probably a bit narrow for a definition, but not too bad, for Wikipedia at least. The Temple of the Roguelike provides a more in-depth take on what it means to be a Roguelike adding concepts like "Single command set", "Free form" and "Discovery mechcanics". Now you can probably count the number of games that claim to be Roguelikes and meet all of those criteria on one hand and have fingers left over. In fact, even the game that spawned the genre, Rogue itself, isn't what most people would consider free form. On top of that, none of these definitions mention the Roguelike-likes.

So, you ask, what do I consider the defining characteristics of a roguelike to be? Well, there is really only one trait I associate with Roguelikes and if any game exhibits this, I tend to think Roguelike, or at least Roguelikelike. The pace of play must fall between real time strategy and turn based strategy. To me, the rest are just conventions of the genre that can be ignored or changed, which separate Rougelikes from the Roguelike-likes. Games like Angband and Shiren the Wanderer: Mysterious Dungeon 2 that follow all the rules are considered roguelikes while games with only the pacing and a convention or two like Dwarf Fortress or Decker are considered roguelike-likes.

Today, the roguelike genre is still being developed by both amateurs and independent game designers, and while commercial releases are few and far between, companies like Bay 12 Games do reasonably well on donations. In addition, coming up next week is the yearly Seven Day Roguelike competition or 7DRL where developers attempt to code a roguelike from scratch in only 7 days. The 7DRL contest has grown over the years with more games being successfully completed each year.

Overall, Roguelikes are an interesting genre with a wide range of options to choose from when it comes time to choose a title to play. In a couple of weeks, there will be even more, and hopefully, if I can pull my act together, one of them will be my own 7DRL entry.

Friday, February 19, 2010

Gaming in Linux

Today I want to introduce you to a handful of products that make gaming on Linux possible. While there are plenty of great games new and old for Linux like Nethack and Yo Frankie, one of the biggest concerns I had when I made the jump from Windows XP to Ubuntu was my ability to play my rather extensive collect of PC games on the new operating system. To accommodate the switch, I set my system to dual boot to WinXP and Ubuntu, assuming I would just boot to WinXP if I wanted to play one of my games. To my surprise, I went almost 4 months without booting to Windows. With enough tinkering and the right programs, almost every game I wanted to play could be run in Ubuntu. In the end, the one game that drove me to Windows was La Mulana, an old school Metroid-like platformer originally written in Japanese, but translated, made with MSX-style graphics. Until I ran into problems with La Mulana, this was all made possible by two programs, Wine and DOSBox.

As Wikipedia will tell you about Wine, “Wine is an alcoholic beverage typically made of fermented grape juice.” Which my enhance your gaming experience, but will be until to assist in running much of anything when applied to a computer. Navigating around a few pages, Wikipedia admits that “Wine is [also] a free software application that aims to allow Unix-like computer operating systems to execute programs written for Microsoft Windows.” The term “aims” doesn't really do justice to the broad range of applications that the Wine developers and users have managed to get running. The list of compatible titles is conveniently listed on the project's website as the Wine AppDB. Not every title works flawlessly and not every title works without tweaks. At the moment, I am still struggling with a couple games to get past the main menu, but by and large all of my Windows games work well enough to play. But, you say, Mr. Niche Tech Guy, since Wine is emulating Windows, there must be some serious slowdown from all that overhead, right? Well, as its name would imply, Wine Is Not an Emulator, to the best of my understanding, Wine only translates the Windows function calls into something Linux can understand. For example, all the Directx calls are translated into OpenGL calls. This means that all the heavy processing operations are still happening on the processor and not in some abstraction, allowing applications to run with minimal overhead consumed by Wine.

But, you might ask, what about my DOS games? Some of those really rocked back in the day! Well, Wine only handles Windows applications, so for DOS games I used the above mentioned DOSBox. Going back to Wikipedia, “DOSBox is an emulator which emulates an IBM PC compatible computer running MS-DOS.” Which is a polite way of saying that DOSBox allows you to have a virtual DOS machine that kicks the pants off of any machine you might have had when DOS was in, and you never have to worry about messing with EMM386 and HIMEM.sys to get games to run. From my observations, DOSBox uses a lot more overhead than Wine, but if you are running a DOS era game on a modern PC, the game isn't likely to weighed down by overhead. In my experience, DOSBox is a lot more reliable than Wine when it comes to games, I've managed to get ever game I've tried to run working on DOSBox with minimal tweaking. But, I'm sure this has more to do with the relative complexities of the operating systems than the skill of the developers. While I've never needed to refer to it, the DOSBox project also maintains a database of compatible application.

There are two more applications that I wanted to mention for the place in Linux and old school gaming, Mono and ScummVM.

Plumbing Wikipedia once again, “Mono is a free and open source project led by Novell (formerly by Ximian) to create an Ecma standard compliant, .NET-compatible set of tools, including among others a C# compiler and a Common Language Runtime.” Which, besides being a mouthful, is the reason why people make fun of Wikipedia. In simple terms, Mono allows .NET applications to run on non-Windows machines. .NET is a set of programming languages that meet a specification set up by Microsoft. I haven't had a lot of experience running games under Mono, but from my experience, Mono does allow applications to run smoother and with less hiccups than Wine does, when the application is compatible. To the best of my knowledge there isn't an application database for programs compatible with Mono, and Mono has a number of “pieces” than can be optionally installed. In practice, I tend to only use Mono when I can't get a program running in Wine.

And, heading to the well one last time, Wikipedia reports that “ScummVM is a collection of game engine recreations.” Short and sweet this time, basically ScummVM allows you to older adventure games on a modern systems. I tried this on Windows a few years ago and it worked perfectly. The only drawback to this software is that it has a fairly limited selection of titles supported at least compared to Wine and DOSBox.

Well, those are the applications I keep handy for gaming in Linux. If I've missed any obvious application let me know.

Friday, February 12, 2010

An Introduction

Hello and welcome to the Niche Tech Guy Blog. All the cool kids seem to be doing this blogging thing so I figured I'd give it a shot. Besides, if my wife can do it ... it must require a high degree of technical sophistication. With that said, let's run down the standard questions.

Who are you?

I am Michael Curran, a 29-year old Industrial Engineer employed at a mid-size manufacturing firm where I do battle daily with Microsoft's Dynamics AX. I live in the Hub of the Universe, better known as Boston, MA with wife, 2 year old daughter and pair of cats.

What are you going to talk about?

As the title of this blog implies, I intend to talk about niche technical topics, so the only time I'm likely to mention something like the iPad is when someone is trying to turn it into a coffee maker. A few examples of topics that interest me are Old School PC gaming, hardware hacking, Open Source development, and Roguelike gaming. So expect plenty of articles about hacked together gaming consoles designed to run open source remakes of old school PC roguelikes.

So what's the format going to be, rants, reviews, etc? Also, how frequently are you going to post?

I'll probably do a little of everything to start with and then figure out what works and go with that. So stay tuned. For posting frequency, I'm going to aim for once a week for now and adjust as needed.

Why should we listen to you?

Well, if you are interested in some of these topics, there really aren't that many mainstream sources around. Also, frankly, half my purpose in starting this blog is to practice my writing so I won't exactly be crestfallen if isn't competing with TechCrunch by the end of the week.

I wish to stalk you, what other social media systems can I find you on?

Well, once the TRO is signed, I am on Twitter as SBBurzmali and on Buzz as Curran.michaelp. I have and Facebook accounts, but I don't really actively watch them at this point so, you probably shouldn't bother stalking me there.

So, those are all the questions I ask when I visit a new blog, so now I ask you potential readers, is there anything I've left out of this truly awesome introductory post?