AQWorlds
Artix Krieger
| Friday, January 31, 2025
Check back on this post daily to see the latest behind-the-scenes progress updates on AdventureQuest Worlds: Infinity... a rebuild of the game that will allow you to play your character, and load your stuff, on mobile devices and computers.
Sneevil animation by Nulgath
The goal of these posts are to transparently share with you what is to happening behind the scenes in this challenging and spookily big game project.
One day I will test monsters and take screenshots from a different map.... one day. #goals
Team Meeting
As you probably already know, every Monday the AQW:Infinity team starts off with a full team meeting to see how far we got since the previous week, and make a plan on what we are going to do this week. We do these via a Discord voice chat where we can share our screens.
Here is what everyone is up to...
Our first Pet
Ghost re-animated the games first pet. Warlic created special scripts for pets that gives them behaviors. Now, they just run around with you. But we left the door open to do far more interesting things with them in the future. We can talk more about that once we actually do any of those things. But one thing that I thought was incredibly smart... is that pets now use the same animation controller as monsters. This means that battle pets can be actual combatants. Also, I think it means monsters can be pets.
Every pet in the game has to be re-animated manually. Not a great situation. We made a list of the top 100 equipped pets in the game. Figured that would be a good place to start. Before we begin converting them, we need to finish repository & cloud builder changes for items. I am meeting with Zhoom & Warlic tomorrow to make some final decisions on how we are going to do it.
The Cutscene Dialog Editor
This is the "Dialogger". Our homebrew cutscene editing tool. It is not very pretty (yet). But it works! The demo cutscene that Ghost made is pretty funny and shows off what it can do. You will see that for yourself in the next test.
Here are some things the dialogger does...
When we started building this the vision was a simple Visual Novel type system. But things quickly spiraled out of control. We also needed fully cinematic cutscenes. The assumption was that we would do heavy animation using Unity's animation system and then just have the dialogger tell them to run. But Ghost started actually animating the cutscenes in the Dialogger.... O_O. So Tunik kept improving it to make it possible for him to do the animation things he wanted. The tool we ended up building is going to allow us to make (or re-make) the AQWorlds cutscenes in Unity.
Shadow Creature - animated by Nulgath.
Combat Stats & Power System
Last Thursday we had a big meeting to make a hard decision on our combat stats. Yorumi has implemented the new stats and formula in the database and server. During the meeting today we came up with a plan to put it in action. Spider already setup the Skillforge (the tool that we build classes in) to use them. By tomorrow morning, Immortal Joe will be changes the classes to use these. In the next test, your weapons will automatically get randomized stats when you log in. They will not save to the database... yet. We will need to give it some "reality check" testing before me make them permanent.
For example, one side effect of the new stat system is that haste is operating at 400%+. The auto attack looks like a food processor on overdrive. Funny. Easy enough to fix. But oh man it is funny.
In the previous post we talked about trade skills like being able to use your blacksmithing or weaponsmithing to upgrade another player's item. We left some growth in the item's stats just for this. While we are currently in the brainstorming phase, it is not a far fetched idea. In Korey's YouTube video which covered the last post there seemed to be a question on how something like this could work. We were thinking of initiating it the same way you would interact with an NPC... except it would be the player with the trade skill. In this idea, the player with the trade skill would basically be a shop. So you would never need to hand your weapon to another player. But the player with the trade skill would need to get all of the ingredients to perform the upgrade, and they would set the price and be able to approve/deny the request.
Introducing Lurkle
Lurkle is a ghost moglin. At least... we think he is. Maybe he is a Moglin under the effects of a levitation spell who has a penchant for stealing designer sheets from the hotel he was staying at? Regardless, Lurkle is being added to the first frame of Bludrut Keep. Now that our NPCs have the ability to move around maps as you quest, we need an NPC to remain in the first frame to greet players. It is also a good idea to keep the story on the main NPC, and move all the side quests, craft shops, cutscene replays, and other side things onto a different NPC. So we are going to try this in Bludrut with Lurkle. This is not a hard "set in stone" rule. Obviously there will be some areas where this is not possible.
When J6 was creating the art, he made a crumpled up "folded sheet" version of Lurkle. It is too funny not to use. But we are not sure how to work it in... yet. Maybe we can put it in a side quest cutscene. Bludrut Keep is a pretty creepy place with a dark story... this character will never go inside the Keep, but will lighten the mood when you are ouside of the dungeon.
See you tomorrow.
2025.01.29
I met with Ghost & Tunik on the dialog system as the team continued work on the things posted above.
The newest feature that was being tested involved the customizable easing in our cutscenes motion.What is easing? It just means it starts slow and goes fast. Or, the opposite. It is an extremely important tool for animators to control how motion looks. Today, we tested out the new easing feature Tunik added.
Easing is nothing revolutionary. Flash has done these sorts of things since 1998. Unity has some built in easing curve tool features. When we went to build out own custom one we knew it had to let us have the same sort of control that Flash did. Except, we do not have a timeline. O_O So.... this got interesting fast. So when Ghost asked for highly customizable easing that he could control at every level, oh boy did Tunik give him what he asked for. See the part circled in red below.
As you know, there can be many possible correct ways to solve a problem. This one presented a chilling level of control & complexity. By manually changing these values, Ghost can control the easing & speed with great detail. But.... it is complicated. The first row are the tween speeds. The second row controls the distance between the lerps. Then the frame of the cutscene has a timer that you can set to tell it when to go to the next frame. Ghost is pretty comfortable with complicated stuff like this. But, if we every brought someone else in to work on these (maybe you?) it would be very complicated to understand. So I proposed a really radical change. For the record, this really sucks to do. First because a lot of hard work was already put into this. Second, because changing this will also break the cutscenes that were created using the old version. But if we do not change it quickly, it will not be possible to do in the future. I suggested basing the animation off of time instead of speed. Then having a drop down of easing types (like Flash does) that are preset. This way, if you have a ball that is moving from one place to another... you tell it how long it will take to get there, and then choose the easing from a drop down. Furthermore, there should be a check box to "go to next frame after animation." It should be smart enough to know if other objects also have this checked and not continue to the next frame until they have all completed. Sorry, I went pretty deep on this specific thing... but this is a pretty good insight into what each of our individual work sessions look like. These changes are in progress now. This feature is very important because it needs to be working & final before we can build production-ready cutscenes for the game.
To anyone wondering why we are not using one of Unity's built in animation systems for our cutscenes.... we sorta are. But in order to load your dynamically built hero, use monsters from the database, and even use art assets from the map you are currently in, we decided to build this custom solution. What is really powerful about this... is these new cutscenes are not giant movie files or asset-bundles filled with duplicate art (like the current game does.) These animations are simply text, position, and animation data which is stored in the database. Which means we can fix a cutscene "live" without needing to upload any files. Extra important since we now need to cloud-build all files for each device and roll for each platform.
The tricky part of these daily updates are they are always from my point of view. I see the others in voice chats working on their things... but unlike the days when we were all in the lab together, I cannot simply walk around and do rounds to check in on everyone and see how they are doing like I used to.
For today... first... Weapon Panel
Here was the 1st design from Diogon.
Really good! But we can make it even better. The enhancement is the source of all of the item's power. So the box with the enhancement should contain all of the damage, stats, and power things. Also, that line that separates the item preview from the text is nice... but given how little space we have and how long weapon descriptions will be, you will almost always be forced to scroll. So what if we got rid of that line, allowed the text to overlap the weapon a bit... and then added an "eye" icon that let you see the weapon bigger without any interface obscuring it?
Round 2...
Awwww yeah! I love how clear the Enhancement is now. And if you look at the one on the right, you can see Diogon color coded the entire enhancement. That would would be the power equivalent of "Rare". (Rarity between item art and enhancements will have to be different to not be confusing... more on that some time later. )
Now, if we could just move that item icon to the top center to make everything aligned. Also, would be nice if those damage numbers were bigger.
OMG is he fast!
This is looking really promising. It could use a glow behind the weapon to make it pop... and so you can see any black parts, but this is definitely the right direction.
Meanwhile, Bludrut progress continues. We ran into a pretty bizzare problem with Ghost re-arranged the first frame of Bludrut's map. We had to pull in J6, Warlic, Zhoom and a bunch of other devs to diagnose it. The issue was related to our bookends for wide maps. Here, see for yourself...
Let us say you are on a reaaaaaalllly wide monitor.
That is a REALLY wide monitor. The map is supposed to fade to black and cover up any of the extra bits on the edges. You are not supposed to see those edges of the mountains that are sticking out for example. We are not entirely sure why our book end code stopped working. Either way, Warlic built a better system does works no matter how much we mangle screens in a map XD. On that note... we should probably have a max width for the UI for ultra wide screens. You would have to move your mouse a loooong way to press your inventory if it actually ran like this.
Aaaaaaaaand... Diogon sent a version with the glow. NICE!
Meanwhile, the dialogger is still getting that feature changed. We will see how it looks, along with the new combat/states tomorrow. See you then.
Combat & Stats day
Eht, Spider, Yorumi, Immortal Joe, and I meet on Thursdays to sync on the progress of Infinity's combat, power, and progression. We covered a lot today-- and I am not even sure where to begin.
In Infinity, items will drop with power already assigned to them. You will be able to improve this power a number of different ways-- from drops, shops, trade skills, and other players. We briefly talked about the new system in previous posts. Items are split very cleanly between art & power. We feel it is important to be able to look and play the way you want. It is also important that the game has a fun progression system which gives you the freedom to try different strategies with your classes. This is what we dug deep into today... with a lot of spreadsheets. I find the Eht's math way easier to follow than the things we have done previously. As a result of today's meeting, Yorumi needs to make more changes to the database and server. It is a little bit nerve-wracking that we need to make these alternations to the live AQWorlds database. Both games run on the same database. Which makes sense, both games need access to your character's data. To make it possible to increase your weapons power & stats, we needed quite a few extra fields added to the biggest table in the database. We were hoping to have been in some sort of testing today, but this is worth taking an extra week to finish. I know this update was a bit too readers-digest-y.... but it is also 12:30am. Time to wrap up and get some Zzzzzz. See you tomorrow!
Wooohooo! Friday!
Be sure to check out the latest AQWorlds release at www.AQ.com
Also, AdventureQuest 3D's new website just went live.
Today was a fun day. Warlic came over to my house with his laptop. We worked on Infinity, drank coffee, and hung out together.
Ghost spent the day ripping through the new Bludrut cutscenes. Reens implemented the new writing from Cylisse and improved the flow the of the first floor. Spider is close to wrapping up the first phase of Monster AI, but is going to get some new melee & attack formula nodes in for Immortal Joe. That way Joe can start applying the new stat system to the classes. The biggest win of this week was the new stats system. Getting Eht, Immortal Joe, Spider Yorumi, and I all on the same page and working towards the same combat functionality was critically important for the project. All in all, I am feeling good about the progress this week.... but I will be generally anxious until the next test is ready for you to play.
Check out all the new things that went live this week at Artix.com