About pighead10 (twitter: @pighead10)


Making games and such.


Ludum Dare 36
Ludum Dare 33
Ludum Dare 30
Ludum Dare 29
Ludum Dare 28
Ludum Dare 27
Ludum Dare 26
Ludum Dare 25
October Challenge 2012
Ludum Dare 24
Ludum Dare 23
Ludum Dare 22

pighead10's Trophies

pighead10's Archive

The Pyramid: Multiplayer in a Ludum Dare

Posted by (twitter: @pighead10)
Monday, August 29th, 2016 9:52 pm

Link to game: http://ludumdare.com/compo/ludum-dare-36/?action=preview&uid=8539screenshot

Success! The unrated LD provoked me into creating a more ambitious game than usual, involving multiplayer, which usually isn’t even an option due to the lack of ratings these games will get.

The final submission is more like a proof of concept. The basic idea was this: there are multiple rooms with doors connecting them. Each player is their own instance of these rooms with individual randomly generated elements. Some doors will be locked, and to open them, certain players must stand in certain rooms. To get into certain rooms, there are chains of dependencies on players: for example, for player 1 to get to room 3 he might need 2 players to stand in room 2, and player 4 might need player 1 to get to room 3 to get into his next room, and so on.

This results in teamwork being necessary to complete the game – however, only one player can actually win, and players don’t know the location of each other unless they tell them over an external chat. Players can activate traps on each other to hinder their progress or kill them off, but they must be careful, as they may need certain players alive to reach the treasure room.

It sounded like a fun game of teamwork, bluffing, and betrayal, with some game theory thrown in there. It is, for the most part, implemented successfully, albeit with a smaller variety of traps and monsters than I would have liked. However, due to the difficulties of creating an algorithm that would procedural create games with the chain of ‘door dependencies’ working correctly and giving the right dynamic for the teamwork/betray gameplay I described, the game suffers from frequent poor level generation where players win too easily, become trapped, or generally don’t have to play the game as I’d intended. Still, it’s not far off, it’s still pretty fun, and given the time constraints for the LD, I’m pleased with what I’ve achieved.

Special thanks to two of my friends who stepped in on the last day (after I’d decided to enter the Jam rather than my usual Compo entry) to create homemade sound effects and sprites. A lot of features would have been scrapped had I spent time doing this myself.

I appreciate that, given the nature of a multiplayer game, it’s unlikely to get many plays from the regular LD audience, but it would be nice if it could get a few people trying it. Instructions for setting up the server are contained in the options menu in the client download. Please find me on the irc as pighead10 or on twitter @pighead10 if you’re thinking of trying the game, especially if you have any issues setting up the server!

I’m in!

Posted by (twitter: @pighead10)
Friday, August 21st, 2015 10:54 am

I’m especially excited for this Ludum Dare. Not only is it my 10th Ludum Dare, but it’s also the first one I’ve done in a year, since I had to miss the last two due to school work.

Language: C++
Library: SFML 2.2
Starting code: My personal, basic Ludum Dare framework, which includes resource management and game loops: https://github.com/pighead10/ld33
Graphics: Paint.NET
Sound: Bfxr and autotracker, probably!

And for once, almost all the themes look reasonably good. This unfortunately means that if a bad theme still manages to win, then the only recourse will be for me to personally cull at least 50% of the voters. Hopefully it doesn’t come to that, as I’m using windows 10, so you’ll be able to track me down by finding the relevant key strokes required to type this post on their database or something.

Good luck!

I’m in

Posted by (twitter: @pighead10)
Friday, August 22nd, 2014 12:39 pm

Entering in for my 9th Ludum Dare. As I would recommend to everybody, and similarly to my previous LDs I’m starting with a small code framework so that I don’t waste time figuring out how to make something render and loading resources. This is available for download here (although I’d recommend not to use it yourself!).

I’ll be using SFML 2.0, autotracker for music, paint.net for music, and the rarely heard sounds of bfxr.

Good luck and good night!

Why is there even theme voting for this LD?

Posted by (twitter: @pighead10)
Tuesday, August 19th, 2014 5:28 pm

Doctor Who

Time Travel +1

This LD will be scary

Posted by (twitter: @pighead10)
Friday, April 25th, 2014 2:52 pm

I’ll be entering this Ludum Dare with my standard tools of C++ with SFML and probably some auto generated music, and probably an absurdly difficult game as usual (protip: if you have run out of time to make levels, make three levels but make the third incredibly difficult so nobody bothers to complete it and realises that there are only three levels. Also insult them whenever they fail at it.). I really want to create a game without levels this time – some sort of infinite game, whatever that may come out as, and unless I get a really good idea, I’ll not make puzzle game again.

After the last Ludum Dare, I wrote a post about the best things to do to make your Ludum Dare games great. Unfortunately I won’t be able to follow my own lessons, having gotten involved in another project after starting creating a framework, so my nice-to-code-in game-design-pattern-obliging framework is unfinished. I was left a dilemma -copy paste my HORRIBLE last LD framework or start from scratch? – and chose the latter.

But now I have no collision detection to start with?! This will definitely give me nightmares.

Ludum Dare: 6 lessons to learn

Posted by (twitter: @pighead10)
Thursday, January 9th, 2014 1:19 pm

Instead of a typical postportem, my hindsightly wisdom will be portrayed with more generalised advice, in the hope that others can learn from this too. So, here are the cumulative lessons I have learnt from the past few Ludum Dares to push your overall ranking up (disclaimer: I have yet to test these):

#1 Get yourself or make yourself a library or framework that gives you basic, smooth mechanics of a game.

  • Chances are, if you try and implement your own physics and collision detection inside the 48 hours, you’ll a) waste valuable gameplay-crafting time and b) end up with something that has more bugs than it should.
  • ‘Smooth’ is in italics here because it’s imperative that your basic mechanics are solid, or the game will just feel awkward to play, and hence less fun, no matter how good your idea was.
  • It’s also worth including things that you know you’ll need such as resource loaders, audio players, or (if you’re higher tech than me) an animation player.
  • #2 Make your graphics feel polished, even if they aren’t.

  • For the artists out there, this isn’t usually an issue, but if you’re like me and can’t art for cheese, then you need to add juice.
  • Tweening, basic hit animations, and screen shakes give your game a fantastic aesthetic, even if your sprites are just pixels.
  • Add these functions into your framework (see #1), or find a publicly available library to hook up with, before the Ludum Dare. This saves time and gives you chance to practice (something that gets its own heading).
  • #3 Cool features are often easy to implement.

  • Lighting is cool.
  • Particles are cool.
  • Animations are cool.
  • Screen flashes and shakes are cool.
  • This overlaps with #2, but I couldn’t fit it all in and it really is worth accentuating.
  • And everything here requires minimal code and can be easily fitted into your framework or found in a public engine.
  • #4 Keep your game as intuitive as possible.

  • Intuitiveness is always important, but it just can’t be stressed enough in Ludum Dare, where the majority of your players will be eager to jump into the game as quickly as possible to improve their coolness.
  • This means that everybody that has played Mario can open up your game and work out how to play with a couple of lines of instructions.
  • This can be tricky for puzzle games, but the key is to keep the objective of the puzzle clear, and let people figure out the other mechanics for themselves (of course, keep an instructions page for reference if people get stuck).
  • A personal example: my favourite Ludum Dare entry of mine was my You Are The Villain entry, where the objective of the puzzle was to help the player complete his objective while pretending to work for the villain by ‘accidentally’ forcing the player to do the actions required for him to win in such a way that doesn’t arouse suspicion with the supreme overlord.
  • In comparison, my Ludum Dare 28 game’s objective was to “kill all the enemies in one shot”. Their relative intuitiveness is reflected in the comments (and probably a large part of their overall scores).
  • Finally, walls of text for instructions? Don’t.
  • #5 AUDIO!!

  • First audio lesson: choose your sound effects carefully. If you’re using sf/bfxr, spam the generate key until you have a sound that is, by auto generation standards, perfect for its use. If your gun firing sound is irritating after five shots then nobody is going to play your game for long and enjoy it.
  • It’s possible for your sound effects – even if they are from sfxr – to help with the intuitiveness of your game. Your sound effects should imply what the action achieves.
  • Second audio lesson: music really adds to the mood. Even if you aren’t going for a moody game, exciting music will make players feel excited. Sounds obvious, but a lot of people overlook its importance.
  • If you can’t create decent sounding music yourself, try using GreaseMonkey’s autotracker. It creates music of an impressively high quality for auto generated standards.
  • #6 Get some practice with your development tools and framework.

  • If you’ve gone and created a framework with tweening and animation handling after reading the first 4 lessons, then you need to practice before the next Ludum Dare.
  • “Practising” is not synonymous to “testing”. It’s great that your framework can handle a wall and a zombie, but you need to get used to your tools so you can create the best game you can during those 48 hours, and that means speed.
  • Enter mini ludum dares and the warmup weekend. Use every feature of your engine and create a bullet hell shooter with as many screen shakes as your eyes can handle.
  • This will also have the added benefit of revealing any subtle bugs which could surprise you at 3am during the compo.
  • So, now I’ve preached, I can start following these myself as well. I hope this is helpful to more than none of you. See you next Ludum Dare!

    I’m in

    Posted by (twitter: @pighead10)
    Friday, December 13th, 2013 11:37 am

    I’ll be here for my 7th Ludum Dare. I’ll be using my terrible minimalistic-ish framework (multiple ludum dare game code does not an efficient framework make?) with C++ and SFML 2.0.

    What is the fourth dimension?

    Posted by (twitter: @pighead10)
    Tuesday, December 10th, 2013 11:48 am




    Beginnings of an idea

    Posted by (twitter: @pighead10)
    Saturday, August 24th, 2013 4:17 am

    10 seconds is more of a restriction than a theme. It sucks, mainly because I guarantee most of the games will be any existing game concept with a timer added in. But, as someone in a previous blog post said, “there are no bad themes, only bad brains”, so I have finally come up with a good idea. This post is as much for my benefit as anybody else’s so I can fully flesh out this idea.

    -You are a dungeon-master type player, who controls the enemies’ spawning locations and various positions of other obstacles or powerups on the map.
    -An AI will attempt to complete an obstacle/dungeon area by walking in a straight line to the exit at a certain movement speed rate.
    -You need to place the enemies/obstacles/powerups in such a way that the AI will take exactly 10 seconds to reach the exit.
    -For example, you could place objects in such a way that the AI takes 4 seconds to walk 2 tiles, hits a wall for 2 seconds, stops to kill an enemy for 2 seconds, then walk onto a powerup which boosts movement speed so he walks the remaining 4 tiles in the remaining 2 seconds.

    It seems like it could be a bit ambitious, but I’m hoping that I can get the code done today so I can focus on level design and the impossible task of making graphics.

    I’m in

    Posted by (twitter: @pighead10)
    Thursday, August 22nd, 2013 10:06 am

    I’m in for my 6th Ludum Dare. I’ll be using C++ with the SFML media library, starting with the same framework that I used for my previous ludum dares. It’s bad, and when I made it I had no clue how to use C++, but it works. I think. I haven’t actually tested it yet.

    I’ve worked out how to use Debian, so I should be able to get a linux port at some point. Also fixed a bug which meant all music was loaded into memory at the start which produced 30 second loading times as well as it being completely unable to run on bad computers.

    Sound: bfxr
    Music: GreaseMonkey’s autotracker
    Graphics: paint.net

    If you want to be part of a controversial and heated discussion, head over to #ludumdare on afterNET and announce that you like the 10 second theme.

    You Are The Minimalist

    Posted by (twitter: @pighead10)
    Saturday, April 27th, 2013 4:13 pm

    At the end of today’s work, I have a semi functioning level:

    And a system which converts the tiles you have placed while working into shapes:

    The aim of the game is to solve the puzzle while creating as few shapes as possible. (you leave a ‘trail’ wherever you walk, wherever you shoot, wherever enemies walk and explode, and so on. The trail is converted into shapes.) If you have created too many shapes, you do not solve the puzzle.

    The bulk of today’s work went on the shape generation system. Tomorrow will be the content creation and polish – I need lots more levels (hard coded of course!), and for everything to look nicer, as well as sounds.

    You don’t need minimalist mechanics for a minimalist game

    Posted by (twitter: @pighead10)
    Saturday, April 27th, 2013 3:03 am

    I kept repeating that to myself for a long time. My game-making morals are to keep innovation and originality as the most important things, and I would never just incorporate a LD theme into the story or art style of a game, but rather have interesting and unique game mechanics. I found that very difficult to do with Minimalism – but the sentence in the title of this post gave me an idea.

    You don’t need minimalist mechanics, but your mechanics can be to be minimal?

    Don’t use this framework

    Posted by (twitter: @pighead10)
    Friday, April 26th, 2013 1:44 pm

    I’ll be entering this LD using my new, updated framework: https://dl.dropboxusercontent.com/u/53835113/new%20framework.zip

    It’s been put together from my old LD and my game project, and is completely untested, so don’t use it for anything. Also, don’t look at its source, because it’s bad code >.>

    Tools I will use:
    Visual Studio 2010
    SFML 2.0

    Autotracker! (thanks GreaseMonkey)

    Paint.NET (pixelling like a programmer)

    Problem with the voting

    Posted by (twitter: @pighead10)
    Wednesday, January 9th, 2013 8:05 am

    Last LD, I complained about people not knowing they had to receive a certain amount of votes to be put in the rankings. Happily, this has been fixed for this LD, but tehre is another issue: “save” after typing a comment, even with no rating, leaves a blank rating.

    This is a big problem for linux-only games, where people who are unaware (like I was at the time) type “no linux, sorry” into the comment box at the top of the page and save it, without realising they are leaving a rating. Not only does this give the user an exaggerated coolness but it also stops the game from showing up as much, meaning the linux owners will probably never see the linux games and as a result the linux-only games are not being placed in the rankings.

    Solution: if a user doesn’t leave any star ratings, don’t count it as a vote.

    Some interesting stats

    Posted by (twitter: @pighead10)
    Sunday, December 16th, 2012 8:03 pm

    Post mortem: went well, didn’t make enough levels, could have made it easier to understand.

    Now that’s out of the way, here are some interesting statistics!

    I typed 106,134 keys
    I clicked 19830 times
    My mouse travelled 1.16 miles
    Exercise is bad for you



    Some art done!

    Posted by (twitter: @pighead10)
    Sunday, December 16th, 2012 6:58 am

    All the art for the first level, minus UI, is complete.


    [cache: storing page]