Friday, January 29, 2010

Comparing RPG's

Alright, time to start a new post.

In this post I'll hopefully figure some stuff out about RPG's. Just a note, I generally play fantasy RPG's, so that's pretty much the only kind I'll be talking about.

One thing that seems to be consistent through all RPG's is levels. Once you have achieved a set requirement, you level up. This generally increases some or all of your statistics and gives you a power boost. The most common way of levelling up is by gaining experience points, also know as EXP or XP.

EXP is a great way to level up. It's straightforward, when you get the amount on your stat screen, you level up. The method of gaining EXP is also pretty simple, you defeat enemy X and you get Y amounts of EXP, or you could be given a set amount of EXP when you finish a quest, when you create a magic item, when you solve a puzzle, or when you discover a new area. It's a simple, easy to understand and easy to use.

Now the problem with this is that having a set amount of EXP given for defeating an enemy is that once you level up, the enemy stays at the same, making it easier for you to kill it with the same EXP gain. Which means players won't seek out harder enemies, they'll just keep killing the same ones over and over to level up. There are three fixes that come to mind when I think of this problem

1. Make the enemies more powerful as you become more powerful.
2. Increase the amount of EXP needed for the next level.
3. Decrease the EXP given as you become more powerful.

1. This doesn't seem such a bad idea, until you think about it a bit harder. Let's say there's a forest full of wolves. At level 1 you can kill it, it hurts you quite a bit, but you kill it. Now let's say you've gone to the next village and came back at level 10. You run into another of these wolves and it attacks you. You walk away from the fight the same way as before, alive, but quite hurt. Now you're coming back from saving world from a horde of demons, you've levelled up hundreds of times, you have the ultimate weapon of good and you run into another of these wolves. It attacks you and once again and you end up the same. Why, if only you had a few of these wolves to fight for you, the demonic horde wouldn't have stood a chance. Another problem is if these wolves can attack the local populace, the simple peasants wouldn't stand a chance.

2. This makes much more sense. You could kill 20 wolves to gain a level, or 3 demons. I don't think it requires much more explanation.

3. This also makes more sense, as you level, you need more powerful enemies to get enough EXP to level up. In some games, it's impossible to get any EXP from enemies that are too low a level.

So, my verdict is 2,3 or a combination of both. 1 can work, but I think it spoils the experience of an RPG a little.

Now that's just experience points. There are other ways to level up, depending on your game. I'd like to bring your attention to Oblivion at this point. Its method of level up is a little different. There is a big list of skills that your character can have, Alchemy, Hand-to-Hand, Sneak and Mercantile, to name a few. During the tutorial, you pick 7 skills to be your "Major Skills". As you play through the game, you level up your skills once you've levelled up your Major Skills a total of 10 times (6 levels of Alchemy and 4 of Sneak, for example) you level up the next time your character sleeps. It's a pretty nifty system, unfortunately, many of the enemies in the game are scaled in power like in point one. The problem with this is that if you don't level up your major skills that are combat based, you start to lose fights. This is because they are scaled according to you level, if you're level 10, so are they. This can make it almost impossible to do some quests unless you level with combat in mind. The game is still fun though, I'm just having a little bit of a whine about a part of it I don't like.

Yeah, so back to the point about levels. Actually, no. I'm going to talk about classes.

Classes help in the process of levelling. At level 13 a warrior would have different skills and abilities compared to a level 13 wizard. A problem with classes is that they are very linear, with little room for variation. At the core at least. A player wants their level 13 warrior to be different from their friend's level 13 warrior. So you throw in some kind of variation, maybe let them choose between two different abilities when they level up? Give them other things to define their character. Let them make armour, or swords, but not both.

Then you get the other end of the spectrum where there are no classes, you just have abilities to purchase or skills to level up.

So, once again I'm losing inspiration. I'll end here before I start repeating myself or having two word paragraphs. Hopefully this is enough to make it look like I thought about this post before I started.

-Shadowfred

Monday, January 25, 2010

Doing things differently - Part 1

Ok, this is going to be a little series about how I'm doing things differently in Jungle Hat Madness 2 in comparison to the original. When I say it will be part of a series I mean that I might have more comparisons to put up, but nothing solid at the moment.

Which brings me to today's topic.

Walls

Original

In Jungle Hat Madness, walls were created by going through a whole bunch of strings (lines of text) one by one and depending on the character (letter) that was there and the type of character all around, a different type of wall was created. For example:

If the code looked like this:

WW _ WW
W _ _ _ W
WWWWW

(Underlines mean there is nothing there, spaces don't seem to work.)

You would get this:







This looks very nice, all you have to do is type in some letters and you get exactly what the letters look like, in wall form. The problem with this way of making the walls is that each "W" is a separate wall. Sure, they all look joined, but they aren't. Each part has its own 32x32 pixel picture that is magically generated depending on the walls around it, and because I like people to know how awesome I think I am, I'm going to explain how the pictures are generated. Then I'll get back to my original point, if you don't want to know this next bit, just skip ahead.

So, the first thing you do is pick a wall, now you figure out what "squares" directly around it are walls. Done that? Good. Now you go to this convenient picture I just made and add each number in the squares that correspond to the surrounding walls.







Now that you've added up, go to the big list of different wall pictures and find the one that corresponds to your number. Then that picture is the picture that the wall displays.

So, as a demonstration, let's say I want this wall:

W

Ok, now I look around it to see what walls there are:

W _ W
WWW
_ W _

Now add up the numbers:

1 + 0 + 4 + 8 + 32 + 128 =173

Go to the list and:




Wow! That is the exact tile that is needed to make the wall.

Each of those walls around our wall have also had the same treatment, so when we load up the game we get this:







And this is exactly what we wanted. Yay!

Ok, enough tanget, back to my Original Point.

Because each of these walls has their own pictures they have to draw their own picture onto the screen every frame of the game. All of this drawing going on all the time starts to slow the game down. Because time was starting to run short, we broke each world up into "levels" to avoid having so many walls on at the same time.

Another problem with these walls is that every time the player and the enemies moved, they would check to see if they collided with each and every wall. This was a problem because the more enemies, the more lag from each of them testing each of the walls. I tried to make it so they only tested against the walls within a set distance of them, but it wasn't working properly so I once again changed it to try and get rid of some lag. This fix was to make them start moving when they first came on screen, it fixed up most of the lag, assuming the player killed pretty much all of them.

Comparison

In Jungle Hat Madness 2, I'm doing things differently. Instead of a myriad of tiny boxes in each level, with their own pictures and collision checks, I'm making big boxes without any pictures.

"But how do we know where to go?" Say the voices in my head.

Simple. There will be one huge picture that has "walls" where all the walls actually are. This fixes both problems, hopefully, of having to draw too many pictures and of having to check a bunch of walls, most of which won't even be touched by the player.

However, there is a downside to this. Because they are no longer in a handy grid format, each wall will have to be carefully and agonisingly positioned in the code. It also means more work for whoever makes the backgrounds as they will have to draw the whole level, instead of each different type of tile. But once again, I have a solution.

With JHM2 (Jungle Hat Madness 2) I will be creating a map editor. In fact, I am creating a map editor. The problem of positioning is fixed as you can see where the walls go without having to reload the code every time you want to change something. It will also, hopefully, output a visual reference for the artist so they know where the walls should be. Which makes everyone happy. Yay!

Types of Walls

Original

In JHM (Jungle Hat Madness), there were three different types of walls.

- Normal
- Moving
- Falling

Normal walls are pretty self explaining, they stop you from moving through them. Moving walls are really moving platforms, they go from side to side, move you with them if you are on top of them, and stop you from moving through them. Falling walls are parts of the floor that will fall down if you step on them, they also stop you from moving through them.

Comparison

With JHM2 I was feeling a little more ambitious, so (at the moment) there are:

- Normal Walls
- Moving Walls
- Falling Walls
- Slopes
- Fading Walls
- Walls made of ice
- Walls that you move through in all directions bar one
- Walls that disappear and then reappear at set intervals
- Sections you can climb, like ladders, or lattice, or something. You climb them.

The first three are the same as in the original, coded better, but the same. Slopes are walls on a slant, you can walk left or right while increasing or decreasing your height, pretty crazy, right? Fading Walls are like falling walls but instead of falling, they just fade away, maybe they might crumble, or change dimensions. Ice walls are slippery to walk on, you will slide for a while before you stop if you are on one of these. The others are pretty self explanatory.

Also, this is probably more writing than most of my essays from High School. If only the topic for the HSC was Jungle Hat Madness, I would have done so much better.

So, that's basically it for part one. Stay tuned for more of me talking about how good I am.

-Shadowfred

Sunday, January 24, 2010

Great games.

I'm going to make a list of all my favourite games. I'll probably put in reasons why I like them or something.

- Warcraft II & III:
- Team Fortress 2
- Oblivion
- Jak and Daxter
- Super Smash Bros Brawl
- Half-Life 2
- Ratchet and Clank
- Singstar
- Spore
- Impossible Creatures
- Pokemon
- Jazz Jackrabbit 2

After putting them all in a list like that, I realised I couldn't be bothered to talk about all of them, so I'll just do a few.

Team Fortress 2:

My most favourite FPS. Great humour, wonderful style and excellent gameplay. The community in this game is probably the nicest I have found ever. It might just have to do with the servers I play on, but people don't get as angry about having people with less skill on their teams as in other games I play, *cough* DotA *cough*. It probably has to do with how the game plays as well, but I don't feel like analysing that right now.

Oblivion:

I love this game. Big, open ended RPG. You can do a whatever you want, pretty much whenever you want.

- Steal
- Kill
- Cast Magic
- Ride Horsies
- Explore
- Alchemize
- Make your own spells
- Save the world from evil
- Eat
- Sleep

Impossible Creatures:

This game has one of the coolest ideas for an RTS ever. You get two animals, combine them together and then make them fight other peoples hybrids. The campaign was fun, but making creatures was definitely the highlight for me. Speaking of which...

Spore:

Making creatures is awesome, and so is Spore. Cell stage is great, so is the creature stage, I'm a little iffy on Tribal and Civilisation and the space stage was pretty good as well.

I'm running out of steam, so I think I'll stop here, maybe I'll do some posts for these games to explain exactly what it is I like about them, maybe I won't.

-Shadowfred

First Post

Okay. I've created this blog, and now it's time to start taking things out of my head so I have more room for important things, like candy.

A little about me:

- I'm Scott Hayward and I go by the name Shadowfred when I play video games (unless the name is already in use, then I pick a different name).

A little bit more about me:

- I love to play video games, which is handy as I want to create them for a living.
- I will be attending the University of Wollongong this year
- At said uni I will be doing a Bachelor of Computer Science (Multimedia and Game Development)
- I play the piano
- I sing

So there you have it, some stuff about me.

Now, about the blog. I originally had a blog on another website set up for the same reason, but I never got around to posting anything. I intend to use this blog to post up my awesome ideas, mostly for video games but there might be other things too, as well as for keeping people up to date with the progress of the game I have been working on for the last few weeks, Jungle Hat Madness 2.

"2?" I hear you ask "Does that mean that there is a 1?"

My answer is no, there isn't a 1, but there is an original, Jungle Hat Madness. It was a group major project for my Year 12 Software Design and Development class last year. Here is a link to the Facebook page if you want to give it a try, since I can't be bothered to post up the other links.


The main point is the new one will be better, since I not only have a better grasp of how to get things working, I also don't have a time limit to get it done.

Back onto sort of track, I made this blog because my friend Zanda told me to, so I think a link to his blog would be appropriate in here somewhere.


But that's enough plugging, and probably enough typing too, I'll try and get another post done today, but it depends on how bored I get.

-Shadowfred