whydoidoit

LD27

Well that was a blast :)

My first Ludum Dare and I didn’t even expect to be able to make it – but thanks to a cancelled flight and 36 hours with not much sleep my entry is finally in.

Screen Shot 2013-08-26 at 01.01.11

 

CaptureZ is written in Unity and gives you 10 seconds to build  fences to surround your prey so your flying saucer mother ship can abduct them.

Pretty much all of the graphics are built out of Unity primitives with texturing from some photos I took.  The code is C# – it uses some of my public libraries available at http://unitygems.com and NGUI for the UI.

The hardest bit was getting the fence drawing algorithm right, testing for fence inclusion was easy but I’d improve the lining up when you close the loop if I had more time.

It’s amazing what you can do in a day and a half…

 

Screen Shot 2013-08-26 at 01.01.52

 

You can play it on the Web here: http://whydoidoit.net/Ludum/CaptureZ.html

Cutting it fine….

Phew, managed to squash a really nasty couple of bugs with 2 minutes to go…. I might need a beer in a minute!

CaptureZ is done: capture the animals by drawing fences, you’ve got 10 seconds to complete each fence!

Screen Shot 2013-08-26 at 01.00.14

 

Play it here.  Browse the source here.

CaptureZ – Postmortem

Finally after some sleep I thought I’d provide a Postmortem of CaptureZ.

Screen Shot 2013-08-26 at 00.54.15

I realized LD was on this weekend a few days ago and was annoyed that I was supposed to be travelling for the best part of 24 hours over the weekend.  As it happens, 8 hours after the LD48 had started I found out my trip was being delayed, I “ummed” and “arrrred” for a few hours and then finally 12 hours in I decided to give it a shot.

The Concept

When I thought about “10 Seconds” as a theme and counted my skills (which don’t include much in the way of 3D modelling) I wondered about producing a ball based action physics game. But what can you do in 10 seconds?  I replayed in my head a bunch of old arcade games I’d enjoyed as a kid and came up with “Painter” and “Amidar”. Painter had you fill an area of the screen by rolling a paint roller into empty space – the challenge was would an enemy hit your incomplete line before you finished and kill you.  Amidar was similar, the boxes already existed and when you completed one you got to chase the enemies that were otherwise chasing you (a bit like Painter crossed with Pacman).

So I came up with the idea for CaptureZ, “Painting” a fence in the world, that if you completed it within 10 seconds would become a permanent part of the geometry of the level.  To give you a challenge I created some “animals” that you need to capture inside a fence and had the idea for a flying saucer to beam them up.

Given the voting criteria, this is what I did with the concept:

  • Innovation – I haven’t ever seen this idea exactly and I thought the old game modernised and twisted might be nice
  • Fun – people like to change the environment they are in, this is an interesting way to do it high speed movements and interesting AI behaviours (more later).  I also added shooting.
  • Theme – well a 10 second fence made sense, I wanted to make a game with a longer level play time but still incorporate “10 seconds” as a core thematic element
  • Graphics – I’m no artist, so building things out of basic shapes and using a few photos and a lot of plain textures made sense to me
  • Audio – I decided to use a sound effects generator and Garage Band to create a composition that had a rock feel, but more “Country” to follow the general cowboy feeling of wrangling animals
  • Humour – I added comedy animals and rather silly spaceships that wobble and beam up the animals.  A few home recorded raspberries and other suitable noises added to a general sense of comedy.

 
The Controls

Probably the worst mistake was choosing “QWE” as the control system.  My fingers fall to those keys easily and provides the other hand for the mouse – sorry “Lefties” and everyone else who hates it!

The other thing was providing direct input to the physics system in Unity, given the amount of time I did the best I could – the plan was to have you able to choose different “balls” that had different steering characteristics, but I ran out of time.  The one I have is a little uncontrollable to start with (though I’ve got used to it and quite like it now, it isn’t great because the first feeling is it not being quite right).  If I develop it further this will need a day or two to perfect and get all the balances right.

The World

I needed to make a world for my creatures, the fastest thing I could think of was an island built from a Unity terrain with a sphere for a skybox (with a shader I wrote to just show the back faces) and a plane for the water with the same texture as the sky, but some code to make it “flow” and some colour modifications to dull out the texture.  I took a picture for the sky out of my apartment window, I didn’t have anything to make it seamless with though in the time – obviously if this wasn’t LD48 I’d have used some skydome I have the rights to use.

So I built a terrain with a high plateau, smoothed it, played with it and textured it with mostly solid colour textures and a smattering of a texture derived from the stucco wall outside my apartment.

Screen Shot 2013-08-26 at 01.01.11

 

The Art

I’m no artist so I made everything out of Unity primitives and textures I took from photos taken on the day.  The only other thing was the Unity terrain.  I’m generally quite happy with the result, but a pro game would have used some additional assets like trees, grass etc.

Screen Shot 2013-08-26 at 01.00.14

The Fences

The next thing to do was the fences.  These are dynamically constructed from the movement of the player which records line segments (creating a new segment when the player changes angle), a separate process then turns them into an open bottomed mesh with end caps.  I chose a reflective shader, fiddled with the colours and created a cube map from the empty island.  The construction of the mesh code took a few hours, but I’m happy with the result of that.  I am less happy with the closing of the fence, which could be made much better with only an hour or so of time (to move the points into a smoother group especially where one segment is long).

The AI

I wanted many types of animals, the system allows for this but I only had time to realise 2 before the competition closed.  I build foragers and predators. To give the AI some help I specified certain areas on the island that foragers can find food, that they would run to in the event of danger and that predators would use as a lair.

I’ve been wanting to create a system that created emergent behaviour for ages and have read a number of papers on flocking and swarm simulation so I decided now was the time to put that to work.

Each animal can have one or more steering behaviours that provide input on the direction the creature should take.  They can apply a “weight” to insist on a direction and they also provide an idea speed.  The animal takes the combined steering information and creates a steering vector and target speed.  It then uses the vector to attempt a turn if necessary and adds force to get towards the target speed (subject to its own acceleration and maximum speed constraints).

The behaviours I implemented where:

Grazing – animals graze in different areas for a period of time (based on some variables that can be modded) when in an area they select a location and try to move slowly towards it.  When changing areas they use a higher speed and select the next area based on proximity and their current heading.

Flee – when an animal senses danger (each animal has a danger radius for the player and any bullet explosions) it selects the nearest refuge area in the opposite direction to the threat and moves towards that at flight speed.

Obstance Avoidance – the animal seeks to steer around anything in its direct path by looking left and right and choosing the best direction that has nothing in the way, or turns hard left if it can’t find an open route.

Flocking – animals look around them (generally the forwards hemisphere, and slightly behind), judge the speed and direction of other animals and use this to make a suggestion, the faster the other animals are moving the more notice they take (configurable per animal).

Predate – for predators they sleep, search out a foraging area, select an animal, chase it and eat it.  They also give up if it’s too much effort.

The key thing is that all of these steering behaviours are combined and constantly updated to provide a natural looking environment.  I think it works quite nicely and given time, gameplay could be developed where you had to build areas and then drive the animals into them.  Unfortunately at the moment, if you fence a grazing area you may get some animals for free :(

The Shooting

I really wanted to use the mouse to pick up bonuses and shoot at enemy space craft that are dropping mines on the level.  I ran out of time with the enemy spaceship AI (and the bonuses) and now they “buzz” you and are generally annoying – but you can shoot them.  Shooting isn’t great because the projectiles are a bit slow, it needs homing projectiles that hit the thing you fired at, not flew in the direction it used to be – easily done, but no time.  I like the small explosions though, they were a 10 minute hack, but I’m pleased by them.  I can’t believe what I got done in the last 2 hours of this LD48!

Screen Shot 2013-08-26 at 01.01.52

Missions

I built a missions system, but didn’t have time to implement all of the features or make many missions (there are 5).  It’s easy to make more.  Missions consist of a number of animals to capture of the different types and a number of saucers to kill, and a maximum number of animals to kill.

The Experience

I’ve never tried to make a game in 48 hours before (actually 36!) and I really enjoyed the experience.  I think I should have added less features and concentrated longer on the control system, but can’t change that now.  I’ll certainly compete again, it was the usual total panic, stress  that deadlines normally bring, just this time it was also fun!

 

Ludum Dare 46

Unprecedented: "Locked Down" and "Locked In" for LD46 JAM!

Might as well avoid being locked out and locked up by spending 3 days hacking in LD Jam for the first time! My gf and I are going to try to make a game, stay sane and stay together - if we submit an actual entry it will be a bonus!

Tools under consideration:

  • React / Javascript / Pixelmator
  • PlayCanvas / Blender
  • Unity / Blender / Unity Asset Store
  • Phaser / Spine

Lets see what ideas come when the final theme is announced!

(BY THE WAY should I be murdered during this process I'd just like to point a finger at....)

It's Life Jim But Not As We Know It

We are working on a Tower Defence version of Life in memory of the recently departed John Conway. Tools now in use are PIXI and React with graphics drawn in Photoshop.

The basic idea and framework are together. Particle life simulation running and some graphics drawn.

bloodstream.gif

IT... IS... ALIVE...

Screenshot 2020-04-20 at 00.20.18.png

I'll keep the gameplay under wraps for a bit longer while I tweak and add more particles. But the level editor is going well.

If I Knew How To Save A Life...

Well there is some gameplay. All the art and the music are done. Some SFX left to go and a whole load of particle effects not yet finished! Then there's the server element - GULP

Ziggy S.gif

Time To Get A Life...

LIFE:anti-viral

https://ldjam.com/events/ludum-dare/46/lifeanti-viral

LIFE.jpg

Well after 60 hours of pretty solid coding I'm super happy to say that we managed to get something together with a few minutes to spare. We built everything from scratch in the time and are happy we managed to not fall out too badly!

Given that John Conway, the author of Life, died this week of Coronavirus it felt like a proper time to benefit from his huge contribution to mathematics and computing. Plus who else wrote a zero player game! We've made ours a kind of tower defence simulation.

The game is a super chaotic simulation with tons of particles and 3 types of offensive troops and 3 types of defensive towers.

Screenshot 2020-04-21 at 01.23.19.png

It includes a level editor and the ability to share files to play each others sims. We ran out of time for the network storage for these in the cloud. Something to do later.

Screenshot 2020-04-20 at 00.20.18.png

We hope you enjoy it, it's been a very exciting few days for us, we normally bite off more than we can chew...

This time:

  • PIXI / React

Source code is included with the game.

Ziggy S.gif

These are difficult times, stay safe everyone.

Extra LIFE

So finally done with playing other folks stuff, seen some really cool games in Jam and Compo! If you fancy trying out our JAM entry LIFE:anti-viral - it's linked below. I'm exhausted and finally winding down from the race to the line!

Ziggy S.gif

https://ldjam.com/events/ludum-dare/46/lifeanti-viral

Looking forward to playing some more tomorrow...

Screenshot 2020-04-21 at 01.23.19.png

Could you help out with a rating? We'd love to get to 20 for the first time!

LIFE:anti-viral

https://ldjam.com/events/ludum-dare/46/lifeanti-viral

LIFE.jpg

Well after 60 hours of pretty solid coding I'm super happy to say that we managed to get something together with a few minutes to spare. We built everything from scratch in the time and are happy we managed to not fall out too badly!

Given that John Conway, the author of Life, died this week of Coronavirus it felt like a proper time to benefit from his huge contribution to mathematics and computing. Plus who else wrote a zero player game! We've made ours a kind of tower defence simulation.

The game is a super chaotic simulation with tons of particles and 3 types of offensive troops and 3 types of defensive towers.

Screenshot 2020-04-21 at 01.23.19.png

It includes a level editor and the ability to share files to play each others sims. We ran out of time for the network storage for these in the cloud. Something to do later.

Screenshot 2020-04-20 at 00.20.18.png

We hope you enjoy it, it's been a very exciting few days for us, we normally bite off more than we can chew...

This time:

  • PIXI / React

Source code is included with the game.

Ziggy S.gif

How to play LIFE:anti-viral

Based on a bunch of feedback, we've written some basic instructions for playing LIFE:anti-viral! Hopefully it will make more sense now :)

Screenshot 2020-04-22 at 17.05.50.png

Ziggy S.gif

Play it here!

Can You Master the Chaos?

Demo.gif

With more than 10,000 sprites flowing around the screen at 60fps LIFE:anti-viral looks chaotic! BUT it's running on our rules based engine with emergent gameplay... yep it's all based on logic... Can you score 3 stars by taking down everything? 2 stars for getting every Nucleus? Make your own levels and see if you can "Keep it alive"!

Play it here...

LIFE:anti-viral - Emergent Behaviour

I was always fascinated by emergent behaviours in simulations, so trying to adapt a set of hard and fast rules to create a game that looks chaotic was a challenge I wanted to take, especially as author of the first mathematically pure simulation game "Life" (John Conway) sadly passed away from Coronavirus just before the Jam started.

LIFE:anti-viral is a 100% stable simulation - the idea is to build a Tower Defence attack/defend game like Clash of Clans where we can replay any game just by knowing how fast, when and where a player inserted a simulation particle. So the simulation is completely repeatable, yet creates crazy chaotic movements that are different every time you play, due to you as the random factor! We can still replay all of that knowing only a tiny amount of data, even though there can be 1000s of pieces in play.

To make your own levels we included a full level designer that allows you to simulate what will happen to your level before a player interacts.

d&p.gif

Then you can play your level or share it with others...

Demo.gif

Play it here...

HTML Games - I'll show you mine if...

I was a Unity game programmer for years, I love the platform. But for the last few years I've tried to steer clear because I found myself getting dragged into the same tropes. Now that's fine if you have a story to tell, it's a fab platform for expressing it, but I guess I told the "big story" I had a while ago and I've been working on trying to create novel ideas.

I'm a big fan of HTML 5 games and WebGL in general. I've written projects in PlayCanvas and Phaser, but this time went for plain Pixi. Pixi is so good at moving things around quickly but you end up writing nearly everything else yourself! In this case for me that was particles, sprite control, physics and collision. Still with that much control comes a certain freedom - presuming you can get the work done in time!!!

It is amazing what you can do when you aren't carrying the giant PhsyX engine and all of your code cross compiled into Javascript, instead with things like Webpack you can write beautiful ES6 code that has much less baggage. Hence 1000s of sprites and high frame rates (on something with WebGL anyway).

I use a Mac and am sad when I can't play Windows builds and do get disappointed a lot when I see something that looks great! I'd love to rate some more games so please do comment with yours and I'll give it a shot!

My game:

Demo.gif

Play it here...

LIFE:anti-viral still 100% stable (as a simulation!)

I was always fascinated by emergent behaviours in simulations, so trying to adapt a set of hard and fast rules to create a game that looks chaotic was a challenge I wanted to take, especially as author of the first mathematically pure simulation game "Life" (John Conway) sadly passed away from Coronavirus just before the Jam started.

LIFE:anti-viral is a 100% stable simulation - the idea is to build a Tower Defence attack/defend game like Clash of Clans where we can replay any game just by knowing how fast, when and where a player inserted a simulation particle. So the simulation is completely repeatable, yet creates crazy chaotic movements that are different every time you play, due to you as the random factor! We can still replay all of that knowing only a tiny amount of data, even though there can be 1000s of pieces in play.

To make your own levels we included a full level designer that allows you to simulate what will happen to your level before a player interacts.

d&p.gif

Then you can play your level or share it with others...

Demo.gif

Play it here...