Local Minimum

LD27

Run with the Revolution: Day 1

Today I managed to get the core game objects to talk to one and other, and I made the first version of 8 playable 10 second levels. So I’d say I’m in good shape. Both Unity and Blender are behaving nicely, though Unity sometimes claims that I take Power Ups I’m not even close to. About halfway through the evening, I started to actually understand how one rotates around in Blender — a great leap forward!

Here’s how it looks at the moment:

ludum27_progress_day_1

You have one of the Power Up:s in the foreground (that make you run faster for a while), and looking bright further ahead is the Safe Zone of Level 1. Going up vertically you see Level 2.

So the way it works, after 10 seconds the world turns 90 degrees, and if you are not on the white pad, then you are dead.

I’ve got 8 levels sketched out so far in a playable version, if anyone cares to try and give me some feedback:

Day 1 version (Windows version only only)

It’s the normal WASD + mouse + space type of controls.

Now it’s time to get into sounds, the game really needs sounds.

Pew, it has been one long day of learning Unity and Blender.

The Revolution is Done!

Thanks for this round of little sleep and bad food habits.
The fast game about escaping out of a revolving world. I’m the only one on the score board, so come rob me of the high score!

Try out ‘Run with the Revolution‘:

Run with the revolution

Run with the revolution – tipsy post-mortem

I feel like I’m re-iterating myself, but I’m a bit surprised for someone having a hard time ever finishing any programming task, that this adventure actually progressed in a very timely manner.

What felt right

  • The quite simple idea of a FPS with a revolving world made for quite easy game development when the revolution was finally working. Not having to deal with a character sure saved me some hours.
  • Using Unity + Blender definately helped in focusing on the game proper and not writing code in i Phython from almost scratch as I’m used to. In fact there was never anything truely stressful about the whole thing, I had something I could have submitted early Saturday afternoon.

What didn’t feel so good.

  • I should have taken the time to learn the built in character controller module importable in Unity, the controls are definitely lacking some.
  • It was a bit of a learning curve in Blender, and it would have made for a more enjoyable game if there had been a more deliberate world with levels that were not only built from static right angled blocks.
  • My initial idea was that the power ups would have side effects such as vertigo and a pack of dolphins obscuring the visual field. That would have made the game about 112% more cool, but I opted for having a menu system and high score board instead. Next time I’ll go for the dolphins, I promise.

In all it was an extremely rewarding experience, and many lessons learned. Can’t wait until next dare. I’m going to be so much prepared, I’m going to be familiar with the tools, and it is going to be so much fun!

Give it a try, my game,

Procedural Maps

In my personal slow-Jam I’m working on I decided to leave everything to Random and a few parameters.

Still there’s the need for levels, and the very basic requirements that everything should be connected, walled in and have a nice balance between narrow passages and open spaces.

There’s probably well known and better ways to do this, but any case, since I think the end result was more or less exactly what I wanted, I’m gonna outline how I did.

  1. Define an allowed geometry by normal sampling a width and height of the map (in tiles). I used a 2D boolean array as representation when doing the calculations
  2. Randomly seed some few (<1%, but more than ~7) positions so that each has a safety margin to the border of the array
  3. Iteratively connect dots by randomly selecting one not connected to the others and walk towards the closest other true position following Manhattan distance = 1 setting all passed positions to true.
  4. Repeatedly randomly select any edge pixel and randomly select one of its 4-neighbours that are unused and expand there.
  5. When sufficient number of tiles have been placed. For all edge tiles, place a wall in all unused positions with a chessboard distance of one

This is the result of three maps generated after one and other:
Cube Sphere Pyramid Lvl example 1

Cube Sphere Pyramid example lvl 2

Cube Sphere Pyramid example lvl 2

I only need quite small levels as each is only meant to last for maximum of 60s and the game is absolutely way too confusing to allow for larger levels, but in principle it would only require some parameter tweaking to get them too look quite differently.

I also like how one sort of can see where the seeds must have been placed.

Of course if anyone is interested in the code just let me know (it’s C# for Unity, and it’s not super-efficient by any means but since it’s only run at level start I figured it doesn’t matter too much).

Tags: C++, level design, procedural, procedural maps, unity

LD28

My little tip for everyone new (and experienced).

I’m no senior to these Dares, but I did participate last time and spent quite some time voting on around 80 games.

Why talk about the voting when we haven’t even started?

There are a few things you can do and think about from day one (and many of these have been posted before but I think they deserve repeating).
This is not a complete list, and they are my opinions after last round of reviewing games.

I would say that besides simply completing on time, the most important thing is to make your game inviting to play.

The first step in that is to remove all unnecessary hindrances for people.

  1. Make a web/html port and call it just that, because several people will search among the games using such words. This is because after a while it becomes too much hassle to even unpack things
  2. If you can’t make a web-solution make your distribution self-contained. Don’t require anyone downloading dependencies or compiling. It should be a simple extracting and clicking on the executable. Here there are several more things to think about:
    • If possible, don’t have the game install itself into the system. Have it run out of its folder (I don’t want to have to spend time cleaning up after having installed 30 games).
    • When compressing your game for distribution, package the folder it lies in. I would expect more like me will unpack all LD28 games into one common folder and it’s much nicer if I can simply click extract into that folder. On that theme, give your folder a unique name. So don’t call it ‘LD28′ or ‘Corruption’ (if that theme wins). But call it something like ‘LD28 [Your game name]’ or ‘LD28 [Your username at LD]’ (if you don’t know what you will call your game). Name the folder correctly from day 1! Chances are you will too busy thinking about other things when you get ready to submit.
    • Make sure it is obvious what file to click on to start the game
  3. Make it obvious how to start playing your game when it is running. Don’t assume people will hammer around on the keyboard trying to debug how to move to the right. Also if you use explicit bindings, you should map to qwerty-keyboard but avoid mappings that exclude those with e.g. French and German keyboards (or give option to player to map keys).
  4. You will probably have debugged the start many times, and you probably know exactly how to play your game. We don’t. So don’t make the game too hard from the very first second

Then, of course, you will need to have interesting screen-shots and a thrilling text that makes people want to test your game. But when that is done, the above could sum up to the following:

You will have very short time in convincing players to spend some extra time playing your game so that you get some good feedback on what you’ve created. You should therefore do everything possible to at least make sure you do not alienate the players before they have even started playing.

Sprite Code for Unity and Desktop Photo

Unity 2D Sprite Animation

I spent the warmup weekend cursing the collision detection in the new 2D mode in Unity for several hours until I realized that there was a new OnCollisionEnter2D. Makes sense, but lesson learned: know your tool before starting. I would have been so frustrated if those hours had been tomorrow afternoon, that I don’t know what would have happened.

After that debacle, I made a Unity2D Sprite Animation Script that I think turned out pretty nice and easy to use. Probably there are better and more efficient out there, but since we’ll probably use it, it needs to be available. So here you go. If you want to use it, consider it public domain.

Short instructions: Use Unity’s sprite editor to break up sprite sheet(s) into sprites. Then add one SpriteAnimator per type of animation you want on your game object (e.g. ‘walk left’, ‘walk right’).
Add one SpriteAnimationSelector to the game object with the SpriteAnimator(s). The CharacterController is not a full controller by any means, but it shows how to interface with the SpriteAnimationSelector.

Finally, this is where we’ll code, more computers are coming:
The living room game making table of the turmeric jam jar.

The living room game making table of the turmeric jam jar.

And here’s where we’ll try our luck with using stop-motion in making the game:
The animation corner of the turmeric jam jar.

The animation corner of the turmeric jam jar.


All from our living room.

Tags: #NoCat, desktop, source code, turmeric, unity

A Turmeric Post-Mortem

This Ludum was chiefly a social experiment:

Could I bully some of my friends to come here to our house and have them make a game with me?

Given that some would show up, most of them not programmers and those that are… they code in different languages and are hard to coax into new platforms.
I had decided, though I put if forward as something that could be discussed, that we’d use Unity’s new 2D mode.

The art-style was sort of set on the Friday. In an attempt at harvesting everyone’s talent the most, we decided that all content be made IRL and no CGI trickery allowed. I also expected this would make our game stand out, which is extremely important when there are so many entries.

So we went to sleep and woke up to the worst theme we could have imagined.
We had a meeting, but I can’t say we ever got to a clear “You only get one”, so instead we had many weaker “one friend”, “one direction” (camera was not supposed to allow backtracking as in old Mario games), “one inventory”.

We never got around to formulating any strong connection with the theme, that’s the first thing that went wrong.

The IRL department sat out taking photos of things and tediously magic wanding and lassoing away their backgrounds:

Turmeric Jam Jar's moss sprite

The moss sprite

In parallel I was coding behaviors with colored blocks feeling very professional:

Development Scene

Development scene

I had a novice Unity assistant working on animating the main character (his first experience of Unity) which saved me several hours.

How did it all work out?

Turmeric Master Plan

A design for a friend.

What went wrong

  • Character controller is a bit funky, we’ll try to fix that soon.
  • Time ran out for me, so all animations and effects were not included
  • There’s a bug: If some items are picked up and dropped they become very very small
  • There’s another bug making the hearts not affected by gravity (one could also miss the meat-heart and right now there’s only one crane-flight)

What went right

  • The graphics! The atmosphere!
  • The characters way of movement
  • Some of the puzzles were quite awesome

But most of all, I proved to my friends that we’re a game making team. I got several of them hooked, and some that missed this time I’m expecting will join next.

Finally, we set out to make a game with no violence and no sexism in it. We stayed pretty much true to the no violence, though one ending can be interpreted as such, the game itself is very non-violent. As for sexism, there should be absolutely none in this game.

Try our game, many find it scary. We’re just proud that we did it: The Turmeric Jam Jar’s No-Name Game

Tags: #NoSexism, #NoViolence, post-mortem, turmeric

We are gonna Bash some Bad Bricks!

We’re are in, me and some friends.

We’re going for a mason trying to cure buildings’ facades from rogue bricks conspiring to make the whole place crumble to dust.

Today we’ve mostly been working on mechanics of central game objects in Unity3D.

I was stumped for the longest time of how to have a world object track the mouse position (x, y) on screen at a certain z. Until we found:

earPlane.Raycast(ray, out planeDistance)

And that was all. A plane to raycast and check how far the ray from the camera.ScreenPointToRay had to travel to hit the plane and it was done!

Personal goals this with this Ludum

  • Make good controls. The past two entries of mine here had serious issues with controls. Since this will be a mouse controlled game with static camera, I’ll be damned if I don’t get the controls right.
  • Juice it or die. I’m hoping to cram as many camera, sound, visual effects in as it is humanly possible (for us).
  • Gifs Each post must have one.

Now, I don’t have so much to show for visual progress, but today’s gif shows my devel-sceen spawning bricks at a location. The little cube that follows the mouse pointer (that you don’t see). It also has the audio listener on it so the player can listen in on what the conspiring bricks are whispering about:

day1animOpt

The minimum goal for tomorrow is to complete the game mechanics and at least have a first playable level.

2

This entry was posted on Friday, January 10th, 2014 at 6:42 pm and is filed under MiniLD #48. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Bab Bricks got more Juice

Yesterday there was little to show.

Today, the basic mechanics feel quite complete so I’ve had a great time experimenting and adding effects.

All fonts and several assets are still just placeholders, but that shouldn’t be too demanding to fix tomorrow.

I’ve done a main menu and a tutorial level. As a happy accident, the bricks I was painting the menu terrain with happened to swim all by themselves. They are obviously up to no good, but I think it worked great.

And though the surroundings to the brick wall is still to be replaced, I’m very happy with that brick shattering and the tweening when new bricks are shoved into their right place:

The skip button for the tutorial is in place (upper left). Don’t forget skip buttons if you have intros or tutorials!

It will appear on the levels too after the player has attempted some few trimes.

The main obstacle is I won’t have time to work for half of tomorrow and to make a decent first level at least, I would need to make 3D assets (windows, doors, and whatnot).
We’ll see how it goes. Worst case scenario, I can put the bricks in new patterns and have the levels work by adjusting the amount of usurpers and rate of conspiracy.

Almost keeping the schedule I’ve set for myself so far. For tomorrow there are still many thing but those with low priority could probably be regarded as a wishlist.

I, must say, I’m having very much fun. Fourth game development in Unity and the rocks I hit are definitely more spaced out and softer.

Tags: gif, juice

miniLD#48 Bad Bricks is submitted.

Try curing the facade from the usurping rogue bricks or just have fun listening in to their rebellious whispers and smashing bricks for effects.
Some sort of “the good and the bad will” have to come later. Now it is time for some well needed sleep, for me. You should play my game:

day3animLvl

What is the proper way to do it?

I was thinking that I need to fix the stuff that mostly irritate me with the version I submitted to the miniLD#48. If this was a proper LD, I would of course upload a newer version side by side. However since it’s just a mini — does it matter? Or is there a point to keep the original submissions as to show what can and is being done in 48h? Anyone with an opinion.

Also, since there’s no rating — please comment! Even if you don’t like the game you just played, just say something. I have the rule to write something on all games I play and as an aim to come with some constructive though too whenever I can come up with something. You can do it too!

I know you have some cool!

This miniLD I think saw some awesome games, I’ve played most but not all by now (I think). In fact I think the level of awesomeness per game is significantly higher than in the past LD28.

The miniLD had the most addictive game I’ve played so far, two LDs and this mini encountering:

I don’t know if it was the combination of wanting to have 10 presidents or those other silly upgrades, or just the joy of click-click-click.

It also had this challenging backstabbing puzzle that came with surprising depth and variety in challenges:

And the most deceptive game every:

null

These three have all gotten a handful comments, which is still not very much. Not for the energy and effort put into making a game in 48h. Many others have only one or two. So if you read this, it means you’ve got some coolness. You hang here, you probably make games, and you definitely are willing to play one or two. So do that, and let the maker know what was good and what could have been improved! The miniLD doesn’t have ratings and anyone registered can comment. I think I learned at least half of what I’ve leveled in game making past months from playing others’ games, so there’s something in it for you too.

PLAY AND COMMENT!

The good the bad and the updated bricks.

It has been a few days now since the end of miniLD#48 and I think now is a really good time to sum things up.

The Good Bricks

  • The brick smashing obliterating effect with smoke and shards flying everywhere. By far my best and most well worked Unity effect. Very fun to just destroy bricks.
  • The whispers from the usurping bricks and how the pointer position was used to listen in to their conspiracies.
  • The code structure was kept simple and the interfaces for the classes seems to have held quite a lot of further development. Some adjustments I’ve had to do, but mostly additions.

day3animLvl

The Bad Bricks

  • The initial game was probably impossible. Way too hard! And I’m quite commonly complaining on others to make them do easier beginnings. How did I end up… I think I got too tired on Sunday to bother tweaking the game. Bad me.
  • There was only one level, and it was sort of a bare thing, so much needed to be scratched from the plan due to time constraints. From simple silhouettes to make the game look architecty, to brick shakings and easter eggs.
  • The controls may have been the least wonky I’ve made for a Ludum thing so far, but there were still many issues. Some of them relating to the fact that it is a 3D game but the user interacts with it as if it was 2D. Thus using 3D-distances was really not a great idea.

capture_018

The Updated Bricks

I’ve added a new Level today (image above), also fixed many other things including even more fun for you when fail on a level. This is sort of an odd design strategy, to have the most effects and effort put into the loosing experience. I think it is interesting though, so I might very well dig into that idea further in a future game.

So if you have a little time on your hand, head on over an give my updated version a try. And while you’re at it, let me know what you think.

Crush the Candy King Saga

I made this entry for the rebellious candy jam… pretty sure it’s my best game so far!

Crush the Candy King Saga
Check it out!

Made with: Unity, Inkscape, Sfxr, Autotracker

Once, in a place not too different from ours, there was a people yearning for a life in peace. But they were ruled by a ruthless King who only loved one thing more than to see his people suffer. He loved candy. Most of all he loved playing a game he himself had “come up with”.

Each time the King got three candies connected, he scored. And when things were going badly, he cheated. The people had to produce new candy at an alarming rate to satisfy their King.

They had to resist.

The people started removing candies on the playing field right under his nose. They even went as far as to condition the King to play faster when they pressed a special buzzer.

The most daring used it quite often.

To gain the most, they needed the King to loose quickly while removing as few candies as possible. It was after all they who had to produce them.

Good luck, and save us all!

UPDATE: NOW FIXED STUPID TRANSPARENT MENU THING THAT WAS BLOCKING PLAY…

Give it a spin and let me know if you find it fun. Or if something could have been made better. Become the world record holder.

Lesson learned from this blunder of uploading games in the middle of the night while very tired and quite stressed: Don’t do it.

Tags: candy, Candy Jam, candyjam, unity

The Candy Jam is not about trademarks

(I put this text on Ludum Dare because I have no where else or better place to put it. This, in my opinion, also matters to everyone here.)

We who made (and still make) games for #candyjam do it because trademark law and predatory companies are stealing our language and robbing us of our freedom of speech. It is horrifying that common words can be stolen.

I make computer games in my spare time as a way to express myself and to contribute to culture. I do it because I find computer games important as it is one of the most prominent forms of art and entertainment of our times. It is a young form of expression in which there’s still much room to explore and invent. If even I, as a hobbyist, can’t make games without the risk of legal harassment, then there is something very corrupt in how we’ve organized our societies. I believe that laws are only valid when they serve the people and not by their own right. The use of trademark and copyright law to effectively censor culture voids their validity. Even more troublesome is the fact that most major internet infrastructures are located in the US, their laws have practically become international. For us who live outside the US, the right to participate in and produce cultural expressions on the internet (even freedom of speech) is outside democratic control. Instead these rights are, for all practical purposes, controlled by a few powerful companies who don’t understand and have no incentive to care about the gravity of what they are doing
This state of affairs is simply unacceptable.

Yesterday, there was an Ask-Me-Anything (AMA) on reddit, and unfortunately the discussion derailed into legal matters. I think this left quite a few of us disappointed. Not in the fantastic people who make #candyjam possible, but in the outcome of the AMA. For sure, the legal risks may be relevant to discuss, but they are not as important as the fact that we are making these games. Or why we make them!

If you’ve read this far, chances are this matters to you too. There are some ways for you to show this:

  • Make a #candyjam game if you already haven’t — you have all week before submissions finally close. I know you want to!
  • If you made a game, cast a vote or write a comment on someone elses game on itch.io to let them know what you think.
  • Play a game or spread the word (since most or all of us have yet to get a single dollar from all our game making efforts, we measure our worth in page views, clicks and links)
  • Let the people who put this impromptu jam together know how much you appreciate them on twitter. (#candyjam)
  • And finally, when the next Ludum Dare swings around, I expect all of you to have some candy in your game!

Cheers,
Local Minimum

LD29

Master stats list anyone?

Previous LDs there appeared a post with everyone’s results in a nice spreadsheet. It was great and I had fun plotting graphs and clustering people’s games. Many seemed to like it.

I don’t remember who posted that data. But I sure would be happy doing new stats from it if it appeared again…

LD31

Some of us are in

Last year, this time, we got together a couple of friends and made a game.

The main character.

Protagonist last year

It was said to be disturbing and other adjectives that we appreciated. We hope to repeat those feelings in the unfortunate players who have the bad luck of playing what we make. Since it isn’t even clear who “we” will be this time, it’s even less clear what tools we will be using, but if I am to guess we will use cameras, microphones, toys, scissors, pens, pencils and various software (GIMP, Audacity, Inkscape, Paint.net and others). Probably it will be Unity that assembles it all into a game, but that is of course also not decided until we start.

Whatever the theme is, I wow to manipulate my co-conspirators into creating something that will have people saying This game is completly mindfuck and scary again.

And even more urgent than last year, it will of course be #NoSexism.
Depending on what you consider violence, it will probably be #NoViolence too.

My own personal programming goals are to succeed in:

  • having easily understood controls
  • having smooth controls
  • having a reasonable difficulty progression

Let’s forget life and have a fantastic ludum weekend!

Tags: #NoSexism, #NoViolence, #ProbablyNoCat, iamin

LD36

We’re in again, 10th ludum in a row!

It’s jam time, and we won’t say no. I’ve gathered some recurring friends and a few newbies to join in and create a game. We’ll be a bunch — because it is much more fun that way. Also, more people need to understand that they could make games too!

Hopefully I’ll get some coding help this time (Unity3D).
With regards to other tools, it depends on who will show up and what they’ll want to work with.
We do have loads of home made wine, so it will most probably be part of creative process.

We’ll probably aim for the odd and quirky as usual and watch in amused wonder when players say they were freaking out.
It seems to happen more often than not.

LD 38

12th LD in a row!

It is finally LD-time and as tradition by now, I’ve invited a whole bunch of friends to come join me.

We’ll be making the game in Unity but beyond that it really depends on who shows up what tools we’ll be using and how we’ll tackle the theme.

I must warn you though. If you vote “Death is only the Beginning” to win, we might just have to do a game about animal carcasses and decomposing them.

I’ve started collecting possibly reusable code from previous endeavors in a small repo.

https://github.com/local-minimum/LM-Pack

And we might use it. Feel free to do grab it if you like it.

Good luck everyone and remember to keep the scope small. And by small, I do mean even smaller than that!

Tags: carcass, We're In