Character Sprites – Completed!

Hi everyone!

As you may remember, I started making some custom character sprites for my project (as shown here: https://sldesignfmp.game.blog/2019/04/25/character-sprites/). It’s taken me (on and off) about a month to get them finished. Have a look at these:

One thing that I had real issues with was the cloaks on the Mage and the Hunter costumes. Trying to replicate the way fabric behaves in 16-bit pixels is surprisingly difficult, as you have to make the sprite be a consistent size and shape, but luckily I had some test shots of people wearing cloaks (https://sldesignfmp.game.blog/2019/03/20/character-designs/), which helped me get some bearing on how to fabric would behave with regards to lighting and appearance. It particularly helped me with the Hunter, as the test shots showed people wearing a cloak on top of armour, which makes it look a little bit different, especially around the shoulders. Although the Thief is wearing a piece of fabric around his neck, it’s more of a scarf or a mantle, which made it much easier to contend with.

The ones I really like the most are the Priest and the Warrior. The priest design was completely based on the brown monk robe that I used in my original test shots, which made it so fun to work with. I like the warrior because it’s very strking; you know he’s an handly lad in a fight.

The reason why I’ve made the same character six times in different outfits is due to my character class system. Traditionally, when a character changes class, the sprite changes to one that reflects the nature of the class. For example, when a character becomes a warrior, they look as if they’re wearing metal armour; conversely, a mage would look as if they’re wearing robes. It’s primary purpose is to provide important visual information to the player.

The only issue with creating all of the spritesheets is the time required to make them. It can take me a whole day just to make one spritesheet! So for now, I’m going to stick with having only two main characters, as I don’t have the time to make a full roster.

Also, these costumes are just for male characters. Female characters use different, but still similar costumes, so the player can differenciate whether or not the character is male or female; but at the same time, they are still similar enough to show the player what class they are. For example:

These are perfect examples of what I mean. The male and female outfits are both similar, and distinctly different. Yet they are both identifiable as their respective classes.

If I have time, I may show you the female outfits, but if I don’t show them, at least you’ll understand the concept that I’m trying to use here.

Anyway, that’s it from me for now. I’ll see you later!

Bibliography:

Square Enix (2009). Priest Vocation. [image] Available at: https://dragonquest.fandom.com/wiki/Priest [Accessed 23 May 2019].

Square Enix (2009). Warrior Vocation. [image] Available at: https://dragonquest.fandom.com/wiki/Warrior [Accessed 23 May 2019].

Music and SFX

Hi everyone!

So today, I’m gonna talk about something that I havent really covered; Music and Sound Effects (SFX). And I’m going to start by saying this; yes, I am using licenced Music. I haven’t got the skills or the time to create my own, so I invested in some appropriate music.

As I use RMMV via STEAM, that’s where I happen to get all of my assets from, music included. I generally wait for a STEAM Sale (which happen every few months) before buying anything though. Although I do need to use pre-made music, I’m not paying silly money for it. Actually, I already owned everything other than the last one on the list below.

Now, I’m using FOUR seperate Music and SFX packs, although three of them are interconnected. Here’s the list of what asset packs I got, as well as where I got them from:

As to who made them, the 8-Bit Perfect Collection was made by Moppy Sounds, and was DESIGNED to work with the Time Fantasy assets, as the pack also comes with an exclusive Spritesheet in that style. The Retro Fantasy Music Packs were all made by Joel Stuedler, and the reason I’m using them is that the 8-Bit Collection doesn’t have any Music Effects, which could be classified as Sound Bites. They’re generally played when the player sleeps at an inn, or wins a fight. They’re quite handy for making scenes that little bit more epic.

Anyhow, that’s enough of that. If you like, you can check out all of the music I’m using via the links, as well as Soundcloud. So I’ll see you later!

Bibliography:

Store.steampowered.com. (2017). RPG Maker MV – 8-bit Perfect Collection on Steam. [online] Available at: https://store.steampowered.com/app/631500/RPG_Maker_MV__8bit_Perfect_Collection/ [Accessed 23 May 2019].

Steudler, J. (2018). RPG Maker MV – Retro Fantasy Music Pack on Steam. [online] Store.steampowered.com. Available at: https://store.steampowered.com/app/947741/RPG_Maker_MV__Retro_Fantasy_Music_Pack/ [Accessed 23 May 2019].

Steudler, J. (2018). RPG Maker MV – Retro Fantasy Music Pack Vol 2 on Steam. [online] Store.steampowered.com. Available at: https://store.steampowered.com/app/979464/RPG_Maker_MV__Retro_Fantasy_Music_Pack_Vol_2/ [Accessed 23 May 2019].

Steudler, J. (2019). RPG Maker MV – Retro Fantasy Music Pack Vol 3 on Steam. [online] Store.steampowered.com. Available at: https://store.steampowered.com/app/1051434/RPG_Maker_MV__Retro_Fantasy_Music_Pack_Vol_3/ [Accessed 23 May 2019].

Project Plan – Who, What, When, etc.

Hi there!

Right now, I’m going to look at the project plan I outlined at the start of this whole thing:

https://sldesignfmp.game.blog/2019/03/14/project-plan/

So, I can tell this just from a casual glance; it hasn’t gone exactly according to plan. I suppose that’s to be expected though. They say that no plan ever survives first contact with the enemy, so I at least expected some issues. That’s why I changed my project plan to the Excel spreadsheet method. I used it to get back on track, but this post is talking about my original plan, to see if it it would still be valid.

But looking closer, I was totally overambitious with how long I thought that things would take. I’ve even had to scrap some of the things I wanted to do due to time constraints. For example, I was planning to do a full audience profile. Unfortunately, I haven’t been able to do one, as I’ve been too busy trying to actually design my game.

It also states in the plan that I’d spend about 5-6 weeks on production. In reality, I’ve had about 3 weeks to get things sorted. Again, another gross over-estimation of my own capabilities.

I guessed that as I’ve plenty of experience with the engine, and the game genre, that this would be easy for me. Boy was I wrong. This has been a bit of nightmare to be frank with you. I suppose you could say that my own arrogance got the better of me. This whole experience has been quite humbling. I now know not to get big-headed about things.

I guess there is a lesson to be learned from all of this; be realistic. I obviously thought that this would be a simple matter. It hasn’t been. It’s been like a rollercoaster, with all manner of twists and turns lurking around every corner. So I guess that I’ve at least learned something from the experience; don’t get arrogant. Just do what’s achievable. I suppose that’s something positive at least.

The new plan works so much better than the original, as it allows me to index all of my work for easy access. I’m actually happy that I made the switch, because as you can see, my original plan would have caused me major issues, due to it’s complete inflexibility.

Final Stretch – TO-DO-LIST

Hi everyone!

So I’ve only got a few days until submission, so I’ve come up with a TO-DO-LIST for the last stages. Hopefully, this should keep me on track until submission.

There’s a lot to do, as well as a lot to sort out. With a bit of luck though, this shouldn’t be too difficult to accomplish. As I’ve said before, the grade I get for this project determines whether or not I get into University next year. I’ve been working towards this for SEVEN YEARS now. I am not going to let it slip. I’m going to get there. WHATEVER IT TAKES.

Dev Log #10

Hi everyone!

I’ve been sorting out the prologue’s various cutscenes over the last week, using the storyboard that I posted earlier: https://sldesignfmp.game.blog/2019/05/01/prologue-storyboard/. I know the storyboard is quite vague, but as this isn’t a film or TV production, it doesn’t need to be. The players (by definition) will have to watch the cutscenes, but they’re also there for the gameplay aspects as well. So I deliberately left the specifics of their dialogue out to give me some creative freedom.

I’ve also been looking at the use of McGuffin (or Mary Sue) type mechanics in gaming (as shown here: https://sldesignfmp.game.blog/2019/05/02/crystals/), and realised that Jeanné (my main female protagonist) is in effect a McGuffin in terms of the story. She is the lynchpin of a major plot centric event (in fact, the main plot!). So yeah, I think it’s good to understand their place in fiction.

I’ve only got a few more cutscene parts to sort out, and hopefully they should be done by the end of Friday! So stay tuned!

Dev Log #9

So, after spending three days trying to figure out what was wrong with the code that I outlined in Dev Log #8 (https://sldesignfmp.game.blog/2019/05/20/dev-log-8/), I finally figured out the error. It was a minor error. I was using an “Else” statement, rather than what I should have been using; an “Else If” statement. It’s a seriously simple syntax error, but thankfully it’s no fixed. So now the code reads:

  • <Custom maxhp Formula>
  • if (this.name() === ‘Jeanné’) {
    • value = level * 3 + 8;
  • } else if (this.name() === ‘Tommyn’) {
    • value = level * 3 + 12;
  • } else {
    • value = level * 3 + 10;
  • }
  • </Custom maxhp Formula>

All of the others I listed in the previous Dev Log work in exactly the same way, except that the numbers are different. But yeah, total schoolboy error. Fixed now though.

Dev Log #8

Hi everyone!

This Dev Log’s a bit of a mixed bag; I’ve made some astounding progress in creating custom character sprites, but my mapping needs a lot of work. Let’s start with the positive. I’ve managed to finish the sprites for the Male Warrior and Male Thief. I’m planning on using the same costume with different faces and hair to denote the different characters. I’ve still got to finish off each characters default appearance, as well as the Male Mage, Male Priest, Male Hunter, and all of the female sprites. In case your wondering why I’m differenciating based on gender; when working in 16-bit, you have to be able to clearly see the characters biological gender. Otherwise, you won’t know what they’re meant to be.

Now some negative; I have no idea where to take my mapping from here. I have a list of maps that need to be created:

  • Main Town
  • Main Town Interiors
  • Second Forest Area
  • Cave

That sounds quite simple, right? Wrong. Very wrong. It’s actually harder to do, as I’m not using a massive overworld map, so these maps all have to look connected. I think I have a solution though; Region Mapping. Well, ot quite how I described before. Instead of converting maps, I’m thinking of using Region ID’s to mark where the entrances, exits, and water should go. Then I can create a map with connecting pieces. I may even break the larger maps down into segments to make life a bit simpler.

Something else I’ve been working on is my character class balancing. It’s quite a dull thing really, as its all just Maths. Only problem is that the Plugin (One of Yanfly’s) I’m trying to use to make it work desn’t seem to want to do what I want it to do. I’ve looked in the documentation, and found a section of code that appears to do what I want. Only issue is; it isn’t. I’ll show you the absolute monster of JavaScript code that I’m trying to use:

  • <Custom maxhp Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 8;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 12;
      • } else {
        • value = level * 3 + 10;
      • }
  • </Custom maxhp Formula>
  • <Custom maxmp Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 7;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 3;
      • } else {
        • value = level * 3 + 5;
      • }
  • </Custom maxmp Formula>
  • <Custom atk Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 3;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 7;
      • } else {
        • value = level * 3 + 5;
      • }
  • </Custom atk Formula>
  • <Custom def Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 3;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 7;
      • } else {
        • value = level * 3 + 5;
      • }
  • </Custom def Formula>
  • <Custom m.atk Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 7;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 3;
      • } else {
        • value = level * 3 + 5;
      • }
  • </Custom m.atk Formula>
  • <Custom m.def Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 7;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 3;
      • } else {
        • value = level * 3 + 5;
      • }
  • </Custom m.def Formula>
  • <Custom agi Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 5;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 6;
      • } else {
        • value = level * 3 + 5;
      • }
  • </Custom agi Formula>
  • <Custom luk Formula>
    • if (this.name() === ‘Jeanné’) {
      • value = level * 3 + 6;
    • } else {
      • if (this.name() === ‘Tommyn’) {
        • value = level * 3 + 5;
      • } else {
        • value = level * 3 + 5;
      • }
  • </Custom m.def Formula>
  • <Custom Class Parameters>
    • exp = 5 + level * 10;
  • </Custom Class Parameters>

The only thing I can think is that either the base Plugin parameters are interfering with these formulae, or that I’ve written them wrong. As it stands right now, they’re not working.

Anyway, I’ll try and crack on with all of this, so I’ll see you later!