Join us on Twitter and IRC (#ludumdare on Afternet.org) for the Theme Announcement!

Thanks everyone for coming out! For the next 3 weeks, we’ll be Playing and Rating the games you created.You NEED ratings to get a score at the end. Play and Rate games to help others find your game.We’ll be announcing Ludum Dare 36’s August date alongside the results.

New Server: Welcome to the New (less expensive) Server! Find any problems? Report them here.

Posts Tagged ‘preparation’

LD is an opportunity to grow!

I always try to view LD as an opportunity to learn something new.

In preparation of LD this time I’ve spent some time last week doing a bunch of pre-LD experiments to learn about new things that I’ve never done before, to be prepared in case I end up using any of them, and don’t have to spend too much time wrapping my head around a new concept when LD actually starts and time matters!

Seems like a good practice, and therefore I recommend it! Spread your wings. Fly!

I’ve been focusing on exploring new programming concepts this time ’round, but surely this is also a useful practice to apply to graphics and audio and so on.

Also did this a little while ago, tho more in preparation for a job application than LD:

6. 3D character camera test

Yep.

In general I need to work more on 3D, and I’ve started taking an interest in procedural generation, something I’ve barely ever touched at all until I made this BSP dungeon test today (changed it a bit to make more of a house with doors directly through walls instead of the dungeon rooms connected by corridors as described on the info pages I linked, tho).

You still have a few days left, so I warmly recommend playing around with things you want to know how to do but don’t know how just yet. Maybe you’ll get a chance to use it for your LD game!

Also read and search the web a lot — you’ll find out about possibilities you’d never imagined before~

Super sneak peek

(One hour for making a game is definitely not enough at all for a polished result. However, I believe this is good practice for rapid prototyping / any kind of gamedev jams with very limited time. It helps identify problems with your framework, workflow, the tools you’re using, your time estimation, et cetera. So I gave it a go, hopefully this could turn into a fairly regular exercise.)

Three.JS isn’t a game engine. It’s great for very easy 3d in browsers, but… sheesh… you kinda have to do everything else from scratch.

To get ready for this Ludum Dare I want to already have the ability to import geometry from Blender and then actually interact with that geometry. Three.JS doesn’t have any collision detection stuff built in so… a bit of work is required.

So I found a cool javascript SAT library and a nice Spatial Hash grid implementation then wrote some code to convert the imported geometry into SAT convex polygons and generate bounding boxes for the grid. I threw it all into my stub game library thing and I got:

It kinda feels like cheating though, doing work like this before the competition itself. If I used Unity I’d get this sort of thing for free though.. so it’s okay, right? Right? *guilt*

Another 5 hours of livestreaming coding later I have the foundations for the LD project. Everything that was setup in my last post seems to be working fine and the pipeline works just fine.

What I did today:

Bring the whole render loop from my old project, along with bits and pieces of the Entity Component System (ECS).

Fix some camera and projection problems that made android and PC behave differently.

Add the ECS system for sprite rendering and HUD. Add debug text for ECS and FPS.

Create my first component for those systems.

Spent an embarrassingly long amount of time trying to be able to capture user clicks on screen to select said sprite. BROTIP: libgdx has inverted Y axis by default, and do not forget to camera.unproject the coordinates the touch listener spits you.

Made a movement system for a control scheme similar to those in RTS games, but haven’t been successful so far. A small state machine in the input handler doubles as game logic, but my ECS systems are not capturing component changes at the expected pace.

Thank you to the couple of subscribers I gained today, I only wish this gets a bit more interactive because it feels like I’m talking to myself most of the time when I’m trying to explain what’s happening on screen.

Yesterday I started setting up my streaming tools. My last contact with Twitch as a provider was right after launch, so it’s nice to see tools like OBS making everyone’s life easier. I had a second screen in the room that’s been unused for months so I went and bought an HDMI cable to get a double monitor environment for better coding.

So without further ado, I started streaming my initial project setup. My objective for today was getting from a fresh Android Studio install to having something on a screen and I must say it’s been a bit of a struggle but finally successful.

After some intense tinkering with Gradle and Android Studio I’ve been able to kickstart a prep project in Github that includes libgdx and artemis-odb running for windows and android on a click’s distance. I’ve also setup my fave color scheme (a heavily tweaked Vibrant Ink), a code formatter leveraging Android’s best practices, and an array of key bindings for faster development.

The guys in the stream were curious about my first external dependency, Project Lombok. PL is a nice library sitting in your compiler’s annotator that saves you hours of writing boilerplate code for POJOs. Using it is “free”, given that is not a dependency to include in your app, just an annotation tool.

I consider that it was a success. My goal was to create a game with a start and an end and Unminor meets the exigence. For my previous participations, I used to program in Python with Pygame. It was painfull to develop with it, I really love Python and use it almost everyday at work but there is so many missing common features you have to code yourself with Pygame … I think it’s too low level for Ludums. Oh, and the deployment part is horrible. I still don’t know how to generate a windows executable that just work.

For LD29, I tried Haxe with HaxeFlixel framework. It was a pure pleasure to use. There is all builtin functions needed to quickly develop a game (loading a map, handle velocity for objects, …). My favorite part was the sunday night : in five minutes I had working builds for windows, linux and flash. I will definitively use it again for LD30.

The main issue I remember was to load a map from tiled. I misused the functions to load a map so it took me a too long time to have a functionnal stuff.My map class is more than 100 lines long, and the biggest majority of those will probably be the same in every projects.

So this week end I will write a Map class to speed up the development time for handeling a map from Tiled. It was very helpful to have a powerful external map editor.

In the feedbacks, there was multiple complains about the lack of wasd controls. In fact, me neither, I don’t like directional keys. But I’m french and here, we use zqsd. Usually, games allow users to remap their keys, but who want to map their keys for a 5 minutes flash game ? Some games ask the user if they use zqsd or wasd controls but I did’nt had time for that. After thinking about it, there is no conflict having wasd and zqsd working in the same time (and directional keys for people who wants). Also, the support of a gamepad like a 360 controller could be a cool feature. So for the LD30, I will map wasd, zqsd and directional keys. This week end, I will develop an input handler to speed up that part of the development. It will be great if I can support console controllers and virtual gamepad (for mobile) with that.

By looking in my source code, I see that I should create a generic Menu class to spend less time on it for LD30. I remember I spend maybe one hour on it, and it’s just a waste of time to display a title, create an animation and 3 buttons. So, one thing more to do this week end.

There is two sounds in the game : beep and bip. I used bfrx. This is an amazing tool, but I don’t know how to use it except by randomly change all parameters until I hear something correct. I should practice … For LD30 I don’t know if I will use Bfxr or Jfxr, those tools seems similar, I don’t know if there are big differences.

My game don’t have any music. It’s a bad thing. I tested many games of ludumdare and … A game without any sound is just awfull. Any game that plays 3 notes in a loop enhance greatly the game experience. So if I can I will use Lmms for composing a little music. Unfortunately, I have no music knowledge. I think that one day, I will buy Rocksmith to learn to play guitar so I will be able to learn music composition. Until that moment, I will try to do a partition with good looking patterns and pray that it generate a good melody.

For graphics, I used Gimp. I was happy with what I’ve done even if it was ugly. I will use Krita for LD30 and I should customize the work panel to fits my needs.

In term of organization, first I managed to find a project I was sure I was able to achieve in a week end. It’s what was wrong for me during the last editions. Secondly, before the tasks I started, I choose how much time I will spend. If this time is over, I stop working on it and try to do something functional with what have been done even if I didn’t finish. This is because during the LD28, I spent one complete afternoon trying to do with rotations of the canons on my boats (yes, I sucks in trigonometry). This was a big waste of time, I should have found a workaround even if it lower the quality of the game (a bad game is better than no game for a compo, no ?). The big problem in this situation is that you think something like “oh, no, I spend two hours on it, it would be stupid to abandon after so many time, maybe I will found the solution quickly now !”. So now, I try to avoid that with my timeout for every task I do. Oh, and another good thing about this method : when you work on polishing, it’s hard to know if you have to stop or continue and work on another thing. With the timeout method, no need to ask, you try to be better until the clock says to stop (except of course if you are proud of what you did and don’t see how to do better).

During LD29, I was working at school with some friends, maybe we spent too many times for our meals, but if it can maintain the moral up, it’s a good thing.

Maybe my postmortem was too late, but as we say here, it’s better later than never.

Tools: Script for timelapsing, Gimp and Inkscape, Autotuner, bfxr, and a bunch of online music generators — Check!

Everything is mostly checked out. It is a cold morning in Ibaraki, Japan, and I’m ready and pumped to go. Doing laundry and other home chores while waiting. I can’t get the QiX idea out of my head – I really loved that game. It feels a bit like cheating for me, but I can’t prevent myself thinking about how to implement all the necessary geometry and mathematics for that kind of game (mostly, how to generate a group of rectangles from an arbitrary number of points, and how to merge and split line segments).

I guess I will go with the QiX idea anyway, and twist it accordingly depending on the theme.

My plan, if everything goes all right:

Saturday: Get the basic game running (making rectangles, detecting end of stage, enemies, twist).

Most of my GM projects tend to have some similar things in them. In order to get something more out of my LD experience, I don’t want to continually re-write the same sort of code from scratch with each project.

Compo rules say that you can use “all publicly available libraries and middleware”, so I’m considering bundling up some useful things and creating a “stub project”, that will be like the equivalent of library/middleware in GameMaker-speak, so that I don’t waste precious minutes during the compo writing the same sort of code I always write in any GameMaker game, and can put as much of my 48hrs into creativity and design. Conveniently, this will also serve as my Warmup project this time around. Now, granted, I can only get some much done in the next couple days leading up to LD25, but over time if I continue to maintain this project it could turn into something pretty cool.

I’ll probably maintain this and add to it for future LD48 (and other game jams). So my first question is: What to throw into this thing?

Some thoughts:

A system of rooms that provides a generic Title Screen, Instructions Screen, and Game World, along with navigational objects and such that switch between them.

Scripts for handling keyboard input (or other controls, such as mouse or gamepad or whatever).

Handy math functions that aren’t built into GameMaker already (such as ???)

A hierarchy of pseudo-abstract classes to facilitate implementation of common design patterns for Player, Enemy, Terrain, and Pickup objects. For example, a common way of implementing a Player is to have a parent Player object, and separate objects for the Player_dead, Player_hurt, and other states. These would be empty, or mostly-empty, to facilitate development of *whatever* type of game you wanted to make with GameMaker, but would help by providing a little bit of structure to the project.

Code that supports cool visual effects (as I come up with them, over time), such as motion blur, typewriter text, or who knows what.

Yesterday I went to bed before the theme was announced (2 am here in Helsinki) and this morning I woke up just to read the theme and dream on about it. I don’t really like it though. I’m late on the schedule.

Graphics

PhotoFiltre 6 – Take it as a worthy paint upgrade. This editing software got your basic tools plus some nice features if you don’t own a PhotoShop license or have no patience to go through GIMP.PhotoFiltre 7 – Adds layer support.GIMP – Saw that coming? Pretty much a free PS equivalent.Paint.NET -It’s Paint but .NET and that means better.Inkscape – Vector graphics editor.Blender – Ludum Dare isn’t all about 2D art so get this 3D editor to work.

Level Editor

DAME Editor – Though it’s intended for flash games you can use this 2D level editor for pretty much every programming language as long as you are able to use two for-loops.QuArK – QuArK is a map editor for games of the Quake Engine. You may ask why the hell Quake? Because most open source engines do support the map format of the Quake Engine or there is at least a plugin for it. It’s just famous and old school and awesome.

Engines

Irrlicht Engine – 3D engine running with C++.OGRE – Ogre 3D engine supports C++, Python, .NET and Java. It is so open source!Flixel – For the flash addicts.FlashPunk – For the flash addicts.jMonkeEngine 3.0 – Some Java 3D stuff.RPG JS – For those familiar with the RPG Maker this one is a HTML5 version.OpenGL – Choose your favorite language and go!Allegro – “Cross-platform, open source, game programming library” for C and C++ (by Folis)Simple DirectMedia Layer (SDL) – “Cross-platform multimedia library” written in C but can also be used with several other languages. (by Folis)SFML – Yet another multimedia library for those C++ geeks (by Folis)

Code Editor

Notepad++ – This text editor supports most programming languages and their syntax. Pretty good for a beginner that is confused by IDE’s.Eclipse – Java/C++ IDE.FlashDevelop – Flash/ActionScript IDE.Codeblocks – C++ IDE.MonoDevelop – C#, ASP.NET, etc. IDE.VisualStudio – You could also use free Microsoft software< if you got a Windows computer.

Resources

Check the rules whether you are allowed to use the stuff from below!
48h Compo:

“Photos and recordings you make of people or things are acceptable content, just you must acquire them during the competition.”

“Fonts, drum loops, drum samples, and sampled instruments are allowed IF you have the legal right to use them.”

I have a good feeling about this LD. I missed the last one so I’m going to make up for it this time with extra awesomeness. It’s a 4-day weekend here in the UK, thanks to some guy getting married or something, so I’ll have extra time to get my environment, tools and libraries ready beforehand, maybe get some food in the fridge in preparation, etc. And on the Monday I’ll be able to do that jam thing that all the cool kids are doing these days. It’ll be fun to see how far the momentum takes me, post-deadline.

Alright. LD19 will be my second Ludum Dare, and I’m going to be applying the lessons I learnt in LD18 to win this time. Or at least finish my game :).

I will be using a self written pre-existing code base so that I can spend some time actually making a game instead of spending most of the time making an engine. I’ve also preinstalled a collection of fine free FOSS audio editing and creation software, booked the time window (I’m in Australia and the hours are a little inconvenient, but WhatCanYouDo) and even made a half hearted attempt at trying to get some other potential candidates interested in entering LD19 themselves.

Now i just have to wait and hope that Double Zombie Rainbow is not the chosen theme

I’ve been trying to familiarize myself with Flixel in preparation for the Big Compo next weekend. Really psyched about it!

I wanted to focus on atmosphere, and this included music. Hopefully, I won’t be scrambling to figure out how to do basic things this time around (as opposed to last time). The goal is to spend time on content, playability, and completion, instead of “getting a game working”.

Along with Flixel, I will probably be using my HSB color utility class (adapted from somewhere on the internet).

You can play my warm-up game-like thing, “Distant Chimneys”, on my blog: