Posts Tagged ‘post-mortem’

Hyper Holomayhem 37 – The Hyper Post Mortem

Posted by (twitter: @JorgeGameDev)
Sunday, January 15th, 2017 12:00 pm

It’s been a full month since we released Hyper Holomayhem 37. With the holidays and university finals, we found little to no time to actually give our experience with Ludum Dare 37 the proper conclusion it deserved. But alas, some free time to be able to write and share with you the highs and lows of the development process of our second time on the rodeo!

 

HyperPostMortem

 

Hyper Holomayhem 37 is a side-scroller platformer shooter where, as a jetpacker trainee, you must stay for as long as possible in the Hyperdeck, a room that’s constantly changing layouts as you power it up with gears. Gameplay is based around collecting the gears spread throughout the level which you must bring back to the room’s core under a time limit. Enemies chase you around, and you will have break the blocks in order to get to some gears you wish to collect. Once the time is over, your training is complete.

Our development team was composed of three game developers, each of us with a different area of expertise. JorgeGameDev returned again as the gameplay programmer and The ‘Moski once again fulfilled his role as the game’s artist, exactly as it had previously been the case with our Ludum Dare 36 game, Colossorama. However, this time around we also had the opportunity of having ZakBlystone as the game’s audio composer (which you can read more about below).

 

HyperMenu

 

Tools Used

Keeping with the pace from last time, we decided to stick with the usual tools for Hyper Holomayhem 37’s Development. The game’s uses Unity as it’s game engine with gameplay programmed in C#. Krita was yet again used for producing the game’s art and Zak used FL-Studio for making everything from the Music to Sound Effects.

Game Idea and Design

After the jam’s theme (One Room) was announced, there were several ideas that were placed on the table as potential concepts that we could develop during the event. From all of those ideas, we decided to pick the concept of having an holographic room constantly changing layouts, now deemed in game as the Hyperdeck. Other ideas and concepts included impossible room puzzles and even an Fingered-esque game about room decoration.

The Hyperdeck idea was picked as the chosen idea not only due to the time limit we had to develop the game, but also to allow the game to have extra replayability value which is greatly enhanced in this concept thanks to the ever changing room layouts.

As progress on the game continued during the following days, we decided that we would focus on the game’s airborne platforming, as well as environmental destruction the player could make by destroying the blocks that made up the room’s layouts. These elements were then further expanded on with enemies, extra traps and even power-ups, all of them placed on the rooms at random, which also helped strengthen the game’s loop, even if several ideas had to be left on paper due to time constraints.

 

HyperMortem1

 

What went right?

Games Polish and Completion

One of the aspects that Hyper Holomayhem 37 was mostly praised on was the game’s overall polish. Although we had to make some cuts when it came to the gameplay, we made sure that game still felt complete and solid, as well as progressively let friends playtest the game in order to assure that no issue went unnoticed.

One of the reasons why we favor polishing overall is to allow each player to feel like they’re interacting with a vertical slice of a potential game. This allows them to always know what to expect in case they come back, either on their own or due to an update.

Task Scheduling and Submission

Once the game’s development was put up to speed, task division and scheduling was efficiently put into the place. We paced what needed to be done as we went through the days, and based on what content we knew we would be able to have in the game by the deadline. Same as last time, this allowed the submission hour to be fully dedicated to that for that alone, and based on requests from last time, we also provided a WebGL version right from the beginning.

Audio Composer

One of the things that we felt could have been better explored in Colossorama was the game’s audio. Last time, we were only able to find someone that could give us a hand on composing original tracks a few weeks after the game’s release and update. by that time, the great majority of potential players and Ludum Dare participants had already played the game.

However, with Hyper Holomayhem 37 we were able to find someone who was eager to give us a hand with the audio composing, Zak. Having someone doing and composing audio on the team helped us give the game a set of unique sounds and a great music track to boot, making the game more unique, and distinctive when it came to audio.

 

HyperMortem2

 

What could have gone better?

Overthinking Game Design

As mentioned above, several ideas were outlined right after the theme was announced. The final concept for Hyper Holomayhem 37 was only decided a few hours after the theme announced, which slightly delayed works.

Nonetheless, even after the final idea was picked, there was a period of uncertainty regarding what exactly made our concept unique and what exactly would be the game’s core loop. At the time this loop was only the player going around collecting the gears and bringing them back to the core. This eventually lead to multiple, overthought discussions about implementing features like puzzles, etc.

This uncertainty caused some delays, however, we then realized that the base loop we already had just needed to be spiced up, as collecting gears and destroying the room’s blocks was already engaging by itself, and playtesting helped confirm this fact. We then proceeded to add extra content to further solidify this game loop.

Unexplored Gameplay and Concepts

Despite having settled with our game loop, there was still a lot of content that had to be cut due to the time constraints, some of which caused by the delays of the concept’s uncertainty. Although each of us knew which tasks needed to be taken care off, and what schedule to follow, we believe we could have better explored the game’s concept, as well as added a lot more content into the game. One example of a game’s concept that was not fully explored, and caused us to have a not-so-good score when it came to the theme, was how the Hyperdeck represented a single room.

Some of this content that was unable to be included in the game included more types of enemies, power-ups and even completely changing the room’s aesthetic as the player completed layouts. We still hope to get back to these ideas in a future update.

 

HyperMortem3

 

Conclusion and Closing Remarks

Even if the game’s development was filled with mixed feelings, we’re still happy and glad of the final results, dazzled by how well the game scored, getting a 51st place in Jam Overall.

As a short summary from everything above as well as our notes advice both to you and for future projects:

  • If an idea you have the beginning of jam already seems like it’s going to be complicated to develop, it’s probably better to go for a simpler idea, unless you really want to challenge yourself to execute a complicated one.
  • Schedule your tasks, even if in an informal way. Make sure that every team member has a list of what’s needs to be done, especially if your team members are on different time zones.
  • It’s always for the best to make assets that might end up not being used than not having assets for the time they are needed.
  • Having an audio composer on board can really greatly improve your game and increase its atmosphere and value with unique sounds and music.
  • Don’t overthink your game’s mechanics. Sometimes a few basic and quickly learn-able mechanics are enough to create an engaging game loop and diverse content.
  • Always remember to build your game content, visuals and feel around your game mechanics. Form follows function.
  • Do playtesting often, even if it’s just limited to friends, in order to collect some low-level feedback on what to improve. Ideally, playtest with non-familiar people, as they provide the best and more honest feedback.
  • Focus on exposing your game after you finish it. One extra aspect we feel we could have done better was on spreading word about the game, which we didn’t do as much as we did with Colossorama.

Feedback is the greatest thing a developer can get, and we’re glad that we’ve been able to constantly receive it. Hyper Holomayhem 37 was yet another great game we enjoyed developing, even given the hiccups, and we’re full of ideas on how to improve it, as well as for brand new projects we hope to do soon!

 

HyperMortem4

 

Thanks a lot for reading! As always, even if post mortems are mostly for self-reflection, we have the optimism that those who read these always learn something from them. We’re really glad of our results and the feedback we’ve collected during Ludum Dare, and it’s all thanks to you, the wonderful jammer community.

Our hands are completely full with assignments, commissions and other projects we must get done under a tight time frame, but we hope we are able to come back with some new stuff to show soon, as well as give Hyper Holomayhem a brand new coat of paint and bring it to the same level of content as Colossorama. It’s probably going to take a while, but it’s something we want to do as soon as we can!

If you wish to keep up with what we’ve been doing, you can follow us at @JorgeGameDev and @The_Moski as well as @Zakblystone, which was a honor having as a guest to help compose the game’s audio.

Thanks a lot! Until next time! And don’t forget to try out Hyper Holomayhem 37 if you still haven’t given it a go already!

If you have low scores, read this.

Posted by (twitter: @TheFish523)
Tuesday, January 3rd, 2017 10:22 pm

Allo, Im Fishy.

Im gonna talk about a problem with our site here. (I’m not a mod, just using our as a community thingy) A-lot of people have been really bummed lately, due to seeing plenty of triple digits in there scores. Now, I can see this as concerning, and especially unfair. But check this out, you made a Video Game! And actually had the balls to submit it to the public! I’d be pretty proud If I were you. Yeah, so what if you got < 100 on all your ranks. YOU still had fun making it didn’t you? You learned from making it didn’t you? If you said yes to either of those, congrats! You’re a winner! You don’t need to tell people you got >10/200.

What I’m trying to say here, its fantastic job to all of you. You went through the effort, and if you hit the submit button, it was worth it. You now get feedback, and can say confidently that you didn’t wuss out like many other developers who somehow don’t think that they could even compete in this!

I’m proud of all of you! I hope you stick around for next jam! New site, new judging system, it should all be well and good! Have a fantastic morning/afternoon/evening where ever you are!

 

Cheers,

FisherG

So with a little over 2 hours left in Ludum Dare judging I’m sitting down to talk a bit about the game I’ve worked on. It’s called rot, and it’s a short interactive fiction piece about menstruation, coming of age, and the post-apocalypse.

If you haven’t played and/or rated it yet, I’d be super pumped if you did.

rot

You can play it here.

I’ll include a longer post-mortem after the cut, but don’t want to bog down the front page. If you’re interested in hearing more about the subject, about using the interactive fiction engine ink or about trying to create a varied experience everyone will still undoubtedly comment is too linear – read ahead :)
(more…)

Thank you all for such a great Ludum Dare!

Posted by (twitter: @TheFish523)
Monday, January 2nd, 2017 3:10 pm

I gotta say this Ludum has been one of the best so far for me. (Even though it’s only my second one) Alot of people played my game compared to my last game (Seriously like 6 times as many people). I’ve learned alot from this jam. And I appreciate the mountain of feedback you guys have given me.  I’ve had 3 YouTubers play my game and even some streamers.

Two things really stood out.

1: How motivated you can get when there’s 3 hours left in the jam (Seriously I got more content in those 3 hours than I did the first day).

2: The community.

What do I mean by community? Well, what do ya think? The out-pour of feedback, and the downloads and ratings adding up everyday, I even got a guy on twitter who said I inspired him to participate in the next jam! it’s just a fantastic feeling.

Overall, I think 2017 is gonna be a great year for game development. You all ignited a fire of passion inside me, and Intend to use it. Again, thank you all so much, and I hope to see you in the next JAM!

 

Cheers,

FisherG.

 

Cute

 

PS: IF you want to play my game, you can find it here

BreakAround PostMortem/Last Chance To Play+Rate Plus More!!

Posted by (twitter: @xanjos)
Monday, January 2nd, 2017 1:26 pm

It’s a bit extremely last minute seeing as there’s only a few hours left until judging ends but I’ve just uploaded the post-mortem for my LD37 entry BreakAround which you can view by heading down to my blog.

breakaround

In other news, I will be doing a livestream on my Twitch channel at around 9/10pm-ish GMT where I will be (yup, you guessed it) playing and rating some of your Ludum Dare entries. If you would like me to play/rate your game during the stream, you can do so either by filling in my small Google Form or leaving a comment when you play/rate my game so I can check it out (or alternatively just leave a comment here) otherwise when the stream does go live, feel free to send your games in the chat.

Take care folks!

When an entry becomes much more

Friday, December 30th, 2016 9:26 am

Hi everyone!

Last summer I made my first Ludum Dare entry, it was in the #36 and the Compo section indeed. It was a great experience and I was amazed by all the feedback I got. And I didn’t want to waste it.

These months I’ve been dedicating some free time to adapt and improve the game and I’ve just proudly pubished it today for Google Play.

I’ll leave you the link to the game and some related stuff.

Game: https://play.google.com/store/apps/details…
Music: https://senseitorguet.bandcamp.com/track/high-above
Entry: http://ludumdare.com/compo/ludum-dare-36/…
Twitter: https://twitter.com/DiegoCTorguet

Thanks for the support and happy holidays :)

Super Battle Cycle: Post-mortem

Posted by (twitter: @PowerSparkGames)
Thursday, December 29th, 2016 2:50 pm

logo01

Hello everyone, 2017 is almost here, and so are results! Here’s my overdue post-mortem.

gif-a05

How the game looks now (1.0.9)

The Concept

Super Battle Cycle is a sort of driving top down shooter thing that I made for the compo. LD37 was always intended to be my first pixel art compo. I wanted a simple semi-monochrome or GameBoy-like art style… but with the theme of One Room I just couldn’t think of any original ideas that I would be able to execute quickly. A toy driving/fighting game sounded appealing, and I eventually decided to make a top down driving shooting physics game (how complex it sounds now). Soon enough I had created a prototype of the physics gameplay using a little motorcycle sprite I ended up sticking with.

gif01

My entry’s first GIF

Many players have commented that the game is unique in its grappling hook mechanic, utilizing physics as a weapon. I am very happy with this grappling gameplay because I feel that it’s fun (and juicy).

gif-a02

Boom. Objects are used to destroy enemies.

The game has about seven levels with three short help levels, all taking place in a room with rearranged levels for your toy cycle to shoot cars in.

The Bad

Alright, so most of all I need to put time aside for playtesting. This is what I never get around to in Ludum Dare because for some reason I put it off. Clearly it would have fixed the problems many players had with controls early on.

Something I wish I fixed before the initial deadline was pixelation! During development I had no method of rendering the correct GameBoy resolution in the exported game, and I had no time to find one (the first GIF seen above was taken in the editor, not the export). The initial version was just a 2D physics game with rotating sprites… something I am not proud of D:

p02

Look closely at the cars and cycle… they aren’t pixels.

Even so, after this pixelation was fixed I couldn’t make the HUD render in GameBoy pixels without reworking it entirely. Maybe this will be fixed in the post-compo versions.

Finally, players have pointed out the the grappling mechanic should be more important than the other mechanics that are “unlocked” throughout the game’s levels. They couldn’t be more right, I see now that each feature should have built upon the grappling attack mechanic! This must be fixed in the post-compo version, huh?

The Good

Now onto the good… I have felt from the start that the grappling-driving gameplay is pretty fun and original compared to my other entries. Crossing my fingers to do well in innovation, if that’s my best chance!

I sorta made a few “tutorial levels” that introduce the base mechanics through help messages. It’s not the best way, but it’s something! This hopefully fixed the previous problems I’ve had with first levels.

Also, I’ve finally scratched the surface of pixel art with this game… hooray. It’s faster than 3D modelling and animating, so I might try it again in Ludum Dare. The sprites themselves were probably a bit mediocre, but maybe I can learn more. Speaking of art, the music was quite decent for how quickly I made it, and oh man, this time around I did many good things in juiciness 😀 Camera-shake explosions never hurt, right?

Final Thoughts

I also have a timplapse that will briefly show the process of my entry’s development:

So based off of feedback, the concept is the game’s strong point, but I made a lot of errors.

I won’t continue developing this one very much if it isn’t good enough (time is precious with school and all). I’m hoping to place top 100 in something, or even get top 100 overall for the first time (I doubt it). If my results are my best yet, I’ll try to develop the game and even sell it! Hoping for the best~

You can play the game here! Please do give feedback 😀


 

TL;DR – The game had lots of problems with execution but it was still fun for the most part. It also might be developed further if the results are reaaaally good, ha.

 

Thanks for reading, play link is just a few lines up there. See you next time!

-Power Spark

UNH4CK3D – post-mortem (TL;DR version)

Posted by
Thursday, December 29th, 2016 5:52 am
UNH4CK3D

First LD. Jam: not themed game, not solo. Realistic hacker simulator.

Before LD: static HTML/CSS/JS sketch for login screen and desktop. Private Github repo.

home

Day 1: terminal prototype, simple “internet” and system pages. Player which uses YouTube API.

console

Day 2: set up LAMP stack in a VM and worked on backend systems – translation, search, networking and URL handling. Made IRC with button mashing and delayed messages. Friend helped with dialogs.

search

Day 3: added ssh, integrated dialogs into IRC, created first two tasks and in-game blog with hints. Polished that a little: playlists, translation, icons, renaming, etc. Created an entry.

Reception: surprisingly well – I was a bit nervous if the game’s too short or not interesting. There was not enough hints and no “game’s over” message, though. There is a record of TVGS playing the game:

And a link for you to play it yourself. If you do, please leave some feedback!

Tkachov

A Matter of Time Post Mortem

Posted by (twitter: @rafaelgiordanno)
Wednesday, December 28th, 2016 4:27 pm

I almost forgot to share my game post mortem. This time I wrote on Medium, you can read it here.

Also, I recorded my entire game dev process, but I have zero HD space to edit a video about it, maybe in January?

You can play and rate my LD entry here! Hope you like it and please leave a comment! 😀

One Room Factory LD37 Post-Mortem

Posted by
Tuesday, December 27th, 2016 4:01 pm

If only making games was as easy as making custom PCBs

This Ludum Dare was a really interesting experience for both of us. We wanted to do LD36 already together, but one of us couldn’t, so we had to wait for a LD37.

http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=8633

Theme

When planning a evening before, we really hoped for a “Small World” theme and were able to come up with an interesting game in matter of minutes. The other themes seemed lackluster, because they were often too limiting – and One Room was one of them.

When we woke up at Saturday morning and started discussing it, we didn’t know for like 3 hours what kind of game to make. There were several options (some of which actually appeared in LD as games – solving murder in one room, time traveling in one room, cleaning a room, …), but we couldn’t think of anything that doesn’t need a good storyline. We just knew two things for sure – we DEFINITELY didn’t want to do a room escape game, and we wanted fancy 3D graphics.

After joking about stupid ideas, we somehow came to conclusion that conveyor belt game located in one factory hall could be quite nice and went to discuss details more and decided on our PCB factory game.

The development

The entire game was developed by two people — one was focusing entirely on programming the game mechanics and logic and other one was doing mostly graphics, lightning and other visual things (he implemented Inverse Kinematics for a robotic hand from ground up!).

In the first day, we managed to implemented conveyor belts, robotic hands and basic movable objects for the transporters. This was a good prototype, and the game already felt like a fun! So we knew we were on the right track.

The second day was dedicated to modeling rest of game objects and programming the rest of the game. At the end of these two days (around 4 am) we had a almost finished game. It still needed some polishing and changes, but it was playable from the beginning to the end.

To make the game totally complete, we really needed that third day – but we were all busy with our real lifes, meaning we couldn’t make much progress, apart from just a few bugfixes and polishing fixes. But we think we still managed to do quite a nice game over the course of these 3 days!

The Good

We really had fun when developing our One Room Factory and shared many laughs over TeamSpeak when developing the game – one can only wonder if the game would be even better if we didn’t have to work remotely, but could develop in one room together as some other teams did.

Also, since this was a first LD for one of our members (and first released game too!), we definitely learned quite a lot. Not only from the actual LD, but also from the feedback we’ve gotten. It was definitely an enjoyable and fun weekend!

The Bad

The HW requirements are quite demanding. Also, based on the comments so far, the game is quite difficult to understand; we did a basic tutorial, but because of time constraints (having to work on Monday AND being based in Central Europe cuts a lot of needed time due to timezone), we just didn’t have time for a proper tutorial.

Combine this with the complexity of the game (and players not being familiar to conveyor games), this game seems to hard to understand for some people. So, to fix this, we are releasing a video tutorial for people who would still want to play the game!

https://youtu.be/f-zrgA1B4Pw (Don’t forget to turn on annotations)

The Future

Depending on how we do in the LD, we are considering to finish the game and release it – we are reading the feedback people give us in comments and it makes us really happy when people like the game! The most rewarding comments are from people who want to see the finished version (with a proper tutorial) – and it’s definitely possible it will happen! 😉

If you decide to check our game out, we will be happy for any feedback you will give us! If not, we are at least thankful you decided to read our post.

To try our game, you can do so here:

http://ludumdare.com/compo/ludum-dare-37/?action=preview&uid=86334

Vilem Otte
Pavel Kouřil

UNH4CK3D – post-mortem

Posted by
Tuesday, December 27th, 2016 9:00 am
UNH4CK3D

I’ve got the idea for my first LD game a little bit before theme was announced. That’s why I’ve decided to take part in Jam and not to think about the theme. My game is a web-based hacker simulator game with realistic terminal commands.

Before LD

Well, as I’ve decided to submit a Jam entry, I wasn’t really restricted with “only in 48 hours” and “do everything alone” rules, so I made a small sketch. It was static HTML page with some CSS and JS for login screen and a desktop page with some icons.

home
I’ve also asked some of my friends whether hey want to help me, and as they told me that they would, I’ve created a private Github repo for us to use.

The first day

On the first day I had some university lessons to attend to. Lucky for me, it was a lecture about something I already knew, so I could code instead. That’s how console prototype was created: there was no layouts, just JS code, which I’ve been executing through Firefox Developer’s Console. That’s not a real shell, of course, but it could parse the input string into arguments (supporting “quoted string” as a single argument and some escape sequences like \n). It also supported pipe |, because I already had an idea for that.

After those lessons I returned back to my room. First thing to do was to add that prototype to my sketch page and create some nice UI for it. I’ve actually been streaming all that to Twitch (even though noone does watch me), but I wasn’t recording.

console

Then I’ve started adding more pages into the “internet” of mine: some simple ones like Mailbox (totally static) and browseros system pages like settings, admin and no_internet.

By the end of the day I’ve also added a Play player, which is using YouTube API, and a temporary playlist to check that it works.

The second day

My friends helped me on the day two. One of them is really into web-development, but he was quite busy, so his total impact wasn’t as big as I thought it would be. The other one never worked with all that web stuff before, so I asked him to help me with the story and translation. I had some sketches for dialogs, but was working on the other things, so I explained him the story shortly and returned to my work.

First of all, I had to start working on backend part of the game, because I knew that I want to hide some parts from the player. So I created a lightweight virtual machine and set up some LAMP stack on it, because that’s what I have on my site hosting (where I was planning to release my game on). That’s where PHP was added in. From now on the game wasn’t just a bunch of static HTML pages, and required some server. From the other hand, now I could add login and use database to store player’s progress.

I’ve also made translation on backend: user’s browser sends a cookie to server and depending on its value I’m sending one or another texts in response. I wanted to determine user’s language by IP, but PHP geoip module wasn’t available on my site’s hosting, so I had to remove it later on.

Then some other backend systems were added: search, “networks” and URL handling. Even though it’s possible to implement these on frontend, it would also be possible to look in the JS source code and see which IPs, URLs and sites in search index are available, meaning the players could possibly find something I don’t want them to find yet.

Search gets user’s query, splits it into separate words and then searches for similar keywords in the “index”. Index contains all sites I wanted to be searchable, its title and descriptions and arrays of keywords. To make search a little bit smarter, I’ve decided to use Levenstain distance to find out whether keywords are similar, but that’s why search sometimes returns some funny results.

search

“Networks” is a special set of objects, which represent a network node. Each node can have an array of hostnames (IPs or actual names) and a set of opened ports with some “services” on it. Using that I could easily add more computers to the network of the game, and add some ssh/web/etc services (only the first two were implemented).

URL handling parses the string player enters in the in-game browser field and searches for a match. It’s basically a hardcoded set of strings (like “search.com” redirects to some “/pages/search/index.html”), but it’s also aware of the networks, so if you’d try <IP>:<port> in URL field, it would check if there is such node and if there is a web service on specified port, and if so, show you the associated page.

Once I finished those, I started working on IRC, which was the key element of story telling in the game. I’ve decided to go with predetermined options for player to select from and a funny SUPERHOT-like button mashing mechanic for players to type these options. I also wanted new messages to appear one by one, so I’ve getting all new unlocked messages with AJAX and them play them in the order with the delay specified. I wasn’t using database to mark which messages were already read, so if player updates the IRC page, it instantly shows all new messages. The nice thing though is that message notification sound plays even if you’d leave the page. The sound was created with sfxr, btw.

By the end of the day I’ve got some dialogs from my friend. He wanted to make the entrance a little bit smoother for the player, so he added some tutorial part where you’re answering some kind of buddy who doesn’t know anything and always asks for help. The idea with different options for that sequence is totally his, and I think it’s quite funny.

The third day

So, in the beginning of the third day I already had some systems working, but there was no story or tasks for player to do. I already knew what tasks I wanted to add, but these were not implemented at all. For example, to run the exploit, player had to connect to the remote server with ssh, but there was no ssh yet. In order to implement that, I actually had to change a lot in that shell emulator of mine.

As this was Monday and had some lectures again, I couldn’t work on something heavy, so I was just implementing dialogs I got from my friend: redacting these a little, thinking of the names for the characters, testing how it shows up in the game.

Then I’ve added the first task: to open a web interface, login using given credentials and see the sticker on the monitor. It’s funny how everybody wanted to zoom the picture in and see what’s on sticker when my idea was that if that’s too small, player would go back to IRC to see what changed in there.

The second task was a bit harder: it requires a terminal, but as I knew hackers wouldn’t explain player how to open it and how to use it, I had to add some hints. That’s why I’ve added a scriptkiddie blog, where he shows a screenshot of open terminal and a browser URL which you could use to open it. There is also where I’ve put hint on how to use curl and curl | dash (that’s browseros shell). I didn’t add any hint on ssh, though.

Then I’ve started some polishing: added playlists (default “player’s” and an electronic “by Tkachov”), added translation everywhere (because the friend of mine couldn’t manage all the PHP I had in the project), drawn icons, renamed some things, etc.

After all that I felt a little bit tired, so I decided not to spend the last hours remaining to add content, and just moved the game to the hosting, created an entry and a short post.

Reception

Even though I knew my game is working fine, I thought it could be too short, not interesting or demanding some knowledge players don’t usually have. So I was surprised to see how well it was received by people who commented my entry. I actually ticked a checkbox to allow anonymous comments hoping that would get me more feedback, but I don’t really remember seeing any anonymous comments on this site, so it’s either broken or nobody wants to be anonymous.

What went well: it seems players did like the idea, and a lot of them liked button-mashing =)

What didn’t: not everyone liked button-mashing; there is not enough hints; there was no message to notify user that the game has ended already.

I’ve fixed the latter, but everything else remains the same it was when I created an entry. I do want to make more, but I’m not sure when I’d get time to do it.

TVGS played my game on their stream and uploaded the record to YouTube, so if you want to see it in action, here’s for you:

You can also play it in any modern browser without installing any plugins. I’d really appretiate your feedback, so please let me know what you think of it!

Tkachov

X-GIF

Intro

The prior two LD jams in the past year I worked in a duo; but this time, once again, I went in solo. It turned out pretty well, even though I only managed to squeeze 30 effective work hours into the time frame due to a hectic upcoming week. That week is now long gone so it is time for some reflection.

Plan

The day before the jam I got an idea based on a vision I had quite some time ago. Basically tactical squad management with robots that fall from the skies. The mechanical inspiration came from Atom Zombie Smasher (an old favorite) and the thematic inspiration from MGS5, which I’ve been playing for the last two months at this point (it is quite good, even if Kojima constantly tries to foil it with inane supernatural elements!)

Schedule

I knew that I couldn’t spend as much time on the project as usual so I laid down a simple, yet effective plan: programming first, critical graphics next, level design/tutorial third, and nice to have features if there’s any time left. Well, there wasn’t so audio among other things was cut.

Development

Surprisingly smooth going overall. More work on graphical assets would have been nice as the levels are just made out of simple shapes, but at least they are functional.  Coming up with the name was about the toughest job in all and even then the outcome exceeded my expectations (51 letter is pretty good right?)

Result

Fun jam! With more time the outcome could have been even better, but that happens. I did release two bug fix versions and I’d like to release a proper post-jam version after the holidays are over.

Have a restful rest of the year.

 

Play it here

one rooms post mortem

Posted by (twitter: @AurelDev)
Sunday, December 25th, 2016 8:02 am

PLAY ONE ROOMS

(this is a mirror of the same post mortem on my website)

It was that time of the year again! For Ludum Dare 37, I made a 2.5D point ‘n click adventure in 72 hours – one rooms. I also skipped one night completely, opting to work for 40+ hours without any sleep whatsoever. Here’s how everything went down …

The preparations

The week before this LD was somewhat busy for me still, because university. Mostly because of that, I didn’t prepare as well. I didn’t make a super customised wallpaper with different text for every theme possible, I didn’t make 9 of them for each one of my virtual desktops, I didn’t test my libraries. I did make a super quick wallpaper that you might see in the timelapse. Basically, I was not planning to do something very experimental. It was going to be another game made in Haxe, compiled to flash. Oh well.

I was also looking forward to seeing the new Ludum Dare page. But then, a week before the actual event, I realised it’s just not going to happen with the current progress. So, surprise, surprise, everything was done on the old Ludum Dare page which has bugs and issues, obviously, but is still much more reliable than a system ‘finished’ and launched without any alpha testing. Oh well #2.

Unlike most previous LD’s, I did not have a definite favourite among the final round of themes. These were my votes:

While I know that the event is growing larger all the time, the duplicate themes are getting old. Chain reaction is the only one marked, but ‘Small world’ is pretty much the same as ‘Tiny world’ (LD 23), then ‘Simplicity’ / ‘Minimalism’ (LD 26), ‘Wait, are we the bad guys?’ / ‘You are the Villain’ (LD 25), etc. And of course, the theme that was finally chosen, ‘One room’, was very exactly the way I interpreted ‘Entire Game on One Screen’ (LD 31), so it wasn’t my favourite. Oh well #3.

The concept

I woke up on Saturday (after going to sleep one hour before the theme was announced, silly me) somewhat late, and saw the theme. One of the first things I thought of was a rogue-like exploration / role-playing game – you, the player, control a boat / spaceship / caravan which is the one room. But because it is also a vehicle, you can control your one room and go places. Explore the sea / space / desert. It is a simple concept which can be taken in various directions. The game would also be quite difficult to finish, but I was up to the challenge. I was already considering going for the jam, so the extra 24 hours would definitely help here.

(I didn’t choose this interpretation in the end, but there are some that have done so, for example: 13 Jellyfish by Four Quarters – pretty game)

So, as we were brainstorming with my girlfriend, don’t ask me how, I thought of approaching the theme a bit differently – to have a room that ends with -one room. Then she suggested a game where you try to think of various -one rooms. And then, feeling ambitious, I thought of a full story to go with that. I already knew it would be a lot of work to even have various rooms, without even thinking of an actual story.

Poor man’s 3D engine

And so the idea was born. Then it was time to think of how to make the game look. I already experimented with pixel art / 3D fusion in Cell #327, although it seems like an overly-complicated way to make little bits of the room move. I didn’t really use it to its fullest potential. So this time around, I opted for simpler graphics, with the 2.5D effect of the spinning room being the highlight. The graphics ‘engine’ involved some basic lingebra, z-buffering, pixel-by-pixel blitting, but I suppose that deserves an article of its own!

72 hours again, music, voice acting

I was quite happy with my progress. Creating new rooms took a lot of time, because creating a user-friendly editor to place walls and floors in 3D would take even longer. By the second day I knew I didn’t have that much ready content-wise, but I didn’t panic and decided to keep going and submit a jam entry instead.

I had no idea what music I would have, or how I would make it, and having a jam entry allowed me to ask somebody friendly on the LD IRC chat. The request was fulfilled by ibispi, who promptly made Earthbound-sounding chiptune music for all the rooms. That added a lot of personality to the game. I would have gone for darker-sounding music, but I reconsidered, seeing as my game was rather light-hearted, with lots of quote unquote humour in the writing.

I also thought of asking Elijah Lucian to give voice to my game, as he did for Cell #327. He wanted to help, but couldn’t make it before the jam deadline, unfortunately. Right after the jam, however, he was hosting a voice acting stream on twitch. It was quite fun watching people try to act out some of the more unusual parts of the script (the actual voice acting starts around 01:11:00). He also promised to have the game voice acted post-jam. And I want to polish it plenty before that, and add some content – more rooms, more puzzles, more fun.

Sleep deprivation

As I’ve already mentioned in the beginning, I’ve skipped the second night entirely. I worked till 3 in the morning, then thought I might as well try to pull an all nighter. Maybe it gets better when you get used to it, but sleep deprivation is kinda scary. Monday morning was especially challenging. I tried to keep working, but I would keep falling asleep mid-work. Writing simple lines of code would merge with my dreams. I would have my eyes open, but I can’t say I was awake. Trains of thought were derailing left and right. It actually got better in the afternoon, and I was insane enough to stay up till 3 in the morning again. Watching Elijah’s stream of course.

I guess if there is an advantage to skipping a night (apart from the obvious additional working time), it would have to be the, er … ‘creative’ ideas you get. So that’s how the singing skeleton quartriplet and the late shift arcade got in the game.

The menu

The menu in this game was heavily inspired by the GUI in Mass Ef– Just kidding! I meant the food:

Also some muffins, pistachios, you get the idea. Good food management is crucial for a successful LD entry.

A javascript port

You might notice there is a playable javascript version this time around. I ported the game because some people complained that it’s hard to get it running on linux, and that flash is a dying platform anyway. Which is true, I suppose. So, post-jam, I ported the game. It took me a day, but I was quite happy, because the majority of changes were made in my libraries (which were basically used as a wrapper around the flash API), not the game itself. Meaning I can make a javascript build of my games to come much faster. Yay.

Some mistakes

As always, there are some things I should have done differently. Obviously there should have been many more rooms, at least some lines of dialogue for them. Writing those would have taken minutes, so really there is no excuse.

The palette I chose was 20 colours. Most of it worked out pretty well, but for some reason I chose a colour very similar to another that I never managed to use in the game. If I had taken some time balancing the palette more, the resulting graphical style would probably end up different as well. Probably more moody, as my games tend to be.

The faux 3D, while looking pretty, is also not very nice on the CPU. The javascript version suffers from this much more, but even the flash version gets my (admittedly quite old) computer spinning up its fans. I could have optimised this in many ways still, and I hope I will get to that for the post-jam version. Technically it should be doable with a shader, but I didn’t feel brave enough to write my first shader during LD.

Conclusion

And that’s about it. I will write another article about the way the rooms are rendered, and hopefully another article when there’s a post-jam version. Overall, I am very happy with my game, and I hope you enjoy it too!

PLAY ONE ROOMS

Update: timelapse

HourGlass Collector. When simple things are not so “simple”.

Posted by
Saturday, December 24th, 2016 12:39 pm

First of all, I want to thank everyone for the provided feedback. We appreciate that!
It was an awesome jam and we had a lot of fun. So I decided to tell you our story.

A story of HourGlass Collector

HourGlass Collector

Team

  • Skorpyo. Team Lead, Programmer, Project Manager.
  • Fourcy. Game Designer, Level Designer, Artist.
  • Xcentric Noizz. Composer.

Theme

    “One Room”. This theme was unexpected. But it turned to be a very interesting one. It wasn’t a hard one for us. The idea immediately popped up in my head. Our game designer polished it and we started our project.

Game Design

    Fourcy started to make game design. First thing he made was a list of game elements. They were used as game objects. With this list I could make a set of placeholders to test mechanics, controls and other stuff. I started coding while Fourcy was working further on game design.

elements

     Next step – game mechanics. Our game has a lot of different game mechanics. Fourcy came up with around 15 of them. Not all of them made it to the end. Some were changed, rebalanced or trashed. I will not show you the full list cause this will ruin your game experience =) At this point Fourcy started to work on art.

Art

    All sprites were made by Fourcy. He used Sai as graphics editor.

char animation standingarch door spawnerspikesbutton map

 Level Design

    Fourcy spent a lot of time polishing this “level”. It had to contain lots of “game layers”. This was the result of “brainstorming”.

leveldis

    There are 3 spawn points on the map. A button works as a trigger and spawns hourglasses. Active spawn changes in a clockwise direction. (This is a hint for one of the levels)

Coding

    This game was made in Unity3D (C#). After recieving list of game elements I started to work. I made a list of placeholders and started to implement base logic. Here we began to move and jump. What a platformer without jumping?

     Spikes added (yellow box). First real danger. By “danger” I mean DANGER. See these corpses?

    Working with placeholders saved a lot of time. I’d made almost every game mechanic before we had sprites ready. But with sprites it looks better.

Music

    Our game is almost ready. We need one more thing – a good soundtrack. This is where our composer starts to shine. Provided with gameplay and pictures he made an OST that changed the game. It was no longer a boring platformer but a funny game that attracts you from the start and keeps you till the end. If you like the OST and want to listen more, search for Xcentric Noizz.

Testing

    We asked everyone we could to try our game. We knew it was hard so we made the game a lot easier. We can’t make it even easier because it will become boring. We did our best to balance the difficulty curve. But there’s always room to improve. And thank you for the feedback and gameplay videos. This helped us to find the problem.

Thanks for reading!

Click here to play HourGlass Collector

Postmortem Time!

Posted by
Friday, December 23rd, 2016 1:40 pm

title

Postmortem

DONE

Here is the (likely incredibly dull) story of how I made my Compo entry, One Room HotelAs a bonus I also did some stuff with the CSS of the post, hopefully that works out when it gets to the front page.

theme announcement

When I heard the theme, I was not happy. I felt like I had no ideas for the theme, and that it was far too limiting.

Then I realized I had voted for it 😛

My brainstorming process is simple: come up with ideas for the given theme, then come up with themes related to the given theme, then brainstorm based on those. I find doing this is very helpful, as it forces you to look at the theme in different ways, rather than mentally getting stuck on a few ideas. I ended up writing down the idea I was going to use in the section headed “One Room at A Time.”

The idea, as written, was very unclear:

Action Hotel Management Rhythm Game

I  worked up the design of my game based on this, and it went through a few iterations.

  • In the first iteration, you controlled a room in a two story hotel, and needed to pick people up as they walked through to bring them to another side. The idea didn’t really make much sense, so I scrapped it.
  • The second idea was not related to the theme very much at all (it was closer to the “One Room at A Time” the original concept was written under.) You needed to place and remove rooms to optimize your hotel. I realized this did not fit the theme, and would not be very fun, and scrapped it.
  • The third iteration was the one I kept, where you need to carry people around in order to get them where they want to go quickly.

The inspiration for the game actually came from Hot Wheels Drive Through Dilemma, a time management flash game I played a long time ago. I was also thinking about the game SimTower, an inspiration which a couple of people seem to have picked up on.

After I had my full idea, it was time to start work.


starting work

One issue that has been common to every Ludum Dare I’ve competed in is a lack of initial confidence in my idea. I always second-guess myself and this compo was no exception.

I especially felt that the sprites I was drawing would not work. I nearly scrapped the idea right there, but my bad experience a year ago with wasting time on a second idea when working on Disphere led me to stick with my original plan.

One Room Hotel Early Development The basic mechanisms in place.  At this point I was still thinking about changing game ideas.

This uncertainty continued throughout the night, and into the next day.

I finished the day with a post showing people entering the hotel.

One Room Hotel With Guests The game started to have some form, but I was still unhappy with it.

the first day

When I woke up to start work the first full day, I saw that this was the most “hearted” post I had ever made, with 17 hearts. This is what finally convinced me that this was the idea to work on. If people were responding this well to such a basic illustration of the mechanics, I must have been on to something.

Getting the people to look good was a struggle, and took the better part of an hour and a half. For a while I was worried that I would need to pursue a different graphical style, but I ended up managing it.

When I finished the amenities, the game really started to come together. It started to fell like a real game, and I felt it was time to share what the gameplay was really like. I came up with a simple backstory for the game, and made a post. In a couple hours, this post had 27 hearts.

One Room Hotel With Three Amenities The most hearted image I have ever posted.

This post is by far the best received progress update I have ever had, and helped motivate me as I began to add more fleshed-out gameplay.

The next major change to the game was the addition of the day-night cycle. I needed a way to make it clear when a round was going to end and to create a feeling of progression during a stage, and this was the perfect way to do so.

Unfortunately, this somehow managed to be the most time consuming process of the entire project. I struggled with calculating how to blend colors, and with the scripts for doing so in GameMaker Studio. I eventually resorted to trial and error for getting the sky’s brightness right, and used an overlay rather than blending the color.

The ordeal was worth it, though, as it made the world feel more alive and gave the game a much better progression. The progression still wasn’t perfect, however, so I started to brainstorm ways around this.

One Room Hotel Timelapse The day night cycle took far too long to implement, but it was worth it.

After the day night cycle, there were still a few issues with the progression of the game. People came and went at any time of day, and rounds had nothing substantial separating them. I fixed this through two changes:

The first was a three part structure to days.

  • In the morning, people enter the hotel, and the player is calm.
  • In the afternoon, the hotel is full and hectic, making the player stressed.
  • At night, people leave the hotel, releasing the stress from the afternoon.

This change in the intensity of the day over time is critical to the feeling of the game. The stress I wanted would have tired the player if it was constant, or even if it was random. Because it happened at a specific time during the day, it created anticipation and gave the player a chance to prepare. This wasn’t perfect, however, as the RNG could throw incredibly difficult situations at the player. This is an issue with all of my games, and it is the main complaint people have with One Room Hotel in particular.

The next feature I added to improve the flow was hotel construction. The time between rounds felt rushed, and I needed another step in order to ease the transition to the next stage.

I thought about what I could add that would fit with the progression of the game, and I realized that adding a screen where you must construct your tower would accomplish three things:

  • Break up the time in between stages
  • Give a sense of progression as the tower grows higher
  • Add a layer (or maybe the illusion of a layer) of strategy

The building screen accomplished all of these things in my mind, and I personally think the blueprint aesthetic during construction looks really cool.

Construction of the One Room Hotel Construction helped the rhythm of the game, helping to better delineate stages.

After construction was finished, I squashed bugs and implemented small features for a while before going to sleep, with a near feature complete game ready for polishing on the second full day.

the second day

PANIC PANIC PANIC PANIC

At the start of the second day, I had around 20-30 items on my to-do list, which was just a little bit nerve wracking. I legitimately thought I wouldn’t finish, but I pushed through and just started working despite this worry. Worries like that have hurt my performance in previous events, and I was NOT going to let that happen again.

After all of the panicking, I decided that the most important thing to get done was the user interface. I’ve neglected this somewhat in the past and it has hurt the quality of my games. I spent a few hours on the interface, and tried a few different styles before I settled on what I used in game (and in the styling of this post.)

One Room Hotel UI and Reviews I chose a UI matching the color palette of the hotel.

I also worked on the in-game UI, and got that looking good with a color changing satisfaction meter and an icon for your money (score.)

I wish I had taken the time to make a separate icon for satisfaction, but I was forced to focus on others things.

One Room Hotel User Interface The basic in-game interface: the satisfaction meter and score.

Something I added that not many people seem to have noticed is the randomly generated hotel and newspaper names. There are thousands of potential hotel names, each generated from an adjective, a noun, and then a type of establishment (Inn, resort, hotel, ETC.)

  • remote smile resort
  • summer arc retreat
  • summer cliff hotel
  • spring shark resort
  • enchanting gulf retreat
  • winter pond tower
  • regal delight hotel
  • enchanting tornado resort
  • winter mountain resort
  • pleasant delight tower
  • globetrotter mountain resort
  • regal park tower
  • pleasant arc tower

The newspaper names were a little simpler. They also consisted of three parts, but the first was simply a choice between have “The ” or “” at the start of the name. The next part was a noun, and the third was a type of publication.

  • The Remote Week
  • The Silver Herald
  • Hotel Times
  • Fascinating Week
  • Inn Enquirer
  • Terracotta Times
  • Hotel Journal
  • The Pleasant Week
  • Royal Tribune
  • Summer Chronicle
  • Happy Gazette

I love adding details like this to the game, whether or not anyone notices 😛

Since near the beginning I had ideas for the music of the game. I wanted some medium tempo jazz for the menus, and a really fast tune for in-game. I only had time to implement the menu music, unfortunately. I was disappointed at first, but when I changed the music to play in-game I realized it worked pretty well.

The music was originally intended to be for the menus only.

I made the music using Mixcraft 6 (NOT recommended, very buggy) and midi instruments, along with a (musical) keyboard. To come up with the tune I hummed along with the game when I was testing and recorded it. Once I sang something that I liked I just needed to figure out the notes to actually play it.

I would highly recommend this method to anyone who doesn’t typically write music, as it really saves time and does a lot for quality if you don’t know how to write music. It’s a lot easier to improvise melodies when singing then to mess around with a keyboard until something sounds good.

final hours

For me, the final hours of any event are some of the most important. This is where I add a final layer of polish, and elevate the game to the next level of quality. Strangely, what I feel is the most important single change I made on the final day was making the sun better:

One Room Hotel New and Old Sun The old sun is on the left.

The yellow of the sun brings the game’s visual style together, and I think it turned out really well. I don’t know why, but that’s when I really felt like I had made something good. Maybe that’s weird but that’s how I work.

reception

One Room Hotel is the best received game I have ever made. I’m really happy with it, and I’m ecstatic reading people’s reviews.

A few people have called it one of the best games of the event. I never thought I would get to this point in my game development, and I am so happy that people feel this way about my game.

I’m incredibly excited to see how the game places, and I hope to finally break into the top 50 for fun, and maybe even for overall.

post compo plans

I may release a post jam version of the game, fixing some of the issues with it, and it may be coming to Android. I’m not sure at this point, but it is a possibility. I’m more likely to focus on a long-term project I’m going to be working on for FFSJama manic shooter.

Thank you so much for reading!

play now

 

“Ludum Dare: The Game” Post-Mortem!

Posted by (twitter: @ddrkirbyisq)
Thursday, December 22nd, 2016 4:14 pm

If you haven’t already, go play and rate my entry, Ludum Dare: The Game!

postmortemtitle
This time around I entered the compo division and decided to spend my 48-hour LD making a game about…making a game in 48 hours for LD. So meta! xD It’s lightly inspired by Game Dev Story, but certainly has its own unique spin on things.

postmortem1

I came up with a couple of other ideas for the “One Room” theme, including some sort of game where you need to tetris-pack furniture pieces into a gridded room, but the LD game seemed particularly exciting to me and I was already coming up with a bunch of ideas that I wanted to implement for it, so it was a no-brainer that I should run with it. It was a relatively obvious play on the theme — I mean, there I was in my room thinking “Hmm…if there’s only one room, what kind of room could it be? …oh, what about the one I’m literally in right now?“…but even so, I decided that I should just go with it and not overthink things too much.

Overall I’m really happy with how the game turned out! It’s a completely new style of game for me and is heavily UI-focused — you play the game using your mouse only, which I’ve never done for LD before! Getting to branch out and try something new was pretty fun, and although I definitely ran into some troubles and rough spots (more on that later), everything turned out alright in the end. I also managed to achieve my goals for this LD, which were pretty simple — to take care of myself, do a good job, and have fun!

As always, let’s take a look over what went well and what didn’t go as well.

 

What went well:

Game idea

The “LD game” game idea was one of the first main ones that I came up with and even before I had settled on it my mind was already buzzing with different interesting ideas that I wanted to incorporate. Sometimes you get a good idea and you just feel great about it! There are actually a ton of unused ideas that I would have loved to include but didn’t have time to implement, including:

– An entire “pre-compo” phase where you get to choose what to prioritize: purchasing supplies, getting rest, watching the keynote, making an I’m In post, writing starter code, etc.
– Having to select between multiple coding frameworks, e.g. Unity vs C++ SDL vs GameMaker, each with its own pros/cons
– A pet cat that you can feed, play with, and pet to improve your happiness
– Animations for each of the actions, like coding, making music, etc. that would change in intensity during high productivity (a la going Super Saiyan)
– Random events, like power outages, bluescreens, getting sick, kitchen fires, telemarketing calls, noisy leafblowers waking you up from sleep, etc.
– Option to “phone a friend” for help, either with debugging, remotivating yourself, playtesting, etc.
– Different “moods” for the character portrait (right now it’s always just the same smiling face)
– Very simple minigames that you play for the different actions instead of just waiting for time to pass. Different coding frameworks and game genres/design ideas could correlate with different minigames
– More choices for what to work on when designing/doing artwork/etc.
– More choices for what direction to take the game, e.g. focus on speed but sacrifice quality
– A “brainstorming” phase where you get random ideas and have to decide which one to stick with — affects starting points and other bonuses

As a result of me being so hyped about the game idea, I actually did a record-breaking amount of work on Friday night. Usually I spend Friday night purely on brainstorming as well as setting up a basic project and then going to bed, but this time around I kept chugging along until pretty late in the night doing artwork and implementing things. Here’s what I had at the end of Friday night already:

progress_1

While none of the actual gameplay is there, the basic room is already fully drawn, the dialogs are working, and all of the basic tech is in place! That’s pretty good for Friday night!

 

Unity (specifically, coroutines and UI implementation)

Holy cow, I would NOT have been able to pull off this game using my old Haxe toolchain. This was my first time using Unity for a solo compo entry, and it overperformed again! For this game I needed to create a whole bunch of different UI dialogs, complete with word-wrapping, 9-slice background images, etc. and doing all of that programatically would have been a legitimate nightmare — having to deal with a full compile cycle every time I wanted to tweak the positioning of a UI element would just take way too long. Thankfully the Unity 5 UI system worked out really nicely and I was able to just place everything using my visual editor. Whee!

Screenshot 2016-12-22 13.06.01

I also made =extensive= use of coroutines, which are basically a way for you to have a function yield and execute across multiple frames. A lot of the flows in my game were time-based, so it made much more sense to write something like:

// Displays a dialog box, then waits until it closes.
yield return DialogBox.Show("Starting a new atcion!");
// Start playing sounds, etc.
...
// Wait for 5 seconds until action completes.
yield return new WaitForSeconds(5.0f);
// Show results, then wait until results display is closed.
yield return ResultsBox.Show(
 "I finished!",
 new[] { string.Format("+{0} Art", art) },
 new[] { "icon_art" }
);
// Cleanup, stop playing sounds, etc.
...

There was a little bit of trickiness around making sure that there were no messy interactions between different flows (I used simple locks to guarantee that only one dialog sequence could be showing at a time), and making sure that you could interrupt a flow if you decided to start a different action (in that case, I needed to ensure that we still did the appropriate cleanup for the old action, stopped playing any action-related sounds, etc.).

postmortem2

One thing I did miss slightly was the ability to get return values from coroutines. I had a common case in my game where I needed to show some sort of selection UI, such as picking between two choices, or selecting a new action to do, and it would have been nice to write:

// Yield on a coroutine that returns an int value.
var myCoroutine = StartCoroutine<int>(ChoiceBox.Show("Which thing should I do?", "Do this thing", "Do that other thing"));
yield return myCoroutine.coroutine;
// Use the int value for something.
int selectedChoice = myCoroutine.returnValue;

While you can’t do this out-of-the-box with Unity, you can write your own coroutine extension methods that will allow you to achieve the same thing. There are several different proposed extensions, and I’ve actually used this particular one before to achieve exactly what I described above, but unfortunately I just didn’t have that tech set up and I couldn’t be bothered to re-implement it again during the compo. Instead I had a rather janky approach where I passed in an anonymous lambda method into the coroutine which it would invoke with the return value:

// Pass anonymous method to set selectedChoice to either 0 or 1.
int selectedChoice = -1;
yield return ChoiceBox.Show("What thing should I do?", "Do this thing", "Do that other thing", {val => selectedChoice = val; });
// Use the int value for something.
...

This is a bit uglier, but works just fine in practice.

 

Overall gameplay

While there are a bunch of things I’m not quite as happy with about the gameplay (more on that later) and a bunch of things that I didn’t have time to implement, the gameplay and content of the game turned out to be pretty fun overall despite its rough edges, and the feedback that I’ve received so far indicates that people are having a good time with it. I think the main thing is that it’s just FUN to think about trying to manage your time by doing these different things and seeing the results that happen. When you first start playing the game you don’t really know in advance what kinds of benefits or disadvantages each action has, but I think that’s sort of the fun itself in that you’re sort of exploring the different options available to you. This also gives the game a bit more replay value as when you play it a second time you’ve got a better handle on what needs to be done and what options are important.

I also learned my lesson from Grow Your Love (which was way too punishing with its grading) and ended up with a completion/grading scale that I think people will have an easier time with. It’s always hard to balance your own games because you’re always the foremost expert on them and as such have such a huge leg up on everybody else, but I came up with the “requirements” system that would serve as a rough difficulty adjuster, and then made it so that you could aim for a higher overall score on subsequent playthroughs.

postmortem7

In the beginning I had this hastily-thrown-together algorithm that would calculate your final overall score and just spit out a number with absolutely no explanation, and one of the features I decided to spend my last precious hours working on was the detailed scoring breakdown, along with revamping the scoring system itself. This was WELL worth it, as being transparent about how you’re actually graded means the player actually understands why they received the rating they did and allows them to know what to change during their next playthrough. Plus it’s just fun to be given a detailed report on your actions :). A lot of key changes like this happened during the later part of the compo and I’m really glad they made it in.

 

Artwork

While pretty much all of the artwork for the game was static (I had noooo time to put in fancy animations), I’m actually pretty happy with how the room came out, and had quite a bit of fun drawing it as well. This is probably the most intense pixeling I’ve done for LD (art is definitely my weakest area), and I’m happy with how the game came together stylistically. I used a few different references for the room graphics, including random pixel art rooms that I found via google, as well as Earthbound / Undertale graphics. The dialog box visuals also fit very well, as did the font that I chose.

 

Random names, comments, and the “refresh page” joke

One of the funnest parts of the entire creation process was developing the random game name generator, which can come up with hilarious titles such as “Tabla Hero”, “Retroidvania Maker”, and “Bullet Hell: Championship Edition”. The generator isn’t actually that complicated, as I didn’t have time to make anything fancy — it just selects from a random bank of prefixes and a random bank of suffixes and puts the two together.

Here are the prefix/suffix lists for the Rhythm Game genre, for example:

prefixes = new[] { "Bongo", "Tabla", "Dubstep", "Chiptune", "Bagpipe" };
suffixes = new[] { " Hero", " Band", " Karaoke", " Idol", " Raver" };

So you can have “Bongo Band”, “Dubstep Idol”, “Bagpipe Hero”, and so on and so forth.

The random theme selection is a little more simple, as I just put in a list of all of the themes from the theme voting rounds for LD37 and have it randomly pick one.

The randomized comments were also fun to make, and I think add a nice touch to the final scoring. All of the comments are pre-written, but the game selects different ones to give you based on your ratings in each of the categories. Also, you get more comments if you have a better community rating (mostly from posting to the LD blog).

progress_3

Finally, the “refresh page” theme announcement joke at the beginning of the game is something I just knew I wanted to have, as it’s (funnily enough) such a consistent and iconic part of LD. So that made it into the game pretty early on.

 

Posting animated GIFs

Lastly, this is a minor point, but I have to say that posting progress updates got a lot more fun now that I can capture animated GIFs and post those as well. I’m using ScreenToGif for this at the moment and it’s been working well!

 

What didn’t go as well:

Gameplay balancing

Thankfully, I managed to do an initial rework of the gameplay balance and tweaked a lot of the numbers during that pass. Some changes I made that got into the final game:

– In the beginning productivity affected the speed at which you completed actions! I changed that so that it instead affects the amount of “points” that you earn for each action.
– Point values used to be much lower. For example, a single coding action would get you between 2-3 points. I restructured all of the point values so that your overall ratings would be on a ~rough scale between 0 and 100 (though you can go higher of course), and I think that worked out better.
– As mentioned earlier, the overall rating system went through a big rework. It used to be much more nebulous and also penalized you very heavily for your weakest category by weighting it more heavily in the final average, to encourage you to diversify your efforts.
– A lot of minor tweaks to numbers, including the rate at which each “need” counter goes down.
– For most of the project’s lifecycle there were only the “standard” variants of actions — for example when you coded a new feature, it would always take 4 seconds and you’d get ~20 points (and sometimes a bug). Now, there’s a 25% chance that you get an “I’m stuck feature” that takes 6 seconds, for which you can chose “Read the Manual” or “Search StackOverflow”. One of these choices gives you ~20 points and the other gives you ~30 points, so depending on your choice you could actually be less efficient than normal. There’s also a 25% chance that you get a “long feature”, where you can choose to “Finish it ASAP”, or “Take your time”. Both result in ~40 points, but the “Finish it ASAP” option is 3 seconds faster at the expense of creating a random amount of bugs. There are similar variants for the other actions as well.

postmortem3

These changes did a lot to clean up the overall gameplay. However, even after all of these changes, the game could probably still use some rebalancing. Some issues off the top of my head:

– Having only two food options is pretty limiting, especially since both have their drawbacks (homecooked meal takes a long time, frozen pizza isn’t consistent in providing enough substance). That’s not the worst, as it creates and interesting decision, but I think more choices would have been better.
– Some of the actions are just not beneficial on average right now. I think that’s fine to some extent, but it should probably be a little closer.
– The relative timescales work out really weirdly, as microwaving a pizza takes 30+ minutes for some reason (!). This works out just fine in terms of gameplay, but makes no real-world sense.
– The medidate and bounce on bed actions aren’t too great in terms of their outcomes. They have a 50% chance of a negative/nothing effect and 50% chance of a positive effect, but the positive effect isn’t really enough to outweigh the cost.
– Browsing other people’s posts is pretty cost-inefficient as it gets you the same amount of motivation as posting to the blog, but gets you much less progress points.
– It’s a little too easy to meet the requirements of the harder genres. I DO think that it’s correct to allow people to be able to hit the MMORTSRPG requirements, and I think it’s better that I erred on the side of too easy rather than too hard, but right now it’s a bit =too= easy.
– I did a good job of raising dialogue notifications when your need levels fall below a certain point, but it can be jarring when two or three of these happen at the same time, especially if you’re in the middle of a task.

 

Gameplay format (?)

This one is a bit more nebulous, but at the end of Saturday I was really concerned about the direction that I had taken with the gameplay, as it didn’t really seem very interesting at all. You just chose the actions that corresponded to your requirements, consistently got points (remember, there were no variations yet), and did the corresponding “need” action whenever your need levels were low. There wasn’t a lot of strategy, nor was there a lot of real decision-making. More importantly, there just wasn’t much zany action going on!

In the end I managed to salvage things by at least adding some interesting choices such as the variants mentioned above (which I added for coding, art, music, and design), as well as adding some more “fun” actions such as bouncing on the bed and meditating. But I wonder if it would have been better to focus more on the “storytelling” aspect of the game rather than on the strategy / time-management aspect, especially given that the time-management aspect didn’t involve that many decisions (maybe it would be different if you had to play minigames for the different actions??).

postmortem4

So I wonder if it would have been a better call if I had come up with an experience that was a little more scripted instead. Something akin to a visual novel, perhaps, with randomized events pulled from a large set. Each choice you made would still affect your games’ stats, but instead of becoming a game about looking at numbers it would be more of an interesting story with zany things happening. You’d have less control as the player, but as the creator of the game I’d be able to ensure that you experienced many more different events. It would play out similar to a choose-your-own-adventure story, I guess. Again, I’m not entirely sure that would have worked out better and by the time I was considering this option seriously I decided that it was unfortunately too late to really make that design chance.

 

Minor Unity audio issues

This is a really small silly one that I already knew about, but still annoys me so I’m still writing it here.

The current build of Unity has an issue with WebGL builds such that the beginning part of every sound is cut off when played back. The result is that the start of each sound sounds a little different (noticeable especially for the kick drums in the intro sequence, and the text dialog sounds), and more importantly, seamless music looping doesn’t work because there’s a gap. I haven’t tried every possible compression type, but I DO know that making your build with an OSX machine instead of Unity on Windows does fix the issue. So it’s just a platform-specific bug with the Unity build process that hasn’t gotten fixed yet. Luckily I have an OSX laptop so I was able to replace the build after the fact, but this still annoys me. I’ll have to file a bug report for this at some point to make sure it gets fixed.

There was also a minor issue with a small pop/crackle effect that occurred at the end of sample playback, which was especially noticable with the text dialog sounds since I was playing so many of them each second (resulting in a buzzing noise when they all ended). Again, minor stupid things, but just annoying.

 

Overall this entry was a blast to make and I hope you guys enjoy it too!  I don’t have plans for a post-compo version, as I think I like the game enough as it stands.  But thanks for reading through my detailed post-mortem!

One last note: the soundtrack for the game is also available to download for free on my Bandcamp site at https://ddrkirbyisq.bandcamp.com/album/ludum-dare-the-game-original-soundtrack.  Go grab it now! 😀

 

[cache: storing page]