Video Game Coding

Saturday, August 21, 2010

Video: Zelda DS - More Enemies and Map Warping

Once again, I've made lots of changes since the last post, but most are "back end" and not necessarily visible. However, what you can see is that there are now more enemy types that are spawned, and you can now enter a door and properly warp to a new map! You'll also notice that I "magically" warp back from the second map to the first - nope, it's not magic, this happens when I press the L and R shoulder buttons together.

I also managed to finally make the videos I upload to YouTube much higher quality! Enjoy...



I've also done some more work on Zelous (the editor) to support placing the enemy spawners on the map, but there's still more work to be done before I post a video about it. For instance, the door on the first map that warps you to the second is completely hard-coded; you can't place doors in Zelous yet.

By the next posting, I also hope to have the Download section setup so that people can download the latest version of Zelda DS and try it out, either in an emulator or on their actual DS using a storage device (i.e. R4).

Thursday, July 1, 2010

Video: Zelda DS - Enemy AI, Spawning, and More

It's that time again! It has been a while since the last video was posted, and I've made lots of changes since then. Here are the new things to pay attention to while watching the video:

- Fade in from black at start

- Music and sound: the music you hear is a piece written by Justus Johnston, written for the original Zelda PC we were working on back in 1998! As for sound, you will sometimes hear the sword swishing sound - I say "sometimes" because currently the music takes up way too many channels at times, which overrides the sound channels.

- Enemy AI: the Goriya walks around, stops and throws boomerangs, while the Rope (snake) slithers around, and upon seeing the player, bolts for her until it collides.

- Enemy Spawning: as I change from screen to screen near the end, you'll notice that for each screen, the same enemies spawn at the same place. This replaces the random spawning of enemies I was doing before.

- Collision Bounds: near the end of the video, I enable the rendering of collision bounds on tiles and sprites. One thing you'll notice is how the bounds for tiles only surround the top-half of the actual tiles (for example, the bushes); this is so that the player can move over the bottom half, giving a pseudo-3D look to the game.


Friday, May 7, 2010

Welcome Adamo!

I just want to let the millions who follow this blog know that Adamo, my brother, has graciously accepted to join me in making Zelda DS! He's taking over development of the game editor, Zelous, while I continue to focus on the game itself. He has already improved Zelous by adding undo/redo functionality, and the ability to see the actively selected tile! Welcome to the team, Adamo!

Thursday, April 8, 2010

Video: Zelda DS - Editor to Game!

Lots of progress since the last post over a month ago! First thing is my Zelda DS editor, "Zelous", written in C#. It's very basic, missing a bunch of useful features (like undo, multi-tile select, and much more), but it works! Here's a video of the editor in action:



With the map saved, here's the game running the map:



Apart from being able to load the map, you may also notice that the water and waterfall are "animating". This is actually color rotation, where I rotate 4 palette values every 200 ms. Finally, this video also shows how the animated tiles for the ocean shore are synchronized across screens (I mentioned this in a previous post, but didn't show it).

More to come!

Saturday, February 27, 2010

Video: Zelda DS - Animated Tiles



Finally, a better quality video! To get this video, I modified the video output code in desmume so that it only captures the main DS screen. The code is just a hack right now, but if I ever get around to improving it, I'll upload a patch to the desmume project on sourceforge.

Anyway, this video shows the latest update to Zelda DS, which is simply support for animated tiles. What's interesting is that a set of animated tiles can be bound to the same clock, to make sure they are always in sync across screen boundaries (imagine the animated ocean shore continuing onto the next screen). Furthermore, I can create multiple clocks, which means the tiles can animate at different rates. We can see this in the video - the ocean shore animates slower than the waterfall tile.

That's it for now!

Saturday, February 20, 2010

Video: Zelda DS

Check out the latest video:



This time, screen-by-screen scrolling is properly instigated by the player touching the edge of the screen. Notice how the player remains in the same relative spot, but gets "pushed" by the edge of the screen (to remain on screen) when scrolling is nearly complete. This is exactly how it works in the original Zelda. Also enemies are destroyed when scrolling starts, and re-spawned on the new screen when scrolling ends.

That's it for now!

Wednesday, February 3, 2010

Video: Zelda DS

Crappy quality video of the latest Zelda DS:


Things to note:
- Sword kills enemies, and is attached to player so that even if player is pushed back, sword follows
- Player gets hurt and pushed back when touching enemies
- Boomerang works like in the original (collides with world, returns upon collision, stuns enemies, etc.)
- Player can die (respawns in place)
- Screen to screen scrolling is working, but is currently activated manually rather than when touching the edge of the screen (near end of video)