Save-Point
What's up, RMers? - Printable Version

+- Save-Point (https://www.save-point.org)
+-- Forum: Games Development (https://www.save-point.org/forum-4.html)
+--- Forum: Development Discussion (https://www.save-point.org/forum-17.html)
+--- Thread: What's up, RMers? (/thread-395.html)



RE: What's up, RMers? - DerVVulfman - 07-03-2024

(07-01-2024, 10:41 PM)Steel Beast 6Beets Wrote: I see.

It seems my main project is simply too big and that's causing the memory usage spike. My other projects only use half as much.
Not necessarily.

If there is a memory usage spike, it would suggest that (perhaps) a script in use was not 'optimized'.  For an example, consider HUD or menu windows.  You do not wish to have the screen refresh on every instance/frame that occurs as that would cause lag and a necessary spike.  For HUDs that I craft, I prefer to run a timer to update the window every 1/2 a second or so... and even then, I run a test to see if the HUD's data had changed.

Insofar as maps, perhaps it is the tileset(s) in question.  As I said, the larger the file, the more memory is used.  Loading a tileset with 5000 tiles (yes, they exist) for a map of 100x100 tiles would use more memory than a typical tileset with 50-100 tiles for even a large 500x500 map. And setting up a graphically beautiful parallax map for a large expansive map, likely more.

So I figure that you need to examine or re-examine what is in play.

Meanwhile, I've been a little busy. There have been a number of scripts that let the player spend 'points' to improve their stats.  Gain 5 points, you may be able to improve your hero's HP, SP, Strength, Dexterity and Intelligence.  OR you may shove all five points into Agility. But they never considered one thing...  What if you were suddenly reduced a level?  Should not the bonuses you gained for leveling up not also be lost with that level?

[Image: attachment.php?aid=2124]
The above screenshots shows that I actually solved this.  Each actor has a hash array for their individual stats and the bonuses gained for each level.  Once you gain a new level, the hash array immediately grows.  Once you add the points to your stats, the hash array updates with the new values.  And if you lose a level or two, the hash array reduces in size.

I am developing this as two separate scripts.  The first script for the mechanics of calculating your hero's underlying spendable points when a level is gained, or the erasure of past gained points if the hero's level drops.  And the second script is the mechanics of actively spending the points gained, within the Status Menu in this instance.  Clunky right now, but designed to be customizable.

A third script is in my noggin, allowing an event (like a trainer or holy rabbit statue) to bring up a stylized menu solely for stat increasing.  And this menu could possibly be triggered upon actual level upgrade.  But I have some things to consider. I have a means to merely add points by way of a script command, but I wish to ensure that you may only access these menus once you have actually leveled and not before.

And the manner of the system's design should allow one to 'add' their own stats to upgrade, whether it be "TP", "Stamina", or "Charisma".  Being able to add custom stats with ease is one of the facets of which I had been concerned.


RE: What's up, RMers? - Remi-chan - 07-04-2024

(06-28-2024, 09:44 AM)Kain Nobel Wrote: Oh man, knocking it outta the park! Glad to see you still kicking ass and chewing bubble gum!

Been too busy to get anything done, this has been a dead year productivity wise for me :/

Thank you for your support, and not a problem at all! We all have those times where real life shit likes to take over. For what it is worth, your words of kindness and encouragement helped me push forward in a time when the going was tough due to some drama I was dealing with. Steel6beats also helped in that regard, hence did I elect to include cameos of you in Saga of The Starchaser.

Been going through and playtesting the game, rewriting some scenes! Like this one for example!

The horror of an Archdemon and a general video that shows how dangerous soulcatchers can be. Some of the scenes in Fantasia have pretty heavy adult themes, this one included.
In some good news, Pjcr has gotten me a bunch of files! All of the Zirkovians and Livestock are done!

Zirkovians
[Image: spjE1tU.png]
Once an empire, their people have been brought low to a handful. The survivors of War of the Fly merely trying to make do in a universe that would see them removed.

Livestock

After the Frostlord had chased humankind from the surface of the Earth, their domesticated fauna would take up arms against the forstlord, being given the grown intelligence to do so. This majorly included cats and dogs, but such evolutions were far from exclusive. For many a beast did man tame to know more than mere survival, the perfect conduit to give a rise in wit. The livestock they kept as pets and providers both also were elected to rise among the ranks!
[Image: BaTnfZK.png]
I did some frankenspriting of the RTP resources and some of whitdragon's sprites to make some placeholder character sets for them!
[Image: UfUsaad.png]
I could share more but that is all I have readily available to share at the moment!


RE: What's up, RMers? - DerVVulfman - 07-04-2024

(07-03-2024, 05:10 PM)DerVVulfman Wrote: Meanwhile, I've been a little busy. There have been a number of scripts that let the player spend 'points' to improve their stats.  Gain 5 points, you may be able to improve your hero's HP, SP, Strength, Dexterity and Intelligence.  OR you may shove all five points into Agility.

Well... Setting up my Character Stat Raising system, I decided to let it branch out and allow for different point bonuses depending upon the character's class.  And I had fun making the configuration page.

#==============================================================================
# ** DVV_Stat_Increase
#------------------------------------------------------------------------------
#  This module is the configuration module.  Please perform changes only within
#  this page unless you are an experienced scripter.
#==============================================================================


module DVV_Stat_Increase
 
  #--------------------------------------------------------------------------
  STAT_POINTS = {}    # Do Not Touch
  #--------------------------------------------------------------------------

 
  # POINT SYSTEM TEST
  # =================
  # Returns an error message at start unless values correctly defined.
  # -------------------------------------------------------------------------
  #

    TEST = true


  # CLASS ARRAY USAGE
  # =================
  # This feature allows  the system to have  individual point assignements to
  # each actor by their character class. Fot it to function, the defined stat
  # within the configuration page  must have as many parameters/values as the
  # project has character classes within the database. If engaged, the system
  # will still allow flat-rate and 1 & 2 parameter arrays for variable random
  # point generation.
  # -------------------------------------------------------------------------
  #

    CLASS_USE = true


  # LEVEL INCREASE POINTS
  # =====================
  # Points earned per level gained. Points equal number of increases possible
  # Non-Array values are flat-rate. Single value arrays are simply randomized
  # values. And two-parameter arrays are min-max range arrays.
  # -------------------------------------------------------------------------
  #

    LEVEL_POINTS        = [5,25,5,5,5,5,5,5]    # Points per level


  # STAT ORDER
  # ==========
  # Essentially, this is a list  of the keys  for the below statistics in the
  # order in which they are normally presented. This should be a mimic to any
  # order presented within the additional point-distribution system.
  # -------------------------------------------------------------------------
  #

    STAT_ORDER          = [ 'HP', 'SP', 'STR', "DEX", 'AGI', 'INT']
 
   
  # INDIVIDUAL STAT POINTS
  # ======================
  # Points applied to a statistic.  Each entry is for its own stat, so HP may
  # increase higher than SP,  or DEX faster than STR.  The points defined use
  # same standard as LEVEL INCREASE POINTS in regards of flat-rate and random
  # value generation.
  # -------------------------------------------------------------------------
  #

    STAT_POINTS['HP']   = [[20],25,20,15,10,10,10,5   # Hit Points per class
    STAT_POINTS['SP']   = 20         # Skill Points     (flat 20 pts)
    STAT_POINTS['STR']  = [5       # Strength         (random from 1-5 pts)
    STAT_POINTS['DEX']  = [25      # Dexterity        (random from 1-25 pts)
    STAT_POINTS['AGI']  = [5, 10]    # Agility          (random from 5-10 pts)
    STAT_POINTS['INT']  = 4          # Intelligence     (flat 4 pts)


end

VERY pleased with the result, the system now permits arrays equal-in-size to the number of character classes in the game/project and extract the proper data based on the character's class ID. But moreso, while the Class using system is engaged, it can run a test to see if the data is itself an array or not, and can identify the single-param/double-param entries that would generate random stat values for the heroes.

And they can be used in tandem.

In the above configuration page, I defined it so everyone gets a mere 5 points to spend on leveling their stats except the NPCs using the 2nd character class.  They get a whopping 25 points to spend.

I had even more fun with the HP Stats section, giving each of the eight character classes some variance in flat rate points... except anyone using the 1st character class.  Unlike the others, the one using the 1st character class has a randomized HP bonus up to 25pts. But after that, every other stat system works equally among the heroes.

The way I have devised this system, the game developer using it can forego giving points per level, and just use script calls to add the needed points.  In a way, you could make this a merit-based system for solving puzzles or special achievements rather than combat.  Or you could give points to the player at game start and just not give any more points, the player customizing the heroes rather than forcing fixed character designs.

That's the plan, and I'm sticking with it.  Blushing + Cheery

Sarcasm  Now the only thing I need to do is re-work my data test system.  It works with the older-designed data, determining if the configuration page is screwed up.  But now, I have to let it recognize character class-sized arrays, and the content within.

EDIT:

[Image: attachment.php?aid=2125]

Well, so much for having to work out the data testing system.  It works fine and informs me where I need to fix things.  Joe Cool


RE: What's up, RMers? - Steel Beast 6Beets - 07-08-2024

(07-03-2024, 05:10 PM)DerVVulfman Wrote:
(07-01-2024, 10:41 PM)Steel Beast 6Beets Wrote: I see.

It seems my main project is simply too big and that's causing the memory usage spike. My other projects only use half as much.
Not necessarily.

If there is a memory usage spike, it would suggest that (perhaps) a script in use was not 'optimized'.  For an example, consider HUD or menu windows.  You do not wish to have the screen refresh on every instance/frame that occurs as that would cause lag and a necessary spike.  For HUDs that I craft, I prefer to run a timer to update the window every 1/2 a second or so... and even then, I run a test to see if the HUD's data had changed.

Insofar as maps, perhaps it is the tileset(s) in question.  As I said, the larger the file, the more memory is used.  Loading a tileset with 5000 tiles (yes, they exist) for a map of 100x100 tiles would use more memory than a typical tileset with 50-100 tiles for even a large 500x500 map. And setting up a graphically beautiful parallax map for a large expansive map, likely more.

So I figure that you need to examine or re-examine what is in play.
That could be. I'm using a "master tileset" (fusion of all the exterior tilesets from the RTP plus some others) for the maps I'm working on.

I've monitoring the usage lately and so far it hasn't exceeded 5mb which is the amount I consider normal.


RE: What's up, RMers? - DerVVulfman - 07-08-2024

Inquisitor's Interior and Exterior tilesets? Yeah, they would do it. And worse, I know someone that ADDED to them. I'm for graphic detail, but I figure that there would be limits.

Unless you are using only one exterior for the entire game that also covers all environments... NO! Even using my BigMaps for a 'worldmap' I figure you gotta keep within some reason.

(07-08-2024, 07:13 PM)Steel Beast 6Beets Wrote:
(07-03-2024, 05:10 PM)DerVVulfman Wrote:
(07-01-2024, 10:41 PM)Steel Beast 6Beets Wrote: I see.

It seems my main project is simply too big and that's causing the memory usage spike. My other projects only use half as much.
Not necessarily.

If there is a memory usage spike, it would suggest that (perhaps) a script in use was not 'optimized'.  For an example, consider HUD or menu windows.  You do not wish to have the screen refresh on every instance/frame that occurs as that would cause lag and a necessary spike.  For HUDs that I craft, I prefer to run a timer to update the window every 1/2 a second or so... and even then, I run a test to see if the HUD's data had changed.

Insofar as maps, perhaps it is the tileset(s) in question.  As I said, the larger the file, the more memory is used.  Loading a tileset with 5000 tiles (yes, they exist) for a map of 100x100 tiles would use more memory than a typical tileset with 50-100 tiles for even a large 500x500 map. And setting up a graphically beautiful parallax map for a large expansive map, likely more.

So I figure that you need to examine or re-examine what is in play.
That could be. I'm using a "master tileset" (fusion of all the exterior tilesets from the RTP plus some others) for the maps I'm working on. 

I've monitoring the usage lately and so far it hasn't exceeded 5mb which is the amount I consider normal.



RE: What's up, RMers? - Steel Beast 6Beets - 07-08-2024

(07-08-2024, 07:25 PM)DerVVulfman Wrote: Inquisitor's Interior and Exterior tilesets? Yeah, they would do it. And worse, I know someone that ADDED to them. I'm for graphic detail, but I figure that there would be limits.

Unless you are using only one exterior for the entire game that also covers all environments... NO! Even using my BigMaps for a 'worldmap' I figure you gotta keep within some reason.
Mine is simply called "partly merged tileset" and it's seemingly bugged as I once tried to edit it and I got an error when I attempted to import the tileset back into the engine. As for the use, it's mostly for some late game towns and a couple of dungeons.

I am using Inquisitor's world map and surprisingly it's the one map that doesn't seem to have any issues despite being the biggest yet (500x320).


RE: What's up, RMers? - DerVVulfman - 07-09-2024

The "Inq XP WM - World Map" tileset I have from Inquisitor is 256px x 16448px (or 8 x 514 tiles) with RGB settings.

How is yours 500x320 when a tileset is only 256px across? As deep as you want, but with a 256px width requirement...


RE: What's up, RMers? - Steel Beast 6Beets - 07-09-2024

I meant the size of the world map of my game is 500x320, not the world map tileset.

Sorry for the misleading wording.


RE: What's up, RMers? - kyonides - 07-09-2024

Even so the engine has to load the whole bitmap even if you end up using just a portion of all of the thousands of tiles it contains.


RE: What's up, RMers? - DerVVulfman - 07-09-2024

Exactly.

If I had a 500x500 map, but used ye "001-Grassland01" classic RTP tileset, that tileset is only 24.1K in size being loaded into memory. But if I had a 200x150 map and used Inquisitor's tileset, that 1.43 "MEG' file must be loaded into memory. While it is true the size of the map itself plays into the memory usage, that memory would may be related to the autotiles, panoramas, fogs, and other errata added such as Show Pictures and stuff.

The only time a map REALLY causes an issue would be when a contemporary 'Mode7' script is in play. Most every Mode7 script I have seen (1) reads the map, and (2) draws the ENTIRE map as a bitmap file in memory. So a 500x500 map from Mode7 would generate a 16000x16000px bitmap in memory. This is not how the default Tilemap class works (but that is a whole different and technical subject).