Dec 9, 2016

Jokes First, Questions Later

It's been quite a while since I've posted on this blog; I've been pretty lacking in terms of content here even though I have content to provide. I'm unsure of how many people check this blog but I'm happy to update it again.

To pick up from where I left off I'm proud yet disappointed to say I've made progress on something completely unrelated to Project Fight Club. Instead, I spent the months of May and June on an update for MisterObvious's Animation Studio. To those unaware, it looked something like this:



The update started as a joke between the four of us (the other three being MisterObvious, BlazerC, and his brother Rhysmon). Back in 2014 shortly after PFCs inception, I made a joke saying there should be a tool that lets me recreate the falcon punch scene from the anime F-Zero: GP Legends. I myself never got around to creating it until around late May when I decided to tackle the project after successfully recreating You Have to Burn the Rope. Although I wanted to insert it in MisterObvious's game and just show everyone, I needed a reason to use it and to give the cutscene some context. We then created The Black Hole Event. In animation studio, an entity known as The Black Hole loomed over the map whose uncomfortable gaze gave the game's visitors an uneasy feeling of being watched. The black hole would grow ever so slightly whenever a player was banned ingame causing the black hole to grow to an astronomical size that nearly covered half the map in black nothingness. We then agreed the players of the game should combat the black hole in an effort to save the map. The rest of the lore can be told another time if anyone else requests it, but as with all good tales, it's better told by someone who was there so you should definitely ask around the local Animation Studio Senior Center to locate a black hole wheelchaired veteran.

The update added 4 enemies for the player to fight and a boss at the end of the update. The 4 enemies are named Roller, Doppelganger, Distraction Tree, and Golem. Over time the enemies grew in max health and spawn rate as servers grew larger and stayed longer. I'll be quickly going over each one and how they were programmed.




The Roller




The Roller's model was designed and built by my friend Rhysmon when I requested monsters. Originally planned to be a ranged enemy, I opted out for a constant nuisance that'd surprise players. The aptly named Roller would roll towards players and hop on their head, leeching the life of the player they latched themselves onto. The targeted player would need to either shoot the roller off or have another player assist in shooting them. Their weak spot is amongst the hardest to land being the hole in their mouth. They were relatively easy to kill having the lowest health pool of all the enemies but the highest spawn rate and areas of all of the monsters.

The Roller's AI is a simple one: roll towards them and pounce when close enough. The AI used a while loop that constantly looked for players via the :GetPlayers() function of Players. Once the table of players was acquired, it simply compared the distances between the player and the roller and picked the closest one to roll to. Once the roller was within 7 studs of the player it would speed up and jump towards them and weld itself to the player's head, dealing damage and healing the roller. Rollers didn't use pathfinding or any ledge detection because we thought pathfinding wouldn't be necessary since we wanted them to surprise players that pass through doors or pass by rocks they hid behind. We let them fall off the edge because, well, we thought it was hilarious.
Nobody liked you anyways



The Doppelganger



The Doppelganger's model was hastily made when I noticed a lack of ranged enemies; I just slapped on the classic zombie face with no eyes and gave them the same color and material scheme as the roller. I thought the idea of an enemy using the same weapons as the players would be a fun foe to go up against. The fact their bodies were the same and their combat styles were the same, I decided to make them wear the same hats as a random player in the game. Their weapons were randomly generated using the same algorithm as the vending machines that dispensed the weapons for the players and did the same damage as theirs. These guys were either a joke to fight against or were a huge trouble to deal with. They had the same base health as players and were the second most common to spawn. They tended to spawn in areas where players commonly hung out at.


Their AI was much smarter than the roller with pathfinding and edge detection. They were also fully animated and had accuracy based off the gun's stats. The game would roll a number between one to six; if six was selected, the doppelganger would aim for the head with one through five being the other body parts. They would run towards nearby players and fire when within a reasonable range. They also could toss their weapons in the trash if they managed to touch it, which was quite rare. If they tossed their weapon out, they began to break down crying exclaiming their frustration for tossing their firearm in the garbage.


dude y



The Distraction Tree


These were designed by MisterObvious while we were making monsters and boy are these just great. These were just fantastic: balancing the tone of the game to make sure the update wasn't too serious by giving them hilarious AI to match their old fashion appearance. These guys had the second most health of all the enemies and spawned in open green areas. When approached they'd spin and yell DEMACIA, harming players who get whacked by its distraction tail with the barb at the end, dealing more damage. The best part about these guys is that their crit spot is actually the face in its chest, which is actually its real face. Why else would it be called distraction tree?

These guys had the same AI as the Roller with the exception of its behavior when a player is near. They'd spin using BodyAngularVelocity isntead of, well, jumping. The best part about their AI was how they'd get on the roof because they'd hit the teleport pad on the floor. There wasn't much else to these fellas but they definitely rank amongst my favorite NPCs I ever made.





The Golem


The Golem's design was inspired by Runescape's Brawler enemy from the Minigame Pest Control. These hulking enemies were the bulkiest and the deadliest enemy of the four with a whopping 3.5k base health that could scale into the ten thousand range, a max speed that nearly doubles the default speed of the player, a tiny weak spot in its eye, and hard hitting moves to hit both single targets and groups of players. These spawned the rarest and only spawned in 3 places: behind the apartment, in the desert, and near the MisterObvious statue.

The Golem's AI shared the same pathfinding as the Doppelganger. The game would count how many enemies are near it; if there was only a single enemy, it will punch the player in the face, if there's more it'd slam the floor knocking nearby enemies into the air, damaging and stunning them. Being the tankiest and the deadliest of the four, they were notorious for killing multiple players and required multiple players on the server to take one down, especially when their health is at its max.

You can still find a Golem in Animation Studio, albeit a friendly one that goes by the name of Jimmy. You won't be able to see it attack but you can see it walk around the map.

I plan on posting a part two of the event going in depth on the weapon system and the game itself. I also have some PFC progress to share to those who follow this blog.

Apr 6, 2016

From the Ashes

It's been quite a while since I've made a blog post. The reason for that being quite simple: I haven't been working on much, until now. Sure, at one point I made Wax Champion for OPO, but I didn't believe it deserved a blog post. However, if enough people message me to make a blog post explaining how it works then I'll gladly go over the process of making the tool in an effort to educate those who are interested in making something similar. In other OPO related news, I haven't been given anything to make. I wanted to make more moves for Buddha but it hasn't been approved. To those who are familiar with this video, I'm also willing to make a post on how I created the tool. I won't be going over the code exact, but I can explain the thought process and all that.

Other than declaring this blog not-dead, the reason I made this post was to notify those who are interested that I'm continuing my pursuits on reworking Project Fight Club. I've been very hard at work on the core game. I've redone the main menu, I've fixed nearly half of the tools in the game to make them compatible with filtering along with balancing them, and I've been working on a new map as well, one I'm very excited to see finished. Project Fight Club will be remade to compete with the current line of front-end games you see on the Games page; it'll be ready for modern ROBLOX. What do I mean by that? Allow me to go more in-depth on the changes along with what PFC is trying to accomplish.

Many games on the Games page on ROBLOX share similar elements that make a game seem more polished: a main menu, preloading assets, customization, and microtransactions to name a few. I've always felt PFC was a nod to old fighting games in ROBLOX; games where players were given various tools and fought one another with them, similar to fighting with official ROBLOX gear. In order to preserve this design philosophy, the game's gameplay will obviously remain the same; you'll still see the same tools from before. What'll be new to the game are things like a round based system, a points system to determine a winner as opposed to endless fighting, and player customization. 

The new PFC will determine a winner by the amount of points earned in a single round. Points are given to players based off their actions. Things like: getting kills, healing, attaining high kill streaks, and shutting down players who've amassed countless kills in a life. Once a game ends, players will be rewarded with currency based on the amount of points earned. This currency can be used to buy boxes and skins and whatever else I have in store (no pun intended). Of course, you'll be able to purchase the currency or the boxes directly, but I won't be making them strenuous to earn by conventional means. I'm really against giving players a false sense of progress by making the rewards incredibly expensive, so it's completely optional.

I hope this sheds some light on the game as well as clearing any fog on what I mean by reworking PFC. I hope to make more blog posts in the future documenting my progress with PFC and any other project. In return for your loyalty, here's a sneak peek on the second map coming to PFC:

Oct 23, 2015

Long, Tan, and Handsome

Well, less tan and more red. I present: whatever the hell this is. I don't know what to call it, so I'll let a name for it develop over time. For now, for the sake of Spongebob jokes, let's just name this one Octavius (after Pearl's ex-boyfriend in the episode The Chaperone).




But seriously, don't call all of them Octavius, that's a first name, not the name of a species. What if
 fish were named Dave? Sounds stupid doesn't it. You wouldn't want to eat a plate of Dave.

I've been working on Octavius for quite a while actually. Not straight, but I've been working on it on and off. Back in around March or April-ish, I stumbled on a plugin that made rigging Motor6D welds easier. For those unaware, those are the welds that keep your arms, legs, and head attached to your player. Unlike regular welds, Motor6D welds can be detected and manipulated in ROBLOX's official animation plugin. After tinkering with the plugin for a few minutes, I began making a proof of concept AI using a custom rig: the screaming duck. I then had an idea to make an unorthodox zoo and fill it up with some dumb things we rigged and animated. BlazerC and his brother Rhysmon would make the models, MisterObvious would animated them once they were rigged, and I did all the magic scripting. We pumped out a bunch of stupid creatures (there was even a grazing refrigerator), for a solid month or so, until I had family come over from out of the country, which brought development to a halt. One of these creatures was the Biggerhead legs (which is what the original file calls it). Its shape and movement was inspired by the game "Daddy/ Dad's Long Legs", with a lot less of the frustration of making it walk. We thought the idea of it hiding inside its own head would be hilarious, so we made it so, along with the idea of it having a chance to just get up and leave the Zoo.

Fast forward about 4 months later, Aurarus sent me an instant message asking if I can make strange, unorthodox creatures. I then told him I had pretty much done a whole smorgasbord of what he's asking. When I showed him and Archaic our little project, they immediately grew to love Octavius and exclaimed the need to use it for One Piece Online.

After a good amount of time, I finally began to slowly work on the AI, which will eventually be in the game and have a chance to spawn on islands.

In order to accommodate to the island terrain of OPO, and by that I mean not falling into the water, I had to improve its path finding. I made my own path finding system for checking if the desired path would make Octavius sink or take a heavy fall. It constantly looks for walkable paths until it can find a path that matches the criteria.

In addition to just wandering around, Octavius will hide when there's players nearby. They can be very shy when around something they don't know. They'll retract their legs into their heads, which isn't really hiding but you get the idea. If the player sticks around too long, Octavius gets impatient and just sprints away hoping you won't follow it. Though, they do find a liking to certain people and can easily be tricked into being your friend.

Octavius is super social, and will get excited when a friend is nearby. Octavius will begin walking towards a friendly face to greet it. Octavius also loves to talk to others of his kind, but only for a few seconds.

Okay now I'm going to stop calling it Octavius and start referring to the species as a whole and I'll be using pronouns such as it and they. The reason being is because they can actually be fertile. When they spawn, they have a 50% chance to be male and a 50% to be female. When female, the AI will check every second if it can give birth. These odds are 1/2500 every second. I don't wanna spoil much of what happens when these things have kids, all you gotta know is they need a momma and the momma needs them. 



You don't want to know what happens next.


I hope a name for them develops organically overtime, where the species name is just whatever the people start to call it.

The reason for them to be in OPO is for adventure. Aurarus couldn't emphasize the importance of adventure enough to me. All the things I was tasked to do so far were pertaining to exploration and giving reason to set sail. He wanted things that'd drag a player's attention while out at sea and to pursue anomalies that appear from a distance, events and entities that do not reward the player for finding, rather granting them the experience of having witnessed such a strange and unique encounter. The kind of stuff that'd make the player tell their story proceeded by the audience believing the player is insane and lying.


I SAW A BUNCH OF REFRIGERATORS GRAZING WANO I SWEAR IM NOT CRAZY IT CAN HAPPEN!!!!!"

If only there were a reason to add it. I would get that fridge in OPO in a heartbeat. Maybe roaming refrigerators are how we get people out into the sea.

Oct 18, 2015

The status of Project Fight Club

Immediately after starting this blog, I thought I'd do it justice by addressing something many (and by that I mean about 6) people have been asking and that's "What's up with Project Fight Club?"

I want to remake it. Sorta.

PFC started out as a showcase of a few tools I made within the week prior to the game's inception. They were never meant to be a part of a bigger game, they were just weapons I made for fun (two of which were skills from Dota). Because of the nature of the game, the interactions between the tools were very wonky. In addition, the game wasn't clean; I didn't use module scripts so editing an element that's shared between tools was a pain. The worst part was that the game wasn't developed to be filtering enabled compatible.

Now don't get me wrong, I love PFC and what it brings to the table. I try to capture that old 09-ish feel of combat with a modern-esque twist because I miss games where you're sort of just dropped in a field with a bunch of weapons and you gotta make them work. I wanted to create a fighting game with no leveling system and no microtransactions that would give players an edge. I wanted a good player to be defined by their experience and knowledge of the game instead of the size of their wallet or because they've unlocked more stuff than you. 

I love the community it created and I love their dedication to the game, but it was a bit overwhelming. I found myself getting frustrated at all the forced bug reports I was getting, bugs that are just so specific that some weren't even worth fixing. Some bugs were game breaking and my options for fixing them were very very limited. All the reports and the amount of people begging me to update the game didn't help me with what I was going through so I took the game down for a while, but I want to work on it again, by remaking it.

I've actually already been redoing some of the tools, mainly the swords. Since they all work on the same script (courtesy of stickmasterluke), I only had to update one of them to update almost all of them. Once I finished remaking Mr.Slice, the rest of the swords were a snap. The only one I haven't finished redoing was the Rogue Dagger. I redid the status effect system to be way easier to work with along with adding some new effects like silence, damage amplification, and root.

I started a private Trello with my friends who are helping me redo the game. I've already finished a completely new level that stays true to the style of Raven Rock and adds a breath of fresh air to the suffocating diversity of PFC's repertoire of maps.

Here's a sneak peek: 



Oct 17, 2015

Hello world!


So I started a blog. I don't know what I'll do with it but I'll post whatever comes to mind whenever something comes to mind. I'm going to be posting progress on whatever I'm working on like for One Piece Online or Project Fight Club, or maybe my opinion on a certain update or on a popular game. This blog will have a more serious tone, but that won't mean I provide a post with the usual snarky or stupid remarks I make. Just know I won't be making stuff like shit posts or hollow rants.

Why should you, the reader, care about what I think? I dunno maybe you can only construct your beliefs off others' opinions and you're trying to find another source to annotate for your "totally" original concepts. Maybe you're curious about one of the projects I'm working on and want to know its progress. Maybe you just want to see what I got to say or what I'm up to. Whatever it is, I appreciate you stopping by.