AQWorlds
Artix Krieger | Friday, August 23, 2024
Follow our 3rd weekly of daily updates for AdventureQuest Worlds: Infinity. (Wishlist on Steam!) This is our complete rebuild of AdventureQuest Worlds which will allow you to log in and play your existing character on phones, tablets, and computers at 60fps.
Enjoy and please know that these posts are overly transparent, chronically the struggles and tribulations of game development. If at first you do not succeed... post and post again.
"Mondays. Am I left?"
One of the best things about these daily posts.... if you have been keeping up with reading them, then you already know exactly what we are working on and what the priorities are. Each Monday we have a meeting with the full AQWorlds Infinity Team.
Here is a summary....
This image has nothing to do with today's post, but OMG, I LOVE IT! #MegaCool
I worked on quest issues with Reens and Warlic for more of this afternoon. There is a pretty big structural difference between the way AQ3D works and the way AQ2D works. Some good. Some.... well, we need to add it. For example, you cannot have a single quest where you talk to multiple NPCs in AQWorlds Infinity yet. Also, the person you turn the quest in cannot magically transform into someone else after the quest has been turned in. (Example: In AQ3D's the Masquerade, you would talk to an NPC and take their mask off to reveal what sort of monster they are.) So we are adding some new quest objectives which will let us do things like that. One of the werdiest challenges now that we have auto turn in quests in Infinity, is making sure we hand off quests to other NPCs in a smooth way. AQWorlds was written around a very simple quest flow. Changing it to be a little more natural will speed up quests, but it is also introducing some strange complications.
See you tomorrow.
"Good things come in Tues"
Started the day bug testing the Warrior and Mage class. Found a few things. Highest priority fix is a skill bug which causes monsters not to die. They become a 0 hitpoint zombie which lurches to the (0,0) coordinate of the map. There, they just lurk... never going away. Never letting you escape from combat.
Second up is the mana regen issue. This might be an easy one to solve. (Might) As seen in the warrior below, once you use skills it consumes the mana. But instead of ticking up it randomly flickers back to 100%. Also below, we still need to add the text effects to the aura pop ups (example: armor shred, Empowered strike)
We also ran into a quest issue where defeating a single monster gave you every single quest objective. Perhaps that is a feature XD.
Upper Cut-scenes
A good chunk of my morning was in a meeting with Warlic and Zhoom over new quest objective types for cutscenes. This is an opportunity to improve something that became problematic for devs in AdventureQuest 3D. Please allow me to explain....
Imagine that a quest wants you to watch a cutscene. No problem. Just mark the quest as done and show the cutscene. Right? Wait. No. What if you crashed and never got to see the cutscene? That is a big problem. Because when you get back in the game, the quest is already marked complete. So you would NEVER get to see the cutscene. No worries. Easy fix. We move the quest complete to the end of the cutscene. But what if the cutscene starts from a pad that you walk on; or by talking to an NPC; or a machine in the map that is activated when the boss dies; ...and so on. Also, what if we want you search a map to save 10 different NPCs in distress, and each has a little funny cutscene on them? OK, ok. Still not super hard. Quests can have multiple objectives. So we make watching each cutscene a quest objective. Also, we add the ID# (every cutscene has a unique id) into the objective. Then to be super fancy, when you click on an NPC... it sends a message to the server, and if you happen to have a quest with an objective that requires talking to that NPC, and there is a dialog... then play it! Whew! There. Not so..... oh geez. BUT.... what IF you have a bunch of different quests from the same NPC and it just so happens that 3 of them are ready to turn in and all 3 of them have dialogs that are ready to play? O_O #OhSnap
So we tossed around some ideas and came up with what seems to be a solid and bulletproof solution. When we were implementing this sort of thing in AQ3D, we used a very manual solution. We gave the devs a lot of freedom in how they showed cutscenes and marked them as complete. However, it was really confusing and resulted in a lot of new devs accidentally making the logic backwards. Also, because cutscenes are entered manually, there is is no way to tell when they actually happen when looking at AQ3D's database. This is something I have wanted to improve forever. This is finally a chance to do it.
Warlic had a galaxy brain idea of moving the cutscene, npc, and other extra data info right into the quest objective. This means the quest objective will now determine when things happen... not the maps or the npcs. From our programmers point of view, it is backwards from how the flow worked before. But this is way better and more consistent. Also, this is an MMORPG. So the server needs to validate all of these things that are happening. For example... the server will not let you turn in a quest unless you are in the place you are supposed to turn it in.
So now, we just need time to implement it in the game, server, and database. Because in an MMO, every change takes place in these three different places. When complete, it will make adding cutscenes waaaay better in the quest flow.
OK, that was a little long winded & techie. If you like reading those sorts of things please do let me know. Most players seem to prefer posts about game art & animation. It is a rare individual who appriciates knowing how much thought does into playing a simple cutscene.
I have a NES game to give you today. #AsPromised
But first, a quick AQWorlds Infinity update.
Good things come in threes
Today, everyone on the team is busy at work on the things mentioned in the previous posts.
#ThatWasQuick
Which makes this the perfect day to talk about other amusing things...
...like Game Jams and NES games!
Game Peanut Butter & Jams
Someone once told me that doing Game Jams was the equivalent of going to the gym for a game developer. It is a place to build something different, get out of your comfort zone, learn new things, and explore game dev things that you might not be able to do on your daily projects. I remember reading that the creators of some of my favorite manga and anime series would get burned out working on the same things every day for years. So they would go do side projects to re-kindle their love of creating. I felt that way back in 2019. So I had to make a tough choice... should I take an online MIT course on quantum computing, or learn how to make NES games? #NotEvenJoking
NES stands for Nintendo Entertainment System. That was the original Nintendo (Called a Famicom in Japan) that released in 1985. It was not the first video game system I played, but it was the one that stole my heart and started my obsession. Games like Castlevania, Zelda, Dragon Warrior.... O_O OMG. So when I saw there were people making new games for this old system.... well, I went from curious, to interested, to obsessed.
I joined NESMakler's ByteOff Game Jam.... which was a challenge to build a new game for the NES in just 30 days. I know that a lot of people do not understand why this was so important in my life. No one except the folks I worked closest with saw what a burned out, low point at was at. But this actually worked. It healed me. My game jam entry took on a life of its own and turned into a 100% finished game NES called Dungeons & DoomKnights. We assembled complete boxes with physical carts that actually work in the system and made an instruction manual, map, and magazine. You can download the digitial version of the extras on the website. Dungeons & DoomKnights got rave reviews from retro magazines, YouTubers, and even made the #1 best new action-adventure game on the Top 400 New Games for the NES. A buddy I met in the community converted the game and released it on Steam and the Nintendo Switch.
It is funny that this night's and weekends personal home-brew game ended up getting on the Nintendo Switch and becoming a "REAL Nintendo Game."
More Game Jams... More Games!
Every time they had a ByteOff Game Jam, I would join with friends. I made other games including ChronoKnight, NecroNancy, a game w/ my kids called DragonRaid, and finally, the "Best Game" category winning Pizza Portals!
A game where you need to deliver two pizzas... at the exact same time.
The Pizza Portals game entry was the first time I had ever won anything in the Byte Off game jams. It represents some of my best creativity, coding, and level design to date, and features art from FJ and music from Raftronaut. One of the fun things about creating NES game is working under the insanely limiting restrictions of the old hardware.
I would really love it if you played this game. Even thought it is a retro game, I think you will find Pizza Portals to be a lot of fun.
Download the Pizza Portals ROM for free on Itch.io
Side story: I animated that bouncy sprite and coded the monster freeze/jump mechanic in 6502 Assembly Language.
The judge of the Best Game category was the team at Polymega who are building new hardware to run old games. Their stuff is pretty cool. The best game prize came with a $$$ investment in completing the game. But I had to turn it down because I am focused on AQWorld's Infinity. Word on the grapevine is that they have been in talks with other teams from the contest to build Polymega exclusive games, so it is all good.
I created an Itch.Io page for the Pizza Portals game this morning and uploaded the file there for you. You can download it for free. It will not even ask you for a donation. The game is a .NES file. Use any NES emulator on your phone, tablet, or computer to play it. Or, you can play Pizza Portals in your web browser on the RetroVerse website.
...glad we finally got to talk about NES stuff on a WedNESday.
Enjoy and let me know what you think!
Coming Thursday... or else. X_X
*dramatic pause*
OH SNAP! It is "OR ELSE!"
It was bound to happen.
Combat Bloopers
As the combat fixes roll in, we still have a few notorious bugs like the one in the GIF above. Here, you see me using the Mage's explosion skill which kills both enemies. But instead of dying, they just sit there while my skill icons flash repeatedly. Then they casually walk back to their spawn pads with their backs turned to me as if I was some sort of explosion in a Michael Bay film.
The combat timing is feeling really good. In the GIF above you can see how the winning critical hit strike lands perfectly and Nulgath's animation really feels like a knockout blow. Even the damage number has that action acceleration... it really does feel good. The shadow is moving with the monster, but the red ring stays in place. This is because the red ring is active any time the monster's nameplate is visible. It also indicates where the monster's X,Y position truly is. Two improvement we could make it hiding (or fading out) the ring on a winning stike. But I do want to see the monster's name plate for a second or two if I am not fighting another target. It is satisfying looking up there and seeing the monster's name & 0 HP. Another improvement is removing any white flashing from the DOT (Damage over time). You can see that little flicker at the start of the GIF where my fireball's damage over time is afflicting the Drow. Definitely need to remove that. Only normal strikes should connect with the hit flash. And of course, the hit flash needs an option in the menu to disable just like the current game.
Dialogger.... Dire Logger
Tunik has been working on the dialog cutscene editor. The major bugs we are facing include monsters not scaling when they are supposed to (as seen in the GIF above), z-ordering issues, getting particle systems to scale properly, and making sure all the things we can do have boxes in the editor that we can edit. A few of these issues were fixed by the end of Thursday, but not tested yet. We also had our first.... save button issue. This was bound to happen with the way the current temp interface is setup. Reens entered the ID number of a cutscene... but instead of hitting load, she accidentally hit save. This, of course, immediately overwrote her cutscene. There is no way to undo it. #DangersOfDev The fix to this is pretty obvious-- every program you use on your computer does it. We just need: load, save, and save as menu options. But we can do that when we do the polish pass to the editor. We need the major features working first including the controls for Ghost's cinematic animations.
Other things
Warlic spent the day working on the changes to the quest system. Yorumi is working on the list of server-side tasks. Ghost has been fixing up player emotes. Nulgath is animating monsters and class skills. Reens has been restructuring the early Bludrut quests to solve our flow issue. Jongaar is working on the Bludrut music tracks. I think that sums us up.
See you tomorrow..... (erm, later today.)
The best day of the week! Whew, seems like just a few moments ago I was writing Thursday's update post.
>_>
<_<
-_-
O_O
Oh..... yeah.
#UnlessMysteriousJohnsonCanJustTellUsTheFuture
#MYSTERIOUS!
Would you like to see AQWorlds Infinity's animator setup?
Each of your characters animations are here. *looks again* Uh, most of your animations are here. There are quite a lot that continue down past the bottom of the screen like someone was digging a hole to the center of the earth. In Unity, you use those white arrow-connector lines to transition between animations. Because this is a hand-animated 2D game, there are a lot of times where it is better to instantly hop between animations. This is why so many of the emotes, skills, and other animations do not have any lines attached. As seen above, Infinity is designed a lot more like the Flash version of AQWorlds. 3D games, like AdventureQuest 3D require a much different approach.
One improvement we would like to make to our emotes is being able to do them once, or loop them forever. Example: /wave and /waveforever. Where the first one would do a short few frame wave. The second would... as the name implies, loop forever and ever. This would certainly make screen shots with certain emotes a lot better. This feature is one of the many things on Yorumi's to do list. On the animators list, we need to do a clean up of the prototype Umbra class skills. We baked all of the art, animation, and FX into the game client for that class... but it was really messy and loads a lot of unneeded stuff into memory for every character. Our system has become a lot more efficient and elegant since then.
(Pictured above: Preparing the log in area for the next tech demo)
Can we insert a few more days into the week please? X_X
Progress was made on combat, quests, and the dialog cutscene system, but it feels like we got about 50% through the objectives. There will be some work over the weekend and on Monday we will see how far things are. The goal remains steadfast the same-- Complete the features and do a tech demo for Bludrut Keep alongside the starter classes. #focus
Have a fun & adventure filled weekend
Be sure to check out this week's brand new releases at www.Artix.com