Labyrinth! Status Report

Quick update on Labyrinth!…

I’ve had a number of other things taking priority over Labyrinth! development over the past few weeks, which successfully nixed the chances of getting the game released in April. Given that this summer is going to be rather busy between going to AFF next weekend and having Mysterium 2009 planning kick into over-drive very, very soon, I don’t know if I’ll be able to wrap the game up by the end of May, or even by the end of the summer, but I’ll keep soldiering on and giving it my best shot.

Published by Alahmnat, on May 7th, 2009 at 4:34 pm. Filled under: Game Development, LabyrinthNo Comments

Labyrinth! Development Update

Development continues apace. Last night I worked on getting the control scheme and event handling used in the original beta (which we’ll now call an alpha, because it was really, really janky) up to snuff for a multi-level game with proper abstraction so that I don’t have to re-write code for every level.

Ran into a minor setback when physics suddenly decided it just wasn’t going to cooperate anymore, and the marble stopped responding to gravity. Nothing I did would fix the problem, so I decided to ditch the old project (which has been around since Unity 1.6.2, and upgraded through Unity 2.5… this may be the cause of some issues now that I think about it) and start a new one, without any of the legacy junk cluttering up the asset list and possibly interfering with behavior.

Unfortunately, the move to a new project has seen the return of a few glitchy behaviors in the marble collision… it’s now really, really easy to get the ball to fall through the floor, just as it was during the early days of the original alpha. Now I have to try and remember back 18 months to figure out what I did to fix that problem…

Aside from the glitchy marble collision, though, things are going quite well. The main menu has been tweaked so that it looks good at multiple resolutions (those running widescreen displays and high-res screens will see a fair amount of blank space around the main UI, but this is a lot easier for a first project than trying to dynamically rebuild the placement of every UI element based on specific resolutions, or trying to use proportional dimensions by dividing the screen width into various fractions and trying to line everything up that way). Level loading now works properly, the levels themselves have a proper pause feature built-in (it freezes the marble, decouples the mouse from the board controller, and displays a menu UI), and the start/end triggers are functioning properly.

Today, my goal is to get the scoring system built, which includes building in a timer to track how long you’ve been playing the level, and a counter to determine how many balls you’ve used. The 3-ball limit from the original alpha (as well as the infinite ball bug where restarting the game after losing would give you unlimited balls for a second try) is now gone, as we’re moving to a different scoring system with the new builds of the game. There are also a couple of additional in-level menu items that need to be added to the pause screen, further testing to ensure that the hole collision and powerup spawning/collision work properly, and a way to submit player scores to an online leader board (with in-game leader board display, ideally).

Tomorrow, I’m going to be building the Maroontown Games logo animation and integrating it into the game’s launch process (complete with skip triggers, so if you don’t want to watch the animation, you don’t have to!), and doing some more testing with higher-level boards to make sure everything works correctly. Hopefully by Sunday I can start working with the real final boards, texture and all, and be able to get the whole game linked up by the end of the day Sunday. Final assets for stuff like powerups and background scenery will be completed over the next week.

Next week, I also plan on working on audio with Oscy. We’ve got plenty of music that needs to be composed, and sound effects that need to be designed. Sound is the one place where we’re really falling down at the moment, unfortunately, because we don’t have a location or the hardware to record good foley, and our compositional tools are somewhat limited (we have GarageBand, but no instruments or midi keyboards to plug into it). Hopefully we can pull something off that’s better than what we had in the early pre-alpha builds in 2007… it was so bad it was just unusable.

Published by Alahmnat, on April 10th, 2009 at 12:26 pm. Filled under: Game Development, LabyrinthNo Comments

Labyrinth!

Just a short development update. First, to emphasis this game’s Labyrinth-ness (as it relates to the original wooden board game, anyway), the name has changed slightly. It’s now “Labyrinth!”. How enthusiastic! ;)

As I noted last night on Twitter, the game now has a fully-functional main menu UI. There’s a few extra bells and whistles to add in, and the graphics will probably end up changing a bit before the end result is done, but the core functionality is complete. The main menu, player selection, and level selection menus all work, and the level selector also loads the selected level and has support for locking more advanced levels until players reach certain thresholds (like completing earlier levels or hitting a minimum cumulative score).

Ash has been busy building the game boards for me, and tonight I’m going to work on designing and building the assets for some of the game’s various “power-ups” (score multipliers, teleporters, and anti-gravity triggers). I’ll also try to get the first level completely built, including its own in-level menus and indicators (like score and time). Once the first one’s done, the rest should fall into place fairly quickly, so I suspect that by Monday, I’ll have a fully-functional game that just needs some polish to make it complete.

Labyrinth! Finally! Exciting! XD

Published by Alahmnat, on April 3rd, 2009 at 12:18 pm. Filled under: Game Development, LabyrinthNo Comments

Windows Gaming, Here I Come

Recently, the game development IDE I use to pretend to build games was updated, and it was pretty substantial. The IDE now runs on both Mac and Windows, and while it’s always been able to build for both platforms, I could only ever use the Indie version (which is 1/10th the cost of the Professional version) to build for the Mac. This in and of itself wasn’t exactly a bad thing, but it did rather substantially limit the market I could target. The new version removes that restriction, favoring less severe (but still occasionally frustrating) restrictions like realtime shadows, post-processing effects, render-to-texture capabilities, and most live asset streaming. The practical upshot of this is that I can now reach a potential audience that’s 90% larger than it would have been before.

Now all I have to do is freaking build a game… and on that note, I fired up my long-ignored Labyrinth project a couple of days ago. Blessedly, the control scheme still works flawlessly, and the marble behavior is possibly even a bit better than it was in the older versions of the IDE (PhysX implementation improvements FTW).

My biggest stumbling block with this game has been coming up with unique board designs that are challenging without being Nintendo-hard, and that take advantage of the possibilities of a digital version of Labyrinth. Since I’ve hit something of a roadblock in the board design department, I’ve decided to just build what I have and go from there. Maybe modeling some of these boards will give me the creative boost I need to design some more. As it stands, I’ve got somewhere between 10 and 15 designs already, which I think makes for a decent low-end, low-price game. If I can work out how, I’d like to leave this thing somewhat open-ended and provide downloadable content packages for a fee, so that I can always return to this game if I need a break from another project.

So, tonight, I build Labyrinth boards. Tomorrow, I work on the game’s UI. Since the control scheme for the game is already in place (I even have server-side high score reporting, so all of the really hard stuff is pretty much done), I can hopefully get this thing released by the end of the month. Fingers crossed!

By the way, if anybody has any experience with or knowledge about selling games on services like Steam, MacGamesArcade, or Greenhouse, let me know, eh? I’d like to hit as big of a target audience as possible, and the fewer billing-related things I have to worry about, the better.

Published by Alahmnat, on April 1st, 2009 at 1:32 pm. Filled under: Computing, Game Development, Labyrinth, Software1 Comment

Updates and Stuff

It’s been a bit of a while since I last posted something, so I figured I ought to.  Nothing fancy, just a bit of a status report on what’s going on with me.

After months of saying I needed to do so, this month I finally started tearing through the Archive cleaning up attachments and re-tagging entries as appropriate.  I’ve got a running list of entries that need a bit more TLC (or a lot more, in some cases) that I’ll need to come back to after I finish the initial clean-up push, but so far the list is only about 30 entries long out of the 900 that currently exist (so, roughly 3% of the Archive).  I’m almost all the way through the collection of journals and notes (which are being split into 2 groups for organizational simplification), after which there’s just people, places, objects, speeches, and translations.  That may sound like a lot, but I’ve already gone through Ages, plants, animals, DRC research, and all of the D’ni culture sections (DRC Research was a bear… I think most of the really screwed up attachments were in that tag).

On a related note, is anyone having problems accessing the Archive?  I just discovered that for no apparent reason a couple of my staff members can’t see anything in the Archive… if anyone else is having this problem, PLEASE let me know!  I can’t fix it unless I know it’s broken!

I’m also hard at work on a number of game ideas.  A couple of them are a lot more advanced and will require considerable time in the modeling, texturing, and figuring out how to do stuff in the engine departments, but one of them I’m actively developing right now.  Some of you may recall my little Labyrinth project from last year’s ill-conceived attempt to enter into the Unity Top DOG competition about 3 weeks from the deadline for entries.  Well, I’ve decided to do it up proper with much better graphics, a whole slew of Labyrinth boards of varying difficulties, and way fewer bugs.  Right now I’m working on laying out all of the game boards, and trying really hard not to make them overly-difficult in the early stages.  I don’t think the game will end up being easy by any stretch of the immagination, but I’d at least like it to be somewhat challenging without making your brain explode.  The current design plan calls for 30 boards across 4 difficulty settings: 8 each of easy, medium, and hard levels, plus 6 more “tutorial” boards for practice, training, and introduction to some of the wackier elements of the game.

I’m also still working on getting a new iMac.  My G5 has been sold, but the buyer is also getting a whole mess of additional hardware and software from Mac Odyssey as well, and has yet to pick up the G5.  Since I don’t get my share of the sale until the buyer has committed to keeping the machine a couple of days after pick-up, I’m still waiting.  Fortunately, the delay may in fact work out in my favor: Mac Odyssey got wind that a number of last-gen machines that failed to sell in the education sector are being pushed into the non-Apple Store retail sector at discounted prices (this being Apple, “discounted prices” could here mean a minor reduction, but any reduction is money I don’t have to pay!), so I may be able to work out a deal on a much nicer Mac that I’d otherwise be able to afford.

Changing gears, I’ve been keeping quite busy at the job I’m actually paid to do as well.  I’ve been making continued improvements to the software I’ve developed, and am working on ways to further improve the standards-compliance and design flexibility of the HTML I generate.  I’m also teaching a two-hour-a-week “class” on XHTML and CSS, which may be the single best thing I could have done for my own understanding.  It’s one thing to teach yourself… it’s another thing entirely to teach others.  I think I’ve picked up more tricks and all-out skills since I started teaching this stuff than I have since the first couple of weeks of learning it.  I’m also continuing to make advances in what I know about ASP.NET and C#.  While I’m still rather utterly lost on some of the bigger concepts, I’ve been able to start playing within small things those concepts to start broadening my understanding.  For example, yesterday I fixed a bug in an ASP.NET control adapter that replaces the table-based layout of the standard control output with CSS-stylable DIVs and list elements.  Initially, I was unable to assign attributes to the control through the C# code-behind, which prompted a bit of research and finally a bug-fix that resolved the issue, so now my radio button list has its onclick attribute once again.  Hooray!  I still couldn’t actually write a control adapter from scratch, but I now have a bit more knowledge of how to edit an existing adapter to suit my needs.

Anyhoo, I’d best be getting back to work… plenty to do, and no time to do it in :P .

Published by Alahmnat, on June 26th, 2008 at 10:21 am. Filled under: Computing, DPWR, Game Development, Internet, Labyrinth, Me, Programming, WorkplaceNo Comments

Sadness

So, the winners of the Unity Top DOG Contest were announced today. As I suspected, our hastily-constructed little labyrinth board didn’t really stand much of a chance against the heavy-hitters with a 5-week head start (well, “head start” may be the wrong word, seeing as how that’s when the contest actually started…). The winners were announced today, and can be seen ,a href=”http://forum.unity3d.com/viewtopic.php?t=6882″>here. Many congrats and kudos to them and everyone else who entered.

Thus freed from the requirements of the contest, I’ll probably do a considerable amount of tweaking on the game at some point, adding in additional boards, better environments, more legible text, and a fix for the pesky “infinite negative balls” bug you get after you lose and hit “Play Again”. My goal with this game is to eventually have two versions available: a simple web-based version with maybe 5 levels or so, and a more in-depth desktop app with more options and levels. I hope Oscy’s up for a lot more GarageBanding ;) .

This is on hold until after DPWR gets upgraded, though. More on that briefly, but suffice it to say that there should be a lot more than Uru Live’s season finale going on in October at DPWR. :D

Published by Alahmnat, on September 24th, 2007 at 4:31 pm. Filled under: Computing, Game Development, LabyrinthNo Comments

Done!

Yeah, dropped off the face of the earth for a while on this one, but being sick and otherwise obscenely busy keeps you from doing game development in your spare time :P .

Labyrinth is complete! Or at least, complete enough that it can be submitted for the contest with a minimum of embarrassment on my part. I’m pretty sure it will pale in comparison with the other stuff being submitted, but hey, we gave it our best. It took all weekend – with some crazy-long hours at the end – to get it pulled together, but it’s done, and right under the wire, too (deadline is in an hour, and the files just finished uploading). It’s not as full-featured or expansive as we would have liked, but I think I made up for it with the sheer deviousness of the board itself ;) . Anyone interested in playing it can head on over to http://www.revision1.com/maroontown/labyrinth.html to take a crack at it.

Kudos and many many thanks to Oscy for putting up with me this weekend, and for putting together the audio and music for the game.

And now, I go die. ;)

Published by Alahmnat, on September 17th, 2007 at 3:52 pm. Filled under: LabyrinthNo Comments

Braindump

I’ve had a number of thoughts floating around in my head for a while, and I’ve decided that rather than spam MystBlogs’ feed with what may end up being a dozen little blurbles, I’ll just lump them into one big stream-of-consciousness thing here.

First, on a note that’s related to my previous two blog entries, I continue to be impressed with the Unity3D engine and related development environment. It feels a lot like the descriptions of Plasma that have been coming out of Cyan for the past 6 years, it’s incredibly easy to just mess around with, it’s pretty well-documented, and I can leverage my existing JavaScript knowledge (not expertise, but knowledge ;) ) against scripting actions for games, because Unity’s scripting environment is C#/JS. Perhaps the biggest testament to the engine’s ease-of-use is the fact that in 3 days, I’ve already managed to prototype a pretty good deal of Labyrinth’s mechanics. Scripting is done, as I noted before, with JavaScript (or C#, if one is so inclined), and scripts are attached to objects in the engine. Any public variables (for anything from integers to other object references) can be assigned dynamically by typing in numbers (for integers) or drag-and-dropping objects onto the relevant field in the script’s inspector (for enabling script-based control of an object).

It just continues to boggle my mind that in the space of 3 days (counting from Friday night to Monday night; unfortunately I’ve been busy the past couple of days and haven’t gotten much more done) I’ve managed to enable mouse-based control of the Labyrinth board, enable physics-based movement of the marble on the board, create a game timer, a re-spawn control should you fall through a hole in the board, and define win regions using the engine’s built-in physics-based collider/trigger system (see? more and more Plasma-like all the time. Now about those doors… ;) ). Still on my to-do list before the end of the week is the development of placeholder “power-up” objects in MAX (really, just some spheres or cubes… the great thing about Unity is I can re-save a more advanced model later and after an asset refresh, any already-used instance of that object will be automatically updated with the new data) and the scripting necessary to control them. I’ll probably put most of the scripting on the marble itself, since that’ll be an easier, more centralized way of maintaining the entire gameplay system than having a dozen little scripts scattered all over the place. I also want to do some research into how to load a new level after you complete the current one, but that’ll come a bit later I think. I’ve got 20 days left, and lots of work to do, but I think it can be done. I may not hit 30-35 different game boards by the end, but I’ll probably be able to come damn close… board-making is a piece of cake, really.

On a game-related note, Oscy and I have been playing Tomb Raider: Anniversary together after downloading it from GameTap. We haven’t finished it yet, but I have to say that so far I’ve been pretty darn impressed. Admittedly, some of the twitchier and more prolonged jump/climb/jump/shimmy/swing/shimmy/jump/climb/climb/climb/jump/fall/die/repeat portions can get a bit tedious, but it’s a really fun game with some pretty clever puzzles, and I’m glad I succumbed to the hype train that GameTap has been conducting and played it. My last experience with Tomb Raider was in 2000 when my (much older) cousin let me poke around in the original Tomb Raider’s Croft Manor section while my mom, my brother, and I stayed at my great-aunt’s house in Florida on a trip to Kennedy Space Center, so Anniversary has been quite interesting to me (I’m still trying to figure out whether they built Croft Manor off of a real British manor for the games, or whether they built a wicked-sweet set for the movies).

Also, Sam & Max Season 2! w00t!

Continuing on the subject of gaming and Macs, Oscy and I had the pleasure of attending Urupalooza a couple of weekends ago. We managed to drag R-chan along with us, and she in turn decided to basically kidnap a friend of hers (Scott) from Gas Powered Games, and together we roamed around Seattle on Sunday. Part of our excursions took us to a local mall, because I was rather adamant about taking the opportunity to visit one of Seattle’s three Apple Retail stores, since Spokane has none. By the way, the one in the Alderwood Mall (in Lynwood) is really cramped compared to the one in Kenwood, Ohio. While I was there I managed to dink around with the new aluminum keyboard (I like… sure beats the hell out of the white one I’ve got; the keys are better suited to my style of typing) and mess with an iPhone for the second time in two days (Brian Fioca has one, it is sweet).

Somewhat tangentially, I picked up iLife ‘08 (planning on getting iWork ‘08 soon), and have spent a considerable amount of time re-reorganizing my photo library around the “events paradigm”. This, coupled with the recent acquisition of a full-fledged .Mac account (well, a full-fledged .Mac sub-account, because my brother can’t follow directions on not using the Family Pack activation key himself *grumble*), has resulted in Urupalooza photos being posted online in a shiny .Mac Web Gallery for all to see. So go see :) .

Anyway, R-chan – as anyone who was at Mysterium 2006 likely knows – is the proud owner of a light green new-model VW Beetle (with the license plate “MT DEW”, of course). Because the alternative would have involved trying to cram the three of us into the cab of my (very small) S-10 pickup truck, we also hijacked her car for the trip. R-chan’s car is the only Beetle I’ve ever been in, and it’s quite nice. I actually made the off-hand comment on the way to Seattle that the Beetle was probably the closest thing to an Apple-branded car out there. Amusingly enough, on the way back R-chan started playing a CD, and I discovered that her CD player was located in the trunk. This is largely because it’s an after-market add-on developed by VW because the Beetle didn’t originally have a CD player option. Oddly enough, this served to cement my impression that it was basically the Macintosh of cars, because as much as I do like Apple’s products, they tend to have this one weird thing that totally throws you for a loop. Y’know, like the old one-button mice, the non-optical, un-cleanable ball in the Mighty Mouse scroll nipple, the fact that the Dashboard’s implementation doesn’t exactly match the definition of the actual English word, the fact that you can’t sync notes between the iPhone and your computer, or that the USB 2.0 ports on the aluminum keyboard apparently only have enough power to do stuff like charge iPods when attached to an aluminum iMac… these are all “CD player in the trunk” sort of oddities that, while not complete obstructions to usability, do kind of make you wonder what they were thinking.

And now Apple and VW are supposedly making a car together. If the CD player ends up in the trunk, I will laugh myself silly.

Also, Apple is likely going to be announcing new iPods on my birthday. Or at least something Apple-related. Best. Present. Ever. Now I just need money and an easily-accessible Apple Retail store, because I don’t think I’ll be able to wait for shipping if it’s as good as I think it’ll be (and no, Seattle is not “easily accessible” from Spokane). My 1st Gen mini is in desperate need of replacingment. I’m also thinking about seeing if the local authorized reseller has any aluminum keyboards available… if not, I may have to order one. As I mentioned, I really like the feel of the thing, and once I adjusted to the slightly wider-than-normal key spacing, I was typing at my regular speed (as a test, I banged out the intro to Myst in TextEdit… yes, I am a nerd).

On a (nerd-)related note, I correctly identified a font from a sample printout today. Granted it was Courier, which was easy for me to catch because the printout looked identical to a Notepad printout, and Notepad’s default font is Courier, but still… nerd-dom, here I come (or here I am… not sure).

Next week is my birthday, and it’s weird thinking that I’m already going to be 23. What doesn’t help is when people on dA post journals about getting glasses and turning 17 and how they feel really old all of a sudden. I seem to have started shouting “get off my lawn!” a lot at these types, and I can’t help but think that it’s hurting more than helping ;) . Next week is also our second wedding anniversary (I can’t figure out a not-stupid-sounding way of making “Oscy and I” possessive), so whee :D . In two weeks we’ll also have been living on our own in Spokane for 9 months, so there’s something of a marginally-impressive milestone.

My braindump seems to be petering out now, so I’ll just go ahead and wrap this up for now, and hopefully be more coherent on a day when I’ve had more sleep and less brain overloading at work.

Published by Alahmnat, on August 29th, 2007 at 11:48 pm. Filled under: Alahmnetcetera, Game Development, Hardware, LabyrinthNo Comments

Physics

So hey, this is the inaugural post on this game in my blog, w’hoo :) .

I spent some time this morning working on adjusting the physics of the game while waiting to video chat with my grandma across the country to wish her a happy birthday. Among the things I wanted to fix were the max tilt of the board (I had set it to 45 degrees as a test yesterday), and the speed and mass of the marble.

The board tilt was easy enough. After working out how to cap the board’s rotation last night, I just set the maximum as a variable instead of a hard-coded value and can now adjust it as a parameter of the board itself. I dropped it from 45 degrees to 15, but I may twiddle with it a bit more later on.

The marble movement was a bit harder to fix. I spent about 40 minutes playing with mass and drag parameters trying to get the thing to accelerate constantly as it rolled across the board, rather than just getting going and then rolling at a fixed rate of speed. I finally came across a parameter in the physics settings entitled “Max Angular Velocity”. This was set to 7; far too low for this application. I upped it to 20 and the marble started behaving more realistically, but it was almost impossible to stop it before it rolled off the edge of the board. So, I dropped the mass from 1 to 0.1 and now the ball moves realistically, and is fairly easy to control. Huzzah!

My next step is to make a basic board in MAX with a few holes in it, a marble to match (settings will need to be migrated over from the current test board setup), and see if I can get the game to behave as expected. I’ll probably get a start on the board mesh during lunch tomorrow (as today was largely spent playing Tomb Raider: Anniversary… time not at all wasted, if you ask me… that game has some serious production value, and being perhaps the only person to get through the ’90s without staring at Lara Croft’s bum, it’s been quite fun to play the game, story, and locations for the first time), and wrap on a test board and marble combination by the end of the day, hopefully with some testing and a new demo to go along with it. I’d also like to try getting some UI elements (like a timer and the point scorer) on their way to implementation as well.

By the end of the week I aim to have the demo board working, have the UI implemented, and hopefully have a jump start on getting the power-ups and game modifiers into development. It’s more a question of how much time I have to put into it than how much Unity will enable me to do… so far development has been pretty quick… three days from concept to working tech demo isn’t bad, I must say.

Published by Alahmnat, on August 26th, 2007 at 10:59 pm. Filled under: Computing, Game Development, LabyrinthNo Comments