Yuan Works Development Blog - Video game development, tutorials, design, and news

Starting a New Project! (codename: Little Ninja)

Hi everyone!

As you probably noticed, Wind and Water: Puzzle Battles for Dreamcast was released early this month, so we decided to start a new simple platform-adventure game, codename: Little Ninja!

Since Wind and Water was a very extensive and ambitious project, we want to keep this one simple. We’re mostly focusing on engine development, programming, scripting, as well as graphical issues that need to be resolved. Little Ninja may become the stage for our new big platform/adventure project, but for now, we’ll try to keep it simple, and we really hope this time we don’t mess it up :) We’ll be documenting the whole development process, both from my side (programming), as well as the artistical and musical part — Yuan’s part.

What is Little Ninja anyway?

少忍龍飛 (Shounin Ryuuhi — Young Ninja Ryuuhi) is an old Yuan Works project:

Yuan Works project codename: Little Ninja

That’s an old screenshot taken from the Yuan Works website. We’ll be remaking it from scratch, but the basic idea still applies.

Map Editor and Tile Design

Before starting to program directly on the game, there are several tools that need to be done beforehand. Fortunately, all animation and image editors used for our past project were dramatically improved while we were working on Wind and Water, however, one of the tools that is not too flexible is W&W’s map editor:

Wind and Water: Puzzle Battles world map

Wind and Water does feature a map (usually compared to Super Mario Bros 3), but we need something more complex this time. It’s time to design a map editor then!

First of all, most, if not all, maps contain two important parts:

Tile graphics contain what you actually see on the screen (the visual part). More like a geographical map. This includes background, foreground, animated tiles, etc.

Tile information contains how the characters interact with their surroundings: where they walk, items they grab, etc. Like the political divisions.

Designing a video game map: tile graphics and information

Tile graphics vs. Tile Information

For now, the visual part is not important, after all, that is Yuan’s work. We’re here for the Tile information, what I like to call the map’s mask (Note that I am using the term mask in an incorrect way, but that’s the way I like it. In a metaphorical way, the idea of the mask still applies… at least for me!)

Anyway, in the above example, the red part represents the main character’s sprite location, the green part represents a collectible item, while the orange one represents an interaction (in this case, a sign). On a final version of the map editor, these are important bits of information, however the part that I’m most interested in right now is the blue one — the map’s terrain information.

Map Terrain Design

For now, let’s focus on letting the character walk, jump, fall, and so on, since starting from anywhere else would be pointless (there’s no use on letting the character slash enemies without knowing where to walk). For Little Ninja, we’ll be using tiles of 16×16 pixels, so my first constant inside the project is

MapTileSize = 16

Instead of using the number “16″, I’ll use the constant MapTileSize. This way, if we’re creating another project or we decide to change our maps to say, 8×8 tiles, we just need to change the constant. Basic stuff, but incredibly useful.

As for the terrain information let’s have a look a the terrain types I thought of so far:

Map terrain information

From left to right: empty (character can walk or jump through), solid, platform (same as solid but the character can walk through), water, and spikes (instant K.O. — like Megaman). I’m not 100% sure if spikes should be an actual terrain type or not.

Now that we have terrain types, we need to be able to create hills and slopes, or we will be rewinding videogames back to the Mario 1 era (not sure if it’s good or bad though):

Map Editor terrain angles

Here are some slopes I thought of. From now on these are the terrain angles. I’m guessing it’s not too important to have that many different angles, so I’ll only be using 45°, ~26°, and ~63°. I’ll leave it open just in case I need more.

Anyway, that’s it for now. On my next post I’ll begin with the map editor and hopefully take a video of how map editing should be done. Don’t forget to subscribe to our RSS feed or email, and stay tuned for Yuan’s post on the art side!

8 Responses to “Starting a New Project! (codename: Little Ninja)”

  1. Abe Haskins Says:

    This game loooks awesome, I am looking forward to it

  2. Vinícius Says:

    Amazing! Please keep talking about game programming! :)

  3. greenmikey Says:

    I like the way you approach your blog a lot. keep up the good work.

  4. Yuan-Hao Says:

    Thanks, we’ll keep the updates coming so don’t forget to check regularly ;) !

  5. Time to build the Map Editor! :: Yuan Works Development Blog Says:

    [...] you remember last time, we were in the process of  defining what was important for Little Ninja’s new Map Editor. If you haven’t read the last article, it’s a good idea to take a look at it since [...]

  6. Pretty settings and animation: let’s go! :: Yuan Works Development Blog Says:

    [...] time I have drawn some more natural looking terrain to make the game easy on the eyes. This is how Little Ninja will (hopefully) look like in [...]

  7. Jonathan Hawlitzki Says:

    This sprite work looks amazing and the notes on your progress are really great !
    Please work on it.
    I am going to pre-order anyway :)

  8. hammad Says:

    Success didn’t spoil me, I’ve always been insufferable.

Leave a Reply