Comments (2)
Used the Visual Studio profiler, and it found most of the effort in running the game was in EOMapRenderer::_doMapDrawing and EOMapRenderer::_doMapRenderTargetDrawing (as expected). The plan to update this is as follows:
- Render fill tile/ground layer to one target, this will be cached for performance gains
- Render other map gfx, players, NPCs on separate render target (referred to as target2 here)
- Unfortunately, cannot do players/map objects separately/using blending because they would be clipped incorrectly in certain places
- so will have to redraw each time an update is required for a player, npc, or door due to some kind of action.
- Additional performance gains will have to come from only drawing within certain range of main character
- Unfortunately, cannot do players/map objects separately/using blending because they would be clipped incorrectly in certain places
- Render main player to target2 with following blending rules:
- If target alpha > 0 (ie, visible pixels), player alpha = 50% (or whatever looks good)
- If player is hidden, don't bother with blending
- Render ground layer to back buffer
- Render map items to back buffer
- Render target2 to back buffer
- profit
The order for drawing any object (players, npcs, and map objects included) will start at 0, 0 and go through each layer row by row, with increasing columns drawn later, so the objects appear to be rendered in the proper order (this is currently being done).
from endlessclient.
New performance measure for large maps:
Pretty much idles at 20% on the largest maps. Note that CPU usage still scales with map size. This is to be expected. Overall, drastically improved from the original case. Note increased memory usage as well - this is a byproduct of switching between more maps as well as improving caching of GFX.
from endlessclient.
Related Issues (20)
- Chasing a passive NPC by holding the arrow key doesn't move the character when the NPC starts moving
- Player ghosting
- Unnecessary DLLs are included in build drops
- Reports are not implemented HOT 1
- Fast NPC animations sometimes jump around
- Missing "out of drop range" chat message
- Missing sound effect when giving "safety comment" for dropping a large amount of gold HOT 2
- Implement credits/checksum generation
- Character Misalignment on Chair Without Character initially sat HOT 2
- Visual glitch with chairs facing "Up" direction HOT 2
- EHF file parsing and display
- Implement quest switcher functionality
- PVP - Visuals HOT 2
- Rendering gold for example near bank locker HOT 1
- Use and enforce "server settings" during Welcome exchange
- Send WALK_SPEC when ghosting players
- Implement "freeze" walk packets
- Admins hiding does not play effect
- Chat bugs and inconsistencies
- Changing password HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from endlessclient.