Official Developer Blog of

LMG_Core Framework

LMG Salinger

Hostime Hustle (I Accidentally…In Space! Ep1) was release close to a year ago. Some videos were posted shortly after on Lethal Martini’s YouTube page about an overhead, twin stick number called “No Rest for the Wicked.” Then… NOTHING!
Where the hell have these guys been and what the hell have they been doing?
Have the Lethal Martini Games dudes gone into seclusion?!?!?
Nah, we love doing this shit WAAAAY too much for that. The truth is, shortly after Hostile was released, I (Paul) discovered a little gem called Airplay (now known as Marmalade). It’s a nifty little gem that lets me write for Android and iOS without (A) having to use a Mac and (B) having to learn Objective C (yecchhhh!!). It did, however, force me to learn Marmalade and re-learn everything I’ve forgotten about c++. It was a long road of sloppy code and learning from my mistakes and re-writing crap, but eventually I wound up with a fully functional version of Hostile Hustle for Android and iOS (which will be released soon FOR FREE! for a buck – sorry, paradigm shifted when we wound up overhauling the game – see THIS POST. Windows version will be free!).
What it really led to was this:
When we wrote Hostile Hustle, it was built on our proprietary little game library called xDrake. It was decent enough, but was (A) a little limiting and (B) very much geared towards the xBox. For example, mobile and PC games would essentially simulate a gamepad. Eventually we learned that this just wouldn’t cut it, especially when working with touch platforms. So, xDrake was ditched and re-written from ground up as a leaner, more flexible and more multi-platform friendly game library we proudly called LMG_Core! LMG_Core has an XNA version for Window, Windows Phone and XBLIG, and a Marmalade version for iOS and Android. I’m even toying with the idea of writing a Java version for web games, just because it’s that clean and easy to port. All of our games from here on will be built on it.
Which brings us to games… We’re done writing back-end engines, and back to writing games!!!! (YEAAAAAA!) Scott and I have had multiple meetings recently, and are whipping together a prototype for our next release, a puzzler starring an adorable little skunk. More information will follow soon!
We’re back, folks, and we’re not f**ing around! We’ve streamlined our coding and our process, and we now have the foundation we need to get past a lot of the technical minutia and focus on what we desire most: making some games!

EDIT: Did I mention I bought an HTC Trophy Windows Phone 7 phone? 🙂 All platforms testable nao!!

State of the Union

Again, a long time has passed since our last post. Sorry about that. We’ll get better, I promise!!! 🙂
So this has been an amazingly productive weekend. Thanks to an unexpected rainy Saturday, I was able to take the big dumping ground of a single header file per c++ project and get them properly segregated. As I was basically re-learning what little I had previously known about the ins and outs of c++, I did a half-assed sloppy job of it. It’s still a little sloppy, but much better! I’m testing the ARM build of “No Rest for the Wicked” as we speak. I did this to clean things up a bit and to make things a little more manageable. There are a couple of weird crashes happening on iOS and Android versions (in different places – weird), and hopefully I will be able to track them down now and move forward with some real progress. I will also be overhauling my drawing routines to be a little cleaner. Once this is all taken care of, I’m hoping we’ll to be able to just start knocking out some games for reals!
Kolphyre has taken the helm nicely with NRFTW, and has 9 (out of 100 planned) playable levels! Now it’s kind of a race to see who can get something to press first. I’m working on what is basically a completed game, so I won’t gloat too much when I win.
And, on a final note, I finally got around to some XBLIG playtesting. I really need to stop neglecting that so much – poking around on the forums after too long is like taking a year off of school, coming back, and not knowing who the hell anybody is.

“…But, these little set-backs are just what we need to take a giant step forward. Right, Kent?”

So I was a little bummed last night. You see, I had the weekend off and decided to do a long needed revamping of the particle engine we’ve been using. I kind of spaghetti coded it over a couple of weeks, and frankly it was sloppy as hell. Cryptic property names, no real structure, almost unmanageable. So, I started from ground up with this great idea of modular particle system. Spent the ENTIRE WEEKEND writing it. It ran flawlessly until I discovered that it performed about 60% as well as the old one.
So I tweaked it, and tweaked it some more. Removed some features, moved a few things around, but still couldn’t get it to run as well as the disaster I had previously written. On top of that, the time I would require to get all of my existing game code to work with the new methods was far greater than the advantage I would get from this cleaner (and slower) version.
So, I retired for the evening, defeated from having wasted a fine (though rainy) weekend off.
But then, the clouds lifted… I woke up with a fresh insight, and decided to take a look at the original system. The two days of writing the new one gave me a ton of new ideas for cleaning up the old. I went through and re categorized everything (form only, not function – didn’t want to break it or slow it down), renamed a couple of properties and methods to more sensible names, and once again have a full understanding of how my own code works. (I know, it’s sad that this statement even need to be made…)
So now that that’s taken care of, it’s on to taking something that already works pretty well and optimizing it some more, and then back to writing some actual game code!

Did “Step Up” REALLY have to be in 3D?!?!?

So I’m in the process of converting all of the 2D back-end framework into 3D for future titles. As it turns out, it’s not really all that tough to just add a third dimension to existing 2D logic! Even the 2D particle system converted over nicely. The only things I’m really going to have to put some thought into adding are on the drawing end: making the conversion from using textured flat sprites to 3D models, and camera handling in various 3D game environments (both of which I technically already took care of in some of the DirectX stuff I was working on prior to switching to XNA, so I’ll probably just port that over).

The game plan, folks, is to rock out one more 2D platformer (“Spelunker,” as we’re temporarily calling it), then move on to some more robust 3D titles. Hopefully, aside from future IAIS episodes (and maybe a Mechfish sequel? No, scratch that…), 3D games will become more of our trend, but we’ll see. It all depends on the delicate balance of time spent on a project vs. actual income potential of the project on the XBLIG platform. (there goes more business stuff.)