1 free read left. Create a free account for unlimited reading + AI research.
Create free account10 billion that's the number of video games i want to make today because making 50 games in a day wasn't quite hard enough because i want to see if it's possible and because i want to set a new world record let's get started right into it so as you might have thought manually creating 10 billion video games is not something that's possible so we have to take shortcuts what i can do is i can procedurally generate them basically write an algorithm that creates the games for me how the heck do we generate random rules i don't know so i tried to figure it out 10 billion games unity is a program with a lot of loading screens this is a loading bar it's gonna take a time to load my general idea was to randomize the behavior of all of the objects in the game i'm gonna have circles triangles and squares and i'm gonna randomize their behavior so their gravity how fast they can move their mass how heavy they are all of that can be randomized and i think that will already give us a lot of
variety so that's what i started with i created a triangle a square and a circle in photoshop brought them into unity carefully traced like the colliders started writing some code and after a while i had some cool objects floating around with randomized behaviors definitely didn't have any problems not at all only the square has gravity uh what's that no reference now it will work of course yes perfect perfect triangle square no collision hey hey what are you doing what are you doing oh i'm such an idiot it's always the same works that's great so i decided to exclusively make high score games for one very simple reason when we randomly generate rules i don't
know what a good victory condition would be right that is something a designer would design for that specific game we don't have a designer so i think going for a high score system where we can just randomly assign points for certain actions sounds like a very good idea makes the games more replayable we don't have to worry about victory conditions then we're also gonna add a timer for the same reason when the timer runs out the game ends that way we don't have to worry about the loose condition either right it's just about getting as many points before the timer runs out and that's gonna be the case for every game but how you get points that's gonna be different for every game and there are also a lot of options how we can randomize that which i think will make for a lot of variety you can get points for collisions you can get points for slapping you in the face oh you can get points for colliding with walls for clicking something for pressing a button the options are endless i originally wanted to complete this challenge in one day but i quickly realized that that wasn't possible so i'm gonna do it in three days instead if we think about it
that's still more than three billion games a day so that should be i should be fine right i took a little break did some horrible cooking um i think i need to take some cooking lessons from thin matrix or something like this looks so nasty oh my god anyway i came back the other day with fresh energy wrote a to-do list and got right back into it why is it so hard ah this is driving me crazy why is it so hard to just make text appear in the correct position it's hacky as hell but maybe it works oh thank god one thing that was really important to me was creating 10 billion distinct games and if you pick a specific one for example game 174 that game should always look the same so if you tell your friend hey try out game 174 it should be the same luckily there's a very simple solution like games like minecraft do it you just let players enter a specific seat in my case the seat would be the game number there
was just one problem maybe this is getting too complicated let me know if this is getting too complicated okay math mode enabled i want to have 10 billion games but my randomness function only takes an integer as a seed input so you can only use an integer variable as a seed thing is 10 billion doesn't fit into an integer that's a problem i didn't know how to solve it really but what i did is i just basically split the number into two parts and then use like the first couple of digits to generate one seed and then use the other couple of digits to generate another seed so now basically the program uses two seeds two minecraft seeds to generate the game rules of a game i'm i'm slowly turning into bob ross let's sprinkle just a few small dots on the canvas that's beautiful one thing i also had to learn the hard way is that you cannot just randomize the gameplay variables and expect everything to work for
example if you make the size of the objects too big and there are too many objects in one level they don't fit into the level anymore so even if you pick numbers completely at random even if you design your game completely at random there are still certain rules you need to follow you still need to make sure like that the volume of all shapes together isn't more than the volume you have available in the level and that was a little tricky to figure out why we made it work so i already randomized i randomized the color i randomized the game length i randomized this material i randomized this color i randomized the size only two million more parameters to randomize and then i only need to add two million more parameters and then it's done it's currently the end of day two did quite a lot today so this is basically what i got done in day two yeah it's late so we got this beautiful game selection screen going where you
can select the game you want to play so for example i can select game 770 oh damn it and now every time somebody selects this game they're gonna get the same game let's see what this game looks like and now we can restart it as well which is very nice and then you know this is the addicting part the fun part here just skipping through a bunch of games so we could go back to the menu and say select a game there or we can also just press n okay so many numbers no and also there's nothing playable yet that there's no way to interact with it yet it looks pretty interesting i have to say the color generator turned out pretty pretty decent what have i done seeing those first results was very funny to me because it was just a bunch of stuff i didn't expect to see at all it's just the thing with randomly generate stuff is you get to see things that you would have never created yourself that looks like an interesting
game i have no clue what's happening it is unique and it is something i definitely didn't coach or design yeah that's what makes it so fun a big problem was that it was completely non-interactive so you couldn't do anything in those games yeah hard to even call it a game at that point so that's what i focused on on day three getting the player interactions in there day three here we come on day three i suddenly had a big low in my motivation like not entirely sure why maybe it was more work than i anticipated maybe i was worried if it would even come together so i drank some water ate a piece of pizza went for a long nice walk i made a to-do list and then came back with fresh energy and just kept powering through implementing those player mechanics the way i went about implementing the player mechanics was i first prototyped them so i checked out if everything works and
then i randomized the values with like the seat number the player can enter at the beginning so now a lot of stuff is really randomized like the behavior of each individual object is randomized how objects interact with each other is randomized like can they collide can they not collide what happens when they collide do you get points when they collide that is randomized and how you control the game that too is randomized so we randomized so many things that i think there really are 10 billion games right now i mean you be the judge if if it's 10 billion or not so we're finally done i want to go game hunting now i click randomize and play and now i'll try to find some cool games okay i think my strategy will be to just find something that feels nice to control first and then i'll check out the rules if i like the rest of the rules too no don't like the controls don't like the controls okay so every i can rotate the circles and every time i press a button the
triangle speeds up oh but i lose a ton of points every time i press left or right so the best strategy is probably just to hold one button for one minute straight that doesn't seem very interesting what do i even get points for here oh that's very simple rules you gain points for the movement speed of the square okay let's give this one a go very fascinating how many games you can make with just three shapes wait but the circles don't collide with the square only the triangles collide with the square oh that's interesting actually let's restart this let's see if there's a smart way to go about this i wish i could move the circles up and down that would make it quite a bit easier honestly the main game seems to be just to find the best exploit i mean it's one of those kind of games you would never come up with yourself like no game designer would come up with this game and that that kind of makes it you know it's not super fun but it's really quite interesting because it's
pretty much unlike anything you've ever played look at that i got 79 points let's keep searching for a better game i'm sure we can find a better game okay there's a lot of numbers whoa what's happening okay so what i really like is that you can also just keep this info box open and step through the games like that and then instead of seeing the game you see the rules right away so that's also a fun way to browse through games i think it's 10 billion games i didn't say it would be 10 billion good games this is such a crime against humanity whoa that was kind of unexpected not gonna lie i present to you the reason we need game designers what do i have to do you gain points every time a circle collides with a circle there's only one circle you gain points every time a triangle collides with a triangle i need to make the triangles collide okay and this is a
short game finally that's great how do we make the oh i can make all of the blue thingies go left and right that's super interesting oh that's that's very interesting it's my best score is -1023 i think i can do better no no no no i need to spread these out right away yeah yep yep yep get those triangles together no no no no no no no that was actually worse than my last attempt make them spin really fast like beyblades okay it was worse again i feel like i'm on to something though this has to be a good strat i can feel it yeah yeah yeah oh that was a lot of points yeah yeah yeah yeah bump into each other bump into each other new record let's go baby there's actually a very interesting one it's six two four four four eight nine five and my best score is minus one
thousand nine let's see if you can beat that i'm not done with this challenge i have a ton more ideas for mechanics we can implement into this game i would also like to try this with strategy games i want to procedurally generate 10 billion grid based strategy games i've learned a lot i'm gonna do an even better job next time but only if you do a good job wish listing will you snail on steam you've done a very great job so far we've reached over 20k wishlists already but we can do better more wish lists so you don't miss the launch or something yeah bye
This project explores the feasibility of procedurally generating 10 billion distinct video games within a three-day development window using the Unity engine. The primary objective was to create a system where every game is unique yet deterministic, allowing players to access specific experiences by entering a unique numerical seed. By leveraging procedural generation, the developer sought to bypass the limitations of manual design, creating a vast library of physics-based, high-score-oriented games that would be impossible to craft individually.
The methodology relied on randomizing core gameplay parameters, including object behavior, gravity, mass, collision rules, and scoring conditions. To manage the scale of 10 billion games, the developer implemented a dual-seed system to overcome integer variable limitations, ensuring that each game number consistently produces the same set of rules and visual output. The development process involved balancing randomized variables to ensure game stability, such as managing object volume within the play area, and implementing a menu system that allows users to browse, select, and replay specific game seeds.
The findings demonstrate that while procedural generation can successfully create a massive volume of unique, playable content, the resulting games vary significantly in quality and interactivity. Many generated titles function as experimental physics puzzles that require players to identify exploits or optimal strategies to maximize scores. The project concludes that while these procedurally generated games lack the intentionality of human-designed experiences, they offer a unique, unpredictable form of entertainment that highlights the potential for algorithmic game design. The developer intends to expand this methodology to more complex genres, such as grid-based strategy games, in future iterations.
The games and companies this document names on the inner ring, other documents about them on the outer one. Select a cover to see it up close and open it in a new tab; drag to move, pinch or Ctrl + scroll to zoom.
Thomas Brush · 2020
Game Developers Conference · 2020
Comments