Upload Images
Do not upload images you did not create. Please read the Image Upload Rules before uploading.
Uploaded Images
Upload Progress
Work to add combat to Antilia is continuing along, with AI Behaviors and creature spawning now mostly complete (there are still a lot of AI behavior nodes to add and probably some surprises still lurking). Lately my attention has turned more toward the game's Skill system, combat mechanics, visual effects, and getting projectiles to work. Skills SystemWhile the Skill Grid was added to Antilia quite some time ago now, there haven't been a lot of skills added to it since then. It is good to finally see all the pieces I need coming together and I am excited to put them to use soon. Skills are now capable of triggering effects and launching projectiles, projectiles are flying around on the client, and those can trigger more effects when they hit something.
All the parts are coming together, now I just need to arrange them into a working combat system. The response time of the multi-threaded server does have me a little concerned about how combat will play and feel, but after a bit of discussion a couple weeks back I think I've got some good ideas for that. AI Behaviors can now invoke characters and creatures to use combat skills against hostile targets. Special FX (ClientEffects)The effect system isn't only useful for combat - in just a couple weeks of development it's become one of my favorite new tools. I wish I could have implemented it sooner as it provides features that would have made developing systems like fishing a fair bit easier (I plan to go back and clean up that code to use effects for things like casting and hooking fish.) I expect this system to see a lot of use in the future as I polish things up more. I can trigger an effect in response to anything - running, jumping, landing... Passive skills like double-jump might trigger an alternate effect to play at the character's feet when used to jump mid-air. Eating food or drinking a potion could trigger an effect (with the effect resource file being specified by the food or potion).. I don't know if it's coming across in this writing, but I am super excited by the new effects system and I am spotting use cases for it everywhere. A snippet of what an effects file looks like. It's probably more exciting for me than anyone else, but oh boy is it exciting! A great thing about the effects system is that once I build up a library of effect files to use, playing them only requires a single line of code from the client or server like playEffect(effect_filename, target_id) or playEffect(effect_filename, world_position). Effect Animation SystemOne thing I discovered quickly is that effects frequently need a bit of simple animation. Initially I started out with a few layer types offering animations on key properties (such as adding a setting to lights that causes them to fade in or out after being activated), but as I continued to add effect layer types I realized there was a better way. The Toi Engine features an ancient practically forgotten system for animation that I haven't been making good use of. I decided to reacquaint myself with it and in just a few hours of development I had a very robust system of animation working for all current and future effect layers. I don't have an editor for these files, but I was able to come up with a straightforward way of describing animation in the json file. (If these effects get too complicated I may consider an editor later on down the road.) It is a full-fledged animation system in that it provides support for multiple channels, keyframes, seamless looping, different keyframe interpolation types (trigger, linear, or spline) as well as simple ease-in/ease-out options. All of the advanced animation features are now supported in the json file, although for simple animations you typically don't need to specify them. Adding animation to an effect layer is as simple as adding an "animation" section to the json file and listing keyframe values indexed by time for the layer properties that change. Effect LayersSo what can an effect file do? A lot! Here are the layer types I have currently have working (the "bread and butter" effect layers):
And here are some more effects I'd like to add soon:
ProjectilesAs you've already seen in the screenshots above projectiles have been added as well. There is an action layer that can be added to Skills called LaunchProjetileAction that will launch one or more projectiles, and it can be used multiple times with different settings to create complex patterns of projectiles launching in different directions. Projectiles have settings for air resistance and gravity, and use the effect system to play an effect at launch, for the flying projectiles themselves, and upon impact. There are a few more things I'd still like to add to projectiles, such as homing projectiles and better control over the collision boxes. That's all for this week, thanks for reading! |