00:00
00:00
ninjamuffin99
I like Newgrounds stuufff

Cameron muffin99 @ninjamuffin99

Age 25

Money

Middle School Dropout

Toronto, Canada

Joined on 10/2/15

Level:
47
Exp Points:
24,423 / 24,520
Exp Rank:
631
Vote Power:
8.83 votes
Audio Scouts
10+
Art Scouts
10+
Rank:
Pvt. First Class
Global Rank:
2,922
Blams:
586
Saves:
2,472
B/P Bonus:
20%
Whistle:
Silver
Trophies:
101
Medals:
514
Supporter:
9y 5m 4d

ninjamuffin99's News

Posted by ninjamuffin99 - March 31st, 2020


THE HTML5 EXPORT GUIDE


Maybe it’s too early to write a guide for exporting to html5. The game jam ends at the end of April right? You wouldn't need to post until then! However I think it’s useful early on to get figured out so you can upload builds to Newgrounds for previews and play testing with others. So here’s a lil guide for a few good practices and whatnot that I've found working for me.


(Index of tips and tricks can be found here: https://ninjamuffin99.newgrounds.com/news/post/1090480)


SETTING VIEW TO SIZE OF WINDOW

In your Project.xml file, there should be a line (around line 20 or so) that says something like.

<window if="html5" resizable="false" />

Change “false” to “true”. What this does is allow the HTML5 version to be dynamically resized depending on the window. I’ve written about this almost a year ago, so I’ll quickly quote it from my previous write up.


Let's say your game was 300x250 in size. That's about the size of an average retro pixel art game I think. If you were to upload it to Newgrounds as a HTML5 file, you would have to set the viewport to 300x250 exactly, and it would be a tiny window on screen. Even if you tried to set it to a higher res, it would just be a tiny window within a window. It goes the other way too. Let's say you had a 1920x1080 res game, and you wanted to upload it to NG. Well, if you don't have proper scaling setup, the viewport only shows a small portion of the full image.

iu_106005_5520715.png

(Let's say the browser window is the Newgrounds viewport. Works basically the same way anyways. The browser window in this case is about 680x460. The game here is about 200px. As you can see it doesn't fit the full window nicely)

iu_106006_5520715.png

(And in this instance, the game is like 1000px, way too big!)


There are likely a few solutions to this. Luckily, OpenFL has a super simple one. It's essentially a switch you can flip. OpenFL has a little file you can edit, called Project.xml. It has all sorts of parameters, and modifacations you can make to make the program work differently. XML is similar to HTML in style, so I'll just post a code snippet and explain.

<window if="html5" resizable="false" />


the "window" part says that it wants to modify the window attributes. The "if" says this line will only work if the html5 code define is set (it gets set automatically depending on which target you are building for). Now you'll see what we're after. The "resizeable". This sets it so the program display scales nicely to whatever window size we want. All we have to do is change "false" to "true". And voila!


iu_106007_5520715.gif


This has benefits especially if you’re making a MOBILE game on Newgrounds using HaxeFlixel. When playing a webgame on mobile, it ignores your dimensions set in the backend of the project system, and just FULLSCREENS the game to the mobile browser window, which can vary depending on device, and browser. You can still have the INTERNAL resolution set independently from the browser window, by having either variables set in the Project.xml file (the window settings on line 17 or so), or having it set in your Main.hx file, when initializing the FlxGame.


SOUND EFFECTS AND MUSIC FORMAT


I’ve seen conflicting things about which format to use when targeting HTML5. I’ve seen a few .wav files, some put in .ogg, and I’ve been told that .mp3 doesn’t even work. I’ve made a bunch of games on NG, using all these various methods, and here’s what works best.


You probably don’t want to use .wav, since certain devices/browsers can’t properly decode it and when you run into a crash you’ll have to change it to a different format anyways.


You can use .ogg in most cases, however I’ve noticed that Safari on iOS (maybe iOS web browsers in general) does NOT decode .ogg properly, thus resulting in a broken game. I remember first encountering this when @TomFulp PM’d me that the Christmas ADVENTure collab of 2018 wasn’t working on his iPhone. Up until then I always thought that things worked fine. After a morning of debugging, sending different builds, getting different error logs from Tom, I finally figured out that it was the .ogg files that were causing the issue. It miiiiiight also be busted on Safari on Mac, but don’t quote me on that. Also there could have been some backend update to HaxeFlixel, OpenFL, Lime, Safari, or whatever else that fixes this since then (or if you’re reading this in the future). But I wouldn’t count on it, and I can’t test it myself.


That’s why I always use .mp3 for my sounds and music for HTML5. It works on all the web browsers. Simple as that. Though there may have been a point a few years ago when MP3 files just didn’t work though. Also don’t quote me on that though.


RANDOM PERFORMANCE ISSUES ON CERTAIN DEVICES


This part is more of a lookout rather than tips, since I haven’t found a completely solid fix for this. What it boils down to is that when using certain Intel based mobile CPUs, and when using Chrome, your games might just run like ass. It doesn’t matter if you have a brand new laptop with an i7 with a big graphics card, it just runs like shit. My theory is that there’s some fucky thing Chrome does, and it makes the CPU use the integrated graphics on the CPU instead, and intel integrated graphics are shit lmao. AGAIN I CANT CONFIRM THIS TOO MUCH OTHER THAN THE VERY FEW PEOPLE WHO HAVE RUN INTO THIS ISSUE AND BROUGHT IT UP WITH ME! But the one thing that was always common was that they were running an intel CPU. I only recently figured out that when they swapped to Firefox, it ran just fine. And it’s not just a performance issue with the game, since I’ve had games that ran better through a PHONE’S web browser than Chrome on a laptop. Just something to keep your eyes out for.


Tags:

10

Posted by ninjamuffin99 - March 26th, 2020


I'm writing various little tips and tricks guides for HaxeFlixel (since there's currently a gamejam on Newgrounds going on). This one is going to assume you've at least been through the basic tutorial on the HaxeFlixel website, so that you can display a sprite, and make it play an animation.


FLASH/ANIMATE SPRITESHEET GENERATION

Adobe Flash CS6 introduced a sprite sheet generator. Don't know what a sprite sheet is? Basically it's different frames of your animation all packed into a single file. While Flash/Animate is a VECTOR based program, it's all going to be exported as PNGs / RASTER essentially. You will NOT need to worry about smoothing vectors for better performance or anything like that.


Flash CS6 and above (Adobe Animate) have an inbuilt spritesheet generation tool. Actual flash project files (.fla) can be used as long as they're from a current or PREVIOUS version of flash. CS3 files work in Adobe Animate, Flash 8 files work in CS6, BUT CS6 files won't work in flash 8. You get the gist.


Don't have Adobe Animate or CS6? My suggestion is to 'acquire' either of them through similar means of how you 'acquired' that certain older version of Flash you have huh. Yeah I know you, nobody out here actually paying for Flash CS3 so come on hook yourself up with Adobe Animate while you're at it if you catch what I'm saying.


With that being said, I'm going to pop open a file in Adobe Animate. For this example I'll use assets from my game Boho In Baller Land, these specific art assets were made by my boy @Carmet so shoutouts lmaoo


iu_104377_5520715.jpg


WORKFLOW

  1. Make an animation of some sort (punching, walking, etc)
  2. Put the frames into a Movie Clip
  3. Export all the Movie Clips

Pretty simple workflow right? Let's walk through this with Boho the hobo. First, the animations are already made (thanks Carmet) so all we need to do is put them into a movie clip. Oh wait! Carmet did that too!

Artist who work in flash generally know their way around the software a bit, so I find in instances like this it's not too much to ask of your artist to organize different animations into separate Movie Clip files. Simplifies your life, and they were probably going to have a similar workflow anyways.

The animations are separated into different Movie Clip files now. In the LIBRARY window, you'll see a list of all of the movieclips.

iu_104378_5520715.png


Let's say we want to export 'HoboGun' and 'HoboIdle' into a spritesheet. Hold CTRL and click on the Movie Clips you want (if you didn't know that hold CTRL trick, it works pretty much universally with most programs!). Now that you have the animations selected, right click on one of them, and select "Generate Spritesheet" from the dropdown

iu_104379_5520715.png


This should open up a new window of some sort. What you want is Image Dimensions to be on 'Auto Size'. You want Image Format to be in 'PNG 32bit', Algorithm to be 'Basic', and Data format to be 'Sparrow v2'. You also want the Trim and Stack Frames boxes checked. At the bottom of the window is where the image is going to be saved. Click on 'Browse...' to select a new location, probably your 'assets/images' folder in your HaxeFlixel project.


When you're ready press 'Export'

iu_104380_5520715.png


That should give you 2 FILES. One is the actual image file, and the other is the DATA file, the one thats a .xml file. If you open it up in Visual Studio Code, you might be looking at all this weirdo XML data that you don't understand how to use, don't worry about it you don't have to directly deal with it. We're going to be using an inbuilt HaxeFlixel function to parse it.


The tutorial on the HaxeFlixel website taught you that you can do loadGraphic() to load all your sprites right? Well that isn't the only way to load in your sprites.


Let's say we want to update our player graphic, in Player.hx (which extends FlxSprite). And let's say the code currently looks like this

loadGraphic('assets/images/player.png', true, 32, 32);
animation.add('idle', [0, 1, 2, 3, 4, 5], 30, true);
animation.add('gun', [0, 1, 2, 3, 4, 5], 30, true);

This isn't too bad right? HOWEVER when working with hand drawn animations in Flash, there can be a LOT of frames. Let's look at some code from when I was bad at coding and made Breathing Simulator with @BrandyBuizel

loadGraphic(AssetPaths.breathIn__png, true, Std.int(48670 / 62), 1038);

animation.add("idle", [0]);

//This is hell brandy why 60 fps ooof
animation.add("Inhale", [0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 1, 1,
2, 2, 2, 2, 2, 2,
3, 3, 3,
4, 4, 4,
5, 5, 5,
6, 6, 6,
7, 7, 7,
8, 8, 8,
9, 9, 9, 9,
10, 10, 10,
11, 11,
12, 12,
13, 13,
14, 14, 14,
15, 15, 15,
16, 16,
17, 17,
18, 18,
19, 19,
20, 20, 20,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
22, 22, 22, 22, 22,
23, 23, 23, 23, 23,
24, 24, 24, 24, 24,
25, 25, 25, 25, 25, 25, 25, 25,
26, 26, 26, 26, 26,
27, 27, 27, 27, 27,
28, 28, 28, 28, 28,
29, 29, 29, 29, 29,
30, 30, 30, 30, 30,
31, 31, 31, 31, 31,
32, 32, 32, 32, 32], 45, false);

//pause and shake frame 54
animation.add("Exhale", [33, 33, 33,
34, 34, 34,34, 34, 34,
35, 35, 35,35, 35, 35,
36, 36, 36,
36, 36, 36,
37, 37, 37,
37, 37, 37,
38, 38, 38,
38, 38, 38,
39, 39, 39,
39, 39, 39,
40, 40, 40, 40,
41, 41, 41,
42, 42, 42,
43, 43, 43,
44, 44, 44,
45, 45, 45,
46, 46, 46,
47, 47, 47, 47,
48, 48, 48, 48,
49, 49, 49, 49,
50, 50, 50, 50,
51, 51, 51, 51,
52, 52, 52, 52,
53, 53, 53, 53,
54, 54, 54, 54, 54, 54, 54, 54, 54,
55, 55, 55,
56, 56, 56,
57, 57, 57,
58, 58, 58,
59, 59, 59,
60, 60, 60,
61, 61, 61], 50, false);

As you can see, that was pretty hell to type all out by hand. And what if Brandy wanted to adjust some timings on part of the animation? Well you'd essentially have to retype and reorganize all that. Yuck. However with this spritesheet workflow, we are going to be able to smoothly integrate it in, while still having the ability to adjust the animation however needed, without having to refactor anything.


Let's go back to Boho

loadGraphic('assets/images/player.png', true, 32, 32);
animation.add('idle', [0, 1, 2, 3, 4, 5], 30, true);
animation.add('gun', [0, 1, 2, 3, 4, 5], 30, true);

this is going to be switched to this

var tex = FlxAtlasFrames.fromSparrow('assets/imagse/HoboMoveSet.png', 'assets/images/HoboMoveSet.xml');
frames = tex;

animation.addByPrefix('idle', 'HoboIdle', 24, true);
animation.addByPrefix('gun', 'HoboGun', 24, true);

animation.play('gun');

So let's walk through this line by line.

var tex = FlxAtlasFrames.fromSparrow('assets/imagse/HoboMoveSet.png', 'assets/images/HoboMoveSet.xml');

This line creates 'tex' variable which we will use as our texture. It can be called anything you want, but I stick with tex. It uses a function from the 'FlxAtlasFrames' class, fromSparrow() . This essentially takes all your data from your XML file, and uses it to slice up and organize your spritesheet into data that's usable with HaxeFlixel. This data is now in the same format as 'frames' which is a variable that EVERY FlxSprite object has. So since it's the same format, we simple just have to do

frames = tex;

easy.

To actually add animations, that looks like this

animation.addByPrefix('idle', 'HoboIdle', 24, true);
animation.addByPrefix('gun', 'HoboGun', 24, true);

we're still using 'animation' (which is another variable that every FlxSprite object has), but instead of using add() we are instead using the function addByPrefix(). To explain this let's go into our spritesheet's XML file.

<SubTexture name="HoboGun0000" x="0" y="0" width="292" height="255" frameX="-6" frameY="0" frameWidth="370" frameHeight="255"/>
<SubTexture name="HoboGun0001" x="0" y="255" width="370" height="251" frameX="0" frameY="-3" frameWidth="370" frameHeight="255"/>

The 'name' is what you called the MovieClip within FLASH, followed by 4 numbers, which are the current frame. What you want is the actual name of the animation. We'll use 'HoboGun' as an example for now.

animation.addByPrefix('gun', 'HoboGun', 24, true);

Instead of putting each and every frame number into an array as you might do normally, instead we are using this function to tell HaxeFlixel to read it's own data (which it got from the XML), and add ANY animations that start with 'HoboGun', into an animation. And that's it! The animation is ready to be used just as you would a normal animation!

animation.play('gun');

iu_104382_5520715.gif


EPILOGUE: RESIZING

If you're sprite is bigger than you expected, you can resize it using the `setGraphicSize()` FlxSprite function. After you do this function though, you will also want to run 'updateHitbox()' and set 'antialiasing' to true.


setGraphicSize(0, 100);
updateHitbox();
antialiasing = true;

setGraphicSize() doesn't need both inputs to be used. If you put 0 in one of them, it scales the sprite uniformly across that axis. If the sprite graphic is 200x100, and we do

setGraphicSize(0, 10);

The new width will now be 20, and the height being 10. AND REMEMBER TO DO UPDATEHITBOX() OR ELSE UR SHIT GONNA BE SCREW-Y


To leave it off, here's an image that may or may not inspire you.

iu_104381_5520715.png

Here is my first experience with HaxeFlixel, almost 4 years ago. This was also pretty much my first experience with anything code related in general. It took me a solid day or so to figure out. At any point in that time I could have gotten so frustrated that I just gave up and moved onto a different framework. In the end I stuck through with HaxeFlixel, and now every game I make uses it, and it taught me a LOT about programming and game development. I would not have made the games I have, and then I probably would not have worked with the same people I have, if it wasn't for me following through with it and keep trying until I fixed my issue. Now get to coding, you still have a little over a month to make a game for the HaxeFlixel jam!


Tags:

26

Posted by ninjamuffin99 - March 25th, 2020


Newgrounds is currently hosting a HaxeFlixel game jam! Nearly every single game I have made on NG has been made with HF, so I’ve been around the block with this little framework. HaxeFlixel has been pretty pleasant to work with for me personally, HOWEVER there are definitely quirks and odd things I’ve noticed here and there. To help all the potential newcomers to HaxeFlixel, or even programming in general, I’ll be writing a few tips and tricks posts here on NG.


At the end of each post I'll leave a few potential future subjects, leave a comment on which ones you'd like me to write up next.


Most of these will assume that you’ve been through a barebones tutorial of HaxeFlixel, probably the one on the HaxeFlixel website, but certain ones will be applicable for general programming knowledge.


Since this is on the frontpage I'll also use this as a little index

  1. Command Line Guide (ur already reading it lmao)
  2. Working with Flash art/animation
  3. HTML5 export tips


QUICK COMMAND LINE GUIDE

Here’s something that not too many give thought into for novice programmers. The command line can be a bit daunting for people who just want to dip their toes into frameworks like HaxeFlixel. Here’s basically most of what you need for basic HaxeFlixel navigation, installation, and general use. It’s not as scary as you think.


First off, to open the command line on WINDOWS, type ‘cmd’ into either Windows search, or press Win + R, then type in ‘cmd’.


iu_104165_5520715.png


THE CD COMMAND

cd <directory>

‘cd’ stands for ‘change directory’. At least that’s what it does. Allows you to change directories. Say you’re in your user folder on your computer

c:\Users\ninjamuffin99>

It might look something like that. Let’s hop into our Documents folder

c:\Users\ninjamuffin99>cd Documents
c:\Users\ninjamuffin99\Documents>


Easy as that, you just moved into your Documents folder.


Maybe you want to create your HaxeFlixel projects in a specific folder within your documents, one called ‘HaxeFlixel-Projects’. Easy. type in ‘cd HaxeFlixel-Projects’ (NOTE: for the sake of tutorial, create this folder in Windows File Explorer as you would normally create a folder, and THEN follow this step)


c:\Users\ninjamuffin99\Documents>cd HaxeFlixel-Projects
c:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects>

Woah look at that you’re in… but how do you get out? Two periods, ‘..’, refers to the relative parent directory when it comes to all this fancy command line stuff. Right now we’re in ‘HaxeFlixel-Projects’, so ‘..’ refers to ‘Documents’. If you use ‘cd ..’ you will move to ‘Documents’


c:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects>cd ..
c:\Users\ninjamuffin99\Documents>

Wanna use it again? 

c:\Users\ninjamuffin99\Documents>cd ..
c:\Users\ninjamuffin99>


Just like that you’re in your main Windows user directory. While this example uses Windows, the ‘cd’ command is pretty much universal across Windows, Mac, and Linux. Let’s go back to our projects folder. However this time let’s try out a quick little feature of most command lines, tab auto-complete. A few letters into typing the ‘Documents’ part of ‘cd Documents’, press the TAB key on your keyboard. It should autocomplete! It saves a bit of time, and I guess prevents potential typos. Try it with ‘HaxeFlixel-Projects’ as well, since that’s a handful to type out so often.

c:\Users\ninjamuffin99>cd Documents
c:\Users\ninjamuffin99\Documents>cd HaxeFlixel-Projects
c:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects>

There we go. That’s all nice and handy, but how do we even figure out what folders we can move into? How to we LOOK at what folders are in our current folder?


DIR / LS

dir (Windows)
ls  (Mac and Linux)


These commands work in pretty much the exact same way. They show you the current directory.

C:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects>dir
Volume in drive C has no label.
Volume Serial Number is 7CF9-09E9
 
Directory of C:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects
 
03/25/2020  12:04 PM    <DIR>          .
03/25/2020  12:04 PM    <DIR>          ..
03/25/2020  12:04 PM    <DIR>          Cityhoppin2
03/25/2020  12:03 PM    <DIR>          CoolGameHaha
03/25/2020  12:04 PM    <DIR>          Vervian
              0 File(s)              0 bytes
              5 Dir(s)  168,012,500,992 bytes free
 
C:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects>

Typing in ‘dir’ will output something like this. This is what it looks like in Windows File Explorer


iu_104167_5520715.png


And that’s it! Simple command, but useful for knowing what is where. Assuming you went through the HaxeFlixel tutorial, let’s use ‘CoolGameHaha’ as our current project. (This should be a template file created by Flixel, don't know what I'm talking about? Go here)

c:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects>cd CoolGameHaha
c:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects\CoolGameHaha>


CODE

code <directory>

If you have Visual Studio Code installed (which is the recommended code editor), you will also have ‘code’ available as a command. It opens up whatever input directory into a new window of Visual Studio Code. We are going to use it to open up our current project easily.

code .

This command is using ‘.’, a single period, as a directory. The double period ‘..’ refers to the current relative PARENT directory. A single period ‘.’ refers to the CURRENT directory. So run this should pop open Visual Studio Code in the current directory!


c:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects\CoolGameHaha>code .

iu_104166_5520715.png


Now you can get working!


OPENING UP THE WINDOWS FILE EXPLORER

Maybe you want to open up the Windows File Explorer. You might want to drag and drop some files, or maybe you just want a nicer visual of your directories or whatever. From the command line this is done VERY easily.

start .

Similar to the ‘code’ command, we are using it in our current directory.

c:\Users\ninjamuffin99\Documents\HaxeFlixel-Projects\CoolGameHaha>start .

Opens up this!


iu_104169_5520715.png


Finally, I’ll show you how to do it in REVERSE. What do I mean by that? I mean using the FILE EXPLORER to open up the command line in the current directory.


In the address bar of the File Explorer, you can type shit in

iu_104168_5520715.png


Click on it, type in ‘cmd’ and press enter


iu_104171_5520715.png


This should open up a command line in your current directory (from File Explorer)


iu_104170_5520715.png


If you’re a bit uncomfortable doing a bunch of command line navigation, this might be a nice in-between.


That’s it for this quick little guide, it’s not HaxeFlixel specific, HOWEVER I believe it’s still very useful for people who are new to HaxeFlixel, as HaxeFlixel often requires you to hop into the command line for one reason or another.


I’ll try to write a guide everyday or so for the next week or so.

Drop a follow lmaooo and happy coding with the game jam!


Tags:

41

Posted by ninjamuffin99 - March 14th, 2020


As of writing my boy @Thriftman is doing a charity livestream. If you're reading this he's live right now, so hop in and toss some coin his way.

I am currently trying to beat minecraft hardcore mode where you guys donate certain amounts to fuck me over. Everything that is donated today will go to an Irish charity known as Trocaire. I will be streaming for 12 hours normally but if I hit 100 euro raised I will go an extra 12. If you donate I will have to at least put your first name down on the donation card and the amount that you donated. Whisper me your first name if you are uncomfortable sharing it publicly.


Go donate

https://www.twitch.tv/jackkinghof


MUSIC COMMISSIONS

You got a cartoon you're working on that needs a cool ass score/soundtrack to? Have a game that you want a slick OST? Maybe you want some cool rap beats to uh 'spit some heat to', as the kids say.

Well I'm OPENING MUSIC COMMISSIONS


I've done the original soundtrack and music for toons like Duncan & Jones, I've threw together some albums, and uhhh I need some money lmao.


Here's a small little slice of what I been cookin, HOWEVER I am able and open to doing other styles of music.


If you don't feel like listening, the main styles I do are shit with piano, chiptunes, wacky hiphop, ambient-ish shit, and cool ass retro electronic. And like I said, if you ain't hearing anything suitable, I'm definitely open to doing new and different styles.


I been around the block a few times when it comes to making music for other people so things will hopefully go smoothly.


PRICING

Usually things go for about 50$ USD per song, doesn't matter the length. HOWEVER that's very flexible. You want me to score a toon you made and make a bunch of music in a similar style/mood? I won't force you to pay 200$ for 4 songs like that, think of it like a bundle deal.

A loop would be priced in a similar way. It all matters on a case by case basis

Basically if you're cool, we'll find what works best and roll with it. If you're not cool, I'll still get you hooked up probably.


CONTACT

You can write me on Discord: ninja_muffin#9104

You can write me here on Newgrounds through PMs

You can write me through email: cameron.taylor.ninja@gmail.com


Out of all of these, I found Discord to be the most pleasant way, but do whatever works best for you!


So give me money thanks lmao i gotta feed my wife and kids and my dumbass grocery store job ain't givin me hours lmaooo


iu_101133_5520715.gif


12

Posted by ninjamuffin99 - February 12th, 2020


just kidding lmao

i love NG

iu_93261_5520715.gif


60

Posted by ninjamuffin99 - January 16th, 2020


HOT ALBUM

My boy @Snackers made a cartoon series right here on Newgrounds. It's called Duncan & Jones. Go watch episode 1 and then watch episode 2. They're less than 10 minutes each and they real cool. Before the first episode came out, Snackers came to me and asked if I wanted to make the music for it. I said yeah, and got hustlin. Episode 2 came out in early December of 2019, and I made more music for it. Enough music that I figured I'd be able to whip together a cool ass lil EP or album or whatever. So that's what I did.


Duncan & Jones OST: Hypermix DELUXE is available on Bandcamp (pay what you want)


iu_86152_5520715.jpg

The front cover of the album


iu_86153_5520715.jpg

The back cover of the album


For this release I wanted to make it feel like an actual album of sorts, while still making sure people knew where it came from. I made sure to add OST into the title, or else I thought that people might think that Duncan & Jones were the musicians lolol. I got @Snackers and @Thriftman , the voices of Duncan and Jones themselves, to do a bunch of dumbass little skits for the album and I popped them on there. I then thought that it'd be cool if I got ALL of the music used on Duncan & Jones so far onto the album. I asked each musician who had music used in the series (shoutouts to @Kawaisprite , @theburger20052 , @mykerthegeek , @codatrigger ) and they all said it was cool if I could pop their songs onto the album as bonus tracks. So this album has EVERY song used in Duncan & Jones so far. I also got my boy SillyDouglas (@mykerthegeek) to do a lil remix of one of the songs. God bless that boy.


As you can see I also made a back cover. Really the only reason why was because I thought it'd be cool to have something like that. Right now I don't plan on making CDs or vinyls or anything like that, although they'd be cool. I think a back cover with a tracklist is a nice lil touch hehe.


If you download the album off Bandcamp (pay what you want, put 0$ and u good to go) you also get a few lil goodies/art pieces as a thanks. GO DOWNLOAD.


HOT CARTOON

I made a dum lil Metal Gear Solid: Peace Walker cartoon with my man @Wandaboy. I storyboarded, he animated. We got help from @Carmet and @HenryEYES. I touched some things up and then we released it real quick and easy.


Go rate 5 lol


Other things

Been hustlin wit coding shit. Hopefully can whip up a super small lil game for pixel day woops that shit is a week away how tf time been flyin by so fast. Oh well keep ur eyes open maybe I'll shit out a game lol



Tags:

13

Posted by ninjamuffin99 - January 1st, 2020


We really out here. Been a while since I did a big ass newspost. I been dumb and lazy recently lol. Oh well read on.


AND IF I FORGET SHIT ITS BECAUSE IM FINISHING UP WRITING AND ITS 3AM AND I WANT THIS OUT LOL


(Someone remind me to add links to everything when I wake up lmao)


WARNING THIS SHIT LONG

THESE KEEP GETTIN LONGER AND LONGER


NO INTERNET BUT STILL HUSTLIN

Right after Christmas of 2018, I went to my old foster parents house for a few weeks. I didn’t have internet at my moms house, and I was working on and finishing up my first commercial video game, a deluxe version of Monster Mashing. I had to borrow my foster parent’s old stinky laptop, but it got the job done. However Monster Mashing didn’t actually get fully completed there. At that point in time, we were aiming for a Steam release, so I was getting all the API stuff for both NG and Steam sorted out while I had constant internet access. After a few weeks I got a bunch of the API stuff wrapped up and fixed a few issues with the game. The game was juuuust about ready to release, just a few more fixes. 


But I had to go back home to my moms house. We didn’t have internet because of dumbshit and bills and whatnot she just lazy with them lol. We lived a few minutes driving out of my dinky small town, but we didn’t have a car or anything at the time. To upload and keep in contact with all the NG homies, pretty much every single day I would walk about +1hr in the winter cold all bundled up so I can nab wifi from the library for the day. I definitely prefer having actual home wifi, but walking wasn’t as bad as it seems. Except one time. It was VERY windy and cold and snowing and shit. If it was slightly more snowy you could call it a blizzard. But there was nothing more satisfying than finally getting to the library and being all warm and cozy. Since I walked to and from the library pretty much every single day, people started seeing me often as they drive by. Some lovely and nice people even offered rides, which I would always take. ANYWAYS, at this point in time, Monster Mashing is just about to release. Valentines Day 2019. 


This was technically my first commercial game. Entering the BIG LEAGUES of game dev biz. I didn’t get my hopes incredibly high or anything, but in the back of my mind I did know that this could have been some crazy success that got me rich and famous and out of my small town. But expectedly, that didn’t happen. Monster Mashing came out, and got a few sales here and there. I’m not sure how many specifics I can share, but I’ll say we had to meet some threshold before we got paid, and it took a month or two of sales before we got there lol. There could have been a few things that contributed to this. We released on Valentines Day, and Nutaku was doing a big ass sale on that day. It’s like releasing a brand new full priced game during a big Steam Sale, probably not a good move. I’m not blaming or complaining or anything though, I find all the biz side of it just as fascinating. And live and learn yo heheh. Monster Mashing actually also had an exclusivity contract of sorts with Nutaku. We had to keep the full NSFW version of it exclusive to Nutaku for a few months, in exchange we get some extra press or something like that. And by that, I suppose they sent out a press release or something like that to some certain journo’s, because day 1 we had a few quick little articles written about the game. 


There were a few more articles here and there, but they more or less said the same things. It was definitely interesting to see this. So that’s it right? Game released, didn’t make a huge splash or anything, game biz goes on. Well, we still had the Steam release coming up. And that’s where things get a bit more spicy. I described it in more detail in another newspost, but the basic gist is that we had a character in the game that was a bit… loli lookin. Steam wasn’t cool with that, so we got BANNED from Steam. An interesting side effect of that is that there was a small little article written about that too. This one felt different than the first few things, it felt a bit more organic.


iu_82323_5520715.png

https://www.oneangrygamer.net/2019/04/monster-mashing-deluxe-sexy-monster-girl-endless-runner-banned-from-steam/82364/ 


It took me a while to notice this article, but when I did, I actually wrote up the author for a little follow up with more info. It was definitely an interesting and kidna cool experience.


iu_82322_5520715.png

https://www.oneangrygamer.net/2019/05/valve-has-no-visible-rule-book-for-adult-games-on-steam-says-monster-mashing-deluxe-dev/83967/ 


As far as I know, this is the first sorta ‘press’ experience I’ve had for game shit. The fact that it’s from an unfortunate situation doesn’t take away from it too much. And also I don’t hate Steam or anything lololol, for the most part they pretty bro.


To rewind juuuust a bit before this article stuff, in the middle of April or so I was gonna do a small little gamejam with my crew. LoganPhresh as lead art, wit Digimin doin level design, NickConter doin additional animation, and my boy Fu helped out with some concept stuff. 


https://twitter.com/LoganPhresh/status/1129439726979682305 

https://twitter.com/ninja_muffin99/status/1168566839137296384


Sadly this game aint get finished. Maybe one day. 


I was making this one moochin off my old foster parent’s wifi again. I was there trying to get things setup so that I could get a trip to Philly going for PICO DAY. In early January was when I got the invite, but there was a lot of stuff I needed to get sorted out for the trip, and my life was very NOT sorted out at the time. I’ll touch on Pico Day shenanigans later hehe.


In late April I finally got internet setup again at my house. And since im a cool ass hustlin bitch I decided to make a game. The Ludum Dare was coming up, so I got my boys together to make a lil game. The weekend that I got internet, I made Paristroyer with Arzonaut, Digimin, FuShark, and Nerostratos. At the very least, we got the game out and released it, somewhat… It’s still very busted and broken lmao I had like 10hrs of sleep total for that jam. It has pretty cool art so its good enuf lol. Somehow, that game was my first ever monthly 1st award.


iu_82320_5520715.jpg


This is another game that’d I’d definitely like to fix up and make an actual game, despite its flaws. I like the world.


ALSO in May was when I made SHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOM.


I like this game because it busted shit and made NG look weird hehe.

iu_82321_5520715.jpg

iu_82329_5520715.png

SHOOOOM was inspired by Jojo here on NG. I also like SHOOOOOM because it’s like Newgrounds culture specific. Like a Newgrounds meme. I didn’t create SHOOOOOM, but only added onto it. Somethin I like about that.


Dang May was a bit wild. I ALSO helped put out a cartoon for Pico Day. Pico’s Awakening. I did some writing bullshit on it, and some music/sound effects. This was the first Pico Day in a few years that I didn’t make a game. Although I’m glad I was at least a part of a Pico Day submission of some sort. Shoutout to the crew.


BOOTLEG NG DISCORD, AND PODCAST SHENANIGANS

Pico Day was a bit depressing to be honest. There was of course the part where I was supposed to go but couldn’t make it, but there was a livestream going on and I just couldn’t take myself away from it. Neither could a few of my pals who also didn’t go to Pico Day. The livestream didn’t have anything really, just a webcam. No toons, no art, nothing like that. Really felt like you were the dude at the party that was just watching everyone else have fun because you couldn’t talk to anyone. It felt pretty pathetic, but we just couldn’t take ourselves away from it. And when it ended, the whole day felt wasted and like we missed out on Pico Day and Newgrounds spirit. However, I had a little ace up my sleeve. I had one final trick to have fun with my pals. Make something feel like a Pico Day. 


In September 2018, the official Newgrounds discord server got deleted. There’s a bit more detail in that which I could go into, but I was pretty bummed about that situation. My birthday was also in September, and I was talking to my boy Ivan. I told him all i wanted for my birthday was a new Newgrounds discord server as a dumb joke actin all stubborn and shit, then Ivan made a dumbass novelty joke server. It was just me and him in it doing nothing for months and months. Until Pico Day.


On Pico Day night, I got my whole crew in that dumbass joke server. Told everyone to act like it’s the OFFICIAL newgrounds server. 


iu_82325_5520715.png


We hopped in the only voice channel and just bullshitted around with whoever would join. That night I talked with people who I knew of for ages, and also people I’ve never seen ever before. I met people that I still talk to. Maybe it was just a weird coping thing, but this shit felt like Pico Day. Talking to Newgrounds weirdos and celebrating the community and how it brings us all together to create some dumb shit.


The next few days were filled with rascal shit of all sorts. There were NO mods, but it was pretty tame

iu_82324_5520715.png

Snackers and Krinkels have a heated debate


iu_82326_5520715.png

The gang being obnoxious on the frontpage, our marketing strategy.


The Discord is still pretty bumpin and thriving. I truly do think it has potential to be great for the community. Not even this one in particular, just some sort of spot where you can DEFINITELY just meetup and hangout and chat with other Newgrounds people. Twitter makes it weird to interact and make friends. Things can get one sided. Maybe you follow someone and they don’t follow back. Even if they do, it’s a different dynamic than say, talking with someone for days, weeks, months, and befriending them through something like Discord. I like to think this particular Discord is doing some cool things right. First off I made FulpTron, which is a Discord bot that basically is a Newgrounds/Discord integration bot. You sign into the Newgrounds API and it basically links your NG and Discord account. It has a few other cool features, which I describe in this newspost, so peep that. 


The other shit we do on this Discord has been hosting collabs. I’ve seen a few times of collabs being hosted in discord servers, then once the collab comes out, the server basically dies. And all these people who talked in this one central place go their separate ways in a sense. Maybe it’s for the better, maybe that’s just how it’s been. The sorta philosophy was that the collab was hosted in a side channel of the server, a secret one. Once collab is done, people can still interact and talk with each other in the main channel. It also is a pretty decent source for collaborators. Once collab is done you’d also do shit where people still have the roles for the collab chat, almost like a badge of sorts. The 2019 Sketch Collab was organized first, then Christmas ADVENTure 2019 was hosted and organized in the server too. Both of those have wrapped up and I like to think it created cool engagements and interactions with people in the server. Looking back, the old official Newgrounds server has a similar backstory of sorts. That was originally a server for the DBZ Collab. However it morphed into a general Newgrounds server. The people from DBZ collab still had a role for being in it. Maybe that was some unintentional inspiration.


Going back to the bootleg NG server, it’s definitely had its ups and downs. There’ve been times when I’ve thought about just bouncin and ditchin it. But in the end I still really do think something like this has been good. Maybe I’m just biased. A LOT of my pals I met through the old official NG server, and now this server. It’s been nothing but beneficial to me. Maybe I see it as if it could be so great for me, it could be great for some other kid who wants to get into NG community. Shoutouts to Cymbourine for being co-admin and not letting me go crazy with power.


One of the people I met through the Discord, waaaay back on that Pico Day night, was littlbox who co-hosts the A Couple Of Crickets podcast. Pretty quickly I became buds with him and Goodl and eventually they asked me to be on an episode. Before then I was already a little bit of a fan of the podcast. When I didn’t have internet at my house, I would listen to an episode on my +1hr walk home. Me, littlbox, and GoodL were in voice call in the server, when someone brought up the idea that it’d be cool if the podcast was live recorded in a Discord of some sort. So I ended up helping them set up some of the server stuff, and then when it was time to record, we popped in the Discord and did our thing. I was a bit worried it might be someshit like only 1 person would show up, but my homies showed up and listened to the first ever live ACOCk podcast with me as guest. And pretty much every single episode of the podcast has been recorded live ever since. I also helped them out here and there with stuff too. Like making additions to FulpTron to play Newgrounds music. I even eventually got to pop on as an on and off segment “Cam’s Corner” lmao. Love them boys


I got into some other podcast shenanigans. WillKMR eventually hit me up to help him out with the Grounds Patrol podcast. This was another podcast that I was a fan of before I was asked to get involved with. I helped organize a good chunk of the episodes. Most notably, the Smash Collab Roundtable, the Madness Community Roundtable, and Krinkels and Swain. At some point I also started editing them too. Not sure what else to say other than ur boy out here hustlin hustlin hustlin I’m everywhere on NG baby.


One last little podcast thing I should mention is that I’m dabbling with a little thing with my boy HenryEYES. In September we interviewed StaticSkull, a somewhat infamous Newgrounds user from like 2016-2017. What I like about that one is that without a frontpage or really any exposure like that, that podcast interview got a little over 3K listens on NG. 


MUSIC SHENANIGANS


For the past few years I’ve been on and off with music stuff. It wasn’t until 2018 when I started feeling like I was a little bit competent with it. This year felt much more like the music year for me. I dropped some stuff here and there, and in June I made this tweet

https://twitter.com/ninja_muffin99/status/1139595363805872128 


And surprisingly I followed through

I release Gamerjuice0 on Bandcamp: https://ninjamuffin99.bandcamp.com/album/gamerjuice0


This album has been sorta in the works from about late-ish 2018 right up until it came out. While I didn’t have internet early in the year, I’d whip up music tracks. And since I couldn’t just publish songs when I was done with them, I was able to stockpile them all up and post them all at once in the album. Then over the next few weeks I uploaded a bunch of stuff to NG. I really like the way things turned out on this. It’s pretty much a full length album of chiptune and shit like that. 


I still have a hard time calling myself a musician. I simply don’t see myself as one. I see myself as a programmer / game developer. However it seems like others saw me as a musician of some sort. In about July, my boy Snackers hit me up to make music for his cartoon series Duncan And Jones. 



There’s something about Duncan And Jones. Snackers told me I could just do whatever for the music. Things could have gone many different directions. There was something inspiring about Duncan and Jones. It felt really easy to make the music for it. At the time the style I aimed for was a bit out of my comfort zone. It used a bunch of 80s/90s ass synth sounds for that oldschool ambient anime style shit. While I did use a few tracks I just had laying around on my computer and repurposed them, I pretty much whipped up and made the soundtrack for episode 1 within a week or two. The way I did music was that Snackers basically gave me a rough cut of the toon. More or less what the toon was gonna be but without all the animation fully in place. Then I just made whatever I felt was fitting. I think there’s something to be said about the VISION of Duncan and Jones, or at least the vibe it gives off, even without the music. Strong enough so that I can make fitting music for it without having been given direction. Or it inspired me in the right way. Right place right time. At that point I was meaning on bullshitting around with more retro synth shit.


Duncan and Jones sorta got me into using synths much more, and somewhat changed the style of my music. Snackers hit me up for me to make music on episode 2 and I definitely feel like I’ve gotten more skilled and used to using the synth and am able to do different things with it. It’s likely that in the next week or two I’ll drop a little Duncan and Jones EP with all the music I’ve done so far. The music for Duncan and Jones definitely some of my favourite stuff I’ve made this year.


Through the year I’d drop random tracks here and there. I’ve been working on this sorta rap project with my boy Dogl. Yung Nutz. We just bullshit around and whip up some dumbass rap song. I always find myself listening to them on repeat for days after they come out. The first one was ‘Yung Nutz - Beginnings’ and we didn’t know what we were doing too much. I think a lot of the inspiration for us was ‘The Cave’ series by KennyBeats, where he gets rappers in the studio and whips up a beat real fast and gets the rapper to freestyle over it.  


https://www.youtube.com/watch?v=vSSLqHJzy6Y 


Watching those it just felt like it was so easy and fun. And wouldn’t you know it, it really was just that. Me and Dogl dropped a few songs. My fav of the bunch might be crazy.mp3, at the very least it’s the one I go back to relisten to the most. Honourable mention to Professional Jared. I love hiphop bullshit, especially on NG, so making my own with my boy is almost like a dream come true.


I won’t break down every single track but I do want to mention a few things. Last year I made some sorta games to express certain things, but this year I’ve made music to express those things. It feels easier to express it this way, however it doesn’t feel as impactful. Maybe that’s not the right word. Point is that I do hope to have a mix of the two. Use music I’ve made to make the games better. I’ve done that to a little extent with Whites/Blacks Only. I made the ending music to that. And Christmas ADVENTure 2018, I used my own music for the credits. I won’t neglect working with other musicians though just because I feel like I can make my own music, just depends on scenario or whatever.


For YEARS I’ve had this plan for a certain game idea. And part of it includes heavy use of music and rhythm mechanics. The masterplan is all coming together…


BACK ON GAME BULLSHIT

In the last half of the year I hopped back into the game making bullshit. In July/August I was working on a visual novel with a few fellas, but that had to be held off for another project I started working on. My Madness Day game. Madness: Incident 10V3 was a game I’ve had in the prototype stage for YEARS. It was only this year when I had the coding skills to at least partially realize the game. I worked on it with Cymbourine, and she’s a Madness freak and she did the art. I did most of the writing, and pretty much coded shit. I had to dig DEEP into the Madness lore and I learned a lot about the Madness series from this writing this game. Because I’m stupid and bad at managing my time, we ended up slippin up and having to release a day or two after Madness Day.


Usually I’m pretty confident with releasing games, but this one Cym really had to convince me that the game was ok enough to release in the demo state. I dunno maybe I felt like up until that point I was always pushing other people to release games with me, and the game was something they weren’t proud of and I didn’t even realize it. Well it’s definitely not like that with this Madness game. The reception was surprisingly good. There was only a few comments telling me the writing was cringy or boring. Actually you know what now I remember why i was a bit hesitant about the game coming out. I showed the game to my boy Digimin and he said it was ‘boring’. So I thought I was being some delusional creative. Like I didn’t even know what was good or not. Well Digi if ur reading this ur a fuk lmao. I was also going through some weird personal stress and anxiety as well. Anyways yeah the game came out, and people seemed to like it. One of my most liked games so far it seems. I wrote more about that game’s process in detail here: https://ninjamuffin99.newgrounds.com/news/post/1069170 


Maybe about 2 weeks after I made Madness game, I got hustlin on Ludum Dare game with Digimin, Snackers, and Carmet. We made a dinky little beat em up prototype called Boho in Baller Land. While that game is a bit busted, specifically with hitbox shit and some animation timings, I do see it as an improvement in my game making skills. And I do see that game as being something I could work off of in the future. One thing about that game was that we actually didn’t do voting for other games in the Ludum Dare, so we actually didn’t get enough ratings ourselves to get a placement. Woops. A bit of a shame too since I think we at least could have scored pretty highly in the art category. Oh well live and learn.


Shit got a little bit rough towards the end of the year. I don’t think I did too much other than some music for people. I actually got a music commission, and that REALLY was hard to get all done. It basically held up all other projects of mine through November.


 Along with this project holdup, there was some personal things and anxieties that made things a bit more rough, but I think ur boy got through it, at least for the most part. I read this one book about TED talks, written by the CEO of TED. He mentions the topic of people bringing up personal things in their talks. He says something to the extent of “if you’ve gotten through it, it can be inspiring. If you’re currently going through it, it could feel like oversharing”. I feel like recently it’s been hard for me to open up a bit more to people about things, and when I do I feel like I might be oversharing, or feel like I might be draining on them or something. This isn’t something that happened because i read the TED book though lol, it just put it into words how i felt about those things. I like to think I’m getting over that a bit, feeling like im able to share some personal things with people while going through it. But its probably always hard to do shit like that. Anyways theres that tangent hehe


At the end of November my internet got busted again. However this time I lived only a minute or so walking distance away from the library. AND this time I was HUSTLIN and making a bit of money from music commissions. I was able to buy a shitty laptop for myself so I can do a bit of work when i’m at the library. I’ve never actually had a real job before, and thus no money, so this laptop has been one of the very few things I’ve ever bought myself. Feels good to know I worked for it doing something creative like music. And if yall need music and you rich gimme money I’ll make u beats lmao


YEESH this is long so imma quickly wrap up hehehehehe

In mid-ish december i schmoozed internet off my neighbour. I then made a dumbass little game with my boy Wandaboy. Merry Christmas Tom Fulp. I mostly helped him by trying to teach him coding concepts and how to code games. I told him that this game would be a pretty simple beginner game. I walked him through a bunch of the beginning shit. What I coded solely on my own was the blood effects, implementing Newgrounds.io stuff, and uhh maybe somethin else. Otherwise it was Wanda who coded the majority of that.


And uh I whipped up some dumbass christmas music with the boys but whatever im about to fall asleep at my computer maybe ill update this when I wakeup


OTHER COOL SHIT

I recently hit 1K fans on NG. I usually dont make a big deal out of milestones, like 'THANKS FOR 300 FOLLOWS" or anything like that. Maybe since I know the Newgrounds culture is what makes 1K seem like more than it is. It truly was not long ago when I felt like people with 1K were the bigshots of NG. Its weird seeing myself pass people that I thought were bigshots around here. Like I'm not just some random guy in the community, like I'm actually doing something around here and making some sort of impact. Or maybe I'm just being over dramatic. I feel like its hard to talk about shit like this without feeling like a weirdo. Either feeling like im some big shot talking about my numbers, or some smallshit talking about smallshit numbers. In the end its not really about the numbers, more so what they represent, the impact and influence and notoriety and whatever else that i may or may not have around here. Its interesting to think about but also odd. In March some OG NGer bigshot told me that i was "one of the most prominent programmers on the site" and that really stuck around with me and got me thinking about my NG impact or whatever ever since.


Another thing that made me sorta realize this was the Ninjamuffin99 Birthday Collab, which was a dumbass collab my pals made for my birthday. Originally though that collab was meant for me since I missed out on Pico Day. Some wacky shit happened and it got weirdly deleted and then reuploaded in a way IDK the whole story but man that shit wacky and I love the collab hehe.


CLOSING THOTS

I feel like this deserved it’s own little section. I felt a bit wary about sharing this online since it almost felt like I was bragging and making other people jealous or something. But maybe that just says how highly I think of this and how much it means to me.


So this year I missed Pico Day. But the homies still hooked me up. A bunch of people signed a Tankman figure and mailed it to me. When I showed my mom I almost got choked up a bit, and when I was telling my old foster mom about it not too long ago I still got a little choked up about it and almost teared up.

iu_82327_5520715.jpg

iu_82328_5520715.jpg

I keep it right on top of my PC, and everytime I look at it I’m reminded that Newgrounds is my favourite shit. 


If u read this far tell me some cool albums i need some new shit. Anything goes.


Hope everyone on NG has a blessed 2020


Last year's roundup


Tags:

23

Posted by ninjamuffin99 - December 25th, 2019


What new toys did yall get??


5

Posted by ninjamuffin99 - November 21st, 2019


iu_71304_5520715.png


I will post this image every single time this shit happens from now on.


Anyways, there's a good little chunk of extra people popping into Newgrounds and making new accounts. It's always cool to see more people drop in. This time it seems to be a bunch of people from Youtube. Hope u all enjoy ur stay. If you are some kid from Youtube, do not look at A rated content or else i will call the POLICE


If you're new to NG and need a recommendation of cool people to follow, here's one of my favorite animations on the site. Follow all those guys who made it:


And you should also watch the Smash Collab and follow everyone there. It's a 45min long animation collab with a billion people. So follow people from there and your feed will fill up quite nicely.

It's pretty much Newgrounds exclusive, so if you're new to NG, it's a must watch.


If you wanna learn more about Newgrounds, you should read through the history on the wiki page: https://www.newgrounds.com/wiki/about-newgrounds/history


iu_71305_5520715.gif


36

Posted by ninjamuffin99 - November 11th, 2019


Serious inquiries only, apply via PM


and fuk u im never gonna stop posting this joke


10