This video was quite the effort but I hope it’s not too late for anyone interested how I tackled “One Room” in this entertaining little video:
Posts Tagged ‘post-mortem’
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!
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).
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.
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.
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.
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.
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!
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!
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!
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!
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.
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
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!
PS: IF you want to play my game, you can find it here
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.
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!
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.
Thanks for the support and happy holidays
Hello everyone, 2017 is almost here, and so are results! Here’s my overdue post-mortem.
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.
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).
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.
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:
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?
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?
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!
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.
Day 1: terminal prototype, simple “internet” and system pages. Player which uses YouTube API.
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.
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!
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.
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 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!).
— Pavel Kouřil (@Pajka) December 10, 2016
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.
— Pavel Kouřil (@Pajka) December 12, 2016
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!
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 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)
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:
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.
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.
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.
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.
“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.
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!
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.
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!)
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.
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?)
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.
(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 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.
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.
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 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.
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.
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!
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
- Skorpyo. Team Lead, Programmer, Project Manager.
- Fourcy. Game Designer, Level Designer, Artist.
- Xcentric Noizz. Composer.
“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.
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.
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.
All sprites were made by Fourcy. He used Sai as graphics editor.
Fourcy spent a lot of time polishing this “level”. It had to contain lots of “game layers”. This was the result of “brainstorming”.
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)
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.
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.
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!