Showing posts with label Developer Thoughts. Show all posts
Showing posts with label Developer Thoughts. Show all posts

Sunday, December 15, 2019

What's up latelly?

Hey guys. Since the break I've given on TNR project, this blog has been quite... Quiet. Of course It has been, I haven't been writing anything here (obviously).

Since TNR project has been paused, I'll try talking about some things unrelated to the project, and also something related to the project too.

TNR Project

To begin with, I've thought about changing how the game "approach" the player on It's first contact with the game, instead of the game questioning you a lot of things, like name and second name, I thought about making so It only asks for your character nickname instead. There is no point in asking the name and second name of the character, even more since the player is... Well... You. Unless you want to expand the lore of your character or something but... Well.. Let's leave the name and second name fields for the npcs, instead. They need it more than the player.

The second thing I thought about changing, is how the game begins: Before entering the game world, a monster without form could speak with your character, asking you some basic things of your character, like nickname, age and nation. After that, the monster could ask your help to choose It's form, which is when you'll tell what monster It will be. At first, I thought that was a good idea, but actually, It is. It's like as if you were invited to the world of Tamers Network, by a creature you just met.

After that, you end up being sent to the Login Island, and so begins your adventure. You may ask yourself, "Why all characters are sent to the Login Island, independing of the nation you pick?", and the reason is simple: I'm pretty sure that a number of players will choose different nations to play as, but that doesn't means his friends will pick the same nation as his, so the login island allows you to pick where you will start the game, be it a town of your nation or not, and since I have no plans on locking quests and stuffs to a specific nation, that means you can, for example, begin the tutorial in a Spanish town, when your character is Brazillian.

I guess that's enough TNR talk for now, I will need to put that planning on practice some time later. Now, let's talk about other things, like my modding trek (liked the name?).

TerraGuardians Mod

Making the companion mod was an awesome thing, and it is, but Terraria has grown old for me, since It's mechanics are very centered into getting new equipments and tackling the next challenge. One thing I'd like to change on the mod is to make the companions more alive, since right now, the only thing you can do is ask them to follow you and help you in the combat, or leave them in the town and protect your citizens, aswell as give quests. Would be cool to see them interact with the world around them, and possibly do things I don't want to do, like alchemy.

One of the things I wanted to do, was adding a mood system for them, their mood would change depending on the environment and the recent events that happened. The problem is that I would need to split the head sprite from the body, and animate different facial expressions to the companion.

But I have to say, programming the game systems and then part time spriting the new guardians isn't an easy thing.

Java Programming

I've been playing latelly with Java, to practice what I learned on my programming classes, and boy, the things I've learned are helping me a lot to discover a lot of things related to programming itself, aswell as showing me things I can do to help on the development of programs and games. I can literally create a buffed version of a system in the game, by overriding their classes, so If I want the game to get the main player controls before the game updates the character movement, I can just override it, add a call to the base version of the method, and before that call, add the script to get the player controls. I've been playing with that on Java, and to practice, am making a little game on it. If the game gains enough progress, I will talk more about it, and even show images of it.

As of now, the only things I got working were: Characters and their animations and map drawing. Aswell as other systems like classes, monsters, player stuffs and etc. Those things doesn't configures the game as ready, but at least a small percentage of the game is completed.

Java Itself isn't really that bad, It's like... C# 0.75, because It has a number of features from C#, actually, It does look a lot like C#, but it isn't. There are a number of features from C# missing, and a number of methods in Java functions differently. I don't really say that Java is bad and lacking, but I surelly preffer a lot to program in C#. But at least Java is multiplatform, right? Beside you can extract the entire project source with any zip program...

I've been thinking for some time about moving to Java when making the TNR project, even more since It seems to have more support than XNA, but making the project in C# would probably be safer and beter than Java. If there were another engine I could use to build my project on using C#.

You may be thinking now, "Unity", and other engines. The problem with them is that they now need a 64 bits computer, and my computer right now is 32 bits, so I can't run that kind of engine anymore. Godot Engine I tried to use, I couldn't get into the programming method of it, and trying to make use of the C# port of it gave me more headache than result, since I couldn't actually make it work.

Well, better I end this wall of text before you fall asleep on the keyboard.

Until next news. Also, did you liked the news splitting? :3

Friday, October 18, 2019

What has happened latelly.

Hey guys, well... Well, I'll be going direct to the point.

The last weeks I haven't been messing with TNR project, I've been spending a lot of time on my tModLoader mods, trying to improve them and add new cool stuff. The fuel people give me by showing how much they liked the mods is being very motivational for me to keep going on, so that's why I'm in the kind of creek I am right now.

If you don't want to read through my adventures on modding, scroll down until you see a red /!\.

Well, before you start pulling your hair, I'm not in trouble or anything, but I thought that would be nice to add a companion on my companion mod before halloween comes, and then I made an undead companion. The problem? Well, I didn't wanted to make it's recruitment to be that easy, so I've added a boss fight to make him recruitable. So yeah, I've spent about 5~7 nights developing the boss and It's attacks.

Currently, the boss itself is complete, beside I may have to do some more testings to see If It is working as intended (even more on Expert mode, I didn't tested it's variant), after that, I will need to add a ducking animation to it and voilá! Done.

What actually would call the attention of those who faces the boss, is the fact that I added 2 things to it:

  1. I tried to make it be possible to face even on melee combat. I've made this with the idea I saw on a PC Gamer news, where they interviewed Koji Igarashi, about how his team makes bosses.
  2. Based on your world progression, It's status increases, and that isn't limited to Expert Mode only. So the boss will grow stronger as you beat challenges in the game, INCLUDDING MOON LORD.
Possibly, I may end up being able to finish all that before October 20th, which is when the Halloween event starts on Terraria. But my personal goal is not to take too long to launch the update and pass the imaginary deadline of October 31th.

/!\ End of Modding talking!! /!\

As for the project, after watching closelly the recent Cube World advent (I didn't played the new version, though), It lead me to think about a few things on my project:
I shouldn't try to make the game too different from what It is on the ultra wip version, would be a terrible feel If what I sent to you guys, was not what you expected of the game, compared to the ultra wip version.

The game is playable right now, even though my leveling up programmer senses keeps telling me that I should have done systems differently, trying to rewrite the systems would take me more time, meaning that the game would take way longer to be released, and of course that isn't good. I should try focusing on actually finishing the game.
I've worked too much on the Battle system, but the rest of the game is still bare bones. Even the map system itself is still messed up on some maps, and I didn't even implemented interiors yet. The quest system is nearly non existing, as the population of npcs in the world (Beside I will need to think how they could exist in the world, be interacted without causing performance problems).

And possibly I'll launch the game earlier than intended, of course I'll have finished a good part of it's systems, but maybe with people feedback I can make the game be so freaking awesome in the end.

Well, that is it, for now. Until next news.

Tuesday, March 19, 2019

The progression on Beat 'em up adventure games, are the developers doing it wrong?

I've been wondering some times about how the progression in terms of leveling works in beat 'em up adventure games, like the ones seen in Dungeon and Fighters Online and Elsword, and I believe the fact that the player progresses in level as the stages unlocks and quests are completed is a mistake.

You may think I'm being quite radical on saying that, but the sense of personal progression isn't just about being by the level of the stage, but instead related on how you play with your character in any situation, even if you are underleveled. On the time I played Lunia Online, after it first launched it's brazillian server, the game didn't had quests for leveling, so if you kept following the stages one by one, you would end up underleveled for it, that's the part where you'll think "that is the problem", and I say no. I'll tell you why: Because that incentivated me either to improve my skills playing with that character, or party up with other people, being that the last one, several people were doing the same, too.

Partying up with other people that were also underleveled, made the stages more challenging and harder, on the stage 3-10, was such a joy for the entire party when we defeated the, at that time, final boss of the game. Even though everyone was underleveled, were able to do it.

That sense of joy has died when Lunia Z came, and the game added a lot of things to ease the gameplay, like adding quests on each stage to give the extra exp to level up, or allowing you to skip stages because one for your level unlocked. Those changes made the game way more soloable, not even the before used for grinding stages were being played by people, only a few final episode bosses were actually having some people looking for group, but... The necessity of partying up to play the stages has went downhill, and so went Lunia.

That lead me into thinking if making the player progress at the same pace as the stages unlocks isn't good for those kinds of games, due to the fact that a beat 'em up game, isn't just about the level, your progression, but also how you play with your character, if you play well, even underleveled, you can defeat a tough challenge.

The second thing that lead me into this thought, was when Grand Chase was about to close it's brazillian server, too. As a thank you gift, the host made the cash shop cheaper, and rewarded everyone with some cash points. Due to the fact that the server were going to close soon, a lot of people has quit the game, so I've had to solo it, but with the help of a few cash items like revive items and stuff. With around level 58, I've beaten the final boss, counting also the fact that I've had to burn some revive items during that but... It's doable, If I were playing with other people of course would be easier, but just by the fact that is possible for a lower level character to beat something like the final boss, already proves that there is something wrong with the progression of the game, and not related to the level comparission.

I guess that to make a game like that incentivate more the coop, would be better if the developers not give the players some hand holdings, making them progress as stages goes, not only that but also the creatures in the stage the players face against, shouldn't really follow the map level range, if the monster is though, It could gain 5 more levels compared to the normal map monsters, that not only would be an extra challenge to the players, but also more rewarding too, since the rewards for defeating that creature would be higher than the normal creatures in the stage.

So, that's my thought on this matter, maybe those kinds of games should award exp to the players through doing stages, than through quests acquired outside stages. At least would incentivate more the coop play, and certainly meeting new people, since I met more people during Lunia time, than during Lunia Z time.

Thursday, March 14, 2019

Critical Hits. The consequence of the defense formula.

So, after giving some thoughts, came to my attention that the Critical Hits in some games are also kind of affected by the Defense formula, I've talked about in a post I've made some time ago, but the diference between the defense formula for normal damage and critical damage is very perceptible, and sometimes fatal, on the gameplay.

The formula of critical hits generally uses:
Damage * CriticalRate - Defense
Ps:. Do notice that I didn't made use of parenthesis between Damage * CriticalRate, because since It's a multiplication before the subtraction of Defense, the multiplication should be done first, so would be redundant to add it.

The problem with such formula is that the Defense status may be useless depending on how high the Damage value is, meaning that if a game uses high numbers for Damage value, the Critical hit can be very deadly.

Let's say for an example: My character have 1000 of Damage, the creature it is attacking have 250 Defense, the damage dealt to health will be:
1000 - 250 = 750
Everything normal here, now let's try with the critical rate of 2 times.
1000 * 2 - 250 = 1750
Do you see the problem? You actually is dealing more damage than the defense can handle, and that could be fatal during gameplay, even more if the player is actually the one who receives the critical hit, It could lead to an instant defeat.

The way of solving that, would be if did kind of the same thing from Defense calculation on the Attack VS Dps thread:
(Damage - Defense) * CriticalRate
Ps:. In this case, the Parenthesis was necessary, because I want the subtractions to happen first, and then the multiplication happen. If you're actually bad at math, take note of this fact when building a formula or solving problems.

That way, the Critical rate is actually the resulting damage after the defense has been calculated, but wait!
The critical rate actually makes the user deal higher damage value, right? So that means the first formula is actually correct? Well, Yes. But actually, you decide which one you're going to use, either use the ideal, Damage * CriticalRate - Defense, or the forgiving one, (Damage - Defense) * CriticalRate.

Just beware of the fact that as stated above, depending on how high the numbers are in your project, the Critical Hit may mean insta defeat to the one inflicted with it, so beware when implementing the system on your project, and try not to do like a certain mmo I've met which relied on Critical Hits to actually inflict damage to creatures, that was very deplorable.

Well, that's all, folks!
Today's post wasn't related to the project, but I hope this help in case someone of you guys decides to build a game someday.

Monday, July 30, 2018

Attack Vs DPS

 This post is unrelated to TNR project, but if you're an aspiring developer, I recommend you to read.

People usually makes a formula to determinate what is the dps of a weapon when attacking, generally getting the weapon speed, pass it to seconds and then multiply by the base damage of the weapon, but what If one wants to make the weapon deal the exact dps damage per hit?

Having the damage being discounted before checking the defense of the enemy, or if it's a critical hit, may cause devaluation of the equipment, causing the weapon itself to feel really not worth using compared to a one second attacking weapon, so what you have to do is leave that calculation of dps to after you have the final value of the damage to inflict.

Let's say that I have a weapon that inflicts 40 damage, the enemy has 10 of defense, but it's dps is of 0,8 seconds, that's when I build the formula:
Damage * Dps - Defense
If I do the calculation on that formula, the damage inflicted will be 22.
40 * 0.8 - 10 =  22
Ps:. In this case I didn't needed to round the result, since 40 * 0.8 results in 32, but if your game health status isn't a decimal variable, you'll have to convert it to integer when placing the value, or rounding it.

But If I do the calculation:
 (Damage - Defense) * Dps
The damage actually will actually be:
 (40 - 10) * 0.8 = 24

Do you notice the difference? It's small but very significant, that little difference of 2 numbers may end up defining if the equipment is worth using or not, aswell as cause frustration on the players, a player may find a dagger that inflicts damage every 0,33 seconds of use, is actually better at damage dealing than a hammer that takes 1,5 seconds to use, the players may avoid using it due to the low damage dealt per second, compared to a weapon that has the damage near 1 second of use, so when you attempt to make a game where the inflicted damage of the weapon is actually the dps, do not discount the damage before the defense calculation, do the damage minus defense calculation first, and then apply the DPS mod.

That's all for my developer blog post.

Saturday, February 11, 2017

Experience nullification if too higher leveled?

So, If you are the kind of person that have played several rpg games until now,
you may have noticed that some games have imposed that you will not
acquire experience if too much higher leveled than the enemy level,
but let's wonder, is that fair? Let's gather some thoughts.

The leveling is a progression in a game that allows you to go farther in it, and
face new challenges equally, but if you are overleveled than it, the combat
will be easier, includding a boss fight you are stuck on.

But when you are overleveled, some games likes to nullify the experience acquired
from the combat, which may be bad in case there is backtracking, since the character
would need to return to a low level area, the player would not be acquiring any
experience from his adventure, even though the character is so powerful that is
a overpowered compared to the enemies it's facing.

But on the other side of the coin, the character must grow stronger with the challenges
of around his level, or even higher, but still, the player need to gain something from
the adventure, other than loot.

There are also some games that lowers the experience acquired from defeating a
higher leveled enemy, which is stupid, since the battle is going to be tough, the
character should earn experience worth the effort.

But what If a developer wants to allow the player to acquire experience from
lower leveled monsters, what should that person do?
One of the things you should look forward to doing is make a experience table that
ascends in a way that if you are 10 or 15 levels higher than the enemy, the experience
is not that good to grind, meaning that you would take around 1000~2500 kills of that
same enemy to be able to achieve a new level, something that would be less if
you were facing a enemy of the character level.

The other would be adding multipliers to reduce experience received when facing lower leveled enemies, and increase when facing higher leveled enemies.

Well, that is all for my post about Experience Nullification when too higher leveled,
you decide wether it is fair or not, or necessary.