Friday, February 26, 2010

My RPG. Part 3

Hooo boy, it's been a while.

I currently have 8 stats that I plan to use in the game. Unfortunately I still haven't decided what some of them is going to govern. A couple of them are easy to place, but others are more difficult. So here's a list with some descriptions of what they do, or what they might do, or both.

- Strength. This was one of the easy ones, it will affect how much damage is dealt in melee, with a physical attack. I'm not sure how the inventory is going to work now, but if it involves the weight of items, then the amount you can carry will be affected too. I was initially thinking that strength would also affect the damage of ranged weapons like bows, but I soon decided against it.

- Endurance. This will affect the maximum amount of health the player has. I'm undecided as to how exactly it will affect it. I think I'll use endurance multiplied by a number as an interim maximum health, but I will look over this again later.

- Agility. This one was a bit tougher as I have three ideas for what it could be used for. As an addition to physical defence, as an increase for ranged physical damage, or as accuracy for physical weapons. I could just make it apply to all these things, but that would make increasing strength worthless. If I increase damage for ranged attacks with agility I'm making less incentive to get into close combat, so that is out for now. I'm not sure about making a stat affect accuracy either, even if it isn't agility. I can see it being a good idea and a bad idea, so I'll leave that out for now too. Which leaves physical defence, for now.

- Speed. This one is another easy one. It affects attack speed. I also had the idea that increasing speed would marginally decrease spell cooldowns. Pretty cool idea, huh?

- Soul. I decided that this will affect magical damage, no matter the range.

- Will. This stat will affect the maximum mana that a player has. Should be pretty much the same as endurance. Except with magic.

- Intelligence. My original idea for this stat was for ranged magical damage, but when I decided that agility wouldn't affect ranged physical damage, I scrapped it. But I still had the stat lying around. I'm leaving out accuracy in all forms for now, so magical accuracy is out as well. This leaves magical defence, which I guess will have to do for now.

- Psyche. This currently will affect the regeneration of health and mana. Not much else to tell.

So that's all the stats I have currently. The first 4 I'm pretty happy with, as far as names go, but I'm not completely sold on the last 4, so I might end up swapping them around, or even replacing the names of some of them. Feel free to leave some suggestions for magical stat names in the comments.

Next post should hopefully be about races, since I mentioned it last time, but then again, I might talk about levelling, or multiplayer. One of those, I hope.

-Shadowfred

Wednesday, February 17, 2010

My RPG. Part 2

Ok, so I said this post would be about the different roles in the RPG. So it will be.

Now when I say roles, I mean what job each character has in the group. These are the basic roles that I have.

- The Tank. Someone who should be taking the brunt of the enemies' attacks, and surviving. Be it through insane amounts of health, enough armour to mitigate the damage or just avoiding the enemies' attacks.
- The Nuker. This type of character should be outputting as much damage on the enemies as possible.
- The Healer. Should be healing the team, making sure that they don't die. Often has abilities that help the teams effectiveness, or buffs.
- The Controller. This role is used to take enemies out of the action by immobilising, stopping use of abilities, or decreasing their combat efficiency.
- The Summoner. They summon things to attack people. I'm pretty sure there won't be any kind of summons in my game, but I thought I might as well list it.

Okay, so there's the four roles that I plan to work with, plus one extra.

There's also where they tank/attack/heal/control from. Close range, or long range.

Combining these two things gives 8 total roles to use, some may not be as viable as others, but I'm still going to consider them when I start work on the classes. Perhaps, depending on the tech trees that the player picks, characters could fill different roles, or at least branch off from what they do as a core concept. Like a melee tank learning some healing spells to keep him alive in the middle of combat. I don't know yet.

So there we go, roles explored. Next post might be on races, or stats, or both. I don't really plan ahead.

-Shadowfred

Tuesday, February 16, 2010

My RPG. Part 1


Alright, here's a little update on what I've got going in my RPG.

- Movement is constricted to a square grid, once you start moving, you can't stop or change directions until you reach the next square.
- You can move up, down, left or right.
- You can't go through walls or enemies
- If you click when you aren't moving, you will attack in the direction you're clicking.
- You can call up the grid.

It also uses this awesome picture for the player, made by my good friend Mitchell Crouch.




Now, for stuff I've been thinking about.

The choice to go with a square grid is really a gut decision, I decided that it's what the game needs. I did know that I was going to be doing a top down game though, I'm nowhere near good enough to make it first person, especially for multiple people. I'm thinking about dropping the clicking to attack because I'm thinking about putting in some kind of bonus for attacking from behind, but I'll figure that out later when I actually have some more things in the game.

One dilemma I've had so far is with the implementation of classes. I really like games where you can modify your character's skills to create your own "class". But I want the game to be multiplayer, and I don't want one player with the most optimised super character overshadowing people who picked skills that don't word at the same time, like all weapon skills or something. So I've decided to uses classes of some description.

My first idea was to make classes have a bonus to certain skills, or perhaps restrictions so you can only put a set amount of ranks into a skill, it's not a bad idea, and I might test it to see how it goes, but for now I'm looking for something different. I just think that doing it that way would still be an invitation for Mr Optimal to do his thing.

My current idea is to have tech trees, or talent trees. Each tree has a few skills or abilities to put ranks into, like each rank adding 10 damage to fire spells. Once a set amount of ranks have been put into any ability in the tree, the next tier becomes available and so on. There would be a tech tree for each class that only they can put ranks into, as well as some communal tech trees that any class can put ranks into. Alternatively, there might just be a few tech trees for each class. This is all theoretical, so I'm not sure how it would go.

If you have any suggestions for me to do with classes or skills or that kind of thing, feel free to comment your ideas.

I'll try to get at least one more post up tonight, probably with regards to the different roles I want to have in the RPG.

-Shadowfred

Sunday, February 7, 2010

Acheivements

My apologies for not posting in a while, I've been putting some work into the RPG and some into TF2. But here's a post. Just a note, these are my opinions and ideas regarding achievements. I haven't actually done any research into this stuff, so it won't apply to every single game, but hopefully it will apply to some.

Achievements

For those of you who don't know, achievements are basically awards for doing a specific thing in a game. It could be to get past an area, not hitting anything for one loop of a race or killing 10 enemies in 30 seconds.

I really like achievements in games, they appeal to the part of me that wants to finish everything. They also make me feel like I've accomplished something special.

Putting achievements in a game isn't hard, but you should think about what they're going to be used for before you start chucking them into your game. If they're just to give the player some more playtime with the game, you can put in as many as you want with as many requirements as you want. But you don't want the player to go crazy trying to get all 10,000 achievements.

An example of this is in Spore, there are achievements for making a creature with three heads, or completely dominating your planet's economy. These are good because they affect the way you play the game, allowing you to experience most of what the game has to offer. Then there are achievements for completing each stage in hard more, encouraging the player to test their skills as well as to build them up.

Next, if the achievements actually give you something you have to figure out what that something is. Is it something that doesn't affect the gameplay in any way? This time, you should make sure that the amount of achievements is enough for the rewards, no point in having 100 achievements when you only need to complete 10 to get all the unlocks. Also, my recommendation would be to give out points for completing each achievement, which can be spent on the unlocks, rather than having an order to each unlock, like "7 achievements".

Then you can get things that actually affect gameplay, these are the most difficult to implement properly as you have to make sure that their rewards are seen as a good thing in comparison to what the player already has, but also that the rewards don't overshadow what the player already has, not too much at least. This is even more apparent in multiplayer games, where not everyone will have the achievements and thus, the rewards.

I don't like achievements that only show the name of said achievement. Even more so when they give you something tangible when you complete them. Granted, I've only played a few games where this happens, but it's extremely annoying when you only have one achievement to go and it's called "Space Cowboy" or some such name that doesn't help me complete it at all.

Well, that's all on achievements for now.

-Shadowfred

Wednesday, February 3, 2010

More RPG stuff.

This is a follow up to the previous post.

A friend read the last post and thought I should know about the levelling system in Final Fantasy 2. I've never actually played it before, so I look around on the internet to find out some information.


"The Level System

In Final Fantasy 2, there is no experience point system. Instead there is a system where your stats would be affected by the way you battle. If you took damage, you would gain stamina. If you use a lot of magic, you'll gain a more power version of that magic and some MP. The list goes on and on. Each weapon, magic, and the stats on each character are leveled up via this system.

These rules apply for stats:

You can only gain one level for a stat per battle. You cannot get two level ups for a stat or weapon from one battle.

Running from a battle will cancel out any stat gains you may have gotten during the fight.

These mostly apply to the DoS version of the game, while it MAY apply to the original, a lot of things will not."

So, that's how it works. Now, onto other news.

The recent post about RPG's got my brain thinking about different game mechanics. So I've decided to start work on another game! I've also been reading through my book on python and have arrived at the chapter on network programming. So not only will the game be awesome, it will hopefully be multiplayer.

-Shadowfred

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