What's up yall, over the weekend I participated in Ludum Dare 40, a good ass game jam. ldjam.com
I made a game called "IN-FAMOUS" and that's a genious title so you should play the game here on Newgrounds: https://www.newgrounds.com/portal/view/703072
Intro/Idea conceptions:
This would be my second time doing Ludum Dare, but I ain't no stranger to short weekend game jams. This time around I went solo, I was in talks with Moawling on working with them, but my internet actually went out two weeks ago and I only got it back yesterday, so I had to go solo heheh. Maybe next time. Anyways, this Ludum Dare's theme was "The More You Have, The Worse It Is". I actually had to head to the Tim Hortons across the street from me and use the internet there just to check what the theme was since my library closed. Anyways, for the next 6 hours I just brainstormed, and did a small bit of prototyping. But nothing came out of it besides some concepts for a dating sim that definitely would've been called "Too Many GFs".
Here's the concept of what the UI would have been that I made in MS Paint.
It wasn't until I was in bed at midnight when I had the idea to do something related to online fanbases. I then booted up my PC and wrote down some stuff in the text file I had. You can check out all of the ideas I had written down in the txt file here: https://github.com/ninjamuffin99/ld40/blob/master/theme.txt
and also some of the game design stuff I was thinking about for the dating sim idea: https://github.com/ninjamuffin99/ld40/blob/master/DesignIdeas.txt
How the game became the game it is today:
The first day of work, I originally had in mind that, as you get more internet followers, the worse and meaner the comments get. I began by working on a clicker style game, where when you click "create" it increased your followers, and you had a random chance to get a random number of comments. I then built the comment loading system, with scrolling and everything. However I started generating A LOT of comments in a very short amount of time. I started optimizing the code a bit so that the game shows and saves 1800 comments very little performance cost. I actually hacked the core HaxeFlixel code to make a bootleg culling effect, where it didn't call the draw() updates if the object was offscreen, which I am very proud of because it increased performance by over double, with a single line of code:
this.set_visible(this.isOnScreen());
Again, super simple thing, that just doubled the FPS. So I'm proud of this stupid thing, which I'm sure that there's an actual function that might do this built right into HaxeFlixel but ehhh hey guys let me have this moment.
Anyways, I was able to generate a shit ton of comments, which then got me to think about ways to generate all of the comments. I immediately thought of randomly generating the comment.
Randomly generating the comments:
At first I thought of almost completely randomizing the comments, and playing around with sentance structure. But I know shit all about sentance structure and grammar. So I then decided to write some sentances and go from there. I'll break down the comment gen steps.
- The function first grabs a random name from an Array(basically a list) of names I wrote, and then a last name from another array. Then it puts them together.
- Then it picks a random number between 0 and 6. These are all of the different kinds of comments, so 7 different types of comments in total. In this breakdown, I'll only go through the process of one type of comment
- Let's say that random number is 4. That generates a comment, with the base template of my (sibling/family) (verbs) this. However this sentance is modifiable. For example, instead of that "my" at the beginning, it has a 50% chance to instead add "why does" before it, to modify the sentence to become a question. While generating that bit, it also has a chance to add a "really" before the verb (ex: "why does my brother really hate this?").
- Since the comment type if 4, it has a random chance to add another sentance relating to it. One example is I (guess) that means I (verb) it!!! where the guess is a word taken from a list of four that I wrote ("guess", "suppose", "think", "assume"). Let's say it randomly took "suppose", and it took "love" from the verb list. Now the comment reads "why does my brother really hate this? I suppose this means that I love it!!!" Now you already have a picture of some kid, maybe a sister, who does everything the opposite of her brother.
- It then has a random chance to add either "LMAO", "WTF", or "LOL", and these are still a bit specific to this type of comment.
- Now it goes through modifiers that'll apply to every type of comment. First is a modifier that'll add a self quote (ex: -firstname lastname currentyear). I really liked this bit to create those kinds of people that make stupid quotes of themselves and its hilarious.
- then, it has a chance to randomly generate a hashtag. It has a 7% chance of running this bit, so lets go through it. It grabs a hashtag from a list I've written, then adds it to the end of the sentence. It then has a 60% chance to add another random hashtag from the list.
- The final bit is a random chance to completely erase the sentence, and replace it with a spam message. This has a 1% chance of happening, which is probably way too low to be honest heheheh. Basically the way that works is it writes the comment "FREE GIFTCARD GIVEAWAY" as a reference to youtube spam comments that try to give you free Steam cards or something. then makes a fake url "spam4u.rl" and adds some random numbers and letters after it.
- Finally, it returns the comment and displays it on a comment block. The final result would look something like this: "Krystin Taylor: why does my brother really hate this? I suppose that means I love it!!! #DEEZNUTS #TRIGGERED #HATERSGONNAHATE"
That's essentially the comment gen process, but this example only used 1/6 comments. Here's a link to the function if you want to see how more comments are generated, sorry about not commenting the code oopsies: https://github.com/ninjamuffin99/ld40/blob/master/source/Comments.hx#L400
I think this kinda semi-hand made style of randomly generating comments works very well. It's almost like how Derek Yu of Spelunky "randomly" made Spelunky levels, by just having hundreds of handmade levels, then randomly modifying them, then stringing them together randomly too.
Final thoughts and misc things:
The final day was essentially polish, title screen, better controls, fades, etc. At this point, I still didn't have any music, so I was browsing through my PC when I found an MP3 of Clair De Lune that I had downloaded when I was learning it on piano. I think it was made in the late 19th century so I'm pretty sure it's public domain by now, if not oops. I think it works really well because when you scroll through the comments, they almost look like piano keys!
The song also adds a seriousness to it, that adds to the comedy a bit, and makes it way more dramatic than it needs to be. I actually wasn't able to upload it by the deadline because of internet difficulties, but I finished the game 3 hours before the deadline. I think the game turned out real good. The last thing I wanna add is that I felt like such a genius when I came up with the title "in-famous" because it refers to both being internet famous, and also infamous, as most of the comments refer to you making shitty, offensive, or weird content and pretty much universally disliked by the internet.
OOF this was a long ass newspost, but here it is yall. I hope you enjoyed reading through some design process and whatnot. Again, if you haven't played the game it's here on Newgrounds, or if you wanna see the good ass comments again: https://www.newgrounds.com/portal/view/703072
Go rate the game 5 so that I can get a daily award and frontpage this newspost >:) pls pls
Full source code is available on Github: https://github.com/ninjamuffin99/ld40 you can check all of the development history too, and earlier builds and whatnot
And just a small update: Keep an eye on me and PhantomArcade's twitter accounts, pretty soon we'll probably start showing off some stuff for the game we're working on. https://twitter.com/ninja_muffin99 https://twitter.com/PhantomArcade3K
VicariousE
Gave it a whirl, it's pretty neat! At first I thought the responses were static, then started to see how they got randomized. The original code for a random variable used to be one line of text, then the guy who created it bitched about royalties.. then the code to replicate it exploded