Recent posts

Pages1 2 3 ... 10
1
Script Troubleshooting / Re: MAWS - Modified Advanced W...
Last post by KK20 - May 25, 2020, 05:29:40 pm
Are you talking about the on-screen particle effects? There is no built-in way to do it. It's technically possible, but you would have to understand how the weathers are setup in the script and create your own weather effects.
2
Script Troubleshooting / MAWS - Modified Advanced Weath...
Last post by Tedrainbow - May 25, 2020, 03:45:47 am
Hello, the script is nice but it is only one time weather effect ?

It is possible the combined more three weather picture for the event ?

More move to help the realist for metro ?

Thanx for help me..
3
Lexima Legends - Paths of Strife / Playable Tech Demo
Last post by Blizzard - May 23, 2020, 09:59:14 am
Lexima Legends - Paths of Strife


INTRODUCTION

This game is a strategic RPG inspired by the games Ogre Battle: March of the Black Queen for the SNES and Ogre Battle 64: Person of Lordly Caliber for the N64.

The core game mechanic revolves around moving and placing units on a map in semi-real-time (it's possible to pause the game). Units are comprised of several characters. When one of your units meets an enemy unit, they engage into a short and mostly automated RPG-style turn-based battle.

You can create and organize units from a wide variety of characters as you see fit. The characters themselves have RPG-style stats and grow stronger as they attain more experience.

The game is planned as a commercial release. The first release will be on Steam and possibly itch.io. Android and iOS versions are planned later on as some GUI changes will be required in order to make the game work better on the small screens of mobile devices and touch interfaces.

SCREENSHOTS

Spoiler: ShowHide






























THE STATE OF THIS TECH DEMO

This playable tech demo is meant to show off a majority of the features that will be present in the final game.

The game was designed to be played with mouse and keyboard.

  • You can move the map either with arrow keys, WASD or by moving the mouse cursor to the edge of the screen. You can rotate the camera by holding the middle mouse button (usually scroll wheel button).
  • In the Move unit menu where you place waypoints, you can remove the last waypoint with the right mouse click.
  • Certain menus also have hotkeys (currently only the game speed menu) and certain menus have default confirm and/or cancel actions that can be triggered using the Enter or ESC keys.

Most menus are done or require only minor changes. Some menus are bare-bones and will be redesigned entirely.

The gameplay includes the most important features such as map movement, battles, handling of units and characters, classes, etc., but there are still some finer features missing such as a day and night system, a weather system, etc.

A good deal of the graphics are also final (menus, character art, map tiles, etc.), but there are obviously still many placeholders. Please keep in mind that the placeholders are not bare-bones! That means that you are free to give feedback on any graphics you want even if it is potentially a placeholder.

Some of the music and sounds are final. Others won't be used where they are now in the game.

The demo features one simple mission on a large map with basic enemy AI in place. The mission takes 30-90 minutes to complete, depending on your playstyle and how far "off course" you want to explore the map with your units.

For simplicity's sake, there is a single Quick Save slot that can be accessed from the in-game menu in order to save. To load your game, select the Continue from the title screen.

As this tech demo does not include any tutorials whatsoever, you are encouraged to experiment and explore the menus at your own convenience. There are a lot of minor details and features that will not be explained here.

IMPORTANT GAMEPLAY MECHANICS

Again, as this demo has no tutorials, the most relevant gameplay mechanics are explained here.

Information about the map:

  • Units can be moved around the map via a waypoint system.
  • The map is comprised of various terrains and units will have movement speed penalties if they don't have the proper terrain affinity. Grassland and roads have no penalty.
  • The game can be paused at any time on the map. It's also possible to fast-forward time. While navigating menus on the map, the game is automatically paused separate from your game speed setting.
  • Units have a view range (which is larger in front than in the back) and enemy units are only visible if they are within view range of any of your units. (Through some playtesting it was determined that this is confusing without visual feedback so a feature similar to Fog of War is planned in the future, but it's not available in the game right now.)

Information about units:

  • Units are organized in a 3x3 grid that can be populated by characters. Positioning of characters their classes are important as they influence how battles play out (number of attacks, possible targets, etc.). It's possible to engage enemies from the side or from the back which throws their formation out of balance and gives you an advantage in battle. Though the same goes for enemies as they can flank or back-attack your units as well.
  • Terrain affinity depends on character composition of the unit. e.g. Hound-type monsters are good in forests and your unit won't get any penalty in forests if you have enough Hound-type characters in it.
  • Units have their own limited item inventories. Their size is determined by the characters in the unit. A larger number of characters and higher class characters contribute to more inventory slots.
  • Character decision making in battle is mostly automated, but it's possible to change the Unit Tactic so characters prioritize different targets in accordance to the Unit Tactic setting.

Information about characters:

  • Each character belongs to one of multiple class trees ranging from humans (male and female) over humanoid entities (mermaids, birdmen, etc.) to various types of monsters (dragons, golems, chimeras, etc.). The player can change a character's class to get access to better attacks and stat growth, but most classes have certain requirements that need to be met before a character can change into that class.
  • Characters have multiple stats and characters themselves are generally separated into physical and magical fighters. Physical fighters take less damage from other physical fighters while they take more damage from magical ones and vice versa. The same system applies to magical ones.
  • Characters have equipment. (The weapon is mandatory and cannot be removed.) Certain equipment has so-called Soul Rage abilities. Please see further below for more information.
  • Depending on their class, characters have certain attacks available. The attack they use and the number of time they will use that attack during a battle is determined by the row (front, middle, back) in the 3x3 unit grid. Keep in mind that getting attacked from the side or back does influence which actual row the character will belong to during a specific battle instance.
  • Characters have a special stat called SR percentage. When a character wears equipment with SR abilities and receives damage, their SR percentage will increase. This stat can be consumed to use special attacks during battle (accessible via the Soul Rage option in the battle interrupt menu). It's planned to allow characters to increase their SR percentage in other ways as well.

Information about battles:

  • Battles are mostly automated.
  • During the battle, actions done by the characters increase the battle score of the unit. Certain conditions and actions provide a bonus (which is already integrated into the displayed score). e.g. Normal attacks increase the battle score by a flat value, healing also incurs a penalty percentage, units under 5 characters get a bonus for every missing character, etc.
  • The player can open an interrupt menu which pauses the battle. (This menu can opened by simply clicking anywhere on the screen during battle.)

OTHER INFORMATION

As this tech demo is intended to showcase gameplay only, I will refrain from going into detail for the planned story and keep things more on a conceptual level.

The core idea is to explore the concept of choice and consequences. I have crafted a dynamic story with multiple paths and multiple endings. Your behavior as a player and the choices you make during both missions and cutscenes will influence how the story progresses, what events take place and how it ultimately concludes. In the story I am also exploring other interesting concepts and opposing perspectives and morals between protagonists and antagonists.

There are a number of main characters (including you, the player character) that carry the story itself. But there is also a high number of recruitable side-characters (I expect at least 30) with their own backstories and side-quests that you can do during missions. IMO the original Ogre Battle games had a lackluster mechanic of this and I wanted to iterated and improve upon this.

Sounds too ambitious? Not really. As the game will have a mission-like structure, it's easy to contain individual side-stories. It's also not much of a problem to include certain characters in events or cutscenes later on. Obviously the number of paths the player can take is limited and so is the number of endings. But compositing all the player's actions, all the side-quests they did and characters they recruited into a satisfying epilogue is not that hard. A quality delivery of the story in itself is much harder.

How did it all even start?

A few years ago I realized that a game like this wouldn't require too many graphical resources and a lot less maps than my previous project, yet it could have a lot more playtime. This first realization gave me the initial idea to make a game like this. I first experimented with RPG Maker MV to see if some things were even feasible. After a few months of experimenting, I realized that I basically already started working on a new game. As time passed by, I actually decided to invest some money into custom graphics and licensing some music. From what I can personally say, I think it was a very worthwhile investment.

DOWNLOAD LINK

You can download the game from here:
DOWNLOAD
Simply unzip and run Game.exe.

As the credits are a bit lengthy, they will not be posted here. You can be access them from the title screen and they will be displayed upon demo completion.

MISSING FEATURES

  • day and night cycle (that also affects certain characters and attacks)
  • weather (that also affects certain characters and attacks)
  • Quick Battle functionality
  • tutorials
  • optional perma-death mode for units and characters
  • adaptive enemy level scaling
  • interactive minimap
  • proper save-game system with save slots, auto-saves, manual saves, etc.
  • gamepad support
  • decision-based story progression and cutscenes
  • more hotkeys in menus (e.g. unit selection)
  • various notifications relevant to gameplay (e.g. when a unit has finished moving, when a base has been lost, etc.)
  • more useful options for gameplay flow (pausing after battle, pausing after taking a base, pausing after a unit stops moving, etc.)

PLANNED IMPROVEMENTS

  • Options menu will have sliders for audio volumes.
  • There will be more options (such as battle BGM).
  • Shop menus will be completely redesigned.
  • Characters screen in Army scene will be redesigned completely (it's very basic currently).
  • A lot more character classes will be unlocked and available.
  • The entire class menu will be improved.
  • Battle GUI is currently very basic.
  • Improvements in battle animation timings.
  • Mission screen will be completely redesigned (it will include a side-quest section as well).
  • The current title screen and title audio are placeholders.
  • Overworld mission maps will be reduced in size so that the map overview is better.
  • Improved rendering on higher resolutions than the base resolution of 1280x720.
  • The are some issues with game balance which will be fixed later (e.g. characters with level 3 classes have very high stats while level 1 classes are a lot weaker).
  • Fog of War on the map or an equivalent solution for visual view range info for the player.
  • Improvements to enemy AI.
  • Map AI can currently cause performance spikes.

EXPECTED / POSSIBLE BUGS

  • possible issues with class change menu
  • ESC / Enter might not work as hotkeys in certain menus
  • when switching between windows, audio volume transition might get stuck (can be fixed by switching windows again)
  • some menus might appear / disappear from the wrong direction of the screen
  • possibly getting stuck in battle
  • not all menu items have icons
  • possible short stutters on the map
  • some enemy unit AI behavior on the map may be broken
  • when selecting / hovering over a menu item that's already "selected", no cursor sound is played

REPORTED BUGS

  • Screen remains black after battle.
  • Enemy unit map sprites sometimes disappear.

Critical feedback is much appreciated!

4
Script Requests / Re: [XP] Item menu organized b...
Last post by PrinceEndymion88 - May 23, 2020, 06:38:45 am
Oh, it works very well! THANKS!!! :D
5
Script Requests / Re: [XP] Item menu organized b...
Last post by KK20 - May 22, 2020, 11:34:16 pm
Well here's a quick 'n dirty solution. It is exactly as you requested without any extra bells and whistles.
#==============================================================================
# ** Window_Item
#------------------------------------------------------------------------------
#  This window displays items in possession on the item and battle screens.
#==============================================================================

class Window_Item < Window_Selectable
  MAX_ITEMS_SHOWN = 8
 
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 64, 320, (MAX_ITEMS_SHOWN + 1) * 32)
    @column_max = 1
    @page = 1
    @max_pages = 1
    refresh
    self.index = 0
    # If in battle, move window to center of screen
    # and make it semi-transparent
    if $game_temp.in_battle
      self.y = 64
      #self.height = 256
      self.back_opacity = 160
    end
  end
  #--------------------------------------------------------------------------
  # * Get Item
  #--------------------------------------------------------------------------
  def item
    return @data[self.index + (@page - 1) * MAX_ITEMS_SHOWN]
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    # Add item
    for i in 1...$data_items.size
      if $game_party.item_number(i) > 0
        @data.push($data_items[i])
      end
    end
    # Also add weapons and items if outside of battle
    unless $game_temp.in_battle
      for i in 1...$data_weapons.size
        if $game_party.weapon_number(i) > 0
          @data.push($data_weapons[i])
        end
      end
      for i in 1...$data_armors.size
        if $game_party.armor_number(i) > 0
          @data.push($data_armors[i])
        end
      end
    end
    # Will the current page have any items on it? If not, set it to the last page
    @max_pages = (@data.size - 1) / MAX_ITEMS_SHOWN + 1
    @page = @max_pages if @page > @max_pages
   
    # Determine what items are going to be drawn on the current page
    starting_item_index = (@page - 1) * MAX_ITEMS_SHOWN
    @item_max = [@data.size - starting_item_index, MAX_ITEMS_SHOWN].min
   
    # Set cursor to last item on page if necessary
    self.index = [@item_max - 1, 0].max if self.index >= @item_max
   
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      y = 0
      for i in starting_item_index...(starting_item_index + @item_max)
        draw_item(i, y)
        y += 32
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #     index : item number
  #--------------------------------------------------------------------------
  def draw_item(index, y)
    item = @data[index]
    case item
    when RPG::Item
      number = $game_party.item_number(item.id)
    when RPG::Weapon
      number = $game_party.weapon_number(item.id)
    when RPG::Armor
      number = $game_party.armor_number(item.id)
    end
    if item.is_a?(RPG::Item) and
       $game_party.item_can_use?(item.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(item.icon_name)
    opacity = self.contents.font.color == normal_color ? 255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
    self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
    self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
    self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  end
  #--------------------------------------------------------------------------
  # * Help Text Update
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(self.item == nil ? "" : self.item.description)
  end
 
  def page=(n)
    cur_page = @page
    @page = [[n, 1].max, @max_pages].min
    return if @page == cur_page
    refresh
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If cursor is movable
    if self.active and @item_max > 0 and @index >= 0
      if Input.repeat?(Input::RIGHT) || Input.repeat?(Input::R)
        self.page = (@page + 1) % (@max_pages + 1)
        $game_system.se_play($data_system.cursor_se)
      end
      if Input.repeat?(Input::LEFT) || Input.repeat?(Input::L)
        self.page = @page <= 1 ? @max_pages : @page - 1
        $game_system.se_play($data_system.cursor_se)
      end
    end
    # Update help text (update_help is defined by the subclasses)
    if self.active and @help_window != nil
      update_help
    end
    # Update cursor rectangle
    update_cursor_rect
  end
end
You can place this under Window_Item.
6
Script Troubleshooting / Re: EQUIPMENT UPGRADE SYSTEM 1...
Last post by KK20 - May 22, 2020, 10:38:05 pm
I'm going to need a demo. I believe this is user error rather than a problem with the scripts.
7
Script Troubleshooting / Re: EQUIPMENT UPGRADE SYSTEM 1...
Last post by Tedrainbow - May 22, 2020, 05:01:04 pm
Hello am other probleme it is the menu not add weapon and armor for the enhance menu.

I am use multi slot !

Do you have to modify the script for this effect?
Thanx you..
------------------------
Finaly is very nice work, just add Enhanced Weapon and Enhanced Armor to weapon and armore type..
-------------------------

8
Script Requests / Re: Item menu organized by pag...
Last post by PrinceEndymion88 - May 22, 2020, 03:04:34 am
Thanks for your reply :)
I just want to edit the original script:
#==============================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  This class performs item screen processing.
#==============================================================================

class Scene_Item
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
  def main
    # Make help window, item window
    @help_window = Window_Help.new
    @item_window = Window_Item.new
    # Associate help window
    @item_window.help_window = @help_window
    # Make target window (set to invisible / inactive)
    @target_window = Window_Target.new
    @target_window.visible = false
    @target_window.active = false
    # Execute transition
    Graphics.transition
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Frame update
      update
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Dispose of windows
    @help_window.dispose
    @item_window.dispose
    @target_window.dispose
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    # Update windows
    @help_window.update
    @item_window.update
    @target_window.update
    # If item window is active: call update_item
    if @item_window.active
      update_item
      return
    end
    # If target window is active: call update_target
    if @target_window.active
      update_target
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when item window is active)
  #--------------------------------------------------------------------------
  def update_item
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # Switch to menu screen
      $scene = Scene_Menu.new(0)
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # Get currently selected data on the item window
      @item = @item_window.item
      # If not a use item
      unless @item.is_a?(RPG::Item)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # If it can't be used
      unless $game_party.item_can_use?(@item.id)
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # Play decision SE
      $game_system.se_play($data_system.decision_se)
      # If effect scope is an ally
      if @item.scope >= 3
        # Activate target window
        @item_window.active = false
        @target_window.x = (@item_window.index + 1) % 2 * 304
        @target_window.visible = true
        @target_window.active = true
        # Set cursor position to effect scope (single / all)
        if @item.scope == 4 || @item.scope == 6
          @target_window.index = -1
        else
          @target_window.index = 0
        end
      # If effect scope is other than an ally
      else
        # If command event ID is valid
        if @item.common_event_id > 0
          # Command event call reservation
          $game_temp.common_event_id = @item.common_event_id
          # Play item use SE
          $game_system.se_play(@item.menu_se)
          # If consumable
          if @item.consumable
            # Decrease used items by 1
            $game_party.lose_item(@item.id, 1)
            # Draw item window item
            @item_window.draw_item(@item_window.index)
          end
          # Switch to map screen
          $scene = Scene_Map.new
          return
        end
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update (when target window is active)
  #--------------------------------------------------------------------------
  def update_target
    # If B button was pressed
    if Input.trigger?(Input::B)
      # Play cancel SE
      $game_system.se_play($data_system.cancel_se)
      # If unable to use because items ran out
      unless $game_party.item_can_use?(@item.id)
        # Remake item window contents
        @item_window.refresh
      end
      # Erase target window
      @item_window.active = true
      @target_window.visible = false
      @target_window.active = false
      return
    end
    # If C button was pressed
    if Input.trigger?(Input::C)
      # If items are used up
      if $game_party.item_number(@item.id) == 0
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
        return
      end
      # If target is all
      if @target_window.index == -1
        # Apply item effects to entire party
        used = false
        for i in $game_party.actors
          used |= i.item_effect(@item)
        end
      end
      # If single target
      if @target_window.index >= 0
        # Apply item use effects to target actor
        target = $game_party.actors[@target_window.index]
        used = target.item_effect(@item)
      end
      # If an item was used
      if used
        # Play item use SE
        $game_system.se_play(@item.menu_se)
        # If consumable
        if @item.consumable
          # Decrease used items by 1
          $game_party.lose_item(@item.id, 1)
          # Redraw item window item
          @item_window.draw_item(@item_window.index)
        end
        # Remake target window contents
        @target_window.refresh
        # If all party members are dead
        if $game_party.all_dead?
          # Switch to game over screen
          $scene = Scene_Gameover.new
          return
        end
        # If common event ID is valid
        if @item.common_event_id > 0
          # Common event call reservation
          $game_temp.common_event_id = @item.common_event_id
          # Switch to map screen
          $scene = Scene_Map.new
          return
        end
      end
      # If item wasn't used
      unless used
        # Play buzzer SE
        $game_system.se_play($data_system.buzzer_se)
      end
      return
    end
  end
end

Just one column, just 8 item per page, no vertical scrolling and Q/W or LEFT/RIGHT to navigate through the pages.
9
Script Troubleshooting / Re: EQUIPMENT UPGRADE SYSTEM 1...
Last post by KK20 - May 22, 2020, 01:39:07 am
My guess is that you made one of your weapons have the Enhanced Weapon tag, but you didn't specify the number of slots it should have. As such, @slots is set to nil, which you can't have a numerical range between 0 and nil.
10
Script Troubleshooting / EQUIPMENT UPGRADE SYSTEM 1.1 A...
Last post by Tedrainbow - May 22, 2020, 12:40:00 am
Hello the probleme is very not good..
the star new game and crash for error Script Enhanced Equipement line 76 ArgumentError ocurred bad value for range.

It is line for i in 0...@slots

And me use the multi slot! by DerVVulfman version 3.5 for project..

Thanx so much the help me.
Pages1 2 3 ... 10