Saturday, December 24, 2011

The Beauty of Stealing Other People's Work and Flexible Dialog Systems

So I have realized that in my last post I didn't even really mention what it is exactly I am making. All I had mentioned was that it was some sort of action/adventure game that was far to ambitious. Well, it is indeed that. Basically, the game's temporary title is Zelda 2 Kinda Not Really. It is a side-scroller and it borrows some of the ideas (the good ones) from the typical pacing and structure of the Zelda games. So it's kinda like Zelda 2, but not really since it is more of a platformer and has no blatant RPG elements (because those usually are unnecessary, despite what modern design practice might teach you).

This project has been in development for a massive total of 3 days. I can just smell the success. Since I'm lazy and inexperienced, I was browsing the Game Maker Community forums searching for simple code that allowed for smooth, pixel perfect platforming. Nothing more, nothing less. I would build upon this code and add all of the actual features of the game. I found the perfect solution in a very simple script developed by a guy who goes by the name "brod." Smooth, adjustable jumping combined with horizontal motion that could handle any type of slope are some of the features I was looking for and this script delivers. It still has one glitch, but I am almost certain of its cause and I have seen some branches of this code that are supposed to fix the problem, so I will look to those when the time comes to eliminate it. And best of all, it is simple to understand and extremely flexible.

So with that in place and after some of my own modifications, I have ended up with this beauty of a test room.

Look at the irregular terrain! Behold the naked NPC's!

I get around to coding clothing sometime. I spent quite a bit of energy adjusting and then testing out different values that controlled the jump physics. Thankful the brod's script has several values that can be modified, and they give the designer a great amount of control. Currently I have something acceptable in place, but only until everything comes together will I know if it needs any more tweaking.

I have made some changes to the art style. When the player was talking to NPC's, the two characters blended into each other and created a lumpy mess of fleshy pixels. So, in order to make objects of interaction stand out (ie. stuff that isn't background material or detail), I outlined each sprite with a thin black line. This is possible because the 8x8 sprites are scaled up to 32x32 sprites.

 The first element I added to the game was something I have never done before; non-playable characters. I usually associate NPC's with eccentric and unnecessary comments, but I'm going to need them for this project. Right now they only have one behavior, which is just to stand around and maybe talk to the player. Of course, this means I also have already developed the dialog system for the game, and while it is definitely not finalized, its nice to know that I have finally reached the point where I can actually make one.

Each NPC can have different types of dialog boxes, dialog color, and dialog box positions. I will eventually add even more flexibility, like variable fonts, effects and so on. I wanted to keep the dialog quick and simple. Like I said, I was only taking the good ideas from the Zelda series for this project, and one of the most terrible things in that whole entire franchise is the super slow and annoying dialog code. "Oh, but what if the poor children accidentally skip very important text that tells them what to do in the game!" says Nintendo apologetically. Well, in that case, something is probably wrong with the design if it relies on text alone to convey important gameplay information. Obviously, there is a middle ground to how to approach the problems that arise, but I believe that quick and simple dialog works out best in the end.

Okay, I am now tried of writing. Above one can see what the dialog boxes in this game currently look like. With basic NPC stuff out of the way, I am now interested in adding in some more platforming fundamentals; on the list are ladders, moving platforms, and jump-through platforms.

No comments:

Post a Comment