[Music] the gmtk game jam 2020 i'll have just 48 hours to make a complete game the theme this year is out of control all right it's three o'clock on friday i'll need to come up with an idea fairly quickly because the jam time is just so short after an hour of brainstorming i've finally got it cellular automata if you don't know a cellular automaton is a discrete model studied in automata theory uh here i'll explain with an example conway's game of life [Music] the game of life takes place on a grid of cells each cell can be in one of two states dead or live if a cell is live and less than two of its eight neighbors are also alive then it dies in the next generation if it has two or three live neighbors then it survives to the next generation more than three and it dies but a dead cell with exactly three live neighbors will become alive in the next generation so you can set up some pattern and start the simulation to see what happens each generation of cells is calculated based on the previous one not impressed well when arranged in certain configurations new properties emerge from these simple rules this becomes a glider that moves across the grid this is a machine that builds gliders called a glider gun look at this one [Music] conway's game of life is a zero player game meaning after the initial conditions are set the simulation plays out based on the defined rules for this jam i want to make a game around this idea of cells interacting on a grid the player will arrange them in some way and once the simulation starts everything is out of their control in my game there will be multiple types of cells with different functions for example a spinner cell will grab onto and spin cells around it a pusher cell will you guessed it push other cells the hope is that combining these different types of cells will lead to some kind of emergent properties as they interact at around 4 30 i started up unity and got to work we've got a square some scripts but then i stopped [Music] yeah so it's 9 30 now all i managed to do in six and a half hours is get a blue square moving across the screen along with some issues with the game concept itself i just couldn't figure out how to program some of my ideas using the whole states and neighborhood stuff so at this point i decided to quit the jam just kidding i eventually came up with a few ideas that would make this game possible then i drew out some level ideas and called it a night to begin saturday i basically had to start the project from scratch programming this free moving cell idea okay now we're 16 hours into the jam and we've still just got a blue square moving across the screen next i made some quick placeholder art for the mover and gave cells the ability to have a direction now we have are you ready two blue squares moving across the screen i'd say that's progress [Music] the push cell basically does nothing but it can be pushed by other cells just throw together a little code and we can push one cell or a stack of multiple cells cool but now it's about to get a little more interesting [Music] a generator cell will take the cell behind it and duplicate it to the front so here it duplicates a push cell if there's something in the way that can be pushed then it just sort of pushes that and spawns the new cell let's add a mover cell that pushes the duplicated block out of the way this is what happens and we can even push a generator cell one issue with the game right now is that it's kind of hard to tell what's actually happening because cells just immediately jump to their next positions for each step in the simulation to fix this let's add a little animation and just like that it's working uh oh i guess not really okay there we go all right time for the enemy cell this shouldn't be too hard i hope each enemy will just store its position in the grid and then after each simulation step we'll just check if any other cell is in the same position and if it is we destroy the enemy cell and the cell that hit it so if all enemies are destroyed then you win the level the simulations and stuff are cool but i don't think a completely zero player game would be very fun so i implemented the ability to drag and drop cells into different grid positions so the player can control the starting state of the simulation next i made some buttons that will let you play pause or step through the sim now it's 12 30. somehow nothing's gone wrong today so far so hopefully it stays that way [Music] the rotator cell will work a little bit differently than my original idea the rotator itself won't spin but it will rotate the cells next to it and not affect their positions so it can alter the trajectory of mover cells and just sort of spin around other cells if there are two rotate blocks next to a cell then it will spin 180 degrees [Music] okay this one just can't be moved at all [Music] similar to a push cell a slide cell can be pushed but only in its indicated direction just like this not like that like this it can be useful for doing things like temporarily stopping movers now we'll add in some level navigation we've got a button that will pop up once you complete the level and it will just reload the game scene with the next level but for some reason it's not working oh wait maybe it's because i haven't actually made any levels yet let's fix that [Music] wow so challenging but don't worry these are just the first levels to introduce the different cell types now i can start making some that are a little bit more tricky [Music] at this point even for my already low art standards the game looks terrible for some reason i decided that i would do pixel art for this game the problem with this is that i've never really made pixel art before i mean i've never made anything that can be considered art so i guess this won't be much different i think you're supposed to do like a random pattern for shading or something yeah i don't really know what i'm doing here okay along with the dark background i think that's at least better than what we had alright let's make some more [Music] [Applause] [Music] [Applause] [Music] all right we definitely need some more levels here's a few i came up with in this level you have a few generators maybe an earlier point in the video gives a hint to that one maybe in this one there's a little moving rotating machine thing that prevents you from taking a straight shot at the enemy so you'll have to figure out a way to navigate around that this is my absolute favorite level which i'm going to say for the very end of the game you only have 4 generators and have to destroy all these enemies down here around two corners the game still needs a lot more levels but i want to start adding some polishy stuff now in case i run out of time uh which is likely to happen i first added some post-processing hoping it would somewhat hide my terrible pixel art then i found a font and started generating some sound effects title screen done more levels done a tutorial sure enemy explosion particle of course level select menu uh not quite i started on it but at this point i'd been working on the game for like 17 hours so decided to call it and go to sleep all right it's submission day the first priority is to finish up that level select screen and the game still needs more levels i kind of just built random stuff to see if anything interesting would happen i ended up making three more levels bringing the total up to 17. hopefully that's enough [Music] i don't have too much time to make music so i just used my normal technique of placing some notes completely randomly all right four hours to go and the game is pretty much done it could probably use some more stuff and definitely some bug fixes but for now i'm gonna do a build get the hio page ready and submit the game to the jam and the game is submitted okay i should probably get some sleep or i can just stare at the countdown and worry that my game isn't submitted correctly or has some game breaking bug uh yeah let's go with that second option [Music] you