Hyperborea Dev Diary #3 Backgrounds

Hello folks,

Last week I got swamped with my day job, which really limited my ability to work on Hyperborea and Self Insert Draft. But I did get a fog system and a particle system to work using different plugins for RPGMAKERMV. I will produce a writeup for you all tomorrow. In the meantime, please enjoy some backgrounds from a very talented artist Fadjar01 who has been helping me with Hyperborea.

From,

William

Hyperborea Dev Diary #2 Simple Bullet Systems in RPGMAKER MV

Dear Internet Friends,

Hello! I hope that you are all doing excellently. This week I have been working on the level design of Hyperborea as well as implementing a simple bullet system in Hyperborea. Part of the fantasy behind Hyperborea is survival and struggle. With that comes some sort of resource management. This led me to have a project with a couple of desires:

  • Ammunition based combat (Hypatia isn’t going to find too many bullets in the wastes)
  • Restriction on firing rates (Hypatia uses a breeched loaded rifle)

After some tweaking, I was able to incorporate μ’ki (Riko Sakurauchi)’s system into my game. I will show you the steps of how to do the same in your game!

Requirements:

Designing a Small Bullet Image

I used GIMP to create a small bullet what was transparent. Using a spray tool, I initially built the bullet at 32×32 pixels. overlaying gray with black. This proved too big, however, so I scaled it down to 8×8 pixels. After finishing the bullet, save it as a .png and place it in the img\pictures folder in your game.

bullet.png

Initialising the Plugin

plugins
The settings of the plugin interface that I used. The default is fine.

I left the initial settings the same as default after enabling the plugin. The plugin description is perhaps the most important nibble of information that we can glean from here. The ShowBullet plugin command offers a wide array of choices. However, you do not actually need to use all of them. I omitted target and fixed. Hoping for the player to aim themselves.

ShowBullet name source inst_id speed dir atk target fixed

where

- name: picture file name to use (without extension)

- source: character that spawns the bullet (-1: player, 0: this event,

>0: designated event id)

- inst_id: variable id to store instance index of the spawned bullet (begin

from 0)

- speed: the bullet speed (in tiles/sec)

- dir: 1~8: down, left, right, up, SW, SE, NW, NE, 9: towards target,

10: homing

- attack: the bullet's Atk value

- target: character to aim towards (for dir = 9 or 10)

- fixed: whether not to rotate the bullet (can still be changed by

MoveBullet command)

Shooting the Bullet Event

Open a common event in the database (f9) and press plugin command.

plugin command.PNG

My standard shoot became “Plugin Command:ShowBullet bullet -1 100 30 1 20”

  • -1 = Bullet spawns from character
  • 100 = a random variable number that I have saved to use.
  • 30 = speed in tiles per second
  • 1 = Down Direction
  • 20 = Attack which I did not really implement.

Now we run into our first issue. We want the payer to shoot in the direction that she is facing. This is easily fixed by using a conditional branch and using the character direction as the condition.

conditional branch.PNG

Corroborate the if statements with the directional numbers in the plugin description”- dir: 1~8: down (1), left (2), right (3), up (4)…”

  ◆If:Player is facing Down
    ◆Plugin Command:ShowBullet bullet -1 100 30 1 20
    ◆
  :End
  ◆If:Player is facing Left
    ◆Plugin Command:ShowBullet bullet -1 100 30 2 20
    ◆
  :End
  ◆If:Player is facing Right
    ◆Plugin Command:ShowBullet bullet -1 100 30 3 20
    ◆
  :End
  ◆If:Player is facing Up
    ◆Plugin Command:ShowBullet bullet -1 100 30 4 20
    ◆
  :End

 

Adding Flairs: Ammunition and Reloading Animation

Using the database, I added an item called cartridge. These represent the amount of ammunition that Hypatia has. Installing the ammunition is simple. Go into your common event where you set up your bullet shooting system and add an if statement to the line:

◆If:Party has Cartridge
◆Change Items:Cartridge – 1

Another requirement of mine was to add a different sprite when firing. This was simple. I added a change actor images line (and an angry bubble for flair) BEFORE a forced wait. This gives the illusion of her aiming.

◆Change Actor Images:Hypatia, hypatia(4), $heroine-girl student 6 onepiece(0), sv_heroine-girl student 1 sweat suit
◆Show Balloon Icon:Player, Anger
◆Wait:85 frames

At the end of the if branch, I added another Change Actor Images to revert her back to her normal “walking” form.

◆Change Actor Images:Hypatia, hypatia(4), $heroine-girl student 1 uniform(0), sv_heroine-girl student 1 sweat suit.

In the end, a simple draft of the code looks like this.

◆If:Party has Cartridge
  ◆Change Items:Cartridge - 1
  ◆Change Actor Images:Hypatia, hypatia(4), $heroine-girl student 6 onepiece(0), sv_heroine-girl student 1 sweat suit
  ◆Show Balloon Icon:Player, Anger
  ◆Wait:85 frames
  ◆If:Player is facing Down
    ◆Plugin Command:ShowBullet bullet -1 100 30 1 20
    ◆
  :End
  ◆If:Player is facing Left
    ◆Plugin Command:ShowBullet bullet -1 100 30 2 20
    ◆
  :End
  ◆If:Player is facing Right
    ◆Plugin Command:ShowBullet bullet -1 100 30 3 20
    ◆
  :End
  ◆If:Player is facing Up
    ◆Plugin Command:ShowBullet bullet -1 100 30 4 20
    ◆
  :End
  ◆Change Actor Images:Hypatia, hypatia(4), $heroine-girl student 1 uniform(0), sv_heroine-girl student 1 sweat suit
  ◆
:Else
  ◆Text:hypatia(1), Window, Bottom
  :Text:no ammo
  ◆
:End

Mapping the Button

This is where Yanfly Button Common Events Plugin comes in handy. Be careful not to mix it up with Keyboard config, because they are not compatible! I learned the hard way.

buttonevents.PNG
The process of button events using Yanfly.

Setting up the button is easy. Just link it to your common events. For some random reason I chose the “J” key, but I will probably change it later.

Responsive Events

What fun is a  bullet system if nothing reacts to a shot? Luckily in the plugin settings of μ’ki☆Maker‘s [RMMV Plugin] On-Map Bullets, it conveniently allows you to toggle a self-switch on an event. On a walking NPC, add another page where the Self-Switch is D (or whatever you set it to) and set the image to a character’s injured form!

eventpage.PNG

Thank you all so much for reading. I hope that you learned something! More updates to come next week and some more Self Insert Draft things on Wednesday!

 

From,

William Lucht

Hyperborea Dev Diary #1 Using Regions to Make Connected Maps in RPGMaker

Dear Friends,

Greetings I have begun work on Hyperborea: The Frozen North in earnest now. I wanted to explain a little tutorial to aspiring developers regarding how to make “seamless” transitions between maps in RPGMakerMV.  This technique works best if you have maps with large borders. Hyperborea, for the most part, is a barren and open environment. This, of course, lends itself to a maps with borders around 100 tiles. Doing this manually is a drag and if you make one mistake, R.I.P. Below are the steps that I took to ameliorate this issue.

Requirements:

 

1) Setting up your Regions

hyperborearegions 

Using the Map Paint tool, go to the “R” tab and select a region that you have not used. You only need to draw a region line one tile thick, however since I was counting tiles, I used the rectangle tool to draw large rectangles instead.

2) Setting the Common Event

The next step is setting up the Common Event. In this system, you will need a Common Event for every region that you traverse. Below are two examples of code. The first one is one that takes the player south. The second one, in text, takes the player west.

hyperboreacommonevents

◆Control Variables:#0005 YHyperborea = Map Y of Player
◆Control Variables:#0004 XHyperborea = 243
◆Control Variables:#0006 MapID = 16
◆Transfer Player:{MapID} ({XHyperborea},{YHyperborea}) (Fade: None)

Explanation of the Variables:

  • YHyperborea: Determines where the player will spawn on the Y axis. This iteration is based on their position. Since the player is traveling from the East to the West in the text commands above, YHyperborea is variable.
  • XHyperborea: Determines where the player will spawn on the Y axis. This iteration is static.
  • MapID, this is an indicator of which map they are traveling to.  It is a number obtainable from the bottom of the screen when working on a map.

mapid

To obtain some of the variables like Map X or Map Y of player, you can click on Game Data and select the character option.

variables

3) Adding the Event to Yanfly Region Events

hyperboreaplugin

Perhaps the simplest thing in this is tieing the region to the event. Open the plugin manager, select YEP_RegionEvents, select the region that you have painted, and choose the custom event! Voila! You should be set to go. Making region transitions “seamless” however, is another step that requires a bit of tinkering. It largely depends on how you have set your screen resolution. You will have to set the region markers a certain distance away from the borders of the map so that the player has the illusion that they are always in the center.

 

William Lucht

Self-Insert Draft: Developer Diary #10 Conditional Options 2018-07-24

Hello Everyone,

Apologies for the delay! Hope that you all had an exciting and fun-filled weekend. We’ve been super busy at Arcani and in my personal life. We just adopted a new kitten called Nike, after the Goddess of Victory, not the shoe! With regard to Self-Insert Draft, I am working on instituting conditional options based on your relationship with characters. Kind of like how in the Fallout Series you would have skill checks in dialogue (and other things), Self-Insert Draft will have relationship checks in dialogue. To this extent, relationship not only measures your bond between the character and yourself, it also measures your investment into the character.  While not game-blocking, using your party members to convince the folk of the world will become a critical component in advancing the story peacefully. Of course, if you want most of your dialogue to go violently… well, go ahead, you can do that too.

 

From,

William Lucht

Self-Insert Draft: Developer Diary #9 Quests and Quests 2018-07-16

Dear Viewers,

The progress with Self-Insert Draft has been proceeding well! I have finished the third and fourth “quests” in the system. We are starting to move from the starter town to greener pastures. At a certain point, related to the quest the player is forced to choose between two different characters: The Redeemed Bandit and the Chosen One. The Chosen One is a character that I particularly fell in love with. You entered this world. A world that she was meant to save. However, you have been getting the glory. To some extent, she can serve as the true foil to the story, especially compared to the eponymous Emo Foil. 

Additionally, I apologise for the new format. I thought it might be more palatable and a bit less formulaic to use a more casual and less structured style. Let me know what you think!

From,

William Lucht

Hyperborea: The Frozen North

Hello friends,

I am excited to announce a new game I am working on alongside Self-Insert Draft. Called Hyperborea, it follows the adventures of Hypatia as she gets trapped in the frozen wastes up north of the Tigotierian Empire.

done.png

Plot:

Hypatia is a soldier detached from the Tigotierian Exploratory Legion. Trapped and lost in the wintery Hyperborea, the Land North of the North, beyond all civilization, Hypatia must struggle against nature… or succumb to it.

Gameplay:

Hyperborea is a top-down survival horror game using the RPGMaker MV Engine.

 

From,

William Lucht

Self-Insert Draft: Developer Diary #8 A Brief Reprieve 2018-07-09

Progress Last Weeks in Numbers:

Lines of Written Code: 500

Story:

  • Finish 3rd quest

Please tune in next Monday!

William Lucht

Self-Insert Draft: Developer Diary #7 Battle System Again 2018-06-25

Progress Last Week in Numbers:

Lines of Written Code: 43 (but a lot has been modified from the battle system discussed last week.)

Story:

  • Finish Second Quest (Urgent)

Code:

  • Work on GUI for battle system

 

Please tune in next Monday!

From,

William Lucht

Self-Insert Draft: Developer Diary #6 Battle System Tweaks 2018-06-18

Greetings folk! Last week I talked about some aspects of the story,  but more importantly, the battle system! This week was primarily focused on the battle system. At this point, I have to really realign/determine my game design. Is this game going to be primarily a visual novel or a JRPG? If I am promoting a mixed format, how can I integrate them well enough in order to have a seamless experience? I don’t want to burden the people primarily interested in VNs with unnecessary battles.

Progress Last Week:

As stated in my previous I am using DemonAngelz’s Framework. I built the skills for the characters so far and am trying to iron out bugs as well as improve the GUI. I was proud that I became familiar with the tooltip function so people will understand the mechanics of “Ha! Nothing Personal!” rather than sighing at a dead meme.

screenshot0024.png

DemonAngelz framework is great, however, perhaps purposefully, bland. I’ve tried to spice up the system with multiple varieties of attacks that players will have to choose from. There are simple attacks like “Dark Blade Bathory” which just absorb health from your enemy, but then you have moves like “Passion of the Angels”, which removes most of Love Interest’s health but completely heals other party members. This, of course, can be combined with 90% > chance stun moves. To prevent the said character from dying.

 

Progress Last Week in Numbers:

Lines of Written Code: 235 (but a lot has been modified from the battle system discussed last week.)

 

Goals for Next Week:

Story:

  • Finish Second Quest (Urgent)

Code:

  • Finish skills for battle system
  • Work on GUI for battle system

 

Please tune in next Monday!

From,

William Lucht

 

Self-Insert Draft: Developer Diary #5 2018-06-11

Last week I talked about the encyclopedia that I was working on. For the most part, the encyclopedia is finished, however, more updates will of course be warranted as I develop the story further. Some people might ask? Hey William, what’s the point of an encyclopedia in a small visual novel? Well I suppose more features couldn’t hurt, Plus with tropey names being tossed about it can be nice to have some extra backstory.

Progress Last Week:

Story

The story writing this week was dominated by writing regarding the first major quest of the main questline: introducing the main characters to the stage including the infamous Emo Foil.

Code

Oh boy, oh boy. This week was a hectic week for code. I’m trying to work on the battle system, but you see, I programmed a battle system before. For Cassandra’s Fabulous Foray, I developed a robust 1v1 system, however, the graphics leave something to be desired. Using DemonAngelz’s Framework, I am fleshing out the battle system. I made good progress on developing the skills of the player characters and will be finished this week for some sweet sweet pics.

Progress Last Week in Numbers:

Lines of Self-Written Code: 1228

Goals for Next Week:

Story:

  • Finish Second Quest

Code:

  • Finish skills for battle system

Please tune in next Monday!

From,

William Lucht