About Morgawr (twitter: @xMorgawr)

Entries

 
Ludum Dare 35
 
Ludum Dare 31
 
Ludum Dare 28
 
Ludum Dare 27
 
Ludum Dare 26
 
Ludum Dare 23

Morgawr's Trophies

Morgawr's Archive

Heyho! Participating in this end-of-the-year LD!

Posted by (twitter: @xMorgawr)
Friday, December 5th, 2014 1:00 pm

After more than a year, I finally found some time to participate in this LD.

This time I will go with a game genre that a lot of people hate and don’t consider a “videogame” (sadly): Visual Novel! Well.. I’d rather call it a graphic adventure but whatever…

Story will be based on the theme, I’ve been working on my own idea of a VN engine similar (better!) to ren’py and in the last few days I’ve been actively working on it.

The engine is free and open source (although still incomplete-ish). I will be using it as a base and I will most likely end up extending it and finishing it (somewhat) over the weekend.

You can find it here if you’re interested: Novelette.

 

Cheers!

Dawn of the second morning.

Posted by (twitter: @xMorgawr)
Saturday, August 24th, 2013 8:50 pm

Good morning LD, it’s almost 6am and here I am, ready to start devving once more.

Plans for today include adding a title screen, game over screen and maybe a tutorial, adding different enemy AI, adding at least other 30-40 new items in the game (I know it’s a lot!), adding the final boss and then testing over and over and over and over again the game to balance out the level scaling and monster/item stats.

Wish me luck, 10 Seconds Roguelike coming through! 😉

Cheers.

Fighting Bear Handed – 10 Seconds Roguelike

Posted by (twitter: @xMorgawr)
Saturday, August 24th, 2013 10:59 am

First time making a roguelike, it’s fun.

After one day of devving, here’s the result:

http://www.youtube.com/watch?v=YQvPeeP0aGs

Game is somewhat “playable” at www.morgawr.eu/ld27/ but I’ll still be tweaking it since it’s nowhere close to finished.
The idea of the game is to have your character explore floors after floors in a tower-like dungeon (going down), you only have 10 steps/moves/actions before being forced to go down one floor. The further you go, the stronger the enemies will be so you’ll have to look for the best combination of exp farming (fighting enemies) and item looting. Exp gives you levels which give you more hp and new skills, items give you defense and melee attack.

At the end there will be a boss you won’t be able to run from, if you’re too weak, you’ll die. Are you man enough to take the challenge? 😉

Items, items everywhere.

Posted by (twitter: @xMorgawr)
Saturday, August 24th, 2013 2:33 am

I decided to take a break from coding and did a bit of “art” for my game.

 

The main game mechanic is pretty much done, still needs a bit more polishing, more enemies and weapons and actual game progression but… here it i:

 

It’s ugly :/

Welkom Ludum Dare 27! I’m in.

Posted by (twitter: @xMorgawr)
Friday, August 23rd, 2013 9:45 pm

And this month as well I’ll be participating in this Ludum Dare. I didn’t think I’d be ready this time but apparently… here I am again, I can’t get enough of it.

Woke up at 3am this morning to get ready to dev, after a few hours (almost 7am here now) I was greeted with this amazing sunrise over the skies of Amsterdam which made me realize it was really worth it:

Sunrise with shitty camera, view from my room

I think I’ll be making some kind of quick roguelike-thingy, I’m not entirely sure but after 3 hours of dev, getting acquainted with Javascript and LightTable, here is my progress:

Progress!

Not sure where I will go from here but I know it will be fun.

Cheers!

 

My favorite games so far

Posted by (twitter: @xMorgawr)
Thursday, May 2nd, 2013 11:11 am

Here’s a list of my favorite games with a short description. I really recommend everybody to try, play and rate the following games, they deserve it.

 

Piet Mondrian – Best game ever, seriously. Go play it right now. The humor is seriously off the charts.

1951 – Join together multiple atoms trying to keep the reactor stable. I could go on playing this for hours without getting tired.

PRISMA – Great soundtrack, amazing mood. Solve the puzzles and combine the colors with the music to advance levels.

Refracted – Really weird and ingenious game, change color to pass through different layers and parts of the level.

Edward Was Human – Amazing story, amazing mood. Really great game with simple mechanics. Fit very well with the theme.

hru – Really soothing and calming game to play. Bounce the ball to reach the top. Really god sounds.

Linewalker – Weird game, interesting mechanic. The mood is very nice in this entry. Good choice with the theme.

ORM – Best minimalistic management simulator ever. In a league of its own.

Between the lines – Amazing graphics and theme adaptation. Gameplay is very smooth and polished.

BLoX – This is certainly one of my favorites. Such simplicity and minimalism, managed to grab my attention for hours. It manages to catch the essence of hack ‘n’ slash games, so simple.

 

I’ll keep playing more and more and more games, lots of good submissions this year for LD. Thanks to everybody for making all these nice games. Let me know if you have your personal favorites, I’m dying to try them out.

If you feel like it, try out my game as well, I’ll appreciate it :)

Art Attack – Post Mortem

Posted by (twitter: @xMorgawr)
Wednesday, May 1st, 2013 7:21 am

Alright guys, it’s been two days (more or less) since I finished my LD48 entry (If you haven’t yet, please go play it and maybe rate or leave a comment, I’d really appreciate it.) Last time I participated in a Ludum Dare competition was one year ago for the 23rd LD and I had promised I would eventually write a proper post mortem for The Dream Sequencer. I didn’t. I was too burnt out and I had a lot of other stuff going on so I never got down to actually doing it, I kept postponing and procrastinating and it eventually slipped.

This time I decided I would catch the chance to write a combined Post Mortem, especially considering my two games were very similar and the experiences as well, it’s catching two birds with one stone.

DISCLAIMER: This will be a lengthy post, feel free to bookmark it somewhere or just burn it and never read it. I promise it will be interesting!

The Premise

I enjoy adventure and story-driven games. I grew up playing Sierra and Lucasarts point and click adventures. One of the very first games I have ever played was The Secret of Monkey Island and, 20 years later, I still find that to be my favorite genre. Still today I am always shopping around and buying mostly point and click adventure games. When somebody asks me to make a game, the first thing that comes to my mind is its story and universe. “What would I do?” “What would be a great story to narrate?” The mechanics and actual gameplay come later for me. I know there’s a whole class of game developers that would frown at me for saying this, well, just sue me.

With this said, my rather short history of LD entries speaks for itself. If I had to choose a genre to adapt for a LD competition in 48 hours, only point and click comes to my mind. The other proper candidate would be an RPG of some sort but that’s way out of my league, especially in such short amount of time. This is why I decided to go with this genre, I feel it can be adapted to most themes although there were a couple of themes this time that would’ve made it very very hard to succeed. I’m overall glad Minimalism passed over others. (I would’ve still preferred “Afterlife” but that’s my personal opinion)

The Challenge Within a Challenge

I don’t honestly know why I do this, it’s probably some sort of masochism. 48 hours of full-on game development apparently does not satisfy me enough, I have to explore new approaches and try out new experimental stuff. Otherwise, how can this be a fun and learning process?

Last time, for The Dream Sequencer, I had decided to use C++ with Angel Engine. Keep in mind I had never programmed in C++ extensively before, my main and favorite programming language is C. Most of you game developers know how using pure C or C++ for “quick prototyping” is simply bollocks. There’s too much stuff you need to keep in mind, lots of bugs can be easily caused by pointers or memory issues, bad platform compatibility depending on libraries, harder time porting for Linux/Windows/OSX. And that’s what made it fun for me, I felt like I had to prove myself somehow and that’s the route I took. How it ended up? I’ll get more in-depth about that later.

This time I went for a more “portable” solution, I wanted everybody to play my game regardless of platform and operating system, so I went for the obvious solution: the web. There are many options for game developers targeting web platforms: Flash, Java, Unity Web, Javascript+HTML5 and a couple other less known. Let’s go over them one by one so I can give a rationale on why I didn’t pick them:

  • Flash – I use Linux. Flash somewhat “works” on Linux systems and I am well aware of that. Too bad I do not want to support it for many obvious reasons and I am trying not to use Flash for anything at all anymore. I don’t even have it installed on my system.
  • Java – Java applets are even worse than Flash, lots of security issues, vulnerabilities and overall annoying for most players. Really a bad choice.
  • Unity – I read that Unity was somewhat ported to Linux, I have played and rated several LD games made with Unity with their Linux/Mono executable. Too bad the Unity web player doesn’t work (or at least I couldn’t get it to work). Obviously not an option for me.
  • Javascript+HTML5 – This is a really good option. It’s still a bit immature and may have issues with some browsers but a lot of people are using it also on phones to make games, so why wouldn’t I? Well, it certainly is the best option among the rest, but there is only one problem… I don’t like Javascript

Given the alternatives, the obvious choice would be something that compiles and runs as Javascript+HTML5 that doesn’t use Javascript code. There are dozens of languages and compilers that would allow me to do exactly that, a perfect example would be CoffeeScript. Well, why didn’t I choose CoffeeScript? Too mainstream. No, not really, remember when I said I wanted a challenge? Well, I thought ClojureScript would be a more interesting and an overall more enriching experience to me, which is why I chose it. What is ClojureScript? Well, it’s a Clojure (a Lisp dialect) variant that compiles to Javascript.

I’m a big sucker for Functional Programming, ever since I played around with Scheme back in University and then dabbled a bit with Haskell. I have been waiting for a long time to have an occasion like this where I could actually employ a functional language for real. A few months before the competition began, I started playing around with Clojure. It was amazing, a really enlightening experience and solving some Project Euler challenges opened my mind. It was just great. I, however, also decided to keep the juicy ClojureScript parts for the competition itself, because I like hurting myself unnecessarily.

History of Bad Luck

Every developer knows that there is a supernatural force out there that always tries to screw up whatever plans or project you may decide to start. In my case, however, this seemed to have multiplied tenfold when talking about Ludum Dare. Let’s start from the beginning, with my troubled LD entry one year ago.

Around one week prior the competition began, on April 2012, my motherboard fried. I was without a computer and no chance to get a replacement in time for the 48-hour competition. This was a tragedy for me, I was so hyped to participate that I couldn’t just let this problem stop me. I ended up dusting off my old computer that I had been using as a home server, installed a somewhat “fresh” Debian distribution with LXDE and I was good to go… somewhat. The poor thing was so old and decrepit that it could barely run a text editor and a web browser together. Developing with C++ on that was truly a challenge, but I eventually managed.

Successful after my first LD, I decided to participate again in August. I usually never go on vacation or anywhere in particular, I am a very humble (and NEET-like) person, however my friends had managed to convince me to go out of town with them for a weekend. We had everything ready, all paid and done… and later it turns out that the LD had been scheduled exactly on that weekend. I cried a bit inside and decided to skip it, I could always participate in the December competition, right?

Wrong. I’ve been planning to choose a university for my Master’s Degree and my choice had fallen on one in a different country. That’s also when I was able to find a pretty awesome deal for 3 days (plane tickets + hotel) in that very same city for very very cheap, I couldn’t pass it as I might not have been able to find a better occasion to visit the university itself. Too bad the deal was only for that very same weekend on which the 25th Ludum Dare competition was scheduled.

With one whole year past my back, we have come full circle again. Planning and scheduling are still as useless as they were one year ago because even this time I found myself completely overwhelmed with real life commitments and deadlines. The most important of all, my band and I have been pretty much 24/7 in the recording studios for every single weekend of April to rush a new EP release. I really could not spare a week-end for LD… and yet I managed. I thought “screw it” and went for the 48-hour compo no matter what. I’ll get more in-depth with time scheduling in the following paragraph.

Lesson Learned: If you really want to do it, find the time. Sometimes it’s as simple as asking somebody else to cover you, some other times it’s not that easy and may require a lot of sacrifices and lack of sleep. All in all, if you really want to do it, do it.

General Time Scheduling

Too much time has passed since I developed The Dream Sequencer. I don’t honestly remember how I organized my time back then but I clearly remember an overall lack of sleep, which is normal for LD, and an intense feeling of rush and purpose as the hours slowly drew closer to the deadline. I had a tremendous issue with the sequence of screens which caused a lot of memory leaks and troubles which made me lose precious hours towards the end, but all in all I managed to do everything I wanted to and I simply slept away the following week.

This time, having to schedule my daily activities and availability around the LD competition was much, much worse. As I mentioned in the previous section, I had to carpool to and from the studios at least once every day. Starting from the early afternoon it would keep me busy until around midnight with an added commute of, more or less, 40 minutes (giving lifts to friends included). I had to do half of my development with my laptop at the studios and I had to be careful with planning if I didn’t want to find myself out of the compo. I always made sure I had the right plug/socket for my laptop charger, the right amount of paper for concept designing and my trusty wacom tablet for drawing. Drawing itself was the worst part, with only a small couch available and no rigid surface… it was pain.

Subdividing the daily routine is important, as I learned, when participating in these competitions. I had to distribute the load evenly between the hours, allowing myself some breaks, lunch, dinner and the aforementioned commute. Some tasks also had different priorities and deadlines. The engine development should come before the actual content creation, lest I find myself with a lot of content but no game. It is also not viable to record music and sounds in the early morning or late night (neighbors would kill me). On this related note, what is actually funny is that I couldn’t really record anything at the studios either if I wanted to do it myself, the equipment over there is not mine and costs money to rent/use so it was out of the question. With all these considerations, here was my planned schedule:

Saturday:

  • 4AM – Wake up, competition starts, let’s have a look at the theme
  • 4.30AM -> 6AM – Overall brainstorming for idea fitting the theme.
  • 6AM -> 12PM – Full head on development, researching on ClojureScript (remember? I never used it), reading short tutorials and example code, implementing base engine
  • 12PM – Lunch break
  • 2PM -> Midnight – Commute to the studios, keep developing base code and have a fully working engine with everything implemented, proper interactions and everything code-related.
  • Midnight – get back home and sleep

Sunday

  • 8AM -> 10AM – Wake up, start recording audio and musics ASAP
  • 10AM -> 12PM – Designing basic puzzles and small content creation
  • 12PM – Lunch break
  • 2PM -> Midnight – Commute to the studios, draw lots and lots of contents and puzzles.
  • Midnight -> 4AM – Final playtesting, eventual bug squashing and upload to LD website

It sounded like a smooth plan, right? Well yes, it was exactly that, a plan.

This is how it ended up being:

Saturday

  • 3AM – Wake up early because I couldn’t sleep all night, this is usually when I go to sleep so my body isn’t used to it
  • 4AM -> 6AM – Rage on irc about theme (a staple of LD), try to find a proper story
  • 6AM -> 2PM – Read a lot of posts, articles, interesting news and interesting stuff about ClojureScript. Try to implement other people’s code and get a base engine working. Also forget lunch.
  • 2PM -> 7PM – Continue developing at the studios, struggle with silly Internet connection that keeps dropping
  • 8PM -> 2AM – Get home earlier because change in schedule and keep working on engine getting around half of the required features working.

Sunday

  • 7AM -> 9AM – Wake up and try to implement missing features from engine
  • 9AM -> 9.30AM – Realize it’s getting late and I absolutely need to record sounds, ignore engine and start setting up recording equipment. Find out that there was a bug with the recording software and my guitar cable is faulty so I have to look for a proper cable and solve software issue. By this time I was frantic.
  • 9.30AM -> 10AM – Record 4 improvised tracks, abandon all hope to record extra sounds for the game.
  • 10AM -> 2PM – Implement sound system in game, test simple features and get a semi-working codebase
  • 2PM -> 11PM – Draw a lot of pictures and silly things sitting uncomfortably on a couch.
  • 11PM -> 11.30PM – Try to get back home but realize a friend forgot stuff at the studio, give him a lift back
  • 12AM -> 3AM – Frantically try to finish the bare amount of content I have, bugs… bugs everywhere.
  • 3AM -> 3.45AM – Implement ending scene, put everything together. No playtesting, final destination, upload it to the website
  • 3.45 AM -> 4AM – Wait for last 15 minutes of competition to end, staring bleakly at the screen.

“But… Morg, we don’t really care about your private life.” Well, you should. No, not really, however there is a great lesson to be learned here. Look at the differences between the planned and the actual succession of events. I literally finished writing the last line of the ending scene in my game exactly when the LD countdown hit “15 Minutes”. I had poor planning, no real expectations for the tasks I was required to do, and to top it all, a lot of things went wrong. I was overconfident on the first day, I was too frantic on the second one. There is a huge difference there. I’m pretty sure most LD participants can identify with such behavior, it’s very common. The most interesting thing was how I had to “waste” 40 minutes helping a friend get his things back from the studios. I don’t really blame him but that is the perfect example of something that went wrong and that I should’ve taken in consideration for my planning.

Lesson Learned: Plan carefully, don’t overdo yourself. Always leave yourself some space for a few breaks or unforeseen hindrances and accidents. If all goes well then you’ll be more rested and thinking more clearly. If something goes wrong then you’ll have enough time to fix it.

The Engine

Last time I had used Angel Engine, a C++ engine for the quick prototyping of simple games. It’s really powerful and is the codebase on which I based the whole Dream Sequencer game. This time, however, I coded everything from scratch in ClojureScript. I had no real engine to work with and I didn’t really need it. The purpose of an engine in itself is to abstract away unnecessary boilerplate code for the programmer, to give him more time on actual content creation and less on menial tasks.

Using ClojureScript, it is actually easier and faster to just write your own functions and filters and maps and lambdas and whatnot, rather than trying to integrate someone else’s code. This is obviously true if you’re working on a deadline like this, proper programming practices still exist in the functional world and Clojure is no silver bullet exempt from them.

I am overall satisfied of how the engine turned out to be. There were a lot of bugs and a lot of issues due to proper planning (see earlier paragraph) but in the end it was solid. I have to thank functional programming for that, keeping functions without side-effects, using proper state keeping instead of throwing everything into globals (exceptions taken for some parts). I had a lot of fun passing lambdas and higher-order functions around to schedule events, combinations of items and elements in the game and all that stuff. It was really refreshing and an experience that I would suggest to every serious developer at least once in their life.

On the opposite, though, there were a lot of problems too. I honestly had no idea what I was doing half the time, I had to ask for help on irc, use Google, learn how Javascript and the Dom model work, how browsers act, etc etc. I am surprised I was able to get this much done in just 48 hours, by the end of the first day I was pretty sure I wouldn’t be able to finish in time and I was already considering getting into the Jam instead.

The most troubling part of my engine development was actually realizing, on the second day, that I didn’t develop a mechanic I really needed for most of my puzzles, which is opening a dialog and obtaining a new item when combining an item in your inventory with an item on the scene (aka an actor, like giving the brooch to the fisherman, if you played the game). This is a very core mechanic of point and click games, without this it’s not really possible to advance, else your puzzles will be bland and uninspiring. I ended up solving this issue in around 30 minutes hacking together a few functions in charge to check when a new item was acquired and opening a dialog depending on the item and its “on-pickup” description. This is exactly the reason why the fisherman disappears before you receive the text on screen. It’s ugly but I had no time to implement it properly.

Another funny realization was finding out in game that you could just get rid of one guard in front of the throne room to be able to click on a few pixels of the door behind them and get into the throne room itself without solving half of the puzzles. Obviously you’d still not be able to finish the game but that’s another matter. This sequence break is the consequence of some decisions I took early in development where I decided not to go with actual “game events” and instead assume players wouldn’t be able to sequence break and speed their way through the game. This was developed with cheap tricks like putting items over exits (like the waterfall) to prevent the player from getting through. In retrospective, it was a bad idea, but a least it worked and was quite simple to realize.

Lesson Learned: If you can, take your time to learn a proper engine and avoid making your own, it will save a lot of time later on when actually developing your game. However, keep in mind that cutting corners is a viable technique and if you’re going for quick development/release (like in LD48), your player will never know how many cheap tricks you pulled out of your magic wizard hat to make the game work.

The Story

For those of you who played my previous entry, you know I tend to do stuff like this. I enjoy starting from A, getting the player through B and then suddenly jump to D, skipping C altogether. I am well aware this is an approach that a lot of people don’t really enjoy. I fell for that trap with The Dream Sequencer, turned the story 180 degrees in the opposite direction halfway through and then unloaded a massive mindfuck bomb at the very end. This time I had promised myself I’d be more careful with that sort of things… and I somewhat failed. I don’t really know, the ending is very disconnected from the rest of the game but that was on purpose, however it does look like it was very rushed and poorly planned.

Maybe it’s true, I didn’t plan properly. Maybe it’s not true and that was the intention, it doesn’t really matter. What matters is how the players perceive it. At the end of the day, that is what really counts and you can try hiding behind words as much as you like, facts are still more important.

 

WARNING! Spoilers Ahead!

At the beginning, during early brainstorming phase I had imagined a totally different story. In the very same universe and with the same vibes, just a different purpose. I imagined the main character to be some sort of magical spirit of “Art”, trapped into his prison by an evil sorcerer who turned the whole world into a minimalistic mess. You’d eventually wake up one day and have to find a way to break the evil sorcerer’s curse and bring color and details back to the minimalistic world.

All in all, it made sense in my head, however it lacked the mood I was looking for. It felt really generic and bland, a staple of point and click games. That’s when I decided to add the twisted ending, taking a bit of inspiration (subconsciously) from The Whispered World. First, I considered making the main character actually a patient of a mental asylum, suffering from schizophrenia (or some other illness of the mind) and eventually coming to terms with his condition, realizing he was living in a fictional world and breaking out of his psyched chains.

The concept itself would have been great, I’m sure. I’m actually noting this down for a possible future game, no kidding. The problem is that there was no way I’d be able to deliver an appropriate narration and closure for such a theme in just 48 hours. That’s where I changed direction and went with a more generic (and rather unimaginative, if I have to admit) main character trying to escape from this weird world and get back home, to a place he doesn’t even know about. Then I properly transformed the ending into a messy-but-somewhat-convincing grand finale that hardly tied to the rest of the story and yet delivered the proper punch to the reader.

Lesson Learned: Aim high, but not too much. If you’re a developer focusing on story, don’t try to pull plot twists everywhere, especially at the end. It’s way too simple to lump together an innovative and experimental writer with an actual inept and bad one. The players decide how good your story is, not you.

The Puzzles

This is an area that really improved with the transition between last year’s LD and this year’s. The Dream Sequencer’s puzzles were hardly there, there was no challenge, no real purpose. Just a mass of jumbled crap, one-way transitioning areas and small inventory. Prior to this I had never actually wondered about the effective complexity of designing interesting and yet challenging puzzles in adventure games. Make them too hard or too illogical and the players will get frustrated. Make them too simple and you might as well not put them at all.

There are several things that I managed to improve and I feel this part was actually somewhat successful (by the 48 hours limit, obviously), from the humbleness of my green game design experience. Here’s a quick list and explanation:

Give the player the chance to backtrace

Nobody wants to be confined in a corridor. For The Dream Sequencer I was limited by my own knowledge and engine, I made it only possible to go forward, advancing each room and solving puzzles individually. This time, by giving the player the chance to go back on his steps and decide to tackle multiple puzzles at the same time, I managed to make the game broader and more open. A more open world means better immersion and less constraints on what players do.

Add somebody to talk with

I didn’t have enough time to add proper dialogues and character interaction in either game, but I realized The Dream Sequencer was lacking a lot of classical point and click spirit. It was lacking NPCs. You really need to have a window to the world you’re playing in, you need to immerse in that and the best way to do that is to have somebody to connect with. By adding the fisherman, the princess, the two guards, some interactive notes and all of that, I made the world more real and more interactive. It doesn’t matter if they don’t participate in puzzles, they still populate an otherwise empty universe.

Useless stuff is not useless

On a related note, The Dream Sequencer mostly had only useful items. It was pretty obvious a good 90% of the game’s content was pickup-able from the get-go and players knew exactly what to do. This time I decided to go with more background details, add a window here, a bed there, some useless and uninteresting stuff. At least people now had to actually think (somewhat, in the 48 hours limit obviously) to solve puzzles, they had to actively examine items and further learn about the game’s universe without actively playing it all.

Make logical puzzles

This is something I have failed to properly achieve in both The Dream Sequencer and Art Attack. I acknowledge that, I had poor planning and didn’t take enough time to properly formalize the games themselves. Cracker with parrot isn’t a good puzzle, mushroom with water isn’t either. A good puzzle integrates well with the story and makes sense. All puzzles should be logical, straightforward and intuitive. This, however, doesn’t mean they should be easy. Just a bit out of reach for the player, to give him enough room to think it through.

 

The Art & Style

Fitting the art and the style to a LD theme is always a challenging task, especially with some less-inspiring themes. This year, with Minimalism, I have seen a big amount of games with pixelated and “minimalistic” graphics. I don’t really agree with their interpretation of the theme as I mostly consider Minimalism to be different from “minimalistic”, however this is all down to personal interpretation and all is good. What I have also noticed is that a lot of people implemented and emulated Mondrian‘s style. Mostly because it’s one of the first examples in the Wikipedia page for Minimalism and he’s got a very unique and eye-catching style.

I fell into the latter category of developers, adding my own touch to the artistic current, using also other colors like green… pretty much whatever seemed to look good at the moment. I decided to go for a very “unique” and stylized art style, this doesn’t mean it was a good decision, though. It certainly helped me develop a good amount of content in little time, and that is a really important thing to consider in a 48-hour competition. The downside is that the idea felt much better in my head than it was on screen.

Honestly, from some comments I received in response, it seems like people enjoyed the art, somewhat. I don’t fully understand it, I created it and I think it’s not that good but I’m glad others are actually liking it. Either that, or they just feel pity for my so-called “art skills”. Time (and voting) will tell.

Related to the art, the same rules as the story apply. No matter how intended it was, if people perceive it as bad then they will most likely think you’re a bad artist and consider it a silly attempt at spriting, rather than an intended innovative art style. I’m not really trying to justify myself here, I am not the best artist in the world. Far from it. However I know I could’ve done a much better job had I given more thoughts to the art department. I wouldn’t have been able to finish in time, however.

Lesson Learned: Even if it’s on purpose and you want to make a game so bad it’s actually good… well, people will still think you’re a bad artist. Always put effort in the art department as it’s what most people notice first, even before playing the game itself. Although, always factor the time it takes you to create good assets and come down to compromises to deliver the promised product in time. That is the #1 priority.

The Music and Sound

I love music. If that wasn’t clear enough from my previous mention of recording studios and all that jazz. I always try to achieve something original in my soundtrack for the games. I have seen way too many LD developers use sfxr for sound effects to actually consider it myself, regardless of the fact that it’s an amazing tool. As a musician I prefer recording my own tracks even though I’m probably not the best audio technician in the world (far from it).

The sound recording process for both The Dream Sequencer and Art Attack was fairly similar. Just get my guitar, plug it into the computer and record the track with some effects form my pedal. Loop it as needed and eventually call it a day. There were, however, a few differences between the two processes, mostly related to the actual hardware.

For the Dream Sequencer, as I mentioned earlier, I had a very old piece of crap computer to use for the development. Getting Audacity to work with that was simply pain. It would crash every time I clicked on the record button, it would create useless static noise, high latency, it couldn’t keep up with more than one track… I am actually surprised I managed to record what I did.

For Art Attack, it was much easier. Having at my disposal both my new laptop and my actual desktop made it much more comfortable to work with. After solving some cabling issues and understanding how to get real-time monitoring on Ardour (it was surprisingly easy, it just took me too long to explore all the menus), I was good to go. I quickly improvised four different tracks which turned out not so bad. I am actually very fond of the ending song, sporting a nicely improvised solo.

Unfortunately I didn’t have enough time to record additional sound effects or voice acting, time was running low and I was already out of my daily schedule. I also had to rush any post-processing and added mastering/mixing to each track which would’ve made them way better.

Lesson Learned: Make sure your hardware actually works prior the competition, you don’t want hidden surprises half-way through the weekend. Use any kind of content creator (sfxr is fine too) to ease your process but always try to be original, it does pay off in the end.

Bugs and Issues

Bugs… the bane of any developer. Who doesn’t hate them? From my personal experience, bugs can literally kill your development and productivity and make you drop out of the competition straight away. I risked failing everything both times because of silly bugs that kept me busy with petty maintenance tasks instead of letting me focus on actual polishing and content creation.

With The Dream Sequencer, I realized near the end that under some very specific circumstances my game would crash seemingly random. Some pointer allocation and memory leak was making the whole application fail brutally. As I mentioned earlier, using C++ for quick prototyping of a game isn’t the smartest choice in the world, and here is why. If I kept adding dialogues screens I would slowly start losing memory and dropping frames and eventually the game would crash. I realized a few hours before submitting my entry that the game had started failing to load some lua scripts, seemingly for no reason. Turns out later that an apparently innocuous assert() was failing silently and the whole thing would go down. What’s funny is that it started doing that only later during development, until then it had worked fine.

As for Art Attack, using Clojure has saved me quite a lot of pain. Thing just worked and there were very few issues at first. Later on things got a bit worse when I introduced proper asset loading and migrated from localhost to a real website. The added latency would occasionally freeze the loading process and up to this day I haven’t been able to fully solve the issue yet. What is ridiculous is that it would behave in a totally different way on Chrome or Firefox (haven’t had the heart to test it on other browsers). I know browsers and HTML5 can behave very differently but there was apparently no reason why the loading of a few images and sounds would freeze the whole application on one browser but not on the other.

A pretty big downside of ClojureScript was proper error reporting. Having to compile your code to Javascript means you get to lose the ability to see which function is actually failing in the game because the names are all mangled and you have a much harder time debugging stuff. All I could do was add a lot of console.log() and js.alert() functions everywhere until stuff started working again.

One thing that hit me both on my previous and my current game is that after the games end, they both crash. It’s something that I found very hilarious because no matter what language and technology you use, old friends (and enemies) still come back to haunt you. Still to this day I decided to just let it go and ignore those bugs, I don’t really care if the game crashes upon completion, I’m still happy I was able to get it that far. After all it’s just a 48-hour competition, right? Right? (I know it shouldn’t be acceptable but pretend it is)

Lesson Learned: Bugs are everywhere, a single bug can really screw you up. Always be careful when designing and debugging your game, you don’t really want old bugs to show up at the end of the development process. Trust me. However, keep in mind that sometimes you need to coexist with less harmful bugs and just deliver your game. That’s what counts the most.

Words of Closing

Well, this has been a fairly lengthy post, as I had promised. I tried to give some insight in the development process for both my previous and my current LD entry. Who knows, maybe somebody will find this interesting or even useful. I’m not a very experienced  game developer but I enjoy sharing my experiences with the community, just remember to take everything I say with a grain of salt.

One thing that should always be important for every LD participant is to enjoy it and have fun. There really shouldn’t be any other reason to participate, you don’t win anything, you don’t lose anything. It’s just for fun and because you want to create new games and put yourself to the challenge. Always keep that in mind.

I’m really looking forward to playing a lot of good LD games, there have been a lot of submissions this time and the ones I have already played have been great.

Feel free to comment below and share your experiences, I’d really love to hear from other developers about their own LD submissions.

Since I am taking a break… time to post updates!

Posted by (twitter: @xMorgawr)
Saturday, April 27th, 2013 1:12 pm

Here is a gif of the game:

Honestly, this is mostly programmer/temp art. I spent most of my first day (all, actually) getting the basic engine done.

ClojureScript has been a huge pleasure to play around with, I have almost 1500 lines of code written. It’s becoming a bit of a spaghetti code but it’s no big deal, next time I will plan a bit better.

So far, all the engine features are working and the only one missing is room transitioning between different rooms. Tomorrow will be 100% dedicated to art + puzzles + story design + sound. I hope I can make it in time.

Halfway through first day

Posted by (twitter: @xMorgawr)
Saturday, April 27th, 2013 4:52 am

Halfway through first day, here I am… All this programmer art is going to be damn awful. I hope I have enough time to perfect it later.

The game’s about the spirit of Art (aka you), having to escape from the world of minimalism that is killing art itself, you have to solve puzzles (point and click) and find your way to save the world from minimalism. Remember, minimalism isn’t just about visual. Text and music will follow!

After one year I manage to participate again (God willing).

Posted by (twitter: @xMorgawr)
Thursday, April 25th, 2013 6:16 am

Bad luck has always plagued me whenever I decided to participate in these contests. Last time the LD challenge happened during a vacation weekend in which I couldn’t participate. The previous one as well happened during holiday time which found me without a computer (just for that one weekend). Now, you may think I travel a lot etc etc, except I don’t. It was just a very unlucky coincidence, I tend to stay at home for the rest of the year, there must be some sort of unlucky magnetism that brings me to travel around when LD is scheduled.

My previous participation in LD was last April with my Dream Sequencer game, it was a (rather poor, if I have to admit) point and click game I developed over the weekend with C++ and Angel Engine.

It was a fairly interesting experience, I had promised I’d write a post mortem on that but I eventually forgot and I didn’t. I guess we can consider this post to be a somewhat of a late post mortem. I always enjoy challenging myself and even within the scope of this challenge (the LD48) I had decided I would challenge myself further with C++ (a language I had never used before) and Angel Engine (a very simple prototypical engine that I had never used).

Honestly, the challenge went greatly, I learned a lot and I had a lot of fun although it wasn’t easy. This time I plan to challenge myself yet again and try develop a game in ClojureScript. What is ClojureScript? It’s a Lisp dialect (Clojure) compiled to Javascript for HTML5 deliciousness. I’m a Linux user and I know my target audience would be very small if I didn’t provide an OSX and Windows executable. Even then, people playing a lot of LD games just want them to work in the browser without having to download libraries and shady binaries. I do not support Flash, I do not have Flash and I am unable (by choice) to run Flash, so that’s a dead option too. (on the negative side, I won’t be able to play any Flash game, sadly). I dislike Javascript so ClojureScript was the obvious choice for me.

We’ll have to see how it works.

As far as gameplay goes, last time I attempted a point and click (my first ever) and the puzzles were lacking, the story was rushed towards the end (lack of time, curse you C++ and poor planning) and the art wasn’t that great (yeah, I’m a bad artist). Nonetheless I got a very high score (#35) in the Mood category which is what is motivating me to try this style once again. I plan to attempt yet another point and click, it’s my favorite genre and I have played all the classics, this time I might pay more attention to the puzzles and give more details to the mini-universe I will try to fit to the LD theme. I just have to hope to get a good theme (I have a few ideas, who knows…)

From my previous experience, I have to say that designing a point and click is harder than it sound. Putting aside the game engine and mechanics, the puzzles themselves have to blend in well with the world you create. Add too many details and your players will be lost without knowing what to do. Add too little details and the puzzles become obvious (just combine everything you find with everything else and it will eventually work out). Striking a perfect balance between longevity and fun is challenging. To top it off, a good story with proper writing is the icing on the cake. All of this will have to happen in a weekend, who wouldn’t love it? :)

Morgawr – Point ‘n’ Click – Update #5

Posted by (twitter: @xMorgawr)
Sunday, April 22nd, 2012 1:16 am

Previous post: http://www.ludumdare.com/compo/2012/04/21/morgawr-pointnclick-update-4/

Huya! A new day, a new morning and.. new content for my game.

I woke up early this morning (4am) and started working on adding content and puzzles to my game. With the engine finished and everything, I’m really surprise at how fast I can develop new content and rooms. Currently I have planned 22 rooms + final scene, so far I’m at 7 room finished already. The rest shouldn’t be too hard either, then I can dedicate my time into a (maybe) better soundtrack and polishing the details.

I have a very good screenshot of the final scene but I don’t really want to spoil anyone (because I think the surprise effect is really worth it), however you can have this in-game screenshot of room4 (The cave):

This is really creepy, I HOPE this thing doesn't try to eat me... *wink wink*

Morgawr – Point’n’click – Update #4

Posted by (twitter: @xMorgawr)
Saturday, April 21st, 2012 1:33 pm

Previous post: http://www.ludumdare.com/compo/2012/04/21/morgawr-pointnclick-update-3/

After a full day of development, I think it’s time to go to sleep! It’s been a long day, fun and interesting. I met my good share of problems and eventually solved them all. I was able to iron out all the bugs in my code and now I’m just writing Lua scripts and drawing images for the game. I don’t even have to recompile anymore.

I’ll be brief, as I’m really sleepy, however I will drop a couple more screenshots:

Screenshot 1

Screenshot 2

Screenshot 3

Good night Ludum Dare! See you tomorrow morning!

Morgawr – Point’n’click – Update #3

Posted by (twitter: @xMorgawr)
Saturday, April 21st, 2012 9:58 am

Previous entry: http://www.ludumdare.com/compo/2012/04/21/morgawr-point-n-click-update-2/

And here I am… I was able to implement all the features I needed in my engine, I’m quite happy about it. Obviously the code is a mess and it’s a huge clusterfuck, however it works and I can’t really nitpick about code design and practices. It will have to do.

I spent the last hour fixing minor bugs and glitches (I know I should be working on CONTENT instead of polishing the code, but I’m a programmer at heart, it just bothers me that my code doesn’t run like I want it to). So far I ironed out all the bugs except one, a very annoying bug that prevents the inventory/dialogue windows to popup for whatever arcane and mystical reason. It happens at the beginning of the game, sometimes… I will have to fix it before release, but so far it can stay.

I successfully implemented the item combination and chaining of events using Lua structures, it’s really amazing. I hadn’t even finished half of the engine code and yet the Lua engine behind it was able to move me forward one room (which promptly crashed cause the room didn’t exist yet). This is exactly what I wanted to achieve, so far I shouldn’t be worry about the code itself any longer (except for polishing and bugs) and I can focus on content creation.

I was also able to record two songs in the soundtrack.. the intro song and the ambient song (during the game). They aren’t amazing because this old ass computer (from 2003) has a very bad integrated audio card and 2GB of RAM doesn’t cut it anymore. However they are something. You can be the judge!

Intro song: http://dl.dropbox.com/u/24348553/LD/Intro.mp3

Ambient song: http://dl.dropbox.com/u/24348553/LD/Inside.mp3

Screenshot: http://i.imgur.com/qZVah.png (not much has changed, there are just two keys, which you combine to open the door, and there’s an introductory dialog message)

Cheers!

Morgawr – Point ‘n’ Click – Update #2

Posted by (twitter: @xMorgawr)
Saturday, April 21st, 2012 3:33 am

Previous entry: http://www.ludumdare.com/compo/2012/04/20/morgawr-point-n-click-update-1/

New update for the point’n’click game.

I have the whole story in my head but I don’t want to disclose anything yet, just in case I change my mind, or even for a simple surprise factor. I’ve finished setting up the base engine, working inventory, picking up items and all that stuff. Entities in the game communicate by throwing messages to each other using Lua (and Angel-Engine), so after I complete the base engine and all the content (images) it should be really easy to rig together based on a simple cause->consequence reaction.

What I’m missing so far:

  •  Combining different objects together
  • Using objects on other objects
  • polish, lot of polish!
  • game art
  • puzzles
  • music

After all of this is done, I would call the game complete. So far I’m mostly worried about point 1 and 2, but again, it shouldn’t be too hard to set up. I’m using recursive structures for data definition in Lua. Pretty neat stuff.

 

Here’s a screenshot of the “first” room in the game, a simple “unlock the door with the key” challenge. Art is temporary, depending on the time left after I finish the game I may come back and polish it a lot more (I hope so).

Screenshot

Morgawr – Point ‘n’ Click – Update #1

Posted by (twitter: @xMorgawr)
Friday, April 20th, 2012 9:50 pm

(old post: http://www.ludumdare.com/compo/2012/04/20/morgawr-point-n-click-first-ludum-dare-game-ever/ )

And here we are! Roughly 3 hours and a half have passed (maybe 4 after I submit this post) and I’m going at a steady pace…

Thanks to the underlying engine it’s pretty easy to add new content, it just takes some time cause it’s C++ (and I’m not a C++ programmer, I’m using this as an experience to learn). Here’s what I did so far:

First of all, I started with designing the level structure of the game. It’ll be a sequence of rooms (like most escape-the-room games) and I had to code them down to .lua files. After I got that to work (it took me a long time because Lua wasn’t really happy and kept giving me problems.. after 1 hour I realized I forgot a comma and it kept giving me syntax errors… damn) I implemented item placement in the world. A small screwdriver image (it’s non-allowed content, I made it prior to the competition but I’m going to swap it out with real graphics after the game works) at the center of the screen.

Tweaking here and there in the code, I then moved on to implement a simple icon (your usual Examine/Pickup/Use icon) to follow the mouse cursor while in game. This was much easier than I expected and in 10-20 minutes it was all up and running.

Now I’m currently working on events with mouse clicks on the screen, operating on items in game and in the player’s inventory. Ironically enough, one of the hardest challenges so far is figuring my way through GlCoords. AngelEngine uses world coordinates instead of screen coordinates and when placing items on the screen (especially when retrieving their coords) it can be a pain in the ass.

 

Anyhow, here’s two screenshots! The first one shows the screwdriver on screen and the Examine icon following my mouse (cursor doesn’t appear in screenshot), second one shows an interactable dialog screen drawn on top of the game. (linking the screenshots cause wordpress stretches them and I’m too lazy to find a way to make them look good)

Screenshot 1    Screenshot 2

 

Morgawr – Point ‘n’ Click – First Ludum Dare game ever!

Posted by (twitter: @xMorgawr)
Friday, April 20th, 2012 5:20 pm

Hello everyone!

This is my very first time participating in a LD event, so I don’t know how well it will go. I just hope to have enough fun and deliver an acceptable game by the end of the week-end.

I don’t yet know (by the time I write this post) what the theme announced will be, however I plan to work on a point and click adventure game. I will adapt it as I see fit for the theme itself. Due to real life misfortune I am left with a very old computer (from 2003) with very low specs running Linux, so I don’t know if I will be able to port the game to Windows in time (I might try borrowing a windows laptop just for the porting), so yeah.. this will be a 100% Linux game.

The game itself will be developed in C++ and Lua, I’ll be using a game engine called Angel-Engine (a really amazing engine for quick development/prototyping of 2D games, you should check it out) freely available (under BSD license) here http://code.google.com/p/angel-engine/ . I will also be using a boilerplate/library I’ve been working on for the last few weeks, it’s a library for point ‘n’ click (and visual novels/interactive stories) game development based on Angel-Engine. The code is freely available (I have not yet decided on the licensing but it’s either GPL or BSD so no big deal) at my github: https://github.com/Morgawr/Virtual-Click

The Virtual-Click engine isn’t finished yet, of course, so I will take the chance and see if I can get it to a finished/workable state during the Ludum Dare itself. It’s going to be a fun challenge.

I’ll be updating this post, as the LD compo continues, with screenshots, opinions, reflections and I’ll be listening to your comments and critiques to help me polish and develop a fun and entertaining video game. After this is over, I’ll try and stick together a small timelapse video: I’m going to capture a screenshot every 10 seconds using a small C program (using scrot) during the whole duration of the LD.

Thanks for reading this, hope it will be an interesting competition!

Cheers!

Morg.

[cache: storing page]