New account registration is temporarily disabled.
  • Add Review
  • Subscribe
  • Nominate
  • Submit Media
  • RSS

Miscellaneous

New CSS style

I've fixed some problems with the last layout and added new things. When you view a blog entry by itself, the text was hard to see from the background so I made it white. I also made the background pattern darker so you can see the outline of everything on the standard RMN page.

Miscellaneous

I've repaired my bigger laptop

I've finally gotten the keyboard to work on my HP again. This is the machine I originally used to work on WeaponBirth with. If nothing more goes wrong with it, I can put it all back here and continue like I was back in December. The keyboard still feels a little weird but that's probably because I'm used to the larger keyboard on my desktop. It's got Windows XP Pro SP3 instead of Vista because it can't handle Vista and I need a legacy machine so that I can target older operating systems. I'm posting from the thing, so that's a good sign.

Miscellaneous

Event movement system added + Question for you



Skip to the bottom if you just want to answer a question I have:

Changes

I've added the much needed system that moves events. Events in WeaponBirth move according to a queue of move commands just like in RPG Maker except you specify them individually and they just get queued up.

The kitty in the screenshot is running the following script:

// WeaponBirth Test NPCs

// This NPC remembers the player
test_kitty_npc:

1.parallel
// Spiiiin!
move_face(#right);
move_face(#down);
move_face(#left);
move_face(#up);


This causes the NPC to spin like the Tasmanian Devil very fast (turn 90 degrees every frame). The script halts at the end of the page (right after facing up) for all the move commands to finish. If it didn't, the move queue will continue to grow until my program is refused additional heap space (overflow). This allows you to make an event that repeats moves over and over.

If you're making something complicated such as an event doing errands or a cutscene with lots of movement, I'm allowing events to autobuild a movement queue based on paths (which you can make in WED, the map editor). This way you can just signal an event to walk the path to its end, or to walk a circular path in a loop. You cannot jump when exploring on the map unless an event makes you just like RPG Maker. It would be nice if events understand that if a path node is above them on a ledge that they should try jumping to reach the node, but I'm not expecting that much out of my own engine.

I'm going to add events that allow you to jump over edges at the press of the examine key just like in Grandia, if it's needed in the maps.

Question about the camera

I'm thinking of allowing the player to rotate the camera about themselves. Here's the benefits and problems:

+ Allows the player to explore better, just like in the first Grandia.
+ Can help solve obscuring by allowing the player to get a better view.
- Drawing characters as they face 45 degree increments is hard, and the sprites may look worse as they can only face 90 degree directions. This either reduces visual quality, or adds much production time to map sprites.
- The player will fight the camera (inevitable) and I'll have to fiddle with the compass and try not to disorient the player.

What do you think?

Miscellaneous

Unseen Progress

I haven't done any more coding since I got the basic event system down. I'm further than I've ever been before in developing any normal-sized game from scratch. In any of the RPG Makers, you spend much more time on content rather than making the engine since it's already made and the most people tend to do is add script edits. Even though I don't have anything to upload lately, I've actually thought about this game a ton recently.

Apart from the RPG system, this also means the design of the different characters and things. Every RPG has a compendium of sorts to describe the sort of game world it is. I might post a few ideas here as I go along and develop the RPG system some more.

Miscellaneous

Balancing

I'm expecting this to be the longest and hardest part of writing an RPG. You can't just throw together an RPG system because it has to be rigorously balanced and yet each character must feel unique apart from the typical arctypes you see.

Miscellaneous

Calculations

The following is a copy and paste from the console of me trying to balance things. The attack calculations underneath are of Tetsumori hitting herself. The percent in the () is the mastery rate.

Tetsumori:
Lv.: 20
Exp.:0

Str: 11 End: 18
Pwr: 24 Agl: 11
Skl: 16 Spi: 18

HP: 45
EP: 30


Physical:
Acc: 96% Crit: 9%, 11dmg (~100%)
12 damage
12 damage
11 damage
11 damage
12 damage
12 damage
0 damage
13 damage
Etheral:
Acc: 96% Crit: 9%, 15dmg (~75%)
18 damage
13 damage
18 damage
13 damage
14 damage
16 damage
16 damage
11 damage
Velocity:
Acc: 96% Crit: 9%, 11dmg (~68%)
12 damage
11 damage
9 damage
13 damage
9 damage
11 damage
25 damage
10 damage
Press any key to continue . . .

Miscellaneous

Kinds of Attacks

WeaponBirth has three basic attack types.

Physical attacks are stronger the higher your Strength is (of course). You can only reduce the damage by wearing armor, none of your stats can help you save Endurance- but that just increases your max HP which means you can take more of any kind of attack.

Ethereal attacks (also known as Energetic attacks) are stronger the higher your Power is. This can be directly defended by your Spirit stat, but wearing special kinds of armor could help. While you tend to think of "magic", there are more conventional ways to cause Ethereal damage such as flamethrowers, explosives, beams, lighting, etc. (which is why it's also known as Energetic). Your power and spirit also increase your max EP so you can do more stuff at once (but spirit is much more effective at adding more EP).

Velocity attacks are stronger the higher your Skill is and you can defend from them with more Agility. These are things you shoot of course. You would reduce the damage from bullets with a higher Agility allowing you to dodge them so that they either miss you or hit less vital parts of your body. Same with arrows and the like. A high skill also lets you do more critical hits and have better accuracy at all. But of course, a high Agility reduces the accuracy of all enemy attacks.

Miscellaneous

Status Effects

I don't like status effects that mildly inconvenience the player, I like the effects that ensure you really want to take steps to prevent. I also like how the player could use them to really mess up the enemy. All status effects have a magnitude to make them worse. Here's a few I have planned:

Poison
Poison in WeaponBirth means that your HP will take more and more damage (based on a %) until it starts hitting you with half your health a step. You've got enough time to treat it, but if you don't you might as well consider the character dead. Thankfully minor poisoning starts out at tiny %s, but if the enemy hits you repeatedly with a poison-causing attack, the effect gets accelerated.

Fever
This halves your Power and Spirit and causes increasing EP damage. Once you're out of Energy (EP), the effected character will collapse and be unable to move unless you refill their EP or just cure the condition. Don't forget maximum EP is derived from Power and Spirit so you lose some of that too while in this condition.

Wither
This halves your Strength and Endurance (which would also mean your maximum HP is suddenly effected too). This is enough to be a problem because then an effected character is suddenly vulnerable and no longer a threat.

Daze
This one is simple, the effected character is dazed and won't be able to do anything. This wears off depending on how bad the condition is. Also, dazed characters have no basic chance of dodging any attack.

I might add more of whatever since these are handled as special cases on the traits system. Fever, Wither and Daze were made to take care of Ethereal, Physical, and Velocity characters. Why use silence when you can force a "mage" to conserve energy or they'll just collapse and be able to do nothing? Wither works well to spoil tanks and fighters and Daze will let you stop a rouge/thief and land a well-aimed critical skill that normally missed most of the time even on normal opponents.

Of course I can add as many special effects to many different attacks from bosses or special skills whenever I want. I just don't like having too many because it confuses the player.

Miscellaneous

Need to make RPG system

Allright, I have to design my entire RPG system for WeaponBirth and that's going to take some experimentation and stuff, so enjoy other stuff I might make in the mean time. I'm actually still working on this, but I have to start balancing and stuff and improve the original WeaponBirth model.

By "RPG System", I mean the rules and numbers that actually define the combat and stuff. Items, playable characters, enemies, etc. are all covered by this. It's going to be a WeaponBirth manual of sorts.

Miscellaneous

Got rid of the programmer's block RRRRR!

I've finally got the code blocks and jumps working so that the following runs correctly. I had this overly complicated and horrible jump map character library all set up when all I needed was to match braces.

You see, when the executive reaches an if statement, there will always be a { after it. If the value inside is true, it just skips the {. Otherwise, the { increments a block level variable. If the block variable is not zero, codes are ignored. } decrements the variable and negative numbers are just set back to zero.

This actually effectively works for both normal and nested blocks like this. I can't believe how simple the solution should have been! The only problem is that {} must be on their own line and you can only have one per line.

Here's an example of what code blocks are:


// WeaponBirth Test NPCs

// This NPC remembers the player
test_kitty_npc:

1.examine
// Count the number of times the player has talked to the NPC
speaker("Kitty");
add(counter,1);
show_value(0,counter);
show_message("You've talked to me @0 times.");
if counter > 4
{
// On the 5th time, vanish
show_message("Alright, this is annoying now... I'm out of here!");
delete();
}