I missed doing this live, but y'all probably would have been sick of me by now. When I was a kid, I took a VHS box of Disney's Fantasia and a piece of paper, sat down, and attempted to duplicate the frame of the alligator dancing with the hippo. "Okay, this is kinda oval shaped... This line goes out about twice as far... This line connects here... There's a curve at the end..." Look left to real art, look right to drawing and attempt to duplicate. It was the first real artwork of any quality I had ever done.
When I got older, I would sit with my comic books (and later Manga) and do the same. I would practice drawing a certain character over and over to learn how their lines flowed. Eventually, I could draw some characters completely by heart - so that was nice, but it was only in the poses I had practiced.
I took drawing classes at school. I took art specific electives. They taught you things like perspective, and shading a sphere, and color families, and how to draw still life crap. This was not how to draw cartoons. I was very unhappy in these classes, and the teachers were always very annoyed with me attempting to draw anime instead of listening. (By that point, I'd gotten Sailor Moon trading cards, which were a lot more portable to attempt duplicating while in class.)
The best drawing cartoons lessons I had came from a Marvel How To Draw book. It had tracing paper every few pages. I know, I can hear you gasping. "The horror! The evil!" No, wait, stick with me a minute. They would explain the theory of how to start with a stick figure with appropriately proportioned body limbs, then they would give you a blank page to draw several of your own. Then they would explain how to give stick figures tubes, give some examples, and then give you a blank page to do your own. As the book progressed, it would explain things like different styled chins, muscle anatomy, and standard girl-shaped limbs vs standard guy-shaped limbs (and yes, they compared things like She-Hulk to show bulked up females, and various non-muscular boys). It would explain the hows and whys first, then it would show a progression from the previous step, in several different examples, then it would give you a few TO TRACE so your hands would get used to how the curves and lines felt, then it would give you a blank page to try your own. I learned more from that damn book than I ever learned about cartooning in a class.
For one thing, I learned that tracing to practice was allowed. I didn't overly care for it - I wanted to jump right in and make my own, but I could see the logic behind it.
I haven't touched game developement in years. NiZ kinda ate up all my time to the point that having simple hobbies was almost impossible. My sewing is covered in dust. My art hasn't been worked on in ages. Writing became a chore, and my original story ground to a hault. That NiGHTS Match 3 game I was working on? Haven't touched it since NiZ.
But now NiZ is all done. I floated for a little while, kinda numb. Had to recover. Had to get used to not throwing everything I had into something that required all of my attention.
I got a thought and some inspiration. I wanted to get back into game dev. Maybe I'd try making a Tetris clone, or a Snake clone, or... something. I watched some tutorial videos and realized I'd been away from coding for so long that I was sadly out of practice for the terminology. I needed something simple and fast to get me back into Godot and familiarize myself with the commands again.
A tutorial to make a Flappy Bird clone showed up in my suggestions list. It claimed to be able to make it in 13 minutes. (*brow arc*) Maybe if you know what you're doing and don't run into any problems - like the tutorial using an older version of the software that doesn't exist anymore.
Around the same time, a friend of mine invited me to a project for a Sonic Fan Game. I still don't know that I'll have any actual affect on that project - the folks there seem to have everything under control just fine. But there's a lot of fuss and talk about the flickies from 3D Blast. So I thought, "Why not put a flicky in Flappy Bird?"
Flappy Flicky began. I watched the tutorial the full way through, absorbing the theory first. Then I tried to follow along with just the materials the tutorial used (a 16x16 white block and a 16x16 black block). Yeah, no, really - guy made the whole game with just those two assets. Kinda really impressive. Ran into problems along the way. Some features weren't in my (newer) version of Godot, so I had to figure out if they were really important, or could be skipped, or could be altered back in by code. Required outside resource reading, and asking questions of people who knew more than me. (Not always easy. That Godot Discord server isn't always as helpful as it could be when ya don't understand something.)
I got the game from the tutorial working, finally. Thumbs up! High five! It was time to start substituting in new assets.
Tutorial guy used a sprite node. I wanted an animated sprite node. The bird is always moving, so I grabbed the two-frame sprites of a blue bird from Sonic. Amazingly, they were 16x16! Perfect!
Then I wanted the wall sprites changed. I custom-cut the stone columns (that are birds!) from the Sonic 2 Aquatic Ruins boss fight. You know, the ones that shoot arrows? I figured it would be appropriate for a flicky bird to be flying through bird statue columns. Subbed those in!
Then I wanted a Sonic background to fit. I grabbed Marble Garden's background. But while I COULD keep it solid and not moving, I knew Parallax was a thing that was covered in a different tutorial (or several) that I had seen before. So started my attempt to learn how to parallax the background. It was not easy. Things were NOT lining up nicely. But trial and error are a blessing, and eventually I got the background to scroll at three different speeds. X3 I was so happy!
There was a score display, but I wanted a high score display, too. I also wanted a title screen, a pause screen, a game over screen, a sound on-off screen, and maybe a character select screen.
I made a title screen first. Hit play, game starts. Nice and easy.
Then I made an "options" screen. (Which I later renamed the Character Select Screen. Options was used for sound controls.) On that screen, you could pick one of the four flickies from Sonic 3D blast. Depending on which one you clicked on (or if you didn't click any - it would default to blue), it would start the game with a different colored flicky sprite turned on.
But ... the option screen and the game playing screen were two different scenes! How was I supposed to get them to communicate with each other?
I had to learn about "singletons", and how to use them in godot. For anyone who has no idea about game developement, a singleton is basically a second scene in addition to the one being displayed, that is constantly running, but in the background (unseen). It doesn't have to be a whole scene, either. It can be just a script (which means just code and nothing to display). The solution was to make a script that held four variables - one for each flicky. If one of the characters was clicked, it would set that variable to true, and all the others to false. Keep in mind, this script is ALWAYS running in the background. While the character select screen was running, it would communicate to this singleton a true or false setting. Then, when the scene changed to the game playing screen, the first thing it would do would be call out to the singleton and be like, "Hey! Which bird is set to true? This one? Okay, I'ma load that sprite, then."
This was, like, mind-blowing for me. I love this concept. I will spam the shit out of this concept. I know we covered them in a tutorial series I was watching for the Match 3 game, but it didn't quite click in my head the way this does now. I kinda had to re-learn the concept. And I am SO HYPED to use it!
Character Select screen done, I think I handed the game out to a bunch of Discord servers, because I was so excited to show off. Probably, I should have waited, because now I've pushed several updated versions and I'm sure people are tired of hearing about it and no one is actually downloading the updates. But I didn't care! This was as big, for me, as the first Fantasia drawing that came out beautiful! Even if it was only line art - not colored, I had to show everyone!
From there, it was time to set up a pause menu and a game over menu. I went back to the Match 3 tutorial for those, but put my on tweeks on the carry-through. Anyone who cares may recognize the style of buttons from that first tutorial, but again, who cares. They're all original art made by me for this project. I didn't even look at anything. It was all off-the-cuff because UI isn't super hard after making an entire effing fan-zine and all the assets that go with it.
I ran into a problem with attaching the start over option to the title screen. Nothing was clickable. But I remembered THIS SAME DAMN PROBLEM came up in my Match 3. The teacher at that time eventually realized that while the game was in game-over mode, the settings were on "pause". They never UNpaused when they changed to the title screen. So since I remembered and recognized the error, I had to go through and make sure everything that connected to the pause menu and game over menu ALSO unpaused when it changed a scene. Victory hand symbol, guys!
Pause and Game Over done, I wanted to make a high score that would display and update in both the gameplay, and on the Game Over panel. I know that was in the match 3 tutorial, so back I went. GUESS WHAT! It was the same singleton concept! Haha! I was so excited. Took some tinkering to get it to work exactly how I wanted, but I got it! SOOOO excited!
Time for sound! I know the Match 3 series had a tutorial about adding sounds and music, but I also remember it used random music and random sounds - and I didn't like that. So I broke out my old project to see what I'd done differently. Alas, nothing I tried worked. Following the old tutorial - sounds and music didn't work. Duplicating the code from my old project - sounds and music didn't work. I KNEW the key had to be these singleton things. I watched maybe 4 more tutorials on how to make things like global sounds and sound libraries and sound managers... Nothing was working. Finally, at almost 11 at night, one guy in a tutorial referenced making a "scene" the singleton. My mouth hit the floor. My sound manager was a script, not a scene! It had no children nodes! No WONDER it wasn't working! It had no idea what children to turn on or off! As soon as I deleted the singleton script and made the whole scene the global? Worked like a charm. (*claps one loud clap and punches the air*)
The next day was time to set up the sound and music buttons to turn the sounds and music on and off. It was hard enough trying to figure out how to manipulate the various different scenes to continue playing music instead of turning it on again at each scene change. Now I had to have a way to shut off ALL of them, when they all wanted to check if nothing was playing, then turn something on. The solution again came from my old game. In it, instead of "stopping" the music and sound effects, the game accessed the global singleton and told it to drop the volume to the lowest it could go. (-80, if you care.) Turning the music or sounds back "on" involved changing the volume back to normal. (-12, because playing at standard volume was kinda loud.) They didn't want to work at first, and it was very frustrating trying to figure out why. I don't remember what the eventual problem turned out to be, but it was -OH! I was setting a true or false for a check if the music was playing in each scene and when I programmed the on-off buttons, I had them check the true false statement instead of executing the function that changed the volume. Lol, silly me. All that frustration over something stupid. Story of coding life.
ALL BUTTONS WORKING! ALL SCENES SWITCHING PROPER! It was time for... Character move-sets. (*GASP!*)
I thought I would have to build several different character scenes and then instantiate them into the world scene, so that I could have each one programmed with its own moveset, but the problem was that the character scene existing in the world scene was sending off a lot of signals. Once I deleted that node and tried to sub in new ones, those signals weren't connected anymore. ~_~ I'm sure a wiser mind than me would know exactly how to do it, but I couldn't figure it out.
Then my bud said just turn the different characters on or off. I said, well, that's how the sprites are working currently. It checks the singleton for which one is true and then: if blue = trie, then turn blue sprite visible... And it hit me like a ton of bricks. Why not just set the moves in that same spot? SO I DID! If blue sprite = visible, play as normal. If red sprite = true, speed = x2. If pink sprite = true, she flaps higher. If green sprite = true, he drops faster.
Omg, I had so much time messing with the different settings for the different characters! I laughed so doggone much that my oldest kid came over to try things out. Then the husband came over to try things out. "Did I make it too hard? Should I change it?" "I got 14 points!" "I got 15 points!" "Yeah, this one needs to be tweaked a little." "No, this one's perfect! Challenging, but do-able. Keep it!"
So now, Flappy Flicky is complete! And that is its story. =3 I hope you all enjoyed reading - if anyone actually takes the time to read. I'll post some screen shots soon. Maybe I'll make a web page to hold it and any future projects. Not sure yet. But I'm super pumped and ready to move on to customizing this even more.
What started as a Flappy Bird clone - like drawing the alligator and the hippo from the back of the box - evolved into learning from various different things about how to do various different things. So much of what went into this project was my own, based on lessons for other things, that I'm really proud of it.
It seems like it should be a hop, skip, and a jump to go from this to a NiGHTS endless flyer game. But I can already tell there are going to be new obstacles to get past. Making link rings explode out like they do. Making paraloops function. New sprites, because I don't like the GBA ones. (*head shake*) It's gonna be a challenge, but I'm excited and I wanna do it! Y'all better keep up! ;D
So there's this image getting retweeted about OCxCanon isn't hurting anyone. GUESS WHAT? Yeah, it is.
I saw the retweet and said “I’m not getting involved”, hit “mute this person” and moved on. Then I went and did errands. It continued to gnaw at me. So here I am, back home, with my two cents.
I have an OC I ship with a canon character. So I’m for it. BUT. PLEASE, all caps, PLEASE do not perpetuate that it “doesn’t hurt anyone”. Just because a group of people can collectively decide something does NOT make it a truth. My neighbor and her family are all convinced the world is flat, but that doesn’t make it true.
The fact of the matter is, seeing other people’s OCs interacting with canon characters in romantic ways, in flirtatious ways, in sensual ways, and in sexual ways CAN BE mentally and emotionally damaging to some fans. So saying it “does no harm” is completely false. By everyone jumping on the bandwagon of “yay! More OCxCanon!” the amount of it in certain fandoms has skyrocketed in the last few days/weeks, and while some see it as a pride movement, to others, it’s nothing other than flat out bullying. It’s saying, “Your pain doesn’t matter to me as much as my pride.”
So, some would say “Well, those people can just turn-off/mute/ignore/not-follow the stuff they don’t like. No harm no foul. Why should I have to watch what I say/do/post just because it might offend someone else?” Because it’s considered being a decent person. You don’t walk into a kindergarten room and scream cusses at the children. Decent people don’t do that. We’re capable adults who have the ability to moderate and control ourselves. In some cases, a simple spoiler tag would solve a lot of problems. People who don’t wanna see OCxCanon won’t have to. Their choice. But on a venue as big as Twitter, maybe they unfollow the people who constantly post OCxCanon. Maybe the block those artists. Maybe they hit the “don’t show me this” or “ignore this content” or whatever the case may be. Maybe they skip out on GREAT ARTISTS who make art that they actually love of the canon character… because they don’t wanna chance the chest pain and panic attack that seeing their fictional lover ensconced with 60 other fancharacters causes.
Yeah, that can happen. Laugh, if you’re a jerk, but some people cannot separate reality from fantasy well enough to take care of their own health, and SURPRISE a lot of those people live on the internet where life can be an eternal fantasy.
“Well that’s their problem then!” No, that’s A problem, but it’s not all THEIR problem. That’s like saying suicide is only a problem for the victim. That takes alllllllll the responsibility off of the rest of the people involved. YOU’ve done nothing wrong. YOU’ve harmed no one. But someone still died from being bullied and becoming suicidal.
So you wanna ship your OC with a canon character, by all means, do so. BUT, don’t perpetuate that it doesn’t hurt anyone. Because as shocking as it sounds, sometimes it does. Maybe not you. Maybe not your friends. Maybe not anyone you know. But then again, maybe it IS hurting your friends, and they’re too embarrassed to tell you. Who wants to willingly say that they’re so attached to a fictional character that seeing him or her cheat with 60 other characters does horrible things to their mental state? Should anyone out there really look down on a person for a fragile mental state? Should anyone REALLY claim “I’ve done no harm”? No. Mega-shippers may not have stabbed someone, but they’ve still done some damage.
I’m not asking you to stop your shipping. By all means, spout your ships with pride - most of you are going to anyway. But don’t you dare bully the victims of emotional pain who avoid your ships like the plague by spouting your "no harm was done" bullshit and claiming that you’re 100% in the right for promoting harem mentality.
If someone doesn't wanna see your OCxcanon, don't pick on them for it. That's all. Don't act like their opinion is a crime.
The best way to do an OCxCanon is to make it clear from the get-go, that this is your own personal version of a universe. An alternate universe to the real one. Yeah, make your own A/U. Then it's your own private little world, with a copy/pasta of the canon character you love so much. All your friends can have their own little copy/pasta versions of the canon character they love and no one has to see the character they're in love with in the arms of another lover, cheating. Wake up. That does bad things to people. So don't be a dick about it.
NiGHTS Into Zines is turning March into Balan Wonderworld month! Send us your fan-arts for a chance to be featured in the March issue, and show off your love of the funny maestro and friends to other readers! (Feel free to send us some NiGHTS fan-art, too!) Have you played the free demo, yet? It's out, now, on all systems! Give it a shot and then tell us (in 200 characters or less) what you liked best about it. We'll pick out several comments to share with everyone in the zine! Want to read the comments and see the fan-arts early? You can catch some of them on twitter. @IntoZines is our handle, so come hang out and see what people have to say!
Sweet dreams, everyone!
Hey, dreamers! Staying in for Costume & Candy Night? Hit up the NiGHTS Discord sever! https://discord.gg/96fMWe6
Latest event there:
What's Your Dream 'Ween? Costume & Candy Night approacheth. But maybe with global COVID watch you're staying in? STAY WITH US! Let's have a night of Halloween fun and games with the server! Dec out a pumpkin pal by carving or decorating it to the best of your ability. Then show it off on Friday Oct 30th or Saturday Oct 31st in the server! We'll have a grand old time and compete for bragging rights on who has the best pumpkin! Show off your costume, too! Even if you're not going out to claim candy or hijack a hayride, we'd love to see what kind of cosplay you came up with. Show up during the evening hours and we'll put together a group game of Halloween NiGHTS pictionary using scribl.io or Google Canvas. Maybe we'll even tell spooooooky Wizeman stories around a digital campfire....