Cameras to the rescue!
I’ve finally managed to finish the second post-compo iteration of Roach Escape, with twice as many levels (still no new features here, though), improved sounds and the first pass of music.
Play it on itch.io, as usual!
Those should have been the main hits of this iteration. However, just between yesterday and tonight I’ve managed to solve a number of problems related to offsetting the playable scene view, which made me particularly happy :D
The main source of those problems lies in the fact that Haxeflixel, unlike OpenFL, isn’t really based on a a node hierarchy, for starters. Additionally Tile maps aren’t sprites, so the two workarounds (FlxSpriteGroup and the add-on FlxNestedSprite) the library currently provides to group several objects and transform them hierarchically just fell short for the purposes of moving around (or scaling, rotating,...) the whole scene, including all the tilemap-based layers and also the standalone sprite layers.
As a first solution I implemented a very rough layer container, specially tailored for the needs of Roach Escape. It did the trick when I just wanted to place the scene at any arbitrary position of the screen, but didn’t work so well later, when I decided that levels should be centered relative to the playable part of the screen (What you can see on the screenshots, basically)
Enter FlxCamera!
By using different cameras (at the moment I keep the default one, plus the game camera, which renders only the scene view, and the hud camera for popups and overlays) I can very easily perform some basic rectangular clipping easily and offset the camera as much as I want by changing its “scroll” property. No need to propagate offsets through a “fake hierarchy”.
Incidentally, the lack of a tree-like scene was also responsible for some weird visual glitches while tweening the victory and defeat popups on the first post-compo version. On this iteration I also managed to solve that by abusing the “stamp” functionality (Basically, I create a RTT of the popup, hide individual elements and tween that texture. Then I clean it up, restore visibility of the popup elements and enable them to do own business).
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming
Help the the tiny cockroach reach the flashing target to escape the room and beat the level
Post-compo version finally updated!
With an improved (but not final) UI, stats and objectives.
For the next version I’m thinking about more fixes, better sound effects and many more levels
Some progress update after the Christmas holidays. The first video shows some of the changes I’ve done for a post-compo version of Roach Escape.
And on the one below you can see a quick and dirty example of a tab panel widget I want to use on the side bar to better keep info.
(Cross-posted from the Ludum Dare blog)
A week has passed and here's the post-mortem, before this coming week and all the holiday preparations. I want to thank everyone who has played the game so far and given me feedback. I've started working on a post-compo version that will hopefully fix some of the issues that most people have reported, and will expand the content with new levels and elements.
Roach Escape is a puzzle game inspired by games like Lemmings, Chu Chu Rocket and the Santa Fe ant trail problem, where you need to take your character (in this case, a cockroach) to the goal. By itself, Roachie can only go straight or turn right when it bumps agains a wall, so it can't get to the goal on its own. By placing items on the grid you can help it find the way.
And that's it, in a nutshell.
How it all came to be:
Well, you know how it goes. You wake up on Saturday morning, take a look a the theme, possibly start cursing at the choice (or not) and then you spend some time coming up with ideas, pick one and start working. And that's what I did, essentially. Except that I had two, and both ran in parallel as I was designing for a loong time.
Roach Escape, early mockup - Back then it was "Kitty escape"
In case you're curious, the other game would have been an odd hybrid between a card game and a decorator sim. I had been thinking of Reigns for the cards part as a first approach to the cards part and then moving to a different mechanic that could involve multiplayer, so there would be a balance between randomness and rewards.
I really liked the idea, but after describing the concept to friends and family I decided that it would be too content heavy before it became a fun prototype, as opposed to the more proven "build a path to escape" concept. Another reason why I was reluctant at first to what would become Roach Escape was that I knew for sure (although I couldn't remember the name at the beginning -_-), that there was a clear reference that I'd played years ago, so it might not feel too original. The game, as I would finally recall hours later, was Chu Chu Rocket.
Good
Relatively solid: The submitted version was relatively bug free. Granted that gameplay was quite simple and straightforward, but I still think it turned out okay.
Decent emergency art style: I had in mind to rehash most, if not all of the game assets to make it more fitting with the theme, but due to the lack of time I and had to compromise with quick improvements on the original placeholders. Luckily, they didn't look bad IMHO.
Lots of potential: As I've kept iterating during the jam and outside it I've come up with lots of ideas, from world elements (switches, teleporters,...) to objectives to provide variety to the gameplay and make the player tackle a level in different ways. Also, some friends of mine IRL have made several suggestions about potential new features that can also be interesting.
Bad:
Indecision. I think one of the worst mistakes I made this time was to take too long before I started coding. As I said before, I had two ideas and I admit that I kind of preferred the decorator one. However, as the concept sounded riskier I went with this. I don't regret the choice, but still I lost several hours trying to decide, and even after that I had a slow start because I wasn't completely focused.
Flawed first-time user experience. The game has different states, but it basically comes down to two: the edition mode and the playback mode. From this one you could either pause the game or lose/win when you finish, and you can return to the edition mode pretty much anytime you want. This setup sounds easy enough and it is, but it wasn't clearly communicated at all on the game. As a result, some people including myself at times would click on a tools and get no visible response because they weren't aware that they were outside the edition mode. This is one of the first things I'm going to fix.
Reducing the walls width: Originally the walls were thicker than on their current incarnation. This implied that either the player was drawn above the walls (and that didn't only make no sens, but also looked ugly), or that it was below and appear partially covered. Also, because of the way I'd packed and read the sprites originally, and due to the way I calculating collisions, reducing the player sprite size wasn't an option, so I chose to make walls thinner. The result? Many people have trouble seeing them, and they're right.
Usual Haxeflixel amnesia. The last few weeks before the Ludum Dare up until a couple of days before the theme announcement I had been coding on Unity for a personal project, and on C++ with Cocos2dx at work, which means I was already juggling between both of them. Then I chose to throw a third one into the pot and use Haxeflixel for the game because I've become mostly comfortable with it for LD, and it makes super easy deploying builds for a variety of targets. However, I tend to go for months without using it, which means that every time I pick it up again I need context switch, not only in terms of language, but also in the way all those engines and libraries handle coordinate systems or scene entity hierarchies.Because of this, my first two-three hours of coding work I'm generally like this until my brain starts digging for past knowledge and I enter the proper "Haxe is cool! Everything is easy again!" mode.
>
Fortunately, the last hours are generally a breeze code-wise because it provides a lot of functionality out of the box (and there are lots of addons available) and because it makes painless things such as integrating audio or hacking a quick and dirty but functional UI screen.
No music, superbasic sound. Yup, lack of time :/
Post-submission caffeine high. I can get anxious for any stupid reason easily enough by myself, so I tend to stay away from coffeine except for tea drowned in milk and sugar. That means I'm quite sensitive to sharp increases on my intake, as I haven't built any tolerance. During the last weekend, though, I had about a couple of cups of coffee (not too black, but still), a couple of energy drinks and a half a litre bottle of cola. The result? Pretty much I went to bed on Sunday night and started tripping balls.
Graphic depiction (Now seriously, feeling my mind race like a crazy horse even though it was exhausted was kind of unpleasant)
And of course, going to work the next day was a nightmare.
Ugly:
Loose connection to the theme. As I mentioned, the emergency art style did the trick of not looking too awful, but that came at the expense of having a game that doesn't really feel related to One Room. My intention was that each of the levels represented a room (the easiest, laziest kind of connection), but also reinforce that through the graphics. However, that wasn't possible in the end.
Too short. At the moment there are only 5 levels. People haven't complained about the amount, or the difficulty progression too much, but I still think that the design itself wasn't particularly good either. I felt like I needed a lot more levels, and that they should show more effort.
Here are some screenshots of some mockups I’ve been sketching for the post-compo version. I’ve just started implementing them today and fixing some other stuff, which means that I’ve broken the game. However, I expect that soon I’ll be able to demonstrate the improvements.
I’ve started working on the post-compo version of Roach Escape. The first picture corresponds to the mockup version, the second one are rough mockups of how the game should look on mobile port with portrait orientation. Art and layout are a work in progress, so it’s not perfectly symmetrical or aligned properly yet.
Lots of people are finding the beginnings of the game confusing, and I think this was due to the lack of a clear way to see when the player is on edit or playback mode and, if on the latter, at what stage (playing, in pause, on game over). I still need to think about the toolbar for playback mode (it’ll most likely keep scores or objective statuses), but I think this should work a bit better, even if I feel that the “under construction” waspy lines are too noisy especially on portrait mode. Perhaps I can just limit them to the top side, or I can just keep exploring more options.
Besides visual feedback on the game mode, the second most frequent issue players have reported was that the walls were too thin, which made them hard to see. Here I’ve tried to increase the width, but I’m also thinking of adding some decorators to make them stand out even more (however, Chu Chu Rocket also uses them and I didn’t really want to borrow that much). In order to avoid the reason that made me reduce the walls’ width in the first place I’ve also decreased slightly Roachie’s size.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
✓ Live Streaming✓ Interactive Chat✓ Private Shows✓ HD Quality✓ Free Actions
Free to watch • No registration required • HD streaming
This is Roach Escape, my entry for LD 37, where the theme was One Room.
If you’re a registered LD user, you can play it and rate it at the Ludum Dare site.
Or you can just go to the game site itself on Itch.io.
I did it in about 30h for the compo version, and besides being playable on the browser it is also available as Windows and Android downloads (I don’t really recommend playing the Android version yet, though, or play it directly from the browser. I would like to craft a better UI layout for native mobile releases).