Entity Effects & Item Drops

Welcome to dev blog post #6, which brings us back to our custom client. In this post, we will be focusing on some combat-related work along with a handful of other minor details that have been added. Keep in mind that many client-side changes inherently involve some server-side changes as well. While some of those have been mentioned in this post, they will often be left out unless they're particularly interesting. # Combat The two most notable combat changes in this update are taking and dealing damage to mobs. If you watched the progress video from blog post #4, you would have seen that the player only received a knockback effect from getting hit, and didn't actually take damage. Another new addition is mob name and level showing up when attacked. Additionally, the player's HP bar is properly updated, and the death animation is also functional (except for the tombstone falling from the top of the screen). # Entity Effects One of the most significant recent internal additions was a generalized "entity effect" system, which allows for modifying the transparency, color, and rotation (among other visual traits) of entities. This is showcased in the video below when mobs spawn (fade-in effect) and when items are removed (fade-out effect). It will also be used in the future when dark sight is implemented (semi-transparent players). Other than mimicking details from the real client, this system can be used to create interesting visual effects, which we may take advantage of in the futureā€¦ <iframe width="1280" height="720" src="https://www.youtube.com/embed/Z3rIJpNPNsA" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <iframe width="1280" height="720" src="https://www.youtube.com/embed/Us-Mzg5PmLU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> # Other Stuff Some less apparent changes were also made to improve code quality. One of the most significant examples of this is the character rendering code, which was unorganized and redundant compared to other parts of the codebase. The code was heavily condensed and cleaned up, which will improve maintainability for the future. Thanks to these changes, skill effects are handled better, which allowed for remote player skills to display. While skills weren't a major focus for this update, Flash Jump and Genesis were added and confirmed to work. It turns out that adding Flash Jump actually makes the testing experience a lot nicer, instead of having to rely on moving the character via the mouse all of the time. A lot of internal work has also been done on both the client and server sides, including movement packet handling for mobs, synced player attacks, and improved client error handling. Previously, the client would crash for most errors. Now, it closes gracefully with a popup window describing what just happened. ![](https://playselene.com/files/images/website/devblog6-1.png) # Progress Video and Next Goals Since the last client post, it has become obvious to me that movement packet handling should just be improved now rather than later. As mentioned in post #4, a low latency (i.e., short delay, no more 500ms base delay like the real client) movement mode was being considered, which will now be worked on for (ideally) the next update post. That will go hand-in-hand with fully synchronizing player skills and movement, along with mobs and NPCs. We've also been discussing some potential formulas for mob damage, which will factor in our custom changes to the HP and defense formulas. These will likely be included in the next post as well. To conclude this post, here's a new client progress video. Note that damage formulas haven't yet been finalized, so currently, the player always deals 299,999 damage and takes a fixed amount of damage when hit by a mob. Also, while Genesis is functional, the actual effect doesn't show up yet. <iframe width="1280" height="720" src="https://www.youtube.com/embed/nYIOyn1n7qc" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> That's all for now! [Join our Discord](https://discord.playselene.com) to stay up to date with our progress. While you're at it, visit the #submit-a-suggestion channel if you'd like to submit any suggestions for gameplay ideas or changes!

Back