Wii Opera SDK
|Industry||Video Games (Open Source)|
|Key people||Daniel Gump: Founder & Programmer|
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.
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, Engadget, Joystiq, and other video game resource websites.
More recently, Wii Opera SDK has taken on a different form. It has evolved into a Wii mirror site of DSiPaint, with many of the same features and applications seen for the Nintendo DS/DSi. Another site, called 3DSPaint has also been added to the list of sister sites. Additions include chatrooms and a painting application as well as Nintendo Wi-Fi game match-ups, "game shows", and surveys, as well as a forum.
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
- 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
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
July 30, 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 with 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.
 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.
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 Super NES (5th generation) console era.
 See also
- 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