Is it possible to make a "Real-Time" Menu background..?

Aeri_Sicher

Rookie Programmer! >.
Veteran
Joined
Jun 3, 2013
Messages
74
Reaction score
10
First Language
English
Primarily Uses
Hi, I'm kind of new to scripting... I've recently just finished reading "Learning Ruby the Hard Way" and I understand where classes / functions all come from as well as what they do. Since I don't know where to start with scripting, I've just decided to modify what I do know about scripts. Things were going good up until this problem came around. "Is it possible to make a Real-Time Background where events always update..?"

Here's what my goal was - Modify the script to gain these results:
 
- Remove the useless game options (done)
- Centralize the Main Menu (done)
- Remove the "Background Freeze" (failed.)
 

 
This is really hard to understand... I don't know where the game is "freezing" the background! I've tried everything in Scene_Base but couldn't find a solution. I also made an event character "reaper" that should chase me and give me a game over automatically in the background. that way I could test the menu and see if the reaper kills me or not in the background. so, here are the attempts I've done:
 
 
- Idea: Removing the Graphics.transition could stop the screen from changing while opening the menu window.
- Result: failed
 

 
- I placed the Graphics.transition back and then decided that the problem might have come from the background not being updated.
 
- Idea: Find the update method and make it always update, even in the background
- Result: Failed too, but for a different reason.
 
class Scene_Base
  #--------------------------------------------------------------------------
  # * Main
  #--------------------------------------------------------------------------
  def main
    start                           
    post_start                      
    update                               # until scene_changing? (removed this part in hopes that the background will always update!)
    pre_terminate
    terminate
  end
 

 
- I checked to see what was causing this and found out that Scene_Base is parent of the class Scene_Title. I couldn't make any changes to this class without affecting other classes, so I decided to try and make a new class of Scene_Base with a different name called "Scene_Real_Time". after that I made the "Scene_MenuBase" inherit the "Scene_Real_Time" copy with update method changed:
 

 
- Now, I tried to start the game again and the title loaded properly.. but when I tried opening the menu, the game infinitely updated itself not allowing me to scroll down... the event box that I set up wasn't even activating until I closed the infinite update menu..
 
- Tried to use a code that would stop the background from loading up.. the result was a black background and events still frozen.
 
I'm having a difficult time understanding this area. It feels like something that I can't change / modify.. but I'm not so sure. This is why I'm asking for help, Is this a built In feature? or can I actually change it..? and If I can.. how?
 
Any form of help would be appreciated.. thanks for your time and hoping for a response on this.
 
Last edited by a moderator:

Zalerinian

Jack of all Errors
Veteran
Joined
Dec 17, 2012
Messages
4,696
Reaction score
935
First Language
English
Primarily Uses
N/A
You can't make the map update without heavy modification of the menu, because it's a different scenes. Different scenes cannot update at the same time. You can make the menu's background be the map without the tint (though it will get a little blurred), but you can't have it update without a lot of modifications.
 

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
Just copy the stuff from the menu scene into the map scene and then change the map scene so that when you call the menu, you don't change scenes, you just open the menu.
 
Last edited by a moderator:

Aeri_Sicher

Rookie Programmer! >.
Veteran
Joined
Jun 3, 2013
Messages
74
Reaction score
10
First Language
English
Primarily Uses
You can't make the map update without heavy modification of the menu, because it's a different scenes. Different scenes cannot update at the same time. You can make the menu's background be the map without the tint (though it will get a little blurred), but you can't have it update without a lot of modifications.
- But it is still possible, I'd do anything if I could get a little help on where to start drilling for this problem.

Just copy the stuff from the menu scene into the map scene and then change the map scene so that when you call the menu, you don't change scenes, you just open the menu.
I tried this out, but it seems like all I did was make another way of calling the class Scene_Menu from inside the class Scene_Map.

- So first I transferred the "Scene_Menu / Scene_MenuBase" scripts and kinda just stuffed them inside "Scene_Map"

- This is what Scene_Map looks like now (Just a really big script with two other scenes combined):

#==============================================================================# ** Scene_Map

#------------------------------------------------------------------------------

#  This class performs the map screen processing.

#==============================================================================

class Scene_Map < Scene_Base

  #--------------------------------------------------------------------------

  # * Start Processing

  #--------------------------------------------------------------------------

  def start

    super

    SceneManager.clear

    $game_player.straighten

    $game_map.refresh

    $game_message.visible = false

    create_spriteset

    create_all_windows

    @menu_calling = false

  end

  #--------------------------------------------------------------------------

  # * Execute Transition

  #    Performs a fade in when the screen has been blacked out, such as

  #    immediately after a battle or load. 

  #--------------------------------------------------------------------------

  def perform_transition

    if Graphics.brightness == 0

      Graphics.transition(0)

      fadein(fadein_speed)

    else

      super

    end

  end

  #--------------------------------------------------------------------------

  # * Get Transition Speed

  #--------------------------------------------------------------------------

  def transition_speed

    return 15

  end

  #--------------------------------------------------------------------------

  # * Pre-Termination Processing

  #--------------------------------------------------------------------------

  def pre_terminate

    super

    pre_battle_scene if SceneManager.scene_is?(Scene_Battle)

    pre_title_scene  if SceneManager.scene_is?(Scene_Title)

  end

  #--------------------------------------------------------------------------

  # * Termination Processing

  #--------------------------------------------------------------------------

  def terminate

    super

    SceneManager.snapshot_for_background

    dispose_spriteset

    perform_battle_transition if SceneManager.scene_is?(Scene_Battle)

  end

  #--------------------------------------------------------------------------

  # * Frame Update

  #--------------------------------------------------------------------------

  def update

    super

    $game_map.update(true)

    $game_player.update

    $game_timer.update

    @spriteset.update

    update_scene if scene_change_ok?

  end

  #--------------------------------------------------------------------------

  # * Determine if Scene Transition Is Possible

  #--------------------------------------------------------------------------

  def scene_change_ok?

    !$game_message.busy? && !$game_message.visible

  end

  #--------------------------------------------------------------------------

  # * Update Scene Transition

  #--------------------------------------------------------------------------

  def update_scene

    check_gameover

    update_transfer_player unless scene_changing?

    update_encounter unless scene_changing?

    update_call_menu unless scene_changing?

    update_call_debug unless scene_changing?

  end

  #--------------------------------------------------------------------------

  # * Update Frame (for Fade In)

  #--------------------------------------------------------------------------

  def update_for_fade

    update_basic

    $game_map.update(false)

    @spriteset.update

  end

  #--------------------------------------------------------------------------

  # * General-Purpose Fade Processing

  #--------------------------------------------------------------------------

  def fade_loop(duration)

    duration.times do |i|

      yield 255 * (i + 1) / duration

      update_for_fade

    end

  end

  #--------------------------------------------------------------------------

  # * Fadein Screen

  #--------------------------------------------------------------------------

  def fadein(duration)

    fade_loop(duration) {|v| Graphics.brightness = v }

  end

  #--------------------------------------------------------------------------

  # * Fadeout Screen

  #--------------------------------------------------------------------------

  def fadeout(duration)

    fade_loop(duration) {|v| Graphics.brightness = 255 - v }

  end

  #--------------------------------------------------------------------------

  # * Screen Fade In (White)

  #--------------------------------------------------------------------------

  def white_fadein(duration)

    fade_loop(duration) {|v| @viewport.color.set(255, 255, 255, 255 - v) }

  end

  #--------------------------------------------------------------------------

  # * Screen Fade Out (White)

  #--------------------------------------------------------------------------

  def white_fadeout(duration)

    fade_loop(duration) {|v| @viewport.color.set(255, 255, 255, v) }

  end

  #--------------------------------------------------------------------------

  # * Create Sprite Set

  #--------------------------------------------------------------------------

  def create_spriteset

    @spriteset = Spriteset_Map.new

  end

  #--------------------------------------------------------------------------

  # * Free Sprite Set

  #--------------------------------------------------------------------------

  def dispose_spriteset

    @spriteset.dispose

  end

  #--------------------------------------------------------------------------

  # * Create All Windows

  #--------------------------------------------------------------------------

  def create_all_windows

    create_message_window

    create_scroll_text_window

    create_location_window

  end

  #--------------------------------------------------------------------------

  # * Create Message Window

  #--------------------------------------------------------------------------

  def create_message_window

    @message_window = Window_Message.new

  end

  #--------------------------------------------------------------------------

  # * Create Scrolling Text Window

  #--------------------------------------------------------------------------

  def create_scroll_text_window

    @scroll_text_window = Window_ScrollText.new

  end

  #--------------------------------------------------------------------------

  # * Create Map Name Window

  #--------------------------------------------------------------------------

  def create_location_window

    @map_name_window = Window_MapName.new

  end

  #--------------------------------------------------------------------------

  # * Update Player Transfer

  #--------------------------------------------------------------------------

  def update_transfer_player

    perform_transfer if $game_player.transfer?

  end

  #--------------------------------------------------------------------------

  # * Update Encounter

  #--------------------------------------------------------------------------

  def update_encounter

    SceneManager.call(Scene_Battle) if $game_player.encounter

  end

  #--------------------------------------------------------------------------

  # * Determine if Menu is Called due to Cancel Button

  #--------------------------------------------------------------------------

  def update_call_menu

    if $game_system.menu_disabled || $game_map.interpreter.running?

      @menu_calling = false

    else

      @menu_calling ||= Input.trigger?:) B)

      call_menu if @menu_calling && !$game_player.moving?

    end

  end

  #--------------------------------------------------------------------------

  # * Call Menu Screen

  #--------------------------------------------------------------------------

  def call_menu

    Sound.play_ok

    SceneManager.call(Scene_Menu)

    Window_MenuCommand::init_command_position

  end

  #--------------------------------------------------------------------------

  # * Determine if Debug Call by F9 key

  #--------------------------------------------------------------------------

  def update_call_debug

    SceneManager.call(Scene_Debug) if $TEST && Input.press?:)F9)

  end

  #--------------------------------------------------------------------------

  # * Player Transfer Processing

  #--------------------------------------------------------------------------

  def perform_transfer

    pre_transfer

    $game_player.perform_transfer

    post_transfer

  end

  #--------------------------------------------------------------------------

  # * Preprocessing for Transferring Player

  #--------------------------------------------------------------------------

  def pre_transfer

    @map_name_window.close

    case $game_temp.fade_type

    when 0

      fadeout(fadeout_speed)

    when 1

      white_fadeout(fadeout_speed)

    end

  end

  #--------------------------------------------------------------------------

  # * Post Processing for Transferring Player

  #--------------------------------------------------------------------------

  def post_transfer

    case $game_temp.fade_type

    when 0

      Graphics.wait(fadein_speed / 2)

      fadein(fadein_speed)

    when 1

      Graphics.wait(fadein_speed / 2)

      white_fadein(fadein_speed)

    end

    @map_name_window.open

  end

  #--------------------------------------------------------------------------

  # * Preprocessing for Battle Screen Transition

  #--------------------------------------------------------------------------

  def pre_battle_scene

    Graphics.update

    Graphics.freeze

    @spriteset.dispose_characters

    BattleManager.save_bgm_and_bgs

    BattleManager.play_battle_bgm

    Sound.play_battle_start

  end

  #--------------------------------------------------------------------------

  # * Preprocessing for Title Screen Transition

  #--------------------------------------------------------------------------

  def pre_title_scene

    fadeout(fadeout_speed_to_title)

  end

  #--------------------------------------------------------------------------

  # * Execute Pre-Battle Transition

  #--------------------------------------------------------------------------

  def perform_battle_transition

    Graphics.transition(60, "Graphics/System/BattleStart", 100)

    Graphics.freeze

  end

  #--------------------------------------------------------------------------

  # * Get Fade Out Speed

  #--------------------------------------------------------------------------

  def fadeout_speed

    return 30

  end

  #--------------------------------------------------------------------------

  # * Get Fade In Speed

  #--------------------------------------------------------------------------

  def fadein_speed

    return 30

  end

  #--------------------------------------------------------------------------

  # * Get Fade Out Speed for Title Screen Transition

  #--------------------------------------------------------------------------

  def fadeout_speed_to_title

    return 60

  end

end

#==============================================================================

# ** Scene_MenuBase

#------------------------------------------------------------------------------

#  This class performs basic processing related to the menu screen.

#==============================================================================

class Scene_MenuBase < Scene_Base

  #--------------------------------------------------------------------------

  # * Start Processing

  #--------------------------------------------------------------------------

  def start

    super

    create_background

    @actor = $game_party.menu_actor

  end

  #--------------------------------------------------------------------------

  # * Termination Processing

  #--------------------------------------------------------------------------

  def terminate

    super

    dispose_background

  end

  #--------------------------------------------------------------------------

  # * Create Background

  #--------------------------------------------------------------------------

  def create_background

    @background_sprite = Sprite.new

    @background_sprite.bitmap = SceneManager.background_bitmap

    @background_sprite.color.set(16, 16, 16, 128)

  end

  #--------------------------------------------------------------------------

  # * Free Background

  #--------------------------------------------------------------------------

  def dispose_background

    @background_sprite.dispose

  end

  #--------------------------------------------------------------------------

  # * Create Help Window

  #--------------------------------------------------------------------------

  def create_help_window

    @help_window = Window_Help.new

    @help_window.viewport = @viewport

  end

  #--------------------------------------------------------------------------

  # * Switch to Next Actor

  #--------------------------------------------------------------------------

  def next_actor

    @actor = $game_party.menu_actor_next

    on_actor_change

  end

  #--------------------------------------------------------------------------

  # * Switch to Previous Actor

  #--------------------------------------------------------------------------

  def prev_actor

    @actor = $game_party.menu_actor_prev

    on_actor_change

  end

  #--------------------------------------------------------------------------

  # * Change Actors

  #--------------------------------------------------------------------------

  def on_actor_change

  end

end

#==============================================================================

# ** Scene_Menu

#------------------------------------------------------------------------------

#  This class performs the menu screen processing.

#==============================================================================

class Scene_Menu < Scene_MenuBase

  #--------------------------------------------------------------------------

  # * Start Processing

  #--------------------------------------------------------------------------

  def start

    super

    create_command_window

#    create_gold_window

#    create_status_window

  end

  #--------------------------------------------------------------------------

  # * Create Command Window

  #--------------------------------------------------------------------------

  def create_command_window

    @command_window = Window_MenuCommand.new

    @command_window.set_handler:)item,      method:)command_item))

    @command_window.set_handler:)skill,     method:)command_personal))

    @command_window.set_handler:)equip,     method:)command_personal))

    @command_window.set_handler:)status,    method:)command_personal))

    @command_window.set_handler:)formation, method:)command_formation))

    @command_window.set_handler:)save,      method:)command_save))

    @command_window.set_handler:)game_end,  method:)command_game_end))

    @command_window.set_handler:)cancel,    method:)return_scene))

  end

  #--------------------------------------------------------------------------

  # * Create Gold Window

  #--------------------------------------------------------------------------

  def create_gold_window

    @gold_window = Window_Gold.new

    @gold_window.x = 0

    @gold_window.y = Graphics.height - @gold_window.height

  end

  #--------------------------------------------------------------------------

  # * Create Status Window

  #--------------------------------------------------------------------------

  def create_status_window

    @status_window = Window_MenuStatus.new(@command_window.width, 0)

  end

  #--------------------------------------------------------------------------

  # * [item] Command

  #--------------------------------------------------------------------------

  def command_item

    SceneManager.call(Scene_Item)

  end

  #--------------------------------------------------------------------------

  # * [skill], [Equipment] and [status] Commands

  #--------------------------------------------------------------------------

  def command_personal

    @status_window.select_last

    @status_window.activate

    @status_window.set_handler:)ok,     method:)on_personal_ok))

    @status_window.set_handler:)cancel, method:)on_personal_cancel))

  end

  #--------------------------------------------------------------------------

  # * [Formation] Command

  #--------------------------------------------------------------------------

  def command_formation

    @status_window.select_last

    @status_window.activate

    @status_window.set_handler:)ok,     method:)on_formation_ok))

    @status_window.set_handler:)cancel, method:)on_formation_cancel))

  end

  #--------------------------------------------------------------------------

  # * [save] Command

  #--------------------------------------------------------------------------

  def command_save

    SceneManager.call(Scene_Save)

  end

  #--------------------------------------------------------------------------

  # * [Exit Game] Command

  #--------------------------------------------------------------------------

  def command_game_end

    SceneManager.call(Scene_End)

  end

  #--------------------------------------------------------------------------

  # * [OK] Personal Command

  #--------------------------------------------------------------------------

  def on_personal_ok

    case @command_window.current_symbol

    when :skill

      SceneManager.call(Scene_Skill)

    when :equip

      SceneManager.call(Scene_Equip)

    when :status

      SceneManager.call(Scene_Status)

    end

  end

  #--------------------------------------------------------------------------

  # * [Cancel] Personal Command

  #--------------------------------------------------------------------------

  def on_personal_cancel

    @status_window.unselect

    @command_window.activate

  end

  #--------------------------------------------------------------------------

  # * Formation [OK]

  #--------------------------------------------------------------------------

  def on_formation_ok

    if @status_window.pending_index >= 0

      $game_party.swap_order(@status_window.index,

                             @status_window.pending_index)

      @status_window.pending_index = -1

      @status_window.redraw_item(@status_window.index)

    else

      @status_window.pending_index = @status_window.index

    end

    @status_window.activate

  end

  #--------------------------------------------------------------------------

  # * Formation [Cancel]

  #--------------------------------------------------------------------------

  def on_formation_cancel

    if @status_window.pending_index >= 0

      @status_window.pending_index = -1

      @status_window.activate

    else

      @status_window.unselect

      @command_window.activate

    end

  end

end
- When I tried the game, I was able to open up the menu. but it looks pretty much the same as my first picture, I think I just squashed the scripts together giving the same result.. was I suppose to try something else instead..?

- Thanks for the tip, but I just need the background to continue updating just like how you made your script, Tsukihime. In your "Key Item" script, the players could access a window with items inside while events would continue moving, that's the kind of box I'd love to learn how to make if possible (but dissecting your script is really hard!)
 
Last edited by a moderator:

Tsukihime

Veteran
Veteran
Joined
Jun 30, 2012
Messages
8,564
Reaction score
3,846
First Language
English
All I did was have the key item script appear in the map scene. It's not a background; you are still in the map scene, the scene still updates normally.


Only difference is that the control is currently focused on the key item window.
 
Last edited by a moderator:

Aeri_Sicher

Rookie Programmer! >.
Veteran
Joined
Jun 3, 2013
Messages
74
Reaction score
10
First Language
English
Primarily Uses
All I did was have the key item script appear in the map scene. It's not a background; you are still in the map scene, the scene still updates normally.

Only difference is that the control is currently focused on the key item window.
Ohh ok, I think I get what your saying.. the reasoning behind it. So your script is called on the same scene, but the controls are focused onto the window instead of the map..

Hopefully I'll be able to take the same concept and apply it to the menu as well =] But for now, I'll just be dissecting and learning the structure of it until I'm able to create something similar to yours

Edit 1: I'm still working on a way to get this, I really think this problem is beyond my scripting abilities... don't lock it yet, please.
 
Last edited by a moderator:

estriole

Veteran
Veteran
Joined
Jun 27, 2012
Messages
1,309
Reaction score
531
First Language
indonesian
in my EST - PHONE MENU ENGINE. when player 'open' the phone menu. the surrounding still moves...  BUT IT WON'T TRIGGER ANY EVENT WHEN STILL AT THAT SCENE. example:

there's event with event touch trigger. then it move to your player while opening phone menu. it won't trigger the event UNTIL you exit the phone and actually enter Scene_Map.

(if that's what you want then read the next line :D )

to achieve that... in the phone scene... i create a Spriteset_Map object.

    @map = Spriteset_Map.new    then in update method i add:

    $game_map.update    @map.updateand don't forget to dispose it later (in terminate method)

    @map.disposebut i do it in new scene

class Scene_Phone < Scene_Base
 

so if using Scene_Menu it might be a 'little' bit different..

maybe add:

@background_sprite.visible = false if @background_sprite

in update method.
 
Last edited by a moderator:

Aeri_Sicher

Rookie Programmer! >.
Veteran
Joined
Jun 3, 2013
Messages
74
Reaction score
10
First Language
English
Primarily Uses
Thank you for your script example! I really wish I could just your script but the phone wouldn't blend with the world..
 

so if using Scene_Menu it might be a 'little' bit different..
maybe add:
@background_sprite.visible = false if @background_sprite
in update method.
 
Sorry for the late response btw.. I was looking at your script and curious of the structure (it was easy to understand up until the "on_phone_menu_ok" method, then I started looking through the whole script and lost my goal .__.)
 
I couldn't find an update method in the Scene_Menu / Scene_MenuBase class.. So I followed the parent classes of each scene up until Scene_Base and placed it inside the only update method available:
 

  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    update_basic
    @background_sprite.visible = false if @background_sprite
  end
  #--------------------------------------------------------------------------
  # * Update Frame (Basic)
  #--------------------------------------------------------------------------
  def update_basic
    Graphics.update
    Input.update
    update_all_windows
  end
 
The result was a black screen, nothing shown and events are still frozen until leaving the scene.. just like the problem I had when I commented out the background method. What am I doing wrong.. ._.
 
Last edited by a moderator:

TheoAllen

Self-proclaimed jack of all trades
Veteran
Joined
Mar 16, 2012
Messages
5,592
Reaction score
6,522
First Language
Indonesian
Primarily Uses
RMVXA
The result was a black screen, nothing shown and events are still frozen until leaving the scene.. just like the problem I had when I commented out the background method. What am I doing wrong.. ._.
Just make an alias in its subclass is enough. You don't need modify the parent classes

Code:
class Scene_Menu < Scene_MenuBase  alias aliased_start start  def start    aliased_start    @spriteset = Spriteset_Map.new  end  alias aliased_update update  def update    aliased_update    @spriteset.update    $game_map.update    @background_sprite.visible = false if @background_sprite  endend
 

estriole

Veteran
Veteran
Joined
Jun 27, 2012
Messages
1,309
Reaction score
531
First Language
indonesian
@aien: :D . that script is confusing to look actually. since first... i create the framework based from vx script (Necrozard Phone Menu). but i write it ACE style... then in development... i also experiment A LOT in that script. like:

1) animating sprite as icon

2) using eval to know what to do when choosing certain button

3) using eval to know does that command included or not

4) using eval to know does that command enabled or disabled

5) making multiple page icon command (i encounter problem with draw animated icon when switching to next page. since i need to take account the command that not included because the condition is not yet met...),

6) implementing mouse

7) creating superclass for the addon for easier dev

8) calling common event directly in the scene (if using tsuki scene interpreter script)
9) including module function in a class...

basically i really play and learn a lot of techniques with that script :D .

so it's expected to be hard to read :D .

you could use theo example instead. :D . actually. it by copying that script theo give you will already make it work :D .

maybe just add dispose method (just failsafe. since undisposed thing could turn to 103 protection error crash sometimes. mainly because garbage collection)

Code:
class Scene_Menu < Scene_MenuBasealias aliased_start startdef startaliased_start@spriteset = Spriteset_Map.newendalias aliased_update updatedef updatealiased_update$game_map.update@spriteset.update@background_sprite.visible = false if @background_spriteendalias aliased_terminate terminatedef terminate  aliased_terminate  @spriteset.dispose if @spriteset && !@spriteset.disposed?endend
 

Aeri_Sicher

Rookie Programmer! >.
Veteran
Joined
Jun 3, 2013
Messages
74
Reaction score
10
First Language
English
Primarily Uses
Thank you @Theodoric and @Estriole for the problem solution and additional dispose method!

This is exactly the answer to the problem I was looking for 100% right on the spot! (so all I had to do was make a Spriteset_Map.new and create an update method for it inside the scene being called... and I learned how to use aliases properly while at it!!).

You guys are the best!! =D
 
Joined
Apr 21, 2013
Messages
3
Reaction score
0
Primarily Uses
@estriole I tried using that script and I receive an error at line 17 upon closing the menu that's telling me that the method is undefined.
 

estriole

Veteran
Veteran
Joined
Jun 27, 2012
Messages
1,309
Reaction score
531
First Language
indonesian
can you screen shot the error message? what method that undefined.

also did you use custom menu script? if yes what script did you use? maybe there's some conflict.
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,862
Messages
1,017,050
Members
137,571
Latest member
grr
Top