It looks like you're new here. If you want to get involved, click one of these buttons!
In this Dev Blog lead programmer Teddy gives us some insight into his experience dealing with online negativity while developing the Multi-Motion Combat System for ToA:
Hey friends,This is a dev blog I have prepared to release with the revealing of our networked combat video featuring the 300+ hours of hard work I have put into this over just the 4 weeks before the video. I would love to talk about everything that I did over those past 4 weeks, regarding the networking, the animation trees, the collision detection, reports of attacks when a player is hit and when they defend, stamina updates, health updates based off damage on hit, the item swapping, the animation/position/rotation updates from client->server->all clients, fixes due to lag/desyncing/network fails, and a plethora of other things, BUT I wont do that this week (perhaps the next blog). Instead I want to talk about something that has actually been sorta depressing to me which has actually finally blown over a bit, and is not as prevalent anymore, but occurred a few weeks ago. I wrote most of this article during that time, and now before I release this dev blog I have had to go back and change everything from currently to 2 weeks ago. I also considered not releasing this blog at all due to scare of setting fire to that flame again, but I think a blog is meant for what one is going/gone through, so screw it, I'll share! Although I usually wear a tough mask, realize the world is no easy place, and have pretty thick skin, I have also realized that even after all that I can be affected pretty hard by some random people on the internet.
There was some spontaneous hatred spreading on some forums a while ago that amassed a bit of attention, created mostly by one person, but still rather daunting. These threads were brought up in our meetings (2 weeks ago) but were dialed down as we try to stay positive in front of one another. Saying things like meh, they are just trolling. It will pass but for me personally, and I would guess for some others on the team, they were pretty much at the forefront of all my thoughts, running through my head every second of coding the combat system. I tried to turn as much of the negativity and pessimism as I could into motivation to prove people wrong. I am actually a really competitive sort of guy, so that has been pretty successful in giving me the energy to work as hard as I have. I don't want sympathy for any of that hard work either, truthfully I love it and will try my best to continue to do so until the demo is complete, no worries there. ToA is like my software baby. As the lead programmer on the team, every single line of code has been written or reviewed by me, and when that labor is called fake then who wouldn't get a little skewed. As a gamer, and a modern day internet user I am totally used to the troll environments and none of that really bothers me, but it does tend to penetrate a bit more when your so directly involved.
Reading everything in those posts (a few times) was really painful, especially when you spend so much time crafting something and it gets falsified into something that could be completed by anyone in a few days of picking up Unity. I wanted to reach out and explain every single detail about what I have coded! When someone said whats so fancy about turning a sword into a shield? It just changed the model I wanted to say, No, you dont understand. Theres a separate animation tree, we just havent added the animations (we have now obviously). The collision detection is different. There is inverse kinematics applied to those objects! They were swapped in an inventory system, didnt you see me drag and drop the item onto the character sheet? There is networking changes that happen behind this notifying everyone of what you have! I promise! .... etc etc etc... but saying it would mean nothing, so I literally couldn't do anything but keep working in a state of misery until I had something decent that Brax could record into a video.
The gamedev community is about lifting each other up and embracing each others success as a small success of your own, because after everything we are all just trying to make some awesome games, play those awesome games, and make the scene grow. It is NOT about crushing each other into the ground and saying he/she cant be a developer/artist/programmer because blah blah blah. We have seen titles come from the most strange of places and who are we to judge?
Special thanks to everyone in our community because frankly you guys have all been fantastic, and really supportive. Negativity sucks oh well, like I said, this is just a blog explaining the bit of mental trial I went through trying to get the demonstration working. It was more the fact that I was not expecting that sort of attitude, and in all the other smaller games I have made, this issue has never arisen, so it sort of blind sided me. In the future I (and the team) will be more "prepared" and just be seeing those threads as opportunities for further motivation, and cause to persevere! It was in fact a good learning experience for all of us.
Best to All!
Teddy~~~
Now that I have a bit of time I guess I also want to address some other points that I think are important or people have brought up:
This demo that we are making has been in development for only 4 months, not 10 years, not 12 months; 4 months. Sure the game has been in concept stages for 10 years, and yes, development happened in the Hero Engine beforehand, and Shadowpool before that, but as for the Unity demo, everything for it has been made in the past 4 months. (now nearing 5 on the release of this article)
The dynamic spawning video was 100% custom code that I wrote and is a live simulation. We did not use any store assets for the spawning. The biggest tree assets themselves are store assets, but all the growth stages are custom made with the Unity tree editor. I had to make custom shaders which fade the trees in as they grow and still maintained the ability to be blown by wind. There is a GM menu that gives all the options for what to spawn in. The nodes can traverse. I had to use raycasts/spherecasts to make sure they dont intersect with anything on the terrain (like houses/people/etc). Nothing extremely hard, sure, but everything takes time. (this alone could definitely not be made in 1 day, let alone 3 minutes)
The guys who are helping out with social media are all part-time volunteers that approached the founders because they wanted to help. I talk with them on Skype rather often and they are all really nice people so be kind to them. They are FANTASTIC help! (Shout out to Xanward Songsteel, Black Lotus Dragon, and GimiZigi!)
Unity is more than capable of making an MMO along with other multiplayer games. There are tons of engines out there that have the capability to make an MMO. Hell I know 2 people personally who have made their own simple MMOs from scratch. Most engines are focused on the rendering of objects, and near anything that allows plug-ins could be used to create an MMO. In our case we currently use a C# plug in that was made specifically for unity among other things. For the demo this is more than adequate. I have never made an MMO, but if everyone needed previous MMO experience to make an MMO, there would be no MMOs. I have done my fair share of research, and stress testing. I have also already suggested to the team that someone with more MMO experience join the team and tweak my code when the time comes. That being said though, I have already set up a region system that could have individual servers running parts of the world. I have load balancing through a master server, a simulation server which (does not yet, but will) use an interest area map for player updates. At this point the number of players we have in the game are low enough and close enough together that it was not yet needed to be coded, but I could if I needed to. The simulation servers are authoritative servers which eliminates cheats like speed hacks, etc. (another good topic for a future article). This is the common way of creating MMO back-ends that are shooting for an open world design and again, can be done in Unity.