Archive for May, 2009

Graphics Rendering Improvements

Potential RPG No Comments »

Technical tasks have momentarily waylaid gameplay integration. I’ve restructured the graphic rendering routines to make the entire painting pipeline more stable and efficient. Instead of independent timers and redundant repaints, world rendering is now driven on a single timed thread, which carefully coalesces all collected dirty regions to repaint as little as possible on each rendering cycle. Most of the rendering cycle is no longer performed on the Swing/AWT event dispatch thread (only the painting portion), making the client more responsive in general.

The immediate benefit is a reduction in (complete removal of?) some avatar blips and jumps I was seeing during world navigation. Any remaining graphic issues will be easier to debug in the cleaner pipeline. The improved design will allow for future performance testing and tuning, as more sprites and effects are added. In fact, aside from general improvement, the motive for these updates is to begin a graphics enhancement process, which will finalize the handling of sprites and effects in the rendering system, allowing integration of better graphics, with the goal of providing a richer world environment.

Why is LinkedList.clear() linear?

Developer's Cave 4 Comments »

I was just perusing the Java source code (because I don’t read the morning newspaper), when I discovered that java.util.LinkedList.clear() is implemented to operate in linear time. The documentation does not specify its order of growth, and I intuitively assumed that a linked list clear implementation would be a constant time operation.

Could this be an artifact of early Java development, leaving a legacy of poor performance? The remainder of this article explores the potential to significantly improve application performance when using the LinkedList.clear() operation. Read the rest of this entry »

Character Action Queue

Potential RPG No Comments »

Gameplay integration continues. Alpha testers will see a timed task queue pop up upon certain actions (such as drinking potions and changing equipment during combat). This functionality provides the game engine with the capability to coordinate character actions based on situation (such as combat) and game rules (such as attack speed). Actions that result in lingering effects (such as potions, spells, and afflictions) show how long they will last.

Under the hood, character navigation and combat attacks are also integrated with this timing queue. As more rules are integrated, this will allow the player better control over the combat situation. The goal is to ultimately provide a more strategic combat experience. Until then, Alpha testers can have fun attempting to break the new feature.

Gameplay Integration Underway

Potential RPG No Comments »

I’ve been taking some time to solidify the game design. Alpha Playtesters will start to see incremental updates, as I integrate the latest gameplay decisions. Some simple adjustments have rather fundamental impact, such as altering character ability computations. In addition to these enhancements, there are a number of new gameplay features in the pipeline. The goal of this next wave of updates is to bring Alpha a significant step closer to a feature-complete Beta.