Progress, 18.01.2018

It’s been a little silent here for a while because I haven’t been working since October but now I’m back with tons of progress!

First of all, I finally finished my scripts which concern the clock and the NPCs. I threw it all over and tried again from the very beginning and… it worked out. It was the stuff I was working on for months and I it took me just a week to make a new way better version of… everything. I have overcome a blockade I guess.

So now there is actually progress! I HAVE FINISHED THE MOTHERFUCKING SHIPYARD! An obstacle I avoided for so long. A couple of NPCs have been already scheduled, there are 3 (actually 4) new maps, 2 new cutscenes. I have also finally added all the balloon icons and made a couple new character sprites.

So stay tuned! Next up are the forest maps and the first quest and finally use of the menu features I implemented at the very beginning and wasn’t able to show them yet. See ya around.

Sincerely your unicorn.

Weather, 13.10.2017

Knights now has changing weather.

  • Weather may changes once a minute (= 1 ingame hour)
  • When it is sunny
    • 75% chance of staying sunny
    • 20% chance of rain
    • 5% chance of storm
  • When it rains/snows
    • 50% chance of staying rainy
    • 10% chance of storm
    • 40% chance of sunny weather
  • When it storms
    • 50% chance of staying stormy
    • 30% chance of rain
    • 20% chance of sunny weather
  • In cold areas, rain and storm are replaced by snow
  • It doesn’t rain in desert areas

My new friend, 23.09.2017

This is my new entity buddy.
He can already do quite a lot of things, here are some examples:

The Scan and Movement Methods:

  • move(range, modificator)
    • → scan
    • moves randomly until the player enters his scan area (→range, →modificator)
    • follows and attacks the player when in range
    • avoids most obstacles (see other methods below)
  • seek(range modificator)
    • → scan
    • moves according to a move route set by → add_step
    • starts event when the player is in range
  • scan(range, modificator)
    • scans the area for the player (see examples below)
  • add_step(direction, count)
    • adds count times the move direction to the move route
    • for example:
      add_step(“up”, 2)
      add_step(“down”, 2)
      add_step(“left”, 3)
    • result:
      up, up, down, down, left, left, left
  • retrace_steps
    • moves its route set with add_step backwards

Scan area examples:

Round view: scan(2, true)

Forward view: scan(2) or scan(2, false)

Expanded view: scan(2, 6)

Note: The scan method has no use on its own, it is only used within the move and seek methods using the same parameters.
move(2) → scan(2, false)
seek(3, true) → scan(3, true)
Round and expanded view cannot be combined.

Other methods:

  • find_path(range)
    • → clear_temp
    • → declare_area
    • → write_path
    • A summary method to initialize the pathfinding algorithm
  • clear_temp
    • resets all temporary variables
  • declare_area(range)
    • → find_middle_position
    • locates all obstacles in range
    • locates the player and the entity
    • → div
  • find_middle_position
    • returns the position between the player and the entity to optimize pathfinding
  • div(obstacle_count)
    • adjusts the maximum path length in relation to the surroundings to optimize pathfinding
  • write_path(position, direction)
    • → recalc_pos
    • searches every possible path to reach the player and automatically filters the shortest one
  • recalc_pos(x, y, d)
    • recalculates the coordinates x and y if you move in direction d
  • to_command(direction)
    • converts move direction (“up”, “down”, “left”, “right”), into a move command
  • invert_step(direction)
    • returns the opposite of the direction
      • “right” → “left”
      • “up” → “down”

There’s still a lot more to do but I’m making great progress and it’s extremely funny to interact with this little guy. (I made him go through labyrinths to test his pathfinding skills) See ya.

The Clock, 25.08.2017

The whole clock/time/day-changing system is finally complete… I guess.
I bet I’ll find some more stuff to add later but basically, it’s done.

What does it do?

  • it uses a minute – day – month/season – year rhythm
    • all of them are adjustable
    • for example:
      • 24 minutes a day
      • 30 days a season
      • 12 months a year
  • it works independently from a common event, toggleable by a switch
    • it depends on the in-game timer system, therefore:
      • toggle it off to use the timer normally
      • toggle it on to use the clock
    • switching it on/off or skipping time works without bugs or other issues
      • the command $game_system.change_time(minutes) keeps an inner order to prevent an irregular rhythm
      • note: always set up the time using the change_time command when you toggle the switch on, the script rearranges itself anyway but it’s safer like this
        • note-note: you could also stop the timer before activating the clock but then it will start at 00:00 o’clock
  • with the changing daytime comes a changing screen tone (Dawn/Sunrise/Midday/Midnight, whatever you want) based on the time
    • the script will differentiate indoor and outdoor maps if listed correctly
  • the calendar window shows the date and the daytime through the small icon in the top-left corner
  • probably forgot something

Maybe I’ll record a tutorial for that some time, it’s kinda complicated though.
If not, feel free to ask me on Twitter for help.

Bugfixes, 24.08.2017

After too much time spent on playing games myself, I decided to get back to work.

Bugfixes & System stuff:

All occurring errors caused by the new features when you start a new game, mostly undefined variables, have been fixed.

The calendar, as well as the hunger bars, have moved to their own classes. Plus, the calendar itself no longer depends on a common event. The clock still depends on the in-game timer, but as long as I don’t have any issues with separating them (clock and timer) I probably won’t change that.

The system concerning the hunger bars has been rewritten and compressed.
A player won’t notice any difference though.

New things:

I still didn’t finish the shipyard but I added this pigeon.


Note to my future self:

Still gotta add all color tones for the calendar system and by that, you should probably rework the script too, as you did it with the hunger bars. And get up and finally finish the shipyard and the store or you’ll never come past the tutorial.

PS: The BalloonIcos are waiting for your attention too. It’s been one month, show them some love.

– Past You

Compass Feature, 08.08.2017

The Compass:

  • Gives out your current position
  • Directs you to your target (More accurate the closer you get)
  • Can be toggled on or off
  • You’ll probably be able to choose your own target (select a region) later to navigate you there, whenever you want, wherever you are
  • It would be possible to pinpoint quest goals (select a specific map) manually, though I like the aspect of exploring, I don’t know if I’ll add that