Jump to content

Wii Opera SDK: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Geekrecon (talk | contribs)
Website releases
Geekrecon (talk | contribs)
DSiPaint reference link
Line 103: Line 103:


==External links==
==External links==
* [http://wiioperasdk.com Wii Opera SDK / HullBreach SDK Official Page]
* [http://dsiaint.com DSiPaint]
* [http://hullbreachonline.com HullBreach Online Official Page]
* [http://hullbreachonline.com HullBreach Online Official Page]
* [http://wiioperasdk.com Wii Opera SDK / HullBreach SDK Official Page]


[[Category:JavaScript libraries]]
[[Category:JavaScript libraries]]

Revision as of 15:21, 1 November 2009

Wii Opera SDK
Company typePrivate
IndustryVideo Games (Open Source)
Founded2007
Key people
Daniel Gump: Founder & Programmer
Websitewiioperasdk.com

The Wii Opera SDK, also known as the HullBreach SDK is a collection of optimized Javascript files created to aid in the development of games and software for the Internet Channel, the Opera-based Web browser of the Wii video game console. The original intent of the SDK was to aid in the development of HullBreach Online, a browser-based space MMO RPG.[1] The components of the SDK provide assistance in several areas for creating homebrew Web applications using the Wii Remote, matrix math, graphical primitives, affine texture mapping, raycasting, and multiuser communication.

Efforts have been made by the Wii Opera SDK to promote both products it supports, the Wii and the Opera Internet browser; thus, no objections have been made by either companies to its naming. In fact, the 3D Mesh Demo widget, which showcased the SDK, won runner-up in the You Got Skills contest hosted by Opera.[2]

History

File:Hullbreachonlinesdkdemo.jpg
HullBreach Online

Development of the Wii Opera SDK began in June 2007, soon after it became obvious that more could be done with the Internet Channel than the demonstrations shown by Sky Diver and Chatroom. Early demonstrations to become available included HullBreach Online and a Star Fox clone. In December 2007 came the public release, as announced on GoNintendo[3], Engadget[4], Joystiq[5], and other video game resource websites.

Releases

June 14, 2007

  • Support for 1 Wii Remote
  • Flat-shaded triangles

June 26, 2007

  • Support for 4 Wii Remotes and Nunchuks

August 3, 2007

  • Wall and floor perspective texture-mapping

December 19, 2007

  • Public release

January 27, 2008[6]

  • v2.0 release
  • 3D Mesh Gallery and mesh generator

April 8, 2008

  • Realtime shadows

April 28, 2008

  • Triangle texture-mapping

June 18, 2008

  • Raycasting engine[7]

August 16, 2008

  • v3.0 release

February 27, 2009

  • TWiiter for the Wii

April 19, 2009

  • TWiiter Lite for the Nintendo DS/DSi

July 28, 2009

  • WiiPaint

July 30th, 2009

  • Chatrooms

October 2009

In October 2009, the Wii Opera SDK website started seeing an overhaul to change the appearance to match its newer sister site DSiPaint.

Specific Functionality

Wii Remote Interaction (v2.x)

All buttons on all four Wii Remotes can be detected except for Power and Home. In addition, the 1 button on the primary Wii Remote cannot be detected due to system uses. The C and Z buttons on all Nunchuk attachments except for that of the primary Wii Remote are detectable as well. In addition, the SDK detects and calculates cursor position, distance from the Sensor Bar in meters, and angle of roll, from all four Wii Remotes. It also automatically determines if the Wii Remote is being used as a pointer or a two-handed controller.

3D Math (v2.x)

File:Starfoxclonesdkdemo.jpg
Early Star Fox clone demo

There is one three-dimensional math class in the second release version of the Wii Opera SDK. This class takes a much different approach to setting up 3D graphics than the class it replaces. Instead of just accepting an array of triangles to be manipulated and drawn, individual mesh objects can be manipulated then merged into one giant scene for final drawing. These mesh objects no longer have to be hard-coded; they can now be imported from an existing library or custom files. Generally, each mesh manipulation requires the passing of few or no variables because environmental values are set in the beginning and changed as needed. In addition to the previous abilities to move, scale, and rotate, objects, more advanced effects have joined the foray: real-time lighting, explosions, and shadows. Hidden surface removal, z-sorting, and auto-clipping, remain in this release as well.

This release also brought with it the Mesh Gallery and its entire infrastructure to allow gamers to import 3D objects into Internet Channel games.

Raycasting (v1.x)

This class supersedes the old 3DFPS class, which used axis-aligned texture-mapping to generate scenes. The current release uses raycasting of axis-aligned verticale grid regions. It also supports various second-pass lighting effects and graphical hyperlinking.

Drawing (v2.x)

File:Texturedshield.jpg
Texture-Mapped shield

All geometric shapes are drawn to an active canvas object. Shapes include lines, circles, rectangles, trapezoids, clip regions, and scenes. All shapes with a perimeter can be filled an RGB(A) color. Images from JPEG, GIF, PNG, and SVG, files or IMG objects can be placed onto a canvas with rotation and scaling. Any transparencies and alpha channels from the image files will be preserved. Both trapezoid and scene objects can be texture-mapped.

Trapezoids require rectangular textures to map with perspective-correction to either a vertical or a horizontal object. Scene objects consist of affine-mapped triangles with optional second-pass shading by transforming the canvas drawing matrix. The drawing class natively supports both flat-shading and texture-mapping and will determine which to use based on data in the object mesh.[8]

Multiuser Communication (v1.x)

Each game developed to use the multiplayer functionality gets assigned a unique ID that allows it to pass data through the server between clients. Potentially unlimited variables can be passed as a query string, adding to great versatility.

Criticisms

Because of a lack of hardware acceleration, the Wii's Internet Channel has been plagued by slow execution of both JavaScript and Adobe Flash code, causing homebrew projects in these formats to suffer from slowdowns and lag when compared to their desktop counterparts. Thus, features must either be dropped, or code must be optimized into obfuscation in some cases.

Benchmarks have placed flat-shading at about 3000-5000 triangles/sec and textured-shading at about 200-300 triangles/sec, depending on conditions. (Adoption of the Opera 9.5+ engine builds by the Wii will increase this by using matrix transformations to draw textures instead of rotation and skewing hacks.) For full-screen raycasting (800 pixel width), the scanlines need to be around 12 pixels wide or wider for framerates of 10fps to 15fps, which is considered a playable rate for Web-based interactions. These speed factors disallow complex artwork in games and, perhaps, limit games to the visual quality of 3D projects from the SuperNES (5th generation) console era.

In addition, JavaScript sound extensions are not supported by the Internet Channel, so developers wishing to add sound to their projects must add an invisible Flash module or do without sound at all, with the former slowing project execution even further.

See also

References

This article uses text taken from HullBreach under the GFD: