Advanced Search

Author Topic: Kune2D  (Read 1293 times)

March 25, 2014, 02:19:06 PM
Read 1293 times

AaronMiller

  • Global Moderator

  • *****

  • LTM ~ Full source user

  • 3
    Posts

  • Kune Developer

Kune2D
« on: March 25, 2014, 02:19:06 PM »
Introduction
Kune is a plug-in for Nuclear Basic and Nuclear Fusion that extends their capabilities into the realm of 2D graphics, high-performance multithreaded job streaming, cvars/commands, and more. At the moment it's in the BETA phase with bugs being fixed, features being added, and polish occurring every day.

Check out the docs!


Features
These features are currently implemented and are either complete or being tested.

2D Graphics
- Easy and optimized shape rendering without having to create additional resources like you would in NB/NF.
- Sprite system with an advanced hierarchy and animation system.
- Sprite collision support.
- Bitmap font rendering. (Soon vector font rendering!)
- Custom text coloring system -- allows gradients and alphas on a per character basis with one call!
- Clipping support to ensure sprites and other shapes are drawn only within the area specified (really useful for GUIs!)
- Sprite groups allowing for camera-like controls over the sprites and batch settings.
- Custom texture system that automatically manages an atlas for efficient rendering!
- Can make textures from memory and manually manage texture atlases (optional) for fine-grained control!
- Color conversion routines for RGB<->HSV, and RGB<->YCoCg.
- Easy to use but advanced layering system. (Great for GUIs!)

Multithreading / Concurrency
- Support for atomic operations.
- Custom signal primitive to handle multithreaded events.
- Easy-to-use worker queue system to efficiently stream jobs across the optimal number of cores.

Developer Console
- Advanced CVar system.
- CVars double as commands.
- Can execute scripts!

Container Systems
- User-maintainable linked lists designed especially for NB!
- Complete and easy-to-use binary search tree (BTree) system!

Miscellaneous
- Direct memory access for NB! (Easier to use than memory banks!)
- Alternative high performance timer commands work with nanoseconds.
- Alternative networking interface for UDP.
- Compression/decompression. (Testing.)
- Min/Max/Clamp and bitwise operations like rotate left and rotate right.
- New string operations like padding/trimming and commands like FindString()/FindChar().
- New mouse API for getting less latent mouse input. (Also useful for GUIs!)


Remaining Work
These features are not implemented but are being added in. The letters 'N' and 'F' indicate when the feature should be implemented. N means "near future," and F means "further out" (but before version 1.0). Also note that Kune only works with Direct3D 9 currently. Direct3D 11 is not supported at this time.

2D Graphics
- N: Ability to apply transforms to arbitrary shapes.
- N: Stencil buffer support.
- F: Box2D-based physics support!
- F: Support for Spine animations!
- F: Tile-mapping system using custom and efficient (one draw call) algorithm; misc optimizations.
- F: 2D lighting and shadowing system.
- F: Tool: 2D scene maker / tile-map editor.

Multithreading / Concurrency
- N: System mutex and semaphore support.
- F: Interprocess Communication (IPC) support.

Developer Console
- N: Actual developer console display.
- F: Implement archiving support.

Container Systems
- F: Custom allocator system to provide better memory access.
- F: Thread-safe linked list and binary trees and associative array (based on custom O(1) algorithm).

Miscellaneous
- F: Optimized / concurrent A* path finding system.
- F: ADVANCED memory management. (Direct page access. Memory mapped files.)
- F: Ability to capture STDOUT and STDERR pipes from current/child process.


Screenshots
Here are some screenshots from samples in Kune. (More samples, and more screenshots, are coming!)


And we will dance! I am not a good artist. Stick figure looks like a dancer when animated. (Was supposed to be walking!)


Konnichi wa (こんにちわ) is actually written as Konnichi ha (こんにちは) because "wa" (わ) is used as a particle.


Sprites can be bound to each other in a similar manner to the NB/NF parent-chield hierarchy.


Projects Using Kune
Falling Diamonts by N_Gnom
FPS Game by Prime_8
P3D 2 - Frosting by Prime_8 (see here)


From here. - Prime_8's GUI


Early Adopter Special!
I've been developing this plug-in on and off for the past few months, and recently had a friend help me out with some of the lesser tasks, testing, and morale-support. We did this on our own time with our own money. You can get access to the early beta version of Kune for only $15.00 USD. This entitles you to all future upgrades and bugfixes to Kune!

You can purchase here: http://aaronm.nuclearglory.com/buy_kune.html

We'll have a page up in the NG store soon to let you buy from there and manage it with the rest of your NG products.