Wii Opera SDK: Difference between revisions
Website releases |
DSiPaint reference link |
||
Line 103: | Line 103: | ||
==External links== |
==External links== |
||
* [http:// |
* [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
Company type | Private |
---|---|
Industry | Video Games (Open Source) |
Founded | 2007 |
Key people | Daniel Gump: Founder & Programmer |
Website | wiioperasdk.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
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)
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)
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:
- ^ 4CR - Interview of Daniel Gump of HullBreach Online
- ^ You Got Skills widget contest winners
- ^ GoNintendo - Wii Opera SDK Now Open to the Public
- ^ Engadget - Unofficial Wii Opera SDK Set Loose
- ^ Joystiq - Unofficial Wii Opera SDK Now Available
- ^ QJ - Wii Opera SDK v2.0 3D Mesh Gallery released
- ^ QJ - FPS Engine Beta available now
- ^ Wii Opera SDK Blog - New mesh format