LD28 December 13–16, 2013

It’s alive! … Sort of… Is that an intestine falling out of its mouth?

This is quite a lousy postmortem, but there’s nothing more adequate than a shit postmortem for a shit game. So, how well did my first Ludum Dare (and heck, one of my first things that sort of resemble a full game) ever do?

 

The greatest idea of all time

 

I got together with some friends and, as expected, we came up with a simple and grotesque idea (the best type of idea, obviously): you only get one shit. More specifically, it was about a pigeon taking a crap on an old man for revenge. There’s really not much more to say about it, but we initially “planned” to have upgrades and other stuff which unfortunately couldn’t be included in the final version.

 

Thus, division of labor is born

 

Though the game itself was done by me, my friends provided most of the art, not to mention the brainstorming, random ideas and suggestions. The music kind of got lost on the way.

 

Let’s get to work

 

The development started in Java using the LibGDX framework, taking for granted that it would run anywhere. I still have very few doubts about that claim, but it just so happens that my friends are some of the unfortunate people who couldn’t open it. Though LibGDX is able to port games to HTML5 via GWT, exporting the project so that others can test it takes a long time. Besides, there are a lot of things to take into consideration for cross-compatibility, and my intention was to get things done as fast as possible by focusing on the desktop version.

 

The worst part of it was that it took me a long time to change tools, since I thought to myself: “Well, I’m sure we can solve this problem eventually, so let’s focus on other stuff for now”. Terrible time for positive thinking. Optimism has no place in the battlefield, only in times of peace. Remember, kids: make sure your gear is ready before marching into battle, but if it does fail, change strategies at once without hesitation.

 

Construct 2 was my path to salvation, despite my lack of experience with the program. It was very easy to pick and my productivity actually increased, leaving me to question why I hadn’t chosen it in the first place. Of course, there were still some bumps in the road which led me to remove the options menu, the scoreboard and other functionalities, but hey, that’s part of the fun.

 

My development plan was quite simple: implement a module, test, refine it so that it would be good enough for the moment, and move along. The final touches would be done when the game was in a more complete state, with full gameplay tests. Unfortunately, this state came pretty late in development and my friends weren’t able to test it thoroughly before the submission.

 

So what?

 

All things considered, it was a pretty satisfactory journey and one that makes me even more eager to throw myself into the game development world. The final product may not be something I’m excited to brag about or put in my curriculum, but it could be. Knowing that you have the potential to follow through your plan, achieve something and display it to others is never a useless experience. The worst that can happen is being harshly criticized and mocked, which is awesome for you, because then you’ll do whatever it takes for this to never repeat itself.

Tags: postmortem

SPELLBREAKER Gameplay

In this tribute to the classic game Mastermind only the right combination and number of forces can defeat the war wizard, Azaroth and his legions. Use SENSE to find the enemies’ weakness and use FORMATION to reconfigure your party appropriately. The party configuration is critical because you only have one ATTACK!

Unfortunately there aren’t any instructions on how to play within the game but I did make a video that demonstrates how battles work:

I’d love to get your feedback!

http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=28804

Tags: board game, boardgame, flash, haXe, Mastermind, puzzles, SPELLBREAKER

License to One: Post Mortem

The Good

Well, it shipped. It’s been a while since I did anything in 3d, and this was the first time dabbling in WebGL. It was immensely fun, and I’d probably choose that platform again for the next LD. I hope the music soundtrack is better received than the last one, and making it was quite a challenge for a non-musical person like me.

Overall, something playable was created and that feels pretty good.

The Bad

Checking out the basics of WebGL and Three.js before Ludum Dare would have been a good move. I didn’t, so I ran into a lot of unnecessary roadblocks. These cost a lot of time. At the end of Sunday there was still no actual game (adieu Compo, hello Jam, again). I did manage to finish something playable at the end of Monday, but everything is way more bare-bones than I wanted. Just a few things I didn’t get to do:

  • lighting effects
  • actual terrain
  • better 3d models
  • more levels
  • a loading screen
  • more music

The code is horrendous. There are some good decisions in there, too, but overall the code base could use a few days of refactoring. Its only redeeming quality is that it sort-of works 😉

The Ugly

Related to my bad time management and rusty to non-existent WebGL skills, a lot of essential stuff didn’t get finished. There are core aspects of the game that suck royally. For example, no explosion effects (or effects of any kind for that matter). There are collision and unit placement bugs, and probably many more issues that I haven’t discovered yet. In the end I submitted and went straight to bed, no matter how bad it was. Today I fixed an egregious bug that prevented an essential unit from being built – but that’s it.

Anything that’s not a critical bug will get fixed and improved in a post LD version. I’m actually looking forward to doing the post version over the next days that will actually be fun to play :) – the LD version is basically one level with tutorial and then you have to hold out against the enemy waves until you’re dead…

I guess the core lesson is: keep it simple. Make a game that is as simple as it possibly can be while still being enjoyable. My mistake was not heeding this advice. Still, the result could be worse!

If you want to have a look: play License to One.

I’ll be rating other games now. Very excited to see what y’all did!

Post mortem of my unexpectedly scary game!

Going into this competition I knew that I wanted to try to go for something new. Except Im not the most original person, so instead I drew on what I already knew. This came from a previous runner up in the ludum dare competition. I posted a picture of it below, it was the overall runner up for the minimalism theme.

Journal

 

I became entranced with the echo location idea because of how nervous and scary the enemies in that game had seemed, which ended up being what I based my game around. http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=29094

Screen shot 04

What ended up happening is that I ended up making (in my opinion) a scary and mysterious game that, hopefully, left the player wanting more! The thing that I am extremely happy about is the fact that I had forced myself (and it was very hard) to make sure that I focused on one aspect of my game and make sure that everything that happens in the game stems from that singular mechanic. This made creating this and polishing it to this degree manageable and do-able within these 48 hours.

Another thing that I’m extremely happy about was the story. At first I hadn’t even thought about doing anything like that but I made sure to get people to play my game early and one of the things they mention was “I don’t understand how to play” So I ended up trying to make a engaging tutorial that didn’t feel handholdy and this ended up being super creepy and I decided “hey why don’t I see what I can do with this!”

However, there’s much that I could improve on. Level design was rushed since I only had about an hour to create the last 3 levels, bug test, and submit the game. I’ll be going back and redesigning the levels to make it slightly more effective, I’m pretty sure I hit a sweet spot but I believe I can do better. Mostly due to the fact that I refuse to think that levels I rushed could be better than games that I sit down and test and test and test and then refine, refine, refine.

I would be extremely glad if you could take the time to play my game and let me know what you think. I’m eager to know what people think about what I did.

One Earth – First LD!

OneEarth

 

This was my first Ludum Dare, and my first finished game as well.  I’ve been wracking my brain on several game projects from video to board to card formats.  LD really helped me focus my energies intensely on one project and deadlines work on me so the 48hr limit really helped.

Several of my friends and I worked in the same room which definitely was a boon, and inspired longer hours of work than I’m used to.  Doing the Explosion animations in the game was the best part for me.  I learned a ton of GML in the process (thank you lord google) and can’t wait until next LD!

My game One Earth is about a world in which global warming has become so catastrophic that the only way to save the planet is to immediately revert to primitive times, by destroying all the power plant/ factory rigs.  On this totally watered world you sail in a muscle powered galley to shoot down all the factories.  Coal rigs produce a lot of pollution but have short range artillery.  Nuclear rigs produce little pollution but have massive range.  You only have 1 hp so the levels can be a challenge, but I didn’t want it to be easy.  Hope you enjoy the game and I would love any critique you have to share after playing!

Play HERE!

Tags: coal, earth, explosion, global, nuclear, One, planet, save, sea, ship, warming

Toy Soldiers: Timelapse

48 Hours in just under 9 minutes. Timelapse footage of the creation of my LD28 entry: Toy Soldiers.

A Postmortem for Mama Is Sick

Mama Is Sick

The main game interface for Mama Is Sick

So the 28th Ludum Dare marks the first time I have participated in the mainline Ludum Dare event, though I was previously a participant in the Mini Ludum Dares 44 and 45.  Myself and a teammate, JaymeeMak, made a game called Mama Is Sick (submission page here) and submitted it yesterday afternoon after 72 hours of mostly work and a little sleep.

Mama Is Sick is a resource management game in which “You Only Get One” dollar a day with which you must try and feed yourself and your family, as well as pursue an education.  It was developed entirely in Unity, using Unity’s GUI functions; I was the programmer on the project, while Jaymee handled narrative design, art, and audio, and we shared the tasks of gameplay and interface design.

Successes

The development process was really fun; this is my fourth game jam this year, and the whole concept is really starting to grow on me.  By Friday night, a few hours after the theme was announced, we had a basic prototype of our game, and by Monday morning it was mostly bugfixes and polish that we had left to do.

Of the things we did well, I think scope and planning was definitely one of them.  Going with an entirely menu-driven game was a better choice than implementing some kind of game world behind the menu, as it helped us focus and flesh out our mechanics without getting distracted.  The mechanics we had were just enough to keep us busy for the better part of two days, but not enough to overwhelm us by the time the jam ended.

We also did well with working as a team with complementary skillsets.  The fact that each area of the game was being looked after by the person in a best position to perform those tasks really helped us keep things on schedule, and made sure it all worked out in the end; we also did a good job at effectively communicating what we were doing and what needed to be done, to make sure we were mostly synced up during development.

Finally, I think we did a good job at integrating the theme in our game; it’s not a strictly one-thing-forever scenario, but the whole concept of living off only a dollar a day has a strong presence in the public consciousness, and I think we ended up with a pretty interesting game for it.

Improvements

As for what we could improve, one of the things we concluded was that we needed a better introduction to the game mechanics; most of the difficulties players had with the game involved not knowing exactly how the mechanics or interface worked.  Instruction screens are nice, but ideally we would have had some kind of in-game tutorial, which we unfortunately didn’t have the time to implement.

Along a similar vein, I think we could have made an interface and game that felt more responsive to player actions.  We tried to make an audiovisually responsive interface, and succeeded to some extent, but there is definitely room for improvement on that front.  Buttons could change color when hovered or clicked on; the upgrade mechanic could have been clarified through more obvious feedback; etc.  We thought a lot about these things during the game and are confident that we’ve learned lessons that can be applied to future projects we work on.

Finally, from my programmer’s perspective, I didn’t do a very good job at making modular code.  As I was assembling everything very quickly, and needed to work within Unity’s still somewhat unfamiliar framework (me being used to the much more blank-slate approach afforded by raw C++), I could have spent a bit more time making more reusable and modular functions for different kinds of buttons, actions and resources.  This would have helped a lot on Monday, when I spent a lot of time fixing or debugging problems that stemmed from the game mostly being run through a few very large functions.  On future projects I will definitely keep that in mind.

Conclusion

This was a really fun and instructive experience, and however the ratings may fall, getting the game out the door and seeing people’s initial and mostly positive responses is a great feeling.  I hope to take the things I learned making Mama Is Sick into future projects, and I can’t wait for the next chance to take part in a game jam (Mini Ludum Dare #48, I am looking at you!).

I should also thank our two playtesters from before we submitted the game, as well as everyone who takes the time to play Mama Is Sick and provide feedback for us; as game design students and future developers, these jams are really important learning experiences for us.  And a big shout out to everyone who managed to get a game in there, big or small; 2065 games made over the weekend!  Wow, that’s really incredible.

Of course, though, my greatest thanks go to my teammate Jaymee, for bringing her great talent, spirit and work ethic to the game (as well as for keeping me away from the game’s art).  Alone, I could only have made something lesser than what we managed to create as a team.  Thank you!

How to make a hole in a mesh

With difficulty, is the usual answer :)

Last week I came across csg.js and, thinking its online interactive demo super-neat, I posted it to reddit.  Unfortunately, it didn’t get the attention I thought it deserved, so I determined I would incorporate it somehow into this weekend’s Ludum Dare.

The CSG in csg.js stands for Constructive Solid Geometry.  There are several, increasingly complex and increasingly efficient ways to do CSG.  csg.js takes the simplest, least efficient and very elegant approach by splitting the polygons in a mesh into a Binary Space Partitioned (BSP) tree.  A BSP is a tree where the two children of a node are those in front of and those behind a 3D plane.  csg.is then takes another BSP and computes the parts of it that are on the inside of the object in the first.  Using just this single ‘clipTo’ operation, and an ‘invert’ function, all the boolean operations – union, subtract, intersect – can be synthesized.

csg.js is slow.  Its slow because its javascript, its slow because it supports a generic and extensible definition of a vertex, its slow because its using BSPs and its slow because its synthesizing boolean operations from just two functions rather than ‘unrolling’ that logic.   Using BSPs is also generally all about picking good splitting planes early on, and heuristics for this are hard.  In the maths sense.

So I set about making it faster.  Because the objects in my game are basically cubes and symmetrical, my instinct was that picking the splitting planes as octrants would be a good choice.  And this simple thing made my benchmarking 3 to 5x quicker!  I also tried simple things like using arrays instead of objects and all the other tips and tricks you pick up for javascript optimisation; however, these only made it slower!  I lost a lot of patience with the various profilers in FireFox and Chrome too!  One interesting thing though is that FireFox is consistently 2x faster than Chrome!  And I thought Chrome was the speed demon :)  But these days, FireFox is way faster for computational javascript, it seems.

One side-effect of using BSPs is that it is a very noisy process.  Polygons get split and split, and even if the ultimate result could be simplified, the output of the algorithm is a very messy mesh made from lots of small polygons.

Here’s a practical example from my game Ursa Miner, where you can blast holes in the terrain:

mesh1

The top-right shows an innocent intact block.  On the left you can see how the faces on the cube are each made of just two triangles.  This is a very normal 3D block.

Below, I’ve fired a cylinder at it.  And whilst you can see on the bottom left that the remaining faces are still nice and flat, you can see on the bottom right just how many new triangles there are to render in the scene!

Here’s a fun development video showing it in action:

And, if you want to see the mesh lines in my game, Ursa Miner, open your javascript console and execute:

 debug.showLines = true

in the REPL!

In making my game I had to try and optimise things to make it at all possible to make holes in things.

The landscape is made from Perlin noise, and is infinite.  I divided up each chunk of 10x10x10 space and turned it into a mesh using marching cubes to not create the inside faces.  However, I discovered that it was prohibitively slow – even on my fast macbook – to fire cylinders through such big meshes.  So I turned each individual cube into its own mesh.  And now firing cylinders through things was fast enough, but rendering so many individual cubes was prohibitively slow!  So my solution was to render whole 10x10x10 chunks of space as a single mesh, but if you fire at it it immediately subdivides it into individual blocks.  This is an acceptable tradeoff and makes the game playable.

So next Ludum Dare, lets see you incorporating destructive terrain into your game!  And, if you can’t wait until then, you can always go blast some cylinders through blocks and fly through the holes in my game Ursa Miner! 😀

Thank you CSG, thank you csg.js and thank you all for appreciating it 😀

Wrecked

Facestrip

My second LD experience and it was just as awesome as the first. This time around remote deving and using Git/BitBucket source control and it worked out awesomely for our workflow.

I really like how we planned our design out, because it had 3 distinct phases planned. If any 1 of the phases were complete there would be an experience there. Whilst we only managed to finish the first phase – which is quite a shallow experience – I’m pleased with how much content I managed to create. I don’t consider myself to be an artist that can work very fast but I find LD to be the perfect event to try increase my work speed. I phaff way too much and LD’s time restriction really helps you call “Done” faster, mostly because I think of Done as Done, for now. I’ll come back and clean you up if we got time, and we did.

The first iteration of the character animation was a two solid graphic states with wobble animations that lasted 10 frames or so, I then revisited the character to make a cut out animation with multiple graphic swaps for different body parts and I think it turned out awesomely. It’s the first time I’ve animated properly in the new unity animated editor, it’s far better than before, but still lacking BASIC functionality that all other 3d animation editors have.

That’s really the number one lesson I learned this time round: Make art fast and dirty that covers the extent of what you planned, then revisit and clean up the really bad stuff.

Iteration is King and spend your time where you’ll “see” it the most.  Because of whatever reasons your games scope isn’t as big as you first planned, the asteroids you painted didn’t get put in because of X. When you only spend 10 mins on it it’s not going to be so bad that it got cut, you also need to reassess every half day or so to find out what assets you should be making or not, figure out if you still in good standing to complete the scope you have planned.

We planned out  a ship phase in the first 20 mins of the dev which didn’t happen. Because of our reassessment on day 2 (at which point I had mostly completed what we needed for the suit phase) meant that I had the time that I would have been spent working the ship on improving the quality on what we already had going.I’m by no means the guru of time management, but I do believe I did a really good job this time round with where I spent my time.
Play Wrecked here

Watch my timelapse of the art for Wrecked dev here:

Tags: 2d unity, LD28, post-mortem, timelapse, unity3d

HellBow: a VR archery game

Well, our game is done and now to promote our game.

You play as Billy Tell, a simple cashier at a 7-Eleven who mistakenly gets sent to a world of creepy and evil monsters before they invade earth. Trouble is, you are only armed with a bow and a single magical arrow. This arrow can be summoned back to you after you have shot it. This game requires the use of an Oculus and Hydra, but we will release a web version shortly

 Instructions

Check out our Entry here:
http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=30008

I also made a post on the Oculus Forums if you are interested: https://developer.oculusvr.com/forums/viewtopic.php?f=28&t=5557

You Only Get One LD28, and I failed… Post-Mortem

Argh, this is my 6th Ludum, and the first one I’ve failed at. What do I class as failiure? Simple: not releasing a game within 48 hours.

Its like 2 days later, and here I am weeping into my soft squidgy programmer hands looking back at what went on.

But enough of my ;_;, lets start off on a brighter note:

THE POSITIVES

  • http://mkv25.net/ludum/ld28/preview/ – I managed to upload -something-
  • I made a reasonable stab at the artwork and animations. Paint Shop Pro helped me out as usually with basic pixel editing and painting.
  • I got walking, interactions, and an ingame menu working, these were neat features, and could have been strung together to make quite a nice game.
  • The music is kind of neat, I played around in Otomata to make a few sequences
  • Audacity was simple to use, and I was able to cut, fade, and loop my music track with relative ease

THE NEGATIVES

  • Lack of a clear idea – this is the first Ludum I haven’t felt 100% confident in an idea from the get go. My ideas spiraled into a multi-biome exploration of the concept of “One moment in time” from monkeys with sticks, lighting striking, apples falling, and so on. Its a bit of a lame excuse to pin this on… maybe excuse isn’t the word… I think its a damn clear reason that without conviction in my own idea, I didn’t have the drive to actually make it work. What was it I wanted? I wasn’t really sure.
  • Going for a long walk on a Sunday. Yep. That eat up most the day. Its December as well, pretty cold here, I was tired when I got home. Why did I do that? Maybe if I had a better idea I would have stayed home and coded.
  • Building a game engine from scratch, again. I actually quite enjoy this part of the challenge – not being too prescriptive with framework before I begin, and really crafting something unique for the challenge… but in this case I had no structure to drop content and ideas into, and feature creep kept on creeping along… requiring me to implement more and more basic features that I might have got if I’d used an existing framework, like HaxePunk on my LD26 Minamalism project. In fact, there were a lot of similarities between the two (side scrolling, interactive stories), and it might have been healthy to strip that project back and build up from there.

Anyhow, thanks for reading. Have a little look if you’re interested, maybe you’ll get a sense for what it could have been.

screenshot_02_gameplay

I’m glad I got this off my chest. <3 I can move on now…

~Markavian

Comments

17. Dec 2013 · 18:22 UTC
I feel your pain. I successfully completed 4 Ludum Dares prior to LD 27, where I tried and failed to complete a game. This time around I learned from my mistakes and managed to produce something. I made the decision on the 45th hour of to target the Jam and not the Compo so I could spend more tie on level design.
17. Dec 2013 · 23:20 UTC
Why wasn’t the Jam an option for you? The preview looks quite good, I would have loved to see it finished.
19. Dec 2013 · 22:53 UTC
Couldn’t do the Jam, had to be at work the next day, and had lost all sense of hope. I have had a few ideas this weekend about how I might extend the initial scene and finish the game off though. Maybe I’ll give it a stab.

Infinite Fame, ib4 shame.

So.

I played alot of Dark Souls alot, i mean A L O T. I hope it reflects my design.
I will add online high score to this within the next 7 days and balance out the kinks and make it more responsive but harder.
Got any tips or shames? Please share or die trying.
scrgrif winwinwinwingif

Can you beat all the levels?

2 This is my game for the compo, Some people say that the last levels are to hard. What do you think?

This is “You only get one piece of food” which is a simple adventure game. The goal of the game is that you have to take yourself through all the levels with just one piece of food per level.

Please tell me what you like and dislike about this game (my first ludum dare)

 

http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=21978

Synesthesia – Postmortem

Wow. What a weekend. I love Ludum Dare because it helps to learn and do something, but it also stresses you out completely, especially of you are mistake prone like me. In the end, Synesthesia hit the shelfs, so to say, but it wasn’t an easy task, despite the game’s semplicity. Let’s recapitulate what happened in these 72 hours and what I have learned from it.

synesthesia

The Good 😀

Picking an idea I liked

Like last edition, this time I decided to focus not on making a game just for the sake of it but actually focused on an idea that I really enjoyed, even if it looked way harder than other ideas I had. This, counter intuitively, helped me a lot in getting the game done: I was very interested in seeing how my idea would have turned out on screen. If you’ve played Synesthesia, you probably felt it is quite a weird and disorienting game; if that’s the case, I’ve done my job well and I’m happy about it.

The thing I love the most about Ludum Dare is the amount of inspiration you get. For someone who is cronically depressed creatively (like me) it feels like growing back a lost arm. It is amazing. You see so many ideas with so many applications, and you can’t help but get dragged into the vortex of ideas. Then, from the mass a few ideas stand out that you really like and start implementing them.

This is the best mental state to be in when starting to make a game, to me. It doesn’t feel like you choose an idea. It feels like an idea has chosen you as your ambassador, and your job is to show it to the rest of the world as best as you can.

I felt this way with Spark, my last compo game, and Synesthesia. I couldn’t make them justice in just a weekend, but I like them so much that I am willing to work on them even after the compo is over. I’m currently working on a longer and better version of Spark, and I hope to do the same with Synesthesia, since there is so much I’ve left out. They may not be a critical success in the compo but I’m proud of them nonetheless.

Game Maker: Studio

As I said, I’m currently developing a follow up to my game Spark in Game Maker. I was lucky to get a free copy of the standard  edition of the studio about a month back, and thought that making a smallish game with it would have been a great learning experience to test the waters, so to say. Then I decided to use it for the LD too, to see how it performed in a time critical situation.

I have to say, I’m very impressed with it. I was able to get a basic working engine in less than two hours. This is quite outstanding. The interface, compared to other popular development environments like Unity, is extremely intuitive, and it just “flows”. I can’t explain it in words but everything is where I expect it to be; after getting used to it I rarely even checked the help. It is definitely an accomplishment for a developer to be able to pull this off. Also, compared to other D&D environments like Construct 2, I felt it is faster to make it do what you want.

In the end, I’m very happy with choosing Game Maker this time around, and I’m sure I’ll be using it again for other small projets.

(still, it’s not all smiles, see below…)

Knowing the mechanics

As we only have a week end to complete a game for a LD, what a developer should focus on first is the basic mechanics. I had a good grasp of what I wanted from my game and how I wanted it to work, and this helped me immensely in saving time during development. I knew what I should have been focusing on and what I should have scrapped, and this made it possible for me to make Synesthesia in only 15 hours, more of less. Sure, the game itelf hasn’t much going on to show, but it was just impossible for me to make more levels in the time I ws able to squeeze in, so I’m happy that I actually got anything working at all.

Focusing on “accessory” stuff

Okay, this may be controversial. I was actually happy I spent a couple hours on making music and a micro dialogue system to give atmosphere and a setting to the game. The intro dialogue actually works like a sort of tutorial, explaining what the mechanics are in a subtle way, which is a lot metter than a simple wall of text coldly showing the ins and outs of the system. Also, I strongly feel that aesthetics actually should build on mechanics, empowering them, not being completely detached from them.

I know that for some it would have been better to just focus on making more content for the game itself, but I don’t regret my choice. I like games that have a mood to them and I would have been very displeased if I couldn’t give it to the game.

The Bad :(

Reinventing the wheel and not getting priorities right

If you were  paying attention, you may have noticed that I made the game in only 18 hours, and yet it didn’t qualify for the compo (it is a jam entry). Weird, right? Why?

Well, the truth is that I actually made a first version of the game engine in the weekend, but had to scrap it whole about 8 hours before the deadline for the compo. The reason is: I’m stupid. One of my biggest sticking point about rapid development is that I can’t understand when to drop something. I spent almost two days implementing in Game Maker a particular way of displaying strings that allowed for interesting animations, like vibrating characters and such. This was an absolutely superfluous feature, but I didn’t realize this until 36 hours later when I had a messy and buggy string display system that made showing simple text very complicated, without much gain on the visual side. To my defense, this initially was a big part of my mechanic so it had some sense in the beginning, but I must have realized before that it wasn’t fundamental to making the game itself.

So what happened is that I just threw the towel and got the rest of the afternoon off to lower the pressure a bit, since I was fuming like a steam engine. Luckily, I was still motivated, and on Monday I was able to pull together a new engine quickly and arrange some gameplay together. But I’m still sore I committed such a naive mistake, again. This is the third time I’m trying to get into the compo, and every single time I didn’t fail into losing at least one afternoon on something that I wouldn’t include in the final game because I wasn’t able to complete it. Maybe next time my brain will be wired and I’ll be able to complete a game without all this nonsense.

Still, I feel that this time around the tools I used got in the way a bit, even if I shound have expected it (another mistake). And this brings me to the next point.

Game Maker Language

Okay,  now let’s see where  Game Maker  caught me off guard and pissed me off. Ohh, boy this is going to be long. 

Above I praised GM for being an amazing engine for rapid prototyping and intuitive use. But under the fun stuff there is unfortunately a thick stuff of sticky and smelly matter that we should talk about.

What I like about Game Maker is the fact that it gives a scripting language as an alternative to the D&D interface, which is great, since scripting is way faster to develop and allows for more complex implementations that would take a lot of time with pure drag and drop. The smell starts to rise when you actually analyze the scripting language itself. It has the structure of other c-like languages, and this is cool since it is a syntax that I really dig. But if you expect an high level of abstraction like almost all of modern languages allow, well, then you are in for a big disappointment. I (probably naively) expected that, and was disappointed to discover that, even if the game uses some abstractions called “objects”, in fact inside the structure of the code they aren’t, at least not in the OOP sense. You can’t define methods specific to a class. You don’t have first class functions. There is no means for encapsulating data. Inheritance works weirdly. Basically, it’s a purely procedural language masked as an OO one, which leads to a lot of incomprehensions for those like me who are used to the latter.

Of course, this doesn’t limit the amount of stuff you can do, in any way. Far from saying that. But this kind of paradigm today feels antiquated: making it do some stuff feels kinda hacky and making code easy to maintain is hard.  It’s just some general smell that I would prefer to avoid since there is such a huge amount of modern languages that allow for great levels of abstractions, that helps a lot in developing a game.

Another weird thing about GML is scripts: I thought that they were just functions that you call and then return from. It appears this is not the case. For example, at a cenrtain point I had to call a script iside a loop. Inside the script was another loop. This caused the game to crash, for some reason. I was puzzled. It took me more than half an hour to find out that since both loops were using the same index i, the index, when “returned” from a script, had changed. This means that, even though “objects” have local variables, these variables are common to the scripts that you call. This is a very strange behaviour and while I may understand why this is the case (because of the procedural nature of the Game Maker engine), it really bugged me off. It is the kind of small limitation that really makes debugging hell in bigger projects.

This comes probably off the fact that Game Maker has always been marketed as a D&D tool, and the scripting side was seen as more of an afterthought. But I guess this came back to bite their ass when developers turned their head in favor of more “mature” engines. It’s a pity, because as I said before Game Maker is an amazing tool and very intuitive.

So, yeah. GML is not great, and not even mediocre, I would say. But it does its job, and in the end it’s the game that matters and not the language you program it in, but still. The dev inside me cringed when discovering this stuff.

Conclusions

So in the end it was an instructive weekend. They say that you either learn the easy or the hard way. This was more on the sadistic side, but I’m happy nonetheless. I’m actually surprised, since I thought that I had fucked up a lot more stuff, but instead it turned out to be productive, compared to last compos. Maybe (just maybe!) I’m getting the hang of it.

So that’s all. Again, if you want to check out my game Synesthesia and leave a comment, feel free to. Now onto playing a lot of games for the next 3 weeks. See you!

Blog Entry ->

Tags: Game Maker, GML, jam, LD28, postmortem, synesthesia

Time to judge! I’ve found some really awesome games

It’s the first time I participate on a real Ludum Dare, last year I entered the charity mini jam but nothing else, so it’s the first time for me judging and I’m REALLY ENJOYING IT 😀 I’ve found some amazing entries so far like that you should check out:

♣Channel by BradleySmith: http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=14944

♣The Last Rock by Ozeotropo: http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=19200

♣Process Journey by Lissar: http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=27179

♣Just One More Turn by Ithildin: http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=15664

♣Out by SuperPokeunicorn: http://www.ludumdare.com/compo/ludum-dare-28/?action=preview&uid=9858

 

I’m having an awesome time judging so leave the link to your entry on a comment and I’ll rate and comment your game 😉 Rate mine HERE

Thanks ^^ 

black blu brown yellow

Tags: fun, game jam, judging, LD #ld28, LD28, Ludum Dare 28, retro, silent film

Walkthrough video!

Hey guys check out the walkthrough video for FowL Play. It should help ease into the game :)

Please let me know if the game was easy/difficult so I can tweak things in the next few days with the release of other weapons. And it greatly helps me as a developer!
Thanks~

@hyungkim7
-Sakuyan

GAEA

screen03

I made a little game with a super simple core mechanic of clicking and collecting triangles. I seem to always focus my games around atmosphere and this one is no different. Each time the game is played it generates a unique galaxy from a Julia Set fractal (including a unique color palette). I gave the fractal a “voice”, so when you explore the different systems you can actually hear a musical interpretation of the fractal. I thought that was pretty cool :) I also stayed away from my usual pixelart stuff to try and do something different visually!

This game was quite difficult to finish as I was lacking motivation throughout the compo. I actually only spent about 28 hours total on it, but because of lack of focus I had to enter it into the JAM. Nevertheless, I’m glad I finished something.

Have a look at the game and have fun destroying some fractals: GAEA

Looking forward to playing everyone’s games!
bach