“Prison Escape”: A post-mortem

This day wasn’t a day I would want to happen to any of my projects, let alone when it’s collaborated with another person’s work, but before I end 2014 it at least deserves a little burial ceremony. I’ve announced this earlier in December but never had an official update here (since I wanted to take care of its post-mortem in one fell swoop), but Prison Escape has been canceled. This post will break down what happened and why, and how most of all this was still a valuable learning experience. Keep in mind a lot of this gets technical, but since this is a gamedev blog, that’s just the nature of the business. If you’re not here to find out the nitty gritty on why, scroll down to the summary on the bottom.

As a recap, I started Prison Escape when my brother’s Kickstarter for a movie adaptation based on his graphic novel The Chair was preparing to launch for late Spring 2014. We sat down and planned things out for a mobile game to go with it, slated for a Fall 2014 release to iOS and Android. I’ve worked in Lua in the past, and this would be my first finished mobile game. (I did a drag-and-drop game for one of my thesis works.) Concept art and core mechanics were put to paper, and it was time to work.

Sadly not even 2 weeks in that was when the trouble started. While I knew Corona could port to iOS and Android, I was not aware you needed their respective OS’ for this to work (a copy of Corona on a Mac, and one for PC). I’ve worked with Macs in my university (and was probably why I didn’t pick up on this critical fact prior) but otherwise I am 150% a PC girl. Yes, despite being a graphic designer and an artist overall. Like most artists, I am not made of money, so spending almost a grand into a computer that will just be obsolete in 3 years doesn’t make much sense in my head. I know plenty of friends and other people (art folks and non-art folks alike) who will invest in a Mac regardless, and I’m cool with that. But the easiest way you can insult me is to recommend me ANY Apple product to replace anything in my tools of the trade.

That said, you can bet your lucky dollar that when I found this out with Corona’s port for iOS publishing, let alone most game engines for iOS publishing, steam was coming out of my ears. As a developer I’m fine with using or even buying a Macbook if I have to, but I had also just got myself a high-end Dell that Christmas beforehand. I would only get one if there were no other options.

So I did my research on cross-platform tools as a secondary option, and I fell upon Marmalade. While it’s popular for its C++, it can also run Lua and HTML5. Its license also extends across the board, so that one copy of the SDK can help port to iOS and Android all on one OS (other licensing fees and registrations are separate otherwise). So I took advantage of their free one-year GDC promo license, since I had just spent money on a one-year for Corona and was fairly annoyed at myself for my other mistake.

For a while, things with Marmalade went well, and I was even able to churn out a demo – a very buggy demo. For those who have only worked in Corona before, Marmalade’s Lua is almost the same, though keep in mind much of what Corona did was build its own libraries to make writing Lua a bit easier. Marmalade was straight-up bare-bones Lua. If you have an understanding of Corona’s Lua, for the most part you should be okay but many times I had no idea how certain functions or directories worked without using Corona’s built-in libraries (since the other didn’t understand what I was trying to call).

I will be honest – I am not an expert in Lua. But I do know enough to write something that should work. Why this project still fell flat on its face was that I didn’t know enough to break down why things weren’t working, let alone how to fix them. This was horribly obvious when it came to using its random numbers generation, and that was the biggest downfall for this project.

You see, generating a random number in Lua is more than just popping in “math.random(int)” (with “int” being whatever number value you want to put in). Simply using that line of code only generates one number at random upon start-up for the entirety of the game unless it’s restarted. It will need to be called again, usually with the help of functions, in order to help regenerate another number again and to keep things at random. However this is still not true randomness, and is often described more as pseudo-randomness instead. In the case of Lua, depending on what developer’s kit, or even OS that you’re running with, the algorithms for this can vary. Lua-users.org explains this in more detail.

Normally this may not sound like a big deal for a game, and that can be true. If your game only requires its use for a small mechanic, you can get away with this without worrying about what algorithm is behind the numbers being generated at random. But games like endless runners heavily rely on random numbers, and anything that deters from the illusion that every obstacle and power-up is indeed coming up at random to the player, will make your game look like a piece of trash. Running too many generators will also steal your game’s memory like crazy, and if not cleaned up properly, will cause it to lag and eventually crash (which has happened in one of the more recent builds at one point).

I’m sure there are plenty workarounds for this type of problem, seeing that it’s common enough to be addressed across various forums and guides online. But those are things I would like to leave to a second helping hand who knows their way around code much better than myself. After looking over the problems and the other solutions left to continue the game, it was decided that the game should be canceled. Putting out a product that might only work half of the time or would just crash for certain users was absolutely not an option.

To make a long story short, difficulties with OS publishing and game crashes led us to cut life support for the project. It was quite a learning experience though, and maybe they’re some things that others can find helpful to keep in mind. Or to laugh at my foolishness, whichever is preferred.

I’ve made good progress with my visual novel however, so the next update will be on that. My story summary has changed since my last post about it, but many of the story aspects (and definitely characters) are still the same. As you may have guessed by now, the beta for it has been debunked because I have to shift that code over to make room for the actual intro. I’m still accepting voice actors though!

I wish everyone a Happy and Healthy New Year!

Wait…barfing unicorns?!

I’ll get to that in a bit. It’s not as gross as it sounds, trust me!

I wanted to wait for more updates and fixes to be done with my projects so I could condense it into a larger post like here. First on the agenda, I finally got my bullets working properly in Prison Escape!

I like how the more gifs I do of this game, the more Sullivan looks like he has to run to the bathroom.

As you can see, the bullets now regenerate upon leaving the screen or colliding with Sullivan. However, I’ve been meaning to update his collisions so they’re more precise, and now is finally the time since the randomizing of the bullets will help see this more visually. Unlike the ugly green box from last, he now has 3 neat skinnier boxes, which now just have to be tested (aka math).

“But what about the particles?”, you’re wondering. Yes, they were a lot of fun, but I plan to make little explosions when the bullets hit Sullivan so you know if you got hit or not. For now they’re turned off, though coincidentally, making them move around was what helped me figure out how to regen the bullets, so thanks particles!

As of barfing unicorns and particles, here’s the mini-app I ended up compiling on a whim from my last update. I obviously had too much fun with the whole thing.

Hmmm is that were rainbows come from?

So far, the point is that when you tap the screen, rainbow splatters go everywhere. Surprisingly enough, Marmalade also registers multitouch with the license I have, so I learned something nifty that day! (To be honest I’m not even sure if Corona does the same thing for the same type of license I used to have but I never got around to experiment.) Other silly features the game would eventually have, should I ever want to continue it even for my own amusement, would be randomized techno upon touch, other variants of splatters, and accessories for the lovable unicorn here (hats and other clothes). People like customization! (Just nod your head and go with it.)

For something a bit more serious though, I do have an important announcement regarding Project: Mittens, the top-down adventure game with fantasy cats I have also been collaborating with a few people. An audio designer is now on board, and the date for the full working demo has been changed to Thanksgiving rather than September 30th due to conflicting schedules. The current playable demo is still live though, so if you didn’t get to check it out yet, you can still do that. (Please do!) A few bugs and errors were fixed thanks to our prototyping results, so it works even smoother than it did before!

Currently the playable demo only has the Engineer available, and no enemies.

While the newer workable demo is in the works, I will be supplying more sprite/sheets, so except some more previews of that to come in the next few weeks!

The Magical Mystery Bullet

Also known as “I got slammed with double shifts like crazy so I apologize for being quiet lately but thank you for your patience”!. Phew!

Despite my crammed schedule, Prison Escape (which I mistakenly kept on calling Prison Break for the longest time and had to be corrected by my client, sorry!) is moving along well! I fixed some bugs from the rough demo release that was shown and well-received despite them. I also decided that making the bullets as particles instead would be a better workaround, since I was still having trouble getting them to spawn from arrays for some reason.

So after plugging in the bullets with the default settings for MarmaladeSDK’s particle effect, this magical wonder happened:

 

thechairbulletswtf

The Magical Mystery Bullets are dying to take you away!

 

Of course, it would be bad taste to leave them in the game’s final release, but the effect is so dang humorous that I decided to save that idea for another game I will be making after this one is done. It’ll be much simpler and will be very colorful and wacky, as most of my games tend to be. After working on so many projects that were rather involved, or had short deadlines, I feel that doing a smaller and more casual game would help give myself a break while still churning out work.

I was hoping to even do a prototype tonight just to mess around, but I think I’ll hold off for my next update. 

Jumping Around

Hello everyone, had a busy week and a half but now I can get around to continuing my game dev! For those that saw me at Eternal Con, thanks for stopping by my table and I hope you had fun at the convention! Sadly I won’t be returning to that one next year, but I’ll see what else is around the area for me to check out next.

A few days ago, I got my new Marmalade build to work again, support moved my license over with no troubles. I went ahead and placed Sullivan’s hitbox, as seen here in the gif, and I also got him jumping!

 

sullivanjumpgif

I plan to make the transition smoother for his jump.

 

I hadn’t been able to test collisions yet, but that’s my next step. That aside, I completed some more stuff for a colleague’s game though I can’t show at this time still. I saw the sprites in action today though, and I’m very pleased with how the animation turned out.

Sorry that this post is rather short, I only had been able to continue my own game dev recently this month. As of my visual novel, I continued on with the script and that’s turning out nicely. Still nowhere near done rewriting the prologue chapter, but I’ll get there, don’t worry. I do admit I miss drawing my characters though, so maybe I might crank out another avatar next.

Moving backgrounds and the Software Saga continues

I’m finally proud to say… that Sullivan, our unfortunate prison in-mate main character of the Lua game Alterna Comics’ “The Chair: Prison Break”… is no longer walking in place.

 

He ironically matches very well with my neo disco Spotify station as I'm typing this...

He ironically matches very well with my neo disco Spotify station as I’m typing this…

 

(ugh looks like WordPress’ larger editor doesn’t like custom image resizing; I recommend clicking on the gif above to launch it in a larger size in a new tab.) Sullivan is finally moving places, albeit at a snail’s pace in comparison to how fast the game will be going later on. I’m also working on making the background transition more seamless, but any progress is better than none!

I would have also liked to show my hitbox collisions I started on, but Marmalade released 7.3 yesterday so I wanted to keep up-to-date as well. Unfortunately support has to manually release my license in order for me to transfer it to the 7.3 build though, so I await their response. Hopefully that gets finished up soon so I can continue programming!

 

In the mean time, I’m working on spritesheets for another game for a different colleague of mine, though they won’t contain as fluid of an animation as my game here. It’s more of a retro game so the framerates would be smaller to compensate for lesser frames. Not sure on how much I can show of it because I would really like to showcase some of it for my next blog update, so I will ask my colleague beforehand. If anything I can always do something more of promotional purposes (non-gaming assets). All I can say so far is that it’s really cute and a lot of fun to work on!

 

 

ikemarthpreviewmsfortunepreviewportalkirbypreview

 

 

Otherwise, I will be at Eternalcon‘s artist alley next weekend selling my artworks (and any commissioned pieces upon request at my table). So if you’re in the Long Island, NY area, please feel free to stop by! Aside from my prints I also will be having freebies to give out, mainly bookmarks. Reading is good for you!

If you’re not local to the area but still wanna purchase or keep an eye on my work anyway, I am now open on Storenvy and running a coupon promotion for the month of June. Use coupon code “GRANDOPENING” for 40%off!

Adventures in Lua and Pixel Art

So after my dilemma regarding CoronaSDK  and iOS development using Windows, I had since moved on to Marmalade and I love it! I still like Corona but I will use it for Android builds only, though since I took advantage of a free yearly license kudos to the GDC, why the heck would I switch? Both cost the same and Marmalade does way way more. Very powerful stuff. Remind me to kill my Corona subscription later next year.

(Though a colleague of mine reminded me Unity has a 2D engine now, and I could have used it in the first place. We won’t talk about that however, since it just reminds me that I’m a dingus of a developer sometimes. Or I just wanted to do some Lua bonding that bad. Oh my.)

 

thechairgifprogress1

Some basic elements for the game so far. Background was made by me; the sprites are from tutorials as placeholders.

 

Nothing super fancy so far going on for my brother’s game (see above), but I did get a timer and score going, as well as other basics like laying out animated sprites and touch events. Though I made the background to be more finalized art, there’s a chance it won’t be the final version used for the game. Still playing around with how pixelated I want the style to be. For my next update I plan to have a jumping animation and even a hit box test, so that you can collect the coins and improve your score that way. The hit boxes will also be useful for obstacles and collecting other things like power-ups.

Somewhat game dev related, I also am remaking my current portfolio site. For some reason the JQuery on my 2nd page died, and won’t load the new beautiful version I set up on my FTP, despite the preview working well beforehand. At least it shows part of my script for Compendium, but still. Since my portfolio needed some organization anyway, I figure it was a good opportunity to jazz it up.

 

tumblr_n4t62w5hFw1t3a18ko1_1280

Mmm, smells like HTML5 and CSS3!

 

I’m using a responsive grid gallery kudos to codrops, since I generally like their tutorials and their HTML5 galleries, in particular. I’m a sucker for good web design though, and the marvels we can do with it. I still get really excited when I discover new things about it, such as that CSS3 allows embedded fonts! No more same old Arial or Helvetica here! What you see in the screencap is a working page, not a Photoshop mockup! Beautiful stuff.

I also made the resume icon you see at the top right corner there, and am considering making a high-res vector of it that others can use as well. (I may reverse the colors so that it matches better with the other ones though.) I miss making icons and vectors. Even though I just made a handful last week for another game project.

VN screencaps and another project

For those anxiously waiting to see what my game actually looks like so far, here it is! For promo purposes I blurred out names and faces from the stock photos in the screencaps here (despite them being free but they’re placeholder images either way, they will not be in the final version).

In classic visual novel fashion, inner dialogue with the main character is in italics.

Character names will be in different colors, and for the most part, will appear as their last names (except for an unknown person talking, which will be “Voice” in grey).

I’m still playing around with the text size, since this will also be going on mobile. On PC the size is perfect, but one of the characters, Isis, has a very sheepish voice so her dialogue will always be in a smaller font than the others. Obviously since this will also be a mobile release, that would be an issue and would have to be tested. If you’re curious though, the typeface I used is Euphorigenic by Ray Larabie, a free-to-use font (even for commercial releases; just don’t sell the font or any alterations of it). It’s very lovely and polished! I’m a big fan of it and it helps me not get sick of seeing my work for this game.

Aside from that, while I did promise new colorings and lineart of avatar art, I was given a proposal for a game idea by my brother Peter. As the founder and head of Alterna Comics, he was looking to have a small spin-off game made to help promote his graphic novel, The Chair, since it has been picked up by director Chad Ferrin (The Ghouls (2003), Someone’s Knocking at the Door (2009) to be slated for an independent movie production. As seen from last week’s post, that was the endless runner project I briefly mentioned (and why I also decided to resurrect my little tomato guy, since he’ll be testing out the game mechanics and so far it looks good).

So instead I have been busy starting up on that project, and once I’m given the go-ahead, I hope to show some UI and item designs I did so far. Depending on how my pixel art skills are, maybe even graphics of that, but I admit I do more vector and tablet art work than pixels. But I do look forward to actually doing more of that though. The extent of my pixel art is basically my Animal Crossing QR codes for outfits and decorum, so I guess that’s a good start.

Do the Lua

Hello everyone! Figured I would drop in an update of what I’ve been up to. Aside from my ongoing visual novel project, and the other Unity one I’m working on with another team, I decided to check out other game tutorials out there for simpler games to make that would still be fun, as well as showcase my design work.

I plucked out this gem from my first semester of grad classes, since it was riddled with bugs but still held some charm according to the feedback I got from playtesters. (Btw “gem” is not an endearing term at all in this case; I was very close to pulling all of my hair out over AS2 code that would not cooperate.)

“Tomato’s Perilious Adventure”, a Flash game I coded in AS2 back in 2011.

But of course there were plenty of solutions out there to fix up this game, even though I’m primarly doing this to strengthen my skills in Lua (and also the occasional HTML5) and to actually make more games people can play rather than being muddled with non-disclosures all over the place. I found a great tutorial on making an endless runner game (like Temple Run) that even I could play without burning my eyeballs and getting dizzy (not like Temple Run). So I plan to fashion up my own with my poor tomato pal here, and give him a second life.

If the final product is deemed fit to actually publish and have others to play, I will release it for free on Google Play (App Store fee isn’t practical for my budget right now). Aside from this one, I plan to make other little games, although some of my ideas are a tiny bit more complicated but they’ve always been on my wishlist (a good word game, and a time management one. I’m a sucker for both genres). My goal is to get very good with Lua and HTML5 by the end of the year though, and of course complete my visual novel.

As of the status of that though, I will be changing up the look of the avatars that I was going to use. The lineart felt too harsh and I wasn’t as happy with my coloring job, so next week’s update I’ll go back in and adjust it. I also will assemble some screenshots as well so far, now that I renamed some things and feels a little more finalized (still using stock photos so bear with me).