Posts Tagged ‘LD28’

You only get one COLOUR – Postmortem

Posted by (twitter: @soy_yuma)
Wednesday, December 18th, 2013 4:04 pm

You Only Get One Colour is a minimalistic puzzle-platformer that tells you one story. The story of a boy who’s born with the inability to see more than one colour at a time. If you hadn’t played it yet (shame on you) you can find it following this link:

PLAY: You Only Get One COLOUR

You Only Get One COLOUR!

The tools

I ended up creating the game using AS3/FlashPunk/FlashDevelop as my programming language/game engine/programming IDE.

I used Gimp for the graphics, Sunvox for the music, and Audacity for the sound effects (yep, all SFXs are made with my voice).

The source code and assets were commited to a GitHub repository and I used Trello for a small scrum planning.

What went right?

I think I’ve improved since my last (and first) solo Ludum Dare in some aspects. For starters I’ve slept 4/8/8 hours between Friday, Saturday and Sunday. That may sound like a waste of time and definitely something to talk about in what went wrong, but it’s not. Sleeping is important for two reasons:

  1. If you’re tired you think BAD.
  2. If you go to sleep thinking in a problem, you may catch a creativity spark that lights the path to success.

I had my idea while I was trying to get some sleep in the whole excitement of Ludum Dare. This is something I heard seasoned LDers advise, but could believe it. Now I know it’s something good.

I performed very well at planning. Although I got a bit distracted (see next section) I had a plan from the very beginning to finish the game on time. I kept a list of things to do with priorities using Trello. Sure, I spent some time creating the tasks and sorting them from higher to lower priority, but the thing paid off. I got stuck some times, but the plan persisted and pointed me always in the right direction.

Player asset: before and after

Player asset: Initial/final design

Finally, I think I made a good workflow. I’ve heard the word workflow many time, but it was just recently that I understood what it actually meant. For me, workflow is the process between someone creating an asset (music piece or texture) and your game using it. You want to make that process as fast and agile as possible. You don’t want to manually add all your textures into a texture map. You don’t want to manually encode your WAV files into MP3s or OGGs. You don’t want to manually pack all the files required to publish the game.

Since a while back, I keep creating my texture maps using ImageMagick. I even wrote a post about it. I also use Bash in Windows to make some scripts for the encoding of the audio assets from WAV to its appropriate format (usually OGG). That allows me focusing on creating the assets, not preparing them for production. Ah! And the levels are created using GIMP. I can visualise the level while creating it. This helped me minimise the level errors (although the difficulty still sucks).

What went wrong?

The game suffers from some terrible diseases. The most important one I think it’s that I didn’t think of the audience, especially when I was playtesting. I was unaware of how a good player I was becoming, so I kept making levels that were a challenge to me. I was so worried about making levels too easy that I didn’t realise I was loosing my audience. I was making a game for me. That’s fine if that’s what you want, but it wasn’t what I wanted. I wanted people to enjoy the game. Instead I can almost certainly say that no one, besides me, has seen the end of the game (:<)

Next time I NEED time to polish level design.

Another thing that I did wrong was distractions. It’s not that I was doing other things apart from Ludum Dare, but I was spending time in the wrong tasks. I tried to learn how to use tile maps in FlashPunk and I ended up creating my own lite version of tile maps from scratch… Not recommended if you’re participating in a tight schedule competition. I also spent lots of time doing things that ended up in the trash bin. For example, those special brushes that were a pain to create and code.

Next time I NEED to focus on the game and avoid risky routes.

Levels are authored with GIMP

Levels are authored with GIMP

Finally, I think besides good intentions one needs skill to do something cool. I’m terrible at graphics and audio. I’m a poor artists. That’s something that I can improve practising. I can train doing graphic and audio challenges before the competition gets started. After all, you must train all you can before Ludum Dare!

Conclusions (tl;dr)

Things to keep doing:

  1. Sleep well! You need your brain at 100%.
  2. Prioritise and focus on the most important task. Keep track of things to do and update that list often.
  3. Optimise your workflow so everything is made automagickally.

Things to do next time:

  1. Think of your audience and drive your decisions based on them!
  2. Avoid risks focusing on your plan.
  3. Train all year your skills. You don’t want to spend time thinking how to make a 1px brush with Gimp.

As with all advices, take mine with caution. I don’t know the ultimate truth about competitions and I’m ALWAYS learning. I do hope that you enjoyed the reading and the game :-)

Bonus track: You can see my pain in this (time+face)lapse!

One More Bullet – Post Mortem

Posted by (twitter: @giargiagames)
Wednesday, December 18th, 2013 1:59 pm

Well, another Ludum Dare has ended! So it’s time to wrap things up a see how it went and share thoughts with all of you, ludum darers.

First of all this was my first time doing the Jam with a team and I have to say I had a lot more fun, even if we worked only few hours. The LD48 “compo” is awesome and maybe more rewarding (if you succeed) but in the end I think next time I will try again to form a team and participate in the Jam.

The team was formed by:

Jacopo – Design / Development
Umberto – Graphics
Marco(me) – Design / Audio

The game we created for the Jam is One More Bullet (Go.Play.Now.Read.Next).

One More Bullet - Main Screen

OMGlookatthosegraphics!!

In this game you take up the role of a bandit/cowboy during a duel vs another bandit/cowboy and, you have to shot your only one bullet by pressing the right keyboard button at the right time.

_0005_pistolero_0004_pistolero-shot_0003_pistolero-dead

(Ready.. Shoot.. Die..)

We worked on this on Sunday.

And Saturday?

Well.. we worked on this:

One More Bullet - old concept

Yeah.. walls and a ball

Erm.. well, in the beginning only me and Jacopo were participating and, since we don’t have any graphic skills (like none at all) we were thinking on something that we could work on without depending on great graphics. So we were focused on a physics based puzzle game (that wasn’t even working gameplay-wise). Luckily Umberto spawned Saturday evening so we were able to change the project and start from scratch with a more solid concept.

What we ended up with is this:

screen_2

You won’t last long Gary Maccarone…

So, to sum it up:

What went right

  • Even if we worked only a few hours the game is pretty solid and polished
  • We can extend it with not that much work
  • Lots of fun
  • Cowboy names are awesome (added them like in the last 5 minutes)
  • Dat whistle…

What went wrong

  • Started “real” work too late and with lots of dead moments
  • Even if the game is solid and polished and we can extend it, there isn’t much room for improvements (it’s a minigame and it will never grow wings)
  • No music :/
  • Dat whistle…

“What The Sock” – a post-mortem

Posted by (twitter: @Spierek)
Wednesday, December 18th, 2013 12:06 pm

Phew, another awesome Ludum Dare has ended, I slept for a bit, and means that I can finally catch my breath & write a few words about “what went right/wrong”. If you haven’t played my entry – What The Sock – yet, I strongly recommend doing that since I’ll be referring to certain parts of the game throughout the post (just click on the images, these are also a tutorial for the game):

This is Bob. He is missing a sock.Reach the Office and don't get caught!Hide behind signs to avoid stares!You can also hide by crouching!

 

 

What went right:

  • Working in a semi-familiar environment: this one’s a no brainer, but having ~8 months of prior experience with Unity and several years of practice in Photoshop helped me immensely. It was the first time I’ve played around with Unity2D though, so while I encountered some issues along the way (especially ones related to the 2D physics) I also learned some stuff – which is always good.
  • Unity editor: seriously, it makes a lot of tweaking around much easier.
  • Simple idea for the game: even though it took me some time before I got to the prototyping/tweaking stage, the concept was simple enough that I was able to deliver most of the planned content. I had to cut one mechanic and a bunch of assets, but the final result is satisfying, IMO.
  • The soundtrack took me 15 minutes to create and implement: I kid you not, Soundation Studio is really great for that. You can’t make A-class music with it, but it’s a good-enough tool for compos.
  • Unity animation curves were much better than expected: I used them for my intro/outro and a couple of other things

 

What went wrong:

  • Unity2D is not yet ready for primetime: while great folks at Unity have delivered a bunch of great 2D tools that make creating two-dimensional games waaaay easier than before, they’ve also failed to implement some of the more no-brainer features found in other software. For example, there’s no easy way of doing tiled graphics or infinitely stretching 2D backgrounds in Unity – the easiest way to do that is applying a Repeat Texture on a 3D Quad, but this comes with a bunch of other problems. Another thing is the aforementioned 2D physics implementation – it’s not easy to work with, and a couple of things (like OnTriggerExit2D, which would’ve saved my ass a couple of times) doesn’t work at all.
  • Too much time lost on fixing assets: alright, this is entirely my fault. I was semi-obsessed with delivering good animation (especially the walk cycle, which looks kinda crappy) and spent a lot of time on fixing that – when instead I could’ve created some new assets like different background buildings, or, I don’t know, hydrants to stand behind.
  • Too much time lost on coming up with a game idea: Ludum Dare started at 3AM (CET), I woke up at 7AM, but it was 2PM before I really started working on the game. I had a couple of ideas, but it took me a lot of time before I had an “Aha!” moment. I need to somehow make this process fasterin the upcoming LD’s :(
  • Unity Mecanim state machines are not so okay: seriously, it would be easier to switch animations from code if it wasn’t bugging me about having to change animation types to “Legacy”.

 

TL;DR:

  • simple jam game = (quite possibly) better jam game
  • don’t learn your tools during the compo! (although I did that with Greyspace and it turned out okay)
  • make sure to include music in your game!
  • gif-based tutorials are the best thing

 

Stuff to do before the next LD:

  • learning how to do better pixel art and animations
  • learning to “how do I music”
  • ???
  • finding peoples for a jam (maybe?)

Walkthrough LD48: “Stingtime for Hitler” – YouTube

Posted by
Wednesday, December 18th, 2013 9:53 am

Walkthrough LD48: “Stingtime for Hitler” – YouTube.

screen2Screenshot

 

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

This jam entry was probably the most complete project we made so far. We had a lot of fun coding this short puzzler over the weekend. If anyone is having trouble solving the levels – we have uploaded a quick walkthrough above. Note that there are multiple solutions to some of the levels.

 

yogo: Postmortem

Posted by (twitter: @khahem)
Wednesday, December 18th, 2013 7:49 am

 

I made a puzzle game where you have to kill every bots on the level with a single bullet while avoiding lasers and ending on the right side of the lasers to reach the goal. This is my third LD entry, all of them in Javascript, and I’m pretty happy with the result :)

 

The tools

  • Code: WebStorm
  • Art: Inkscape and in-game code
  • Sound: Bfxr

 

What went right

The code

Well, I did like everyone said you should and worked only with tools I know well, hence vanilla Javascript and a really really great IDE. No big surprise on the code side,  Javascript engines are impressively fast now, I only wrote simple brute force algorithms and the CPU is still sleeping most of the time. I use a quite specific coding style during LD games, I avoid OOP and completely separate code from data, and the data is in a huge global variable, it’s not standard and probably not a good idea for long term maintenance, but it helps live editing the level in the console without having to write a level editor and makes it easy to group draw calls and reduce state change when painting on the canvas (the ‘right’ solution would be a component oriented system, with sorting and batching before rendering, no time for that :p). The other important thing was to avoid having many entry points for modifying the game state, specifically for events from keyboard or mouse, I found it much less bug prone to write only the key/mouse state in a part of the game state, then handling the key at the right moment when ticking the game state, it also makes it easy to record/replay an input sequence deterministically (something I used to make the gif above, play normally while recording the keys then replay the game with a fixed rendering time step and save all canvas frames as png, which is way too slow to do while playing).

The art

I suck at pixel art (and art in general), so I mocked up a few thinks in Inkscape, the visual primitives of Inkscape and the canvas are the same so it’s pretty easy to translate each stuff into code, and once it’s in code, you can animate it without manually drawing many images. For instance, the wiggly electric pulses are just a big mix of sin and cos mashed together, and most drawing parameters are in the game state, it makes it easy to iterate and refine. The art is not awesome, but it’s clean and this style doesn’t take long to make, that’s good for LDs.

The sound

I suck even more at sound, but I had enough time to make them, they help understand what is happening and don’t make you ears bleed (my previous entry was really painful to hear…), job done. The next big step in my LD progress will be real music, it looks really hard to learn though (and very time consuming during LDs).

 

What went wrong

The canvas

It’s getting  faster each month, I can do much more than my previous LD without killing the CPU and hardware acceleration is getting better, but a few things are still slow, and when they are slow they are really slow. I wanted to have a blur behind my text boxes, but the roundtrip using getImageData/putImageData kills the framerate, it’s not even the javascript iteration on all pixels which is the worse, as I said before the performance of Javascript is amazing now (in recent, non-mobile, browsers of course), it’s exactly the same problem as in OpenGL if you want to get your rendering back to the main memory, everything have to block and wait. Maybe next time I’ll try WebGL, but then you lose the sweet vector drawing functions and many people can’t play your game. There’s probably some nice tricks to play with CSS blur and stacked canvases, next LD 😉

The level design

I only managed to make 7 non-tutorial levels, and most of them took me about an hour to design, puzzles are hard to build and  since I was pretty tired I was afraid of leaving a big easy solution in the middle of a supposedly hard level.

The sleep

I didn’t notice (and was stupid) and drank way too much coffee late in the night when I wanted to sleep a bit. I spent 5 hours in my bed, mentally exhausted, trying to sleep without success. The next “morning” was really unpleasant, stressful and I think it killed a bit of my efficiency, I could have done a better job with less coffee. The really weird part is that I still couldn’t sleep after submission hour…

 

Final notes

It’s a real pleasure to design, code, and present something in 48 hours. Finishing stuff is satisfying when you have so many unfinished projects lying in your hard drive. I know I still have to progress a lot, but I see my entries getting better and more complex each time, it’s worth the effort. People were really nice in the comments and on IRC and it’s really cool to find a community with so many motivated people, so many games and ideas to try. See you next LD :)

 

[Postmortem] The Story of Your Life

Posted by
Tuesday, December 17th, 2013 11:20 pm

Screen Shot 2013-12-15 at 下午8.36.51

The theme of Ludum Dare 28 is “You Only Get One”, the first word pump into my head is YOLO. I know its literal meaning, You Only Live Once. Well, that’s true, everyone only have one life, if not considering afterlife or something like that. So I made this text adventure game The Story of Your Life.

Ludum Dare Entry

How did I design it?

First I abstract human to five attributes

  • Mind
  • Body
  • Social Connections
  • Self-confidence
  • Property

In the game, all players’ choices can affect above attributes, and some choices only appear when player’s attributes satisfy the requirement. Mind and Body are random at born, Social Connections, Self-confidence and Property are connected with family.

There’re 4 types of families in this game : Rich, Middle-class, Poor, Abandoned. Character got more attributes at born in better family, but like real world, player can’t choose the family, which is decided by a spinning wheel. Not like the real world, the possibilities of each family is equal, so player can easily get different experience.

Property don’t exist in the childhood period, and there’re many differences among different families, for example

  • Rich family can buy luxury in childhood, and middle-class family only have this option in adulthood.
  • Better family get more choices, and get more attributes bonus. Poor families have more “Part-time Job” options and get nothing from it, but the same choice can benefit rich family kids a lot. The reason behind it is different goals, one for surviving and the other is for building themselves.
  • Abandoned kid has no social connections at born, for them, there’re only two choices “Gangs” and “Do Sports” can get such attributes, and I add more “Gangs” options to this type.

Before entering adulthood, game provides players 4 career candidates based on the attributes. Some good career like scientist need high self-confidence, which is poor kids lacking of.

Adulthood is more boring than childhood, it’s 3 times longer than childhood. Player receive paycheck every 10 turns. Many choices in this period need money, the choices player can’t afford are not in the list.

At the end of this virtual life, game generate a short description based on the attributes at born and death. One gifted kid may died as a gangster and a kid born with silver spoon may have nothing in the end. All of these are determined by 3 factors Family, Luck and Choices, this is what I want to express in this game.

The Bad Design Factors

Feedback

I should admit that this game is a little…boring, the whole process is just pushing different buttons. It would be much better to give players some text feedback after they made the choice, I cut off this feature because the limitation of my English writing skill.

In the real world, it’s difficult to quantify ourselves, so I made the decision that not exposing specific attribute numbers to players, which is a big mistake. I was making game, abstraction of real world. Without specific numbers feedback, players can’t get a clear picture of what they’re doing, it’s really frustrating.

Interactive

I cut off family and special event features for lacking of time and energy.

There’re only 4 options each turn, may confusing players. A better solution in my mind right now is listing all options with requirement, and only allow player choosing the qualified options, then players can choose what they want and know why some options can not be chosen.

Graphic

Graphic is more appealing than text, and bad text (ex. text in this game) can easily ruin the atmosphere and fun. Something like below can be visualized

  • Avatar
  • UI difference between childhood and adulthood
  • Iconify : careers, choices, etc.

After all, I’m very happy and getting lots of fun in this Ludum Dare. I believe I can make a better game next time.

P.S. There’s an eastern egg in this game. In the adulthood of middle-class family, one option is Make Indie Game, guess what would be happened after you choose it.

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

Posted by (twitter: @Hyde_WS)
Tuesday, December 17th, 2013 6:52 pm

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

Thrust Issues – A post mortem

Posted by (twitter: @Gravedrinker)
Tuesday, December 17th, 2013 2:47 pm
Click the title to check out the game!

Click the title to check out the game!

So I made it. My first game jam, and I actually managed to finish a game in 48 hours. I had some pitfalls along the way, but overall it went way smoother than I expected.

"Weeeeeeee!"

“Weeeeeeee!”

What went right:

  • An idea came rather rapidly
  • I had a pretty clear vision of what I wanted to make and how it should look like
  • I got a working prototype running in around half an hour
  • For it being the first time I had such a harsh deadline, there were hardly any time sinking problems
  • Managed to get the game played on a stream and get some feedback from nice folks
  • Actually ended up with a complete game, including story, intro, outro, credits and a good amount of levels
  • Implemented an extra feature that I thought was cool: Recording and saving of your best-times, speedrun-style!

What wasn’t so great:

  • I had no idea, nor time to make my own music. A friend made some, but I couldn’t include it. (It’s in the post-compo version though)
  • Was using headphones that were quieter than usual thus making the game extremely loud by accident which took a while to set right
  • Didn’t manage to include as many background details and polish the graphics up as much as I would have liked (LOVE details)
  • Also couldn’t do a big round of testing so the game ended up pretty hard according to feedback. I fixed that in the post-compo version by adding more levels in the beginning that are easy and let the difficulty ramp up slowly and providing an alternate control scheme

 

Focus and working against the clock

To get this done I really had to crunch it. Making the graphics in addition to balancing the physics and then adding the boring to do bits (menus, text intro/outro etc) took a lot of dedication.

work_brain

Fortunately I got motivated a lot by reminding myself that this is my first time doing a gamejam and finishing it means I will have a complete product that I can keep working on and improve upon. Another thing that motivated helped the motivation was…

 

Feedback and being able to show people what I made

This was also a major point in keeping me motivated. I never really saw strangers play one of my games, and the thought of that was exciting. I even managed to get the game played on two streams and seeing random people play the game, react to it and comment on it was an incredible experience.

I also met a lot of nice developers in the IRC and on the twitch streams and had a lot of fun talking about and sharing experiences.

ThrustIssuesScreenshot2

What happened after the compo

The first thing I did was fixing up the things in the game I would have liked to improve before the time ran out: Added more levels, made the start easier etc. I also included some more art assets for the background to make the levels a bit more interesting. The drawings are usually what I pay a lot of attention to so it was a bit frustrating having to constrain myself like that. I uploaded the post-comp version and got positive feedback on that as well. All in all it felt like a huge success.

I will definitely try and do another jam, it was very fun and rewarding, and I learned a lot. About work flow, techniques, and I think I might even have improved my programming skills.

 

I wish everyone the best of luck with their future endeavors and hope to see you again on Ludum Dare soon.

 

Synesthesia – Postmortem

Posted by (twitter: @fullmontis)
Tuesday, December 17th, 2013 1:51 pm

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 ->

youGOO! Gameplay

Posted by
Tuesday, December 17th, 2013 1:44 pm

‘sup guys!

Here’s a gameplay GIF from my jam entry…

5it5v

Obviously, i’m terrible at my own game :-)

See how much you can score at

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

Wrecked

Posted by (twitter: @pmlomb)
Tuesday, December 17th, 2013 12:42 pm

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:

Behind the Scenes: Last Chance Supermarket

Posted by
Tuesday, December 17th, 2013 11:07 am

Thought I’d share this little BTS vid I put together with you guys. I hope you find it somewhat interesting!

Play it HERE.

LD28 Post Mortem – 2nd Failed LD in a row.

Posted by (twitter: @1derpaul)
Tuesday, December 17th, 2013 7:13 am

Hello all,

tl;dr at the bottom

Brief Background: I REALLY wanted this to be the compo/jam that made me complete my first game.  In August, I attempted LD27 (10 Seconds) with very little success.  Very little preparation, bad timing, and the time I had during the jam I used it to learn SDL 2.0 along with dividing the C++ into classes/files instead of 1 giant file. I had gone through SDL 1.2 tutorials shortly before and all I made was an unfinished glorified pong game that had flaws with detecting collision when the ball was coming at a perfect 45 degree angle at the paddle and the paddle could never detect it (still not sure how it would accomplish this… maybe a “look ahead” of some sort?  I wish I spent more time from that jam until this like I had wanted, but I think I was let down among other things.  I have also been upset at myself for not getting back into gamedev sooner.

This past week prior to the jam, I knew I had to prepare and get back into it if I wanted any chance this LD.  I started a beginner RPG tutorial and learned some good things. Some of the Object Oriented stuff I tried on my own last August was the same but better so I thought that was cool.  I  hadn’t really done C++ since ~2007 in school.  I didn’t finish the tutorial until 7 hours after the compo started, which I was OK with but preferred to be done with it prior. First mistake.

Saturday comes, and I wanted to wake up around 10 or 11am (6-7 hours of sleep), but instead it was 2:30PM! I should have set an alarm.  Long work weeks with little sleep caught up to me like usual: Mistake #2. 18.5 hours had gone by since LD started and I’ve yet to start on the actual game. I had a few ideas when the theme started but I was focusing on finishing the tutorial/engine.  I started with my OK base code and started to add my own code into it.  I added a FPS cap of 60 and it fluctuated between 35-55, terrible.  Then I tried to add a cap of 30 and it was around 24-27.  I toyed with a few things and it wasn’t working well and I figured I didn’t want to make a hack&slash because almost 24 hours passed and it wouldn’t be enough time and b, I’ve mucked with the code enough I wanted to start from a clean base.

Hours 24-41: I backed up a little bit and due to time remaining and lack of knowledge, I just wanted to get a nice simplistic game and jotted down a design. I added to existing engine from RPG tutorial without worrying about framerate issues, deleted and backtracked the camera engine portion to get back to static with moving characters, drew some new assets and displayed them on the screen. I then fell asleep for 11 hours yet again! Sometime the night prior, and the time from hours 41-48 I was then able to draw my player, him on a paddle/platform, a bullet in his mouth where he shoots from, and an enemy on a paddle with a bullet on the opposite side. But collision detection was failing miserably and there goes the compo. I was also able to get my first main menu going so that the user has to press SPACEBAR to start the game. I was pretty stoked about that (little victories and firsts).

Due to collision issues and mess of engine and game code, I decided it was time to revert back to my original code from August of SDL 2.0 mixed with SDL 1.2 and retrofit/combine the good from that with the good from my current RPG engine turned into static background, basically starting from the ground up.  Took Monday off of work and worked on the game all day to try to get it working until about 750pm (jam ends at 8pm) where I got so close but barely ran out of time. I got some of it working including collision and could possibly finish it in a few hours without music or sound effects and I will definitely continue working on it until I complete it. I didn’t want to submit a game where a couple sprites just bounce around the screen.

 

Lessons learned and tl:dr

 

What went right:

  1. I prepared a little earlier than before which helped me actually work on the game during the compo
  2. Hours 0-2 of the compo, I actually went to the gym to do my brainstorming of the theme while working out, which helped me.
  3. Saved versions of the project during critical times.
  4. Taking a step back at the right time to regroup/replan and refocus.
  5. I did 1 status in the middle when I got my menu to work, what needed to be worked on next and potential add-ons, which helped prioritize.
  6. Clean workspace and good retro MIDI tunes playlist picked out prior to the jam helped.

Things to improve:

  1. Preperation. Although I prepared better than before, it wasn’t enough.  The 5 hours spent finishing learning at the beginning of the compo should have been spent working on the game.
  2. Also, axiom keyboard not working and should have gotten that resolved prior
  3. Work on pixel art prior.
  4. Do a warmup of a game with just squares even to make sure basic engine is working.
  5. Either learn Unity2D to not deal with engine aspects during the jam or have a solid engine done already.
  6. Manage sleep better the week leading into it, which would have earned another ~10 hours total of compo/jam time.
  7. Overall, complete some small games first to get out of the way and get a better feel of everything.
  8. If above is improved, I can actually get people to playtest the game prior to submission time to work on bugs.
  9. If above is improved, I can also have time to add next phases into the game (noted in my 1 status post) which would have been fun.
  10. If above is improved, more status posts.

 

This has been a pretty good learning experience, fairly better than the last compo and can’t wait for the next one.  I only get TWO failed Ludum Dare attempts and I foresee nothing but completed Ludum Dare attempts in the future.

 

My menu prior to starting from the ground up.

 

 

A long post-mortem for: My Champion (+ a few coding tricks)

Posted by (twitter: @jacklehamster)
Tuesday, December 17th, 2013 12:12 am
Whohooo, I’m done…

This time, I went for Jam. Didn’t get enough time, I even went a bit over the limit on the deadline, and didn’t even get all I wanted. Ok, but it was fun 😉

FIRST DAY (Fri-Sat): Thinking about the theme

The first 24h was spent just thinking about the theme. I actually thought about the theme during the slaughter, so I had some idea about what I wanted to do. I wanted to jump into programming, but I had to attend an open-house the whole day for an art school.

After it got announced, I developed my first idea immediately. It was going to be “You only get one bullet”, and you have a girl escaping a prison. She knocks a guard, grab his gun. Afterwards, the tutorial shows you how to shoot… then you see the title: “You only get one bullet” (I love to frustrate players ;-D). Of course, if you know about it, you can skip the tutorial and try to hold on to your bullet. I was going to make it possible to finish the whole game without ever using any bullet (basically you can use the gun to draw the gun, and you press another key to shoot). Then I just kinda paused for a minute. First, I kinda realize how much AI scripting and level design I would have to produce, and that scared me. Then I also thought more about the theme, and thought “You only get one bullet” is not that uncommon. Not that it’s bad, but I just thought, why not try something a little different. I also thought: “You ONLY get one” means you kinda wish you had more. More bullet would mean more killing I guess. Then I started thinking about this whole side-quest started by McFunkyPants: “Make a game with #NOKILL, no violence”. I didn’t even plan to participate in that, unless by chance my game didn’t have any violence. This time, I actually got swayed by it.

So back to the drawing board.
– You ONLY have something, so you wish you had more of it.
– It should be a situation where you’re supposed get MORE, but you can’t.

I then thought a bit about my warcraft games, where I would play the game with just one unit (hero unit). That’s kinda fun, but I still don’t get out of the #NOKILL thingy. However, it help me to think about the final idea. Instead of an army, you get one soldier… or instead of a team, you get one player!

Done! I always wanted to make a soccer game, now’s my one chance!…

SECOND DAY (Sat-Sun): Programming

Texture + Round Mask = Ball effect

Texture + Round Mask = Ball effect

Ok, I finally get in front of the computer. I start with a mockup for doing things in semi-3D, then scrap that out and go for 2D top view. First goal is to make the ball. Thankfully, I learned some tricks from making a pool game previously for rolling a ball (it’s basically rotating a texture on a round circle with a mask).

 

 

 

DIST < R1 + R2

DIST < R1 + R2

 

Next step was getting collision detection. That’s fine cause I’ve done this in several previous game. The idea is just to turn everything into a circle, then collision between two circles occurs when the distance between their center is less than the sum of the radius.

 

 

Next is the interaction between the player and the ball. The controls of the player and the ball had to feel good. I remember back in the day, there was 2 soccer games I tried on computer. One was FIFA, which was very popular at that time, but I didn’t like it much. Instead, I played this other game (I forgot the title). I just repeatedly have Rudy Voller run with the ball into the goal. I could definitely understand why it was not as popular. ( That game was way too easy.). I did enjoy the fact that the ball just sticks to the player until he/she gets tackled (which never happens with Voller cause you’re to fast!). Anyway, back to the game. I simply implement the equivalent to a magnet on the player, then have a repulsion magnet when we press [space]. As it turns out, if you just play the game pressing [space] continuously, it plays a bit like FIFA, which I actually prefer now.

Then I had to add players. I went back and forth between two ideas:
– Having fixed enemy players in the game, who try to hold position and approach the ball when it gets close.
– Having enemy players generated on the fly, coming in and out of the screen.
It turns out the second version makes no sense, but is more fun. So that’s what I chose.

The highlight of my sunday night was the real-world ludum dare meetup. I got to meet other jammers in person working on their game and presenting them. It adds a lot more to the game, when you hear someone talk about it, and see their face. It’s also nice to know others are Jam regulars, participating in other events like charity jam, 0h game jam, and putting their games on http://www.onegameamonth.com. It feels like you’re part of the community.

LAST DAY (Sun-Mon): Art, sounds, and headache

Until monday, I really got excited. I thought I would be able to achieve a lot, then I realize my head was getting a bit big, then I got a headache. I had to let go of so many nice idea, because I didn’t have time to squeeze them all within a Monday when I’m supposed to work. I did upgrade from the geometric shapes to actual sprites, so that was a plus. I also added ambient noise, but I’m not sure if this was a good idea. For some reason, I thought I would be able to have all the following before the jam deadline (which I had to let go):
– a referee!
– a complete intro showing the good coach (a bunny) getting harassed by the enemy coach (a horse), and the gorillas beating on the other cats
– a crowd, with hidden characters inside.
– replacement players (gorillas => rhinos => T-rex)
– an enemy goal-keeper

The last day was mostly disappointment, but now I realize I should have just kept it real. What I got at the end isn’t that bad for a weekend jam. I finally made my soccer game (achievement checked ✓), got to remind myself of Shaolin Soccer (a good chance to express how much Stephen Chow is an awesome actor), and got a kick out of writing a bunch of silly soccer player names.

I hope I get to improve this game, but I know the reality of things… I always end-up working on another new cool game instead, which is a good thing ;-D

You only get one player“You only get one player”

Clueless Postmortem

Posted by
Monday, December 16th, 2013 11:21 pm

I made Clueless this past weekend in my first Ludum Dare. A brief postmortem:

Things that went well:

Tooling

I ended up super happy with all of my tooling choices: libgdx, Box2D, and Tiled among others. Everything more or less work as expected and was easy enough to learn (though I spent too much time learning on the spot), and ending up with an HTML/JS deliverable was nice. I also had a blast working with Java in IntelliJ all weekend.

Friends

Getting together with coworkers to hack near each other made the weekend much more enjoyable. The mutual energy kept us all focused on our games, but ping-pong and board game breaks provided much needed relaxation after hours of heads-down coding. Having people to bounce ideas off of also proved helpful when I got in a rut. And most importantly, I’ll always chose a shared experience over one I have alone.

Shipping

I almost called it quits mid-Sunday, but I’m glad I followed through and ended up with something shippable. I feel like I’m in a really good place for future LDs.

Things that went less than well:

Nailing down the idea too late

I didn’t have a clear idea of what my game was going to be until ~5pm on Saturday, leaving me with not a ton of time to build and polish it.

Graphics

Artistic skills are not something I’ve spent much time developing. And it shows.

Movement

The guest’s movement is my least favorite thing about Clueless. It looks awkward, and it leads to games where there are no killings for at least a minute. The worst part is that I knew how to make it better, but I ran out of time. Maybe I’ll fix this after voting is over and release v1.1.

Box2D overkill

My final product ended up not really needing the sophisticated physics engine I spent time learning and building against. Some of the intermediate versions of the project leaned on it pretty heavily, but by the end I could’ve gotten away with simple AABB collision detection.

Guiding Lights – Jam entry

Posted by (twitter: @atomic_swerve)
Monday, December 16th, 2013 10:49 pm

Hey all, got you a new game to play right here:

Guiding Lights

We ended up blending several of the final themes together (some by accident) into this game. You only get one light to make it through a pitch-black puzzle filled with traps and false leads, with guidance from several friendly flames. If you’re afraid of the dark, this might not be the game for you; my wife played it for only a short while before having to walk away. If the dark merely makes you uncomfortable, you can still have a lot of fun!

I’m glad we did the Jam, as there were several IRL commitments this weekend that kept all of us from being able to put in our full time. Can’t argue with the results, though! Special thanks to OpenGameArt.org and their contributors for such awesome music and sound effects!

– @atomic_swerve (Piers)

 

[cache: storing page]