Gl nerds.
|
best of luck man
Gl nerds.
Best of luck, pure osrs is taking over this section and I'm loving it
Goodluck gents
Good luck!
Hello everyone, it's nice to be back. I'll be a good boy this time!
Today's updates consist of core modifications. Specifically I've completely gotten rid of Regions and all things are now Chunk based. Dynamic Maps are now just chunks with a little bit more information sprinkled in them. Pathfinding is chunk based only as well! Overall I went this route for consistency throughout the base.
I've also implemented mini actions!
Mini actions are actions that do not use fibers. As neat and cool as my action system is, I was worried about the performance as the maximum concurrent fibers I could have was capped about 50,000 with Quasar on an i7 Quad Core. That limitation is solved with mini actions!
Before:
After:Code:player.getMsgs().sendMessage(Message.RAW, "Hey there."); Action.sleep(3); // 3 Cycle Delay here player.getMsgs().sendMessage(Message.RAW, "We just woke up!");Code:player.action(()-> sendMessage("Hey there.")).sleep(3).then(()-> sendMessage("We just woke up!");
They're just queued runnables that closely mimic a promise based system, nothing fancy. I just personally enjoy the structure and functionality they offer. They're meant to be used on things that require a single delay and/or multiple simple delays that need to follow a structure, but aren't important enough to reserve a fiber for. I plan to use both the fiber based action system and the mini action system extensively. But I was really worried about overall performance so I'm happy with this solution.
The important thing is I can mirror the functionality of either system, each having its own drawbacks. For example something like combat I would defer to the fiber based system, where as death i've opted to use the mini fiber system. I am worried about performance of the mini action system as well, but I'll benchmark it soon.
Code:wait().then(() -> { playAnimation(Animation.NONE); }).sleep(1).then(() -> { sendMessage("Oh dear! You have died."); playAnimation(Animation.DEATH); }).sleep(7).then(() -> { playAnimation(Animation.NONE); teleport(GameConstants.HOME); restoreHitpoints(); });
Keen to see what you guys come up with - best of luck to the both of you.
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |
Tags for this Thread |