Skip navigation

Lost password? | Help

Wii Internet Channel and Nintendo DS/DSi Browser Homebrew

And the unified community project

Posts tagged with "3d"

Wii Opera SDK Mode7 Class Alpha Release

, , , ...


An alpha preview of the new Mode7 is available at http://wiioperasdk.com/mode7.html.

  • Available features from the original goal list are as follows:
  • Per landscape pixel coordinate mapping
  • Default tiles for empty locations
  • Variable pixel size Variable strip size (for speed vs. visual clarity optimization)
  • Variable canvas size
  • Controls for motion, turning, strafing
  • Import custom tile maps
  • Import custom tile images


Originally, the class was going to draw landscapes on a per-pixel basis, but that proved to be way too slow for not only playing but just for viewing. This I’ve taken some shortcuts (in a similar manner to how the SuperNES did) which create a decent, but not mathematically correct, effect for games.

Much of the class is not yet automated in the manner that the 3DFPS one is, and some tweaking to the perspective projection math is required. Beyond that, it is functionining. I just need to run some benchmarks on the Wii before creating a game or two.

Wii Opera SDK 3.x New Year’s Resolutions

, , , ...

We’ve recently begun a new year, and with new years come New Year’s resolutions. I thought I’d jump on the bandwagon and place some goals for the Wii Opera SDK / HullBreach SDK. If these resolutions can be kept, expect to see many more features arise in the SDK this year. Some of these depend on Opera releasing the much rumored Wii Opera 2.0 / Internet Channel 2.0 that so many believe will see the light of day after a Photoshopped image several months ago. Inevitably, a new release will come on day. It will probably not have a spinning tab-cube and big, unproportioned buttons like the Wii Opera 2.0 / Internet Channel 2.0, but there will obviously be a newer Opera built.

These resolutions will be listed in priorities and based on dependencies of a new Internet Channel build. I would also like to optimize some of the existing classes for Nintendo DSi usage.


RPGStats Class (New)
Priority: Moderate
Dependency: None

This class will create RPG character and enemy objects with all their stats. There will also be another helper-class to perform calculations relating to battle damage and item usage.

Comm Class (Existing)
Priority: High
Dependency: None

This class has existed since the 1.x series of the SDK, so it’s in bad need of an update. This update will use more efficient serialized values and offer multiple asynchronous AJAX calls.

Mee Class (New)
Priority: Low
Dependency: None

This class will create an Internet Channel version of Miis so that games using the SDK can have avatar heads that will carry across any games for consistancy.

Mode7 Class (New)
Priority: High
Dependency: None

This class will reproduce the screen mode 7 effect of the Super NES where scanlines of rotated backgrounds are scaled in 3D perspective. This effect was popularized in games like F-Zero and Super Mario Kart.

Terrain Class (New)
Priority: Low
Dependency: None

This class will create height-mapped terrains by passing texture and height values to the class. It will effectively open voxel graphics for the Internet Channel.

Keyboard Class (New)
Priority: Moderate
Dependency: None

This class will allow developers to have a translucent on-screen keyboard pop-up on the screen for entering characters into textboxes and textareas without an entirely new screen appearing.

3D2 Class (New)
Priority: Moderate
Dependency: Canvas 3D

This class will wrap Opera’s 3D canvas much in the way that the Draw class currently wraps the 2D canvas. It will allow for much faster texture-mapping of 3D meshes.

Quick Update on Software Development

, , , ...

WOS Trivia
I've been hard at work creating new questions for the game, making at least several per day. When that number reaches a few hundred, the game will be almost ready for release. The database and login are in place. The interface needs some finalizing, including leaderboards and member question submissions.

Terrain Mapper
I'm working on fixing some problems with the raycasting that results in improper elevations. Once that is finished, I will create a class in the Wii Opera SDK / HullBreach SDK for this. It will support full tile-based texture-mapping and height-mapping.

Mode 7 (Floor) Mapper
This is an accelerated version of the Terrain Mapper that mimics screen mode 7 of the SuperNES that became famous for perspective rendering of scanlines in games like F-Zero, Super Mario Kart, and countless others. Like the Terrain Mapper, it will support tile-based texture-mapping.

WOS Trivia Update

, , , ...

Production on WOS Trivia has continued today. Now, the questions are pulled real-time from the database using AJAX, filtering out any questions already answered. Correct answers add to the totaled points of the player and filter the question from future showings; incorrect answers add to the tally of attempts for the question.

I've been adding more to the screen display, like a countdown clock. A progress bar of completed answers and a total player score and overall ranking will follow. The display is now more colorful instead of the bland greyscale of before, thanks to a new Wii Opera SDK function in the 3D class called "reColor".

Here is a comparison of yesterday's to today's progress of the question screen:




Remember that the final version will look much different and that much of the blackspace will be filled. I'm even considering creating an interface for making Mii-like 3D faces that animate while playing. That will come later, though.

New Game: WOS Trivia

, , , ...


I've begun work on a new game for the Internet Channel, referenced and explained on the official Wii Opera SDK blog here. It's a trivia game kind of like Who Wants to Be a Millionaire. Questions will be member submitted and generated in-house, allowing for thousands of new questions per month to be added. Hullbreachonline.com accounts will automatically have access to the game for the added features of members, like no duplicated questions, leaderboards, etc. The graphics will be driven by the Wii Opera SDK, opening the doors to 3D interfaces, additional Wii Remote contols, etc. If anyone would like to read the blog and offer suggestions or help, let me know. For the release in a few weeks, many more questions are needed, so if you have any in mind, you can message my MyOpera account, and I'll look over them.

Updated WiiOperaSDK.com Homepage Interface

, , , ...


I thought it’d be fun to make a non-traditional menu interface for the homepage of http://wiioperasdk.com, so I ported over the FPS engine from the demo/widget. All thumbnails within the homepage hallway are hyperlinks to existing demos and games. Enjoy!

New Opera Widget for the Internet Channel

, , , ...


I have a new widget out that is compatible with the Wii. It can be found here. The widget demonstrates some of the features of the Wii Opera SDK so that developers can see what is possible to add into their Internet Channel games. The widget is a scaled down version of the General Wii Remote Demo at http://wiioperasdk.com/.

It auto-detects if the user if on a computer or a Wii and determines if a Wii Remote is facing the screen or not. It then displays positional and button press data. The Wii Opera SDK can also read Nunchuk button presses, but the Internet Channel does not support the Nunchuk for the primary Wii Remote, so that detection has been dropped.

I have two more widgets available, but I'm waiting on Opera to allow Wii usage for them. They can be found here (3D Mesh Demo) and here (Raycasting demo).

Wii Opera SDK - New Mesh Format

, , , ...

Most of the code migration to the new version 3.x of the Wii Opera SDK is complete. One of the big changes is the format for mesh arrays. The format is as follows:

  • Mesh[triangle][x1,y1,z1, x2,y2,z2, x3,y3,z3, r,g,b, texture, shading]
  • Mesh[triangle][x1,y1, x2,y2, x3,y3, r,g,b, texture, shading]


As you may notice, this new format opens the door to mesh arrays with mixed type triangles, meaning that both textured and flat-shaded triangles can inhabit the same mesh. Let me take a moment to explain what the two added values are:

Texture: This refers to the element number of a texture image array, which if defined elsewhere. By placing a negative value here, it flags the SDK to use the RGB colors instead of a texture. If a non-negative value is given but no texture array is passed to the SDK, the triangle will also be flat-shaded.

Shading: This is more of an internal value than anything, used by shading and fading. It contains a value in the interval [-1, 1]. This value can also be set manually to add brightness effects to the triangle.

I will be updating the documentation and further migrating code over the next few days. All example webpages are updated to make use of the new code already.

Wii Opera SDK FPS Engine Beta

, , , ...


The first demo of the Wii Opera SDK raycasting dungeon class is available for play at http://wiioperasdk.com/wall.html. Features in this beta are as follows:
» Axis-aligned grid-based raycasting
» Texture-mapped walls
» Second-pass wall effects (flashlight, gouraud, shadow)
» Variable ray resolution (for speed adjustment)
» Bounce generated by walking

I will be tweaking the engine and writing documentation for it throughout the day.

Triangle Texture-Mapping Now in the Wii Opera SDK

, , , ...


I’ve just finished adding triangle texture-mapping to the Draw class of the Wii Opera SDK and have placed a demo at http://wiioperasdk.com/texturemap.html. Since the canvas object lacks support for 3D at the moment, I had to use some trickery by rotating the coordinate system then drawing horizontal scanlines, but it works fairly well, aside from some minor glitches. Don’t expect any high-speed fully 3D games to be playable in the Internet Channel, but it will make for some nice demos and simple animations.

EDIT:
The texture-mapping has been accelerated an estimated 20-fold by replacing the scanline drawing with Tangent128's transformation algorithms used in the 3D Globe widget. Now the Internet Channel will be able to display an estimated 500 textured triangles per second, adding greatly to the graphical possibilities!