Suzy Cube Update: June 23, 2017 Hey, folks. I know it's bad forum etiquette, but I don't have time for my usual update paraphrasing this week and so I invite all of you to go check out my full update on my blog: https://louardongames.blogspot.com/2017/06/suzy-cube-update-june-23-2017.html Basically, I've been spending most of my week getting levels ready for testing and ensuring the test build works. For those of you who don't feel like checking out the blog post... Here's Suzy Getting crushed by a big ol' bumblebee... P.S. Good time to ask again, I guess! Anyone interested in testing the game (on iOS), send me a private message with your name and email address! See you next week!
Suzy Cube Update: June 30, 2017 Man! I am inundated with gameplay clips! Not much else to talk about this week. I started my week implementing some last minute tweaks and bug fixes based on my own playthroughs and feedback from a friend. One such tweak had me diving into Suzy's character controller to fix a bug which could cut her jumping short when trying to jump while pressing into a wall. The controller was erroneously treating it as a collision with a ceiling! Whoops! Fixing this, obviously, smoothed out a number of sporadically unreliable jumps. By mid week, I had a build ready to go for testing. On Wednesday, Touch Arcade mentioned my search for testers on their front page and the floodgates were blown wide open! In one day, I quadrupled the number of testers I had previously and I've been reading feedback emails and pouring over gameplay videos ever since. As you might expect, then, I've been quite busy gathering playtest notes and implementing nips, tucks and fixes based on them. For example, I added a guardrail to a semi-hidden area of the first level after watching a player misstep and fall to his death... And I also made things a bit easier on Level 3-1, a snowy auto-scrolling level, by slowing down the scrolling slightly and also moving the kill wall which follows the camera. The kill wall will, as the name implies, kill poor little Suzy if she falls too far behind the camera's view. It's meant to, basically, accelerate what is, for all intents and purposes, an inevitability. I noticed, from a few gameplay clips, that players seemed to get flustered by the pressure, so I gave them a bit more breathing room when falling behind and slowed things down a bit. We'll see if easing off this way helps with completion on this level. So far, no obvious disasters in the gameplay department. Players don't seem to be getting lost or anything and, other than the issue above involving Level 3-1, folks seem to be more than capable of getting through most levels. As previously mentioned, I won't be discussing specifics regarding the game's 'Special' levels in order to keep some surprises for even Suzy's most loyal followers, but I did want to mention that I've got the paper design done for Level 2-S and plan on drafting it and, hopefully, one more special level next week. For those of you who are currious, the special levels are optional levels which are meant to be short departures from the game's regular levels and offer an opportunity for players to earn more Bonus Stars to unlock later levels. On that, I bid you all farewell until next week. I've got many more videos to view, notes to take and tweaks to make.
Suzy Cube Update: July 7, 2017 Hey folks, so sorry about the late update and the fact it's going to be another cop out Blog link! I've had a short week because of Canada Day and spent most of it pouring over gameplay video from testers. So this update is really just some examples of the types of changes I've been implementing based on the videos and tester feedback. So, for those of you who are interested in reading about that kind of in-the-weeds details, you can hop on over to my blog for the full update. https://louardongames.blogspot.com/2017/07/suzy-cube-update-june-7-2017.html
This kind of update is my favorite - as you say, it's these little things that can make all the difference between offering a good and great experience, and the things you learn from watching EveryPlay sessions are fascinating.
Hey, thanks man! You know, I've really enjoyed us developing Suzy and Flicky Marble in parallel, give the lessons we've been able to share back and forth. I feel like they are, kind of, sister games.
Suzy Cube Update: July 14, 2017 Late in the day, dang! I've been pulled away by embassy craziness including helping some new folks acclimatize to Caracas and a LOOONG day trip to get two months worth of parcels to Caracas from Panama... MAN! Given that, I didn't get anything really big done this week but, instead, tackled more small improvements and fixes, for the most part. Well, except for designing Level 3-S, the World 3 Special Level! Isn't she gorgeous!? I also updated to Unity 2017.1 which was relatively painless! A funny thing that sometimes happens is that the engine ends up incorporating a feature I was handling through script before. This time, that was time-scale independent particle emitters. I used to handle this through a custom script which would manually update all the emitters under it based on the engine's realtime timer rather than the main timer. Now though, thanks to this: I was able to rip my script off all the emitters using it and simply set the newly added parameter for the same effect! I use it in cases like this when I might want to pause or slow down the game for effect but allow certain effects to play normally. Some more small changes include, hopefully, fixing issues a tester found with the game's Launch Pads. They are meant to be locked into place using a ground pound and then spring Suzy into the air, but this tester found it was possible to have them misbehave by ground pounding them again during different parts of the sequence. I think it's all good now ^_^ I know lives are antiquated and I don't want to get into it.. Suzy Cube uses lives. OK!? That being said, I feel players aren't earning 1Ups as much as I would like, so, as I've been making other small fixes to levels, I've also been going in and adding more coins or swapping out some of the singles for 5 or 10s in order for players to have more lives for the tougher levels. Something I found a number of testers struggling with has been these Blocker enemies. There seemed to be two issues: 1. players not figuring out the tactic of jumping to make them jump then using the recovery time to get around and 2. players figuring it out but then failing at the execution because of the tight window of opportunity. Since Suzy Cube isn't meant to be a hardcore game, I decided to simply err on the side of making this easier and added a much longer recovery time to the blocker after it jumps, hopefully giving players more time to get around and making the tactic more obvious as well. Finally, I changed the 'behind stuff' effect for Suzy into what I had originally intended.. which is how the Mario games have been doing it forever. I thought my previous dithering based approach would solve the blending artifacts but it turned out to introduce it's own artifacts instead. As I went in Shader Forge to fix the issue, I discovered the Stencil Buffer options! I wouldn't have even known the stencil buffer was what I was looking for if not for Simon Lavigne, who had originally helped me with the dither based implementation. Now, however, armed with the knowledge that the stencil buffer could, indeed, give me the nice silhouette effect I was looking for, I set it up and BAM! Nice translucent silhouette of Suzy when she's behind stuff! What the use of the stencil buffer solved was the self-blending artifacts caused by a naive alpha blending approach. Notice how you can see 'inside' Suzy? The stencil buffer allows me to discard any pixels which have already been drawn, thus eliminating parts of Suzy blending over existing parts of her. Well, that's it for this week. Next week should be clear of distractions (I hope!?) so I should be able to finish off the last two Special Levels and, hopefully, get a new build out to a new group of testers. See you then!
Suzy Cube Update: July 21, 2017 Crazier week than I expected! Things in the city are getting more and more complicated and my work's been disrupted more than I would have though. On that whiny note!! CHECK IT!! Yep! That's Suzy Cube running on AppleTV.. It's also NOT AN ANNOUNCEMENT OF SUZY CUBE IS COMING TO APPLETV!!!! Just thought I would clarify that in case the caption on the photo wasn't clear enough. I've wanted to try the game out on Apple's set-top box for a while and, because of disruptions to mail services, I've only now gotten my hands on a USB-C cable, making it WAY easier to register my device and get the game running on it! I didn't put any time into implementing the Siri Remote, so I had to play using a gamepad... That being said, the game runs really well on the AppleTV and plays like a dream using a gamepad! So, a couple firsts this week! 1. First time playing the game on Apple TV and 2. First time playing the game end to end including all Special Levels! Yep, as promised (sort of?) last week, I finished off design work on Level 4-S and Level 5-S this week. I mean, like, sweet ass levels, riiight!? One's all about testing Suzy's running around abilities and the other takes her maze solving capabilities to task. Fun diversions from constantly falling off rotating platforms into lava! That's it for this week's update and I really don't know what to say about the next couple weeks. In order to preemptively avoid any possible political kerfuffle which we might experience in the coming weeks, I'm getting shipped out of the country for a bit. I don't know what sort of working space I'll have where I'll be staying, but I'll, hopefully, be able to continue making progress on the game. On a related note, if any of you know of some game developer and/or board gaming meetup groups in Miami, let me know, I'll be staying there for the next couple weeks. So, please join me next week when we will either find out what work I've been doing or how I've been enjoying my forced vacation to America's Wang. See you next week!
Suzy Cube Update: July 28, 2017 Thanks for checking in! Not much to update all of you on. Working from Miami has been more distracting than I had anticipated. Soooo... What HAVE I been doing!? Mostly little things. I spent some time doing some performance tests on my iPod Touch, trying out different quality settings and checking the results. So far, it looks like I'm not fillrate bound, as decreasing the rendering resolution has very little effect on framerate. On a more positive note, I've noticed almost no performance loss from turning on anti aliasing (2xMSAA). I'm currious to find out if it'll be feasible to leave it on for all devices. I also got a fresh build out to a new group of testers. I'm expecting a shorter round of testing this time. The levels in the testing list are the same as those from the last round of testing. I'm, basically, just looking to see the effects of the changes made following the previous round of testing. And, finally, I decided to take the time to implement something I've had on the back burner for a while now. It's a simple procedural bounce added to Suzy when she lands from a jump. And, since the bounce is added to an object at the root of her hierarchy, you'll notice that it can be added on top of whatever animation follows. So, whether she's jumping in place or at a run, the bounce will add life to the landing. You'll also notice that it works quite well with the dynamic motion of her hair buns. The idea basically comes from Super Mario Sunshine and I thought it would give Suzy a bit more of that rubbery quality many of the enemies show in their animations. Well, that's it. Short update in light of having a hard time staying focused. I've started looking into formats for storing my text strings for easy localisation. So, maybe by next week, Suzy's going to be bilingual.. or even trilingual!? See you all next week.
Suzy Cube Update: August 8, 2017 Sorry, no multilingual support yet. Figuring out the best way to load stuff and the best format in which to store localization text has proven to be more trouble than I originally expected. I know, I know, excuses excuses! Truth is, I haven't been concentrating on the game much this week. Little bits of work here and there mostly related to file loading and tester gameplay review have been disrupted by shopping trips as I attempt to cross everything off my wife's and my shopping list before returning to Caracas. Among a handful of small changes like adjusting the placement of text on the "Stage Cleared" screen for better placement on iPad and iPhone, I did make a rather important change to the order of four of the game's early levels. Based on feedback from a friend, I decided to swap Level 1-4 and Level 2-3. Both snow levels. Level 1-4 has proven to simply be a bit too difficult as a World 1 level. Similarly, I've swapped the World 1 and World 2 special levels for similar reasons. Well, that will, unfortunately, do it for this update. If all goes well, I should be back in Caracas next week. Hopefully, I'll be less distracted once I'm back home! See you all next week.
Suzy Cube Update: August 11, 2017 I'm back home and it shows! I've got a localization solution up and running and I think I've accounted for all text currently in game. I settled on CSVs for storing and loading my translation data. Google Sheets makes it super easy to store/edit/export these using separate pages in a single spreadsheet. What's nice is that I've made all pages inherit their left column from the English page, so as I add new entries, all other language pages are automatically updated! In the game, I simply load the appropriate CSV into a static dictionary using the left column as keys and the right column as values. I wrote a simple static function which takes a string as input, uses it as a key to search the dictionary and then simply returns the result or an appropriate error. This makes it really easy to call from any script which needs to dynamically populate text fields. For text fields which are populated right in a unity scene... I wrote a handy little script which I can attach to any object containing a text field. The script simply pulls the content from the text field, feeds it to the translator function and replaces it with the returned result. YAY! So in the shot above, for example, the prefab for the Settings Panel has a text field at the top containing the word "SETTINGS". In the Spanish localization file, the key "SETTINGS" corresponds to the value "AJUSTES". The script takes what's in the field (SETTINGS) and replaces it with the value (AJUSTES). Easy peasy! Remember folks... If it looks, at all, like your project is going somewhere, don't keep shoving it full of static text. Take the time to properly source your text from external files to save you many more headaches down the road! ALSO! I fixed a little timing issue I had with these guys... It was a subtle one too. Depending on how fast the level was loaded, the timing of the beat-blocks would end up offset compared to the music. So, like, loading from the level select screen... probably fine... reloading after death (faster)... de-synced... Booh! To this I say.. .WHY DID I NOT LOOK THIS UP BEFORE!!?? I literally found an analogue to Time.time called AudioSource.time!!!! I literally just had to search the Unity site for "Timing elements to music"!!! Do your research, kids! Anywho. I literally switched out Time.time for AudioSource.time, fixed a small issue it introduced and BAM! problem solved! The beat-blocks now can't de-sync from the music as they get their timing directly from the music's audio source timer! A nice productive week! I like it! Check back in next week. I'm hoping to put out a new test build this afternoon, so I'll hopefully have some test-led tweaks to a new set of levels to share with you then. Until then!
Suzy Cube Update: August 18, 2017 Why, hello there! How good of you to join me! I have hardly received any videos from the current round of testing which is not what I was hoping. I'm going to have to check my TestFlight stats to see how many installs I've had to see if it's a problem with folks getting the build or not... So, failing that, I've been doing little bug fixes, keeping 3rd party assets up to date and tweaking physics settings on the project. I know, right!? Tweaking physics settings!? Well, thanks to a recent post on the Unity blog, I was given a better understanding of what certain settings do. So I changed the project's internal physics timing to better match the target 60fps framerate while also lowering the physics iterations count. This second change should lighten the load on physics calculations at the cost of accuracy. Since Suzy Cube mostly relies on the physics engine only for detection, I figured it would be a safe bet. So far, it looks like the game is running more smoothly on all platforms I've tested... So that's good news! The only thing this change broke was the behaviour of the Double Jump's float ability. I made some changes to the script and got it back in working order. The last few days have actually been spent working off script on a feature I had decided to defer a long time ago. Save Slots! Now, folks sharing a device can each have their own save slot! Since I use PlayerPrefs for saving data, and it all gets saved to a single file, my implementation simply involved adding a suffix to my old keys. So, the key for storing coin total, which used to be "coins" now looks like "slot1coins" or "slot2coins" etc. I'd say the work was about 50% coding the support for the feature and 50% building the interface for accessing/deleting the save slots. All properly localized, of course! Aaaand I've, finally, put ink to paper on a publishing contract! Not ready to announce with who yet, but stay tuned for more on that! That's it for this week. See you all next Friday!
First, gotta to say, "Save Slots?" Very cool! - I can count on one hand how many iOS games bother to do this. Are you planning any sort of Game Center (or cross platform) leaderboard integration? Regarding relative dearth of new test videos, it can be hard finding beta testers that are engaged enough to keep providing feedback across multiple beta refreshes.. maybe even for a game as nifty as Suzy Cube. But a bigger issue may be that: 1) the latest update's changes are more subtle; mostly tweaks to existing levels. I played through each of the designated test levels, but it didn't seem worthwhile for me to bother uploading any of my runs. I'd pretty much mastered all the levels even before the latest changes. For what it's worth, I did spot (most) of the changes, and think they are right on the money. 2) it's a bit painful uploading a video - I mean it can be minutes waiting for EveryPlay to finish submitting.
Suzy Cube Update: August 25, 2017 I can FINALLY say it... Noodlecake will be publishing Suzy Cube!! In addition to the usual publishing duties, they've also agreed to take on some development tasks to help me make Suzy the best she can be. I want to be clear, though, we are not moving the goalpost and are not growing the scope of the project. The game was a lot for me to take on alone in the first place and Noodlecake's involvement will help ensure you all get to play a solid, polished version of what I set out to make. Also, with Noodlecake helping with porting and additional localization, it also means more people will get to enjoy Suzy, which is fantastic news! In other news... Most of my week has been spent cleaning up code comments and trimming fat from my project files in anticipation of actually having to let someone else in there (YIKES!). And I also went ahead and solved an issue a lot of testers had been complaining about forever... Yep... Suzy can finally find her own damn way out of doorways! It used to be that after getting teleported to the doorway exit, players would have to manually move her out of the doorway... Annoying, I know... Well, no more! Thanks to a new script which, when triggered, can override Suzy's controls, she can now walk herself back out of the dark. What's neat is, as far as Suzy's concerned, the player it still the one holding down on the joystick! This script might come in handy again when it comes time to make a controls tutorial animation... Well, there you go, folks! Cat's out of the bag! We've been in talks since GDC and I'm glad to finally have all the papers signed and the hands shaken to be able to share the news with you. So, please help me in welcoming Noodlecake to the world of Suzy Cube!
Suzy Cube Update: September 1, 2017 Been busy redesigning Level 3-2 this week. I know, I know... I said I was done with levels... But when you gotta do it, you gotta do it! So, "why?", then you ask... The old design, lacked a good memorable hook. It's only defining characteristic was that it was played entirely from a side view and I just didn't feel that was enough. This new design still has you, essentially, playing in 2D, but requires that you flip between the front and back section of each room in order to proceed by hitting switches etc. I also like how this new design, with its central room and light puzzle elements calls back to the World 2 pyramid themed level. So, what about the old design? Well, since it was a complete level, I would hate to just scrap it, so I plan on reusing it as a Special World level. "But if it wasn't good enough for the main game, why would it be good enough for the Special World!?" I hear you screaming at your monitor. The issue with the old design wasn't that it was bad, I just didn't feel it was distinct enough. I want all the main levels to be memorable and offer a bit of a different experience. The old Level 3-2 was a fine level, it just had a bit of a week hook, that's all. Since my goal with the Special World levels is to offer challenge over variety, I can use the old level as a starting point and build in some extra challenge for the expert players who manage to unlock it. Well, I've still got some work to do on this new level. I've got coins and other pick-ups to add and the ending section still isn't build. So on that note, I bid you farewell and until next time!
Suzy Cube Update: September 8, 2017 This week's update is focused on level improvements and a bit of spruced up effects. As I'm currently coordinating with Noodlecake to get them set up and contributing to the project, I decided to simply address simple bugs and cosmetic issues this week. I did, however, complete design work on Level 3-2, seen above. All that was needed was for me to add some collectibles and add the darkness gradients around the outside to complete the effect of spelunking into an ancient tomb! I decided to start decorating some of the more solid levels of the game to the level of decoration found in the World 1 levels. First to get this treatment has been Level 1-4 (formerly 2-3). The level has been in good shape, design wise, for a while now so I felt confident getting in there and adding some decorative props. I also added and tweaked some camera triggers for a more polished experience. Level 5-3 didn't get a decoration pass but I did give it some attention, adding more coins to the level to allow players more opportunities to earn extra lives. I also tweaked one of the jumping challenges late in the level which had been proving problematic with testers for a while now. Even I had a hard time avoiding the spikes in there old configuration. I think this new setup is much more fair. Finally, I spent a little time tweaking a couple of effects related to Suzy herself. One was Suzy's spawn in sequence. The change is subtle, but those little shockwaves as the Spawn Box bounces coincide with a bouncing sound which adds life to the previously silent sequence. Suzy's death also got a little extra touch up for the first time since... Forever, actually! Again, the changes are subtle, but where the old effect only included the cubes, this new version has some extra little flourishes for good measure. That's it for this week's update. I've got some stuff lined up for next week, but I don't want to make any promises. Noodlecake and I had a Skype meeting to discuss scheduling and it looks like Monday will be devoted to getting them access to my project repository so they can download everything on their side and get it uploaded to their own local repository. Once we've confirmed we can both still build the game locally from the new project we will be scheduling a formal kickoff meeting for the project. Given that I have no idea how any of this is going to go, I can't really guarantee what else I'll get around to next week. No matter what, I invite you all back here to find out!
Suzy Cube Update: September 15, 2017 So, just this morning, I was able to run the game from the version downloaded from Noodlecake's Git repo! Big step! This means we can now all start contributing to the project.. Though I haven't tried pushing changes yet... Soon... Once I had to, basically, lock in changes so Noodlecake could take over the project, I took the opportunity to work on some translation. I finished off the French and continued to working back and forth with a buddy of mine on the German. I also wrote a couple of pieces for the ol' blog. One is an analogy for anyone having trouble over-polishing aspects of their game the player will never notice: https://louardongames.blogspot.com/2017/09/the-pyramid-of-polish-recognising.html The other is my latest entry in the long neglected Lessons from Suzy Cube series: https://louardongames.blogspot.com/2017/09/lessons-from-suzy-cube-level-1-1-how.html In other news. Before locking things down for the SVN to Git handoff, I did get around to some level improvements and decoration. My recent redesign of level 3-2 has proven somewhat problematic in the hands of testers so I made some changes which will, hopefully, help players who were getting lost. I added some teleporter shortcuts to cut down on backtracking. For Level 5-2, I changed up a section where the player must run over a series of platforms which only appear in the nick of time. The issue being that testers were being too timid and there's a big rolling snowball relentlessly chasing Suzy the whole time. I had, originally, placed a single coin on each platform, but I decided to add an additional coin between them to further highlight the safe path. Lesson: If your player is being chased by a big deadly snowball, it's too much to ask them to notice subtle clues. And four gussied up levels... Well, that's it for this week's update. I'm off to see if I remember hot to use Git! See you all next week!