Now Open Source: YouTube Let's Player Simulator 2016

Let me tell you a story.

The year is 2013. I'm in my freshman year of high school (yes, really). As a freshman who is neither rich nor employed, I'm always looking for new ways to make a bit of cash. I remember when I used to make flash games on Kongregate under the name Supersnail200. I made like twenty bucks from that! I'd like twenty bucks.

But making good games is hard, so why bother? I don't have any ideas anyways. Then I remember a user I used to see upload games all the time on Kongregate: PaperCup. PaperCup would upload terrible, awful, zero effort games to Kongregate under clickbait titles. People would click on the games, watch an ad, and Kongregate would pay PaperCup for the view - and it didn't matter how bad the game was. All of PaperCup's games seemed to get a few thousand views, which is a few dollars - and that's something!

So, patterning myself after PaperCup, I created PlasticContainer. In a few weeks I'd make six games, including the now-removed Ultra Water War (my most-played, which Kongregate didn't consider a "real game"), and Spaceship Adventure. Eventually, I realized it was a lot of working making dumb games, and I stopped.

A year later (exactly a year later, entirely unplanned) I was watching a Yungtown video named "Video Game Review Training Video." As this was 2014, and fake simulator games were still all the rage, I decided to make a joke game patterned on the very old game Newgrounds SIM. It took me three hours.

A year later, it had 20,000 views. I thought that was pretty neat. I didn't think anyone actually cared about this dumb game.

A few months after that, it had over a hundred thousand. With a positive rating, and positive reviews. People actually liked this game making fun of YouTube LPers, and not in an ironic way. It baffles me. I urge you to go play this game and witness how awful it is.

So, naturally, with an actual success under my belt, I decided to make a sequel. That sequel is YouTube Let's Player Simulator 2016.

But why?

There's three reasons I decided to make a sequel to this game:

  • I'm actually a big fan of simulation and management style games, so I felt like I should actually put in the effort to make a good one, lest this be my only contribution to the world of YouTube Let's Player management games.
  • I'd played TubeStar, which is a pretty good YouTube Let's Player simulator on its own.
  • Gotta make that money.

I had a lot of false starts on this project. I wasn't sure whether to make it a web-based HTML5 game, a Flash game, or a mobile game. I wasn't sure whether to continue with the naming convention and name it YTLP2016, or name it something else (I was throwing around "Internet Gaming Superstar," which is why the project is named "IGS."). Eventually, I settled on making a Flash game like the original, but not using the Flash IDE. Instead, it would be in raw AS3.

Development

AS3 is a language that's very similar to JavaScript. It's actually essentially TypeScript, since they're both derived from the proposal that would become ECMAScript 4 (which was never implemented by browsers). So you can think of it like TypeScript: JavaScript with true classes and optional type checking. I was a big fan.

The problem with doing things in just AS3 is that you don't have the benefits of any Flash graphical tools. So you have to do everything from scratch. You can see in the source code to YTLP2016 that a lot of it is dedicated to drawing things properly. This wasn't a smart move.

YTLP2016 took me a long time to write. The parts I got done first were the random generation parts. Those are probably the most interesting: there's name generation, there's poster generation, and there's thumbnail generation.

The name generation uses Rant, a procedural text generation language I helped work on (actually, it uses an AS3 port of Rant Lite, which I originally wrote for the aforementioned HTML5 attempt at this game). Usernames, company names, game names - they're all generated from Rant patterns. Rant Lite doesn't implement most of the neat features of Rant, however, so they had to be implemented in AS3 (like casing).

Poster generation uses a large database of what I call "seed" images. These are a selection of 222 free stock photos that are all scaled to poster size. These seeds then go through a random amount of filters, from a list of eleven. These are all hardware accelerated with Adobe's custom shader language, which was hell to get working. Then the title is slapped on with a random font, and it's shipped to the game as a Bitmap.

Thumbnail generation is like poster generation, but without the filters. A game image is chosen from a list of 273, then a person image is chosen from a list of 35 (maybe - it's random), and they're slapped together with a number.

If you asked me what I thought the best part of this game was, it would be the random generation. I don't think this game would be worth playing without it.

The rest of the game is pretty straightforward. There's a few things in there that are kinda significant - for example, the simulated "community," which has no relevance to the game but is placed in there to make the game world feel more "open." But for the most part, it's just a whole lot of UI code.

The code is a mess, as a combination of the loads of useless UI code and the (relative) crunch near the end, trying to get this thing finally finished. If you look in the comments, you'll see a lot of people commenting on the bugs. I've tried to fix a few of them, but it's impossible.

This project is also the victim of bad choices coming together to screw me. For example, I designed the Player class to be only the player character, and then used it to represent any player in the game. That was a mistake.

Design

The design of this game was weak. I'll come right out there and say that.

There's nothing really fun about it, in my opinion, after about five minutes. What's there to do? Now, I also thought YTLP2014 was a boring game, so maybe I'm not the target audience. But growing your YouTube channel by just clicking buttons to make more videos isn't very fun. I don't really know how you'd make this game fun, unless you made it just like Game Dev Tycoon, which I believe is what YouTubers Life did.

The best parts of this game come from TubeStar. If TubeStar had procedural generation like this game does, I'd say it would hands down go to TubeStar.

Reception

Here's what really gets me about this.

YTLP2014 took me three hours to make. It is currently sitting at 364,805 plays on Kongregate. It has a 3.1 star rating.

YTLP2016 took me days of heavy work spread out over a few months. There's hundreds of hours of work in this game. It is currently sitting at 34,421 plays on Kongregate. It has a 3.8 star rating.

Is that what all my work is worth? 0.7 stars?

Conclusion

YTLP2016 was a waste of my time, but a good lesson in trying to jump on a trend just to make a quick buck. I think my time would've been better spent making a tycoon game that I would like to play. But, oh well. At least I finished it.