Skip to content

Visual Novel desenvolvido na engine RPG Maker VX Ace

License

Notifications You must be signed in to change notification settings

RonaldoBento/visual_novel

Repository files navigation

visual_novel

Visual Novel desenvolvido na engine RPG Maker VX Ace


logo bento-projeto no formato png

São jogos focados no enredo, nos quais o jogador acompanha uma história por meio de textos, músicas e imagens. Em momentos chaves desses jogos o jogador deve decidir que caminho o protagonista deve seguir e, desta forma, o jogo avança. O desenvolvimento da trama destes jogos costuma depender das escolhas que os jogadores fazem durante o jogos. São como filmes ou livros interativos; daí o nome visual novel. O gênero denominado Visual novel é mutável e popular entre os orientais (principalmente os japoneses, coreanos e chineses) e vem adquirindo espaço no mercado ocidental desde 2010, por conta de seus roteiros complexos e diversificados. Além disso, vários jogos possuem dublagem, ou seja, as personagens adquirem muito mais personalidade. O desenvolvimento do gênero no ocidente encontra dificuldades como os altos custos na tradução do roteiro e o barramento de mercado devido à temática inserida nos jogos, no entanto há esforço dos fãs para que empresas invistam de modo global, descentralizando as vendas do Japão. Podemos também contar com os tímidos, mas ótimos trabalhos nacionais. Escrevi uma matéria completa sobre O visual novel e suas possibilidades de incentivo à leitura na revista Make the RPG nº 18.

Clique aqui para entrar no site da revista Make The RPG nº 18


logo bento-projeto no formato gif

Ficha Técnica

  • Criador: Ronaldo Rodrigues Bento
  • Gênero: Visual Novel, Terror, Horror, Psicológico, Sobrenatural, Suspense, Policial e Puzzle
  • Engine: RPG Maker VX Ace
  • Design e Characters & Scenario: Horang
  • Roteiro original: Horang
  • Roteiro alterado: Ronaldo Bento
  • Idioma: Português Brasileiro
  • Faixa Etária: Maiores de 18 anos
  • Precisa de RTP? Não
  • Início do projeto: 18/10/2022
  • Lançamento do projeto: 25/11/2022
  • Tamanho: 84MB
  • DGD - Documento de Game_Design:Anexo
  • Duração do jogo: aproximadamente duas horas

Clique aqui para entrar no site do projeto Visual Novel

Mas o que é webtoon?


Um webtoon nada mais é do que uma história em quadrinhos originada na Coreia do Sul. Pelo menos, em sua raiz. Mas hoje “webtoon” já é um termo mundial. Essas histórias vem ganhando notoriedade nos últimos anos devido à chamada Onda Coreana (ou Hallyu).


Screenshoot do Visual Novel


logo capturadetela no formato png


logo capturadetela no formato png


logo capturadetela no formato png

O RPG Maker permite que os usuários criem seus próprios jogos de RPG e com algumas mudanças no sistema pode criar até outros tipos de jogos. Utiliza a linguagem de Programacão: RGSS (Ruby Game Scripting System) uses the object-oriented scripting language Ruby to develop 2D games for the Windows® platform.

Exemplos de Scripts:

if true
#==============================================================================
# +++ MOG - Title Multilogo - [Stand-Alone Series] (V1.1) +++
#==============================================================================
# By Moghunter 
# https://atelierrgss.wordpress.com/
#==============================================================================
# Adiciona logos antes da tela de título
#==============================================================================
# Para adicionar os logos nomeie os arquivos da seguinte forma.
#
# Logo_0.png
# Logo_1.png
# Logo_2.png
# Logo_3.png
# Logo_4.png
# Logo_5.png ... Logo_999.png
#
# Grave as imagens na pasta /Graphics/Title1/
#==============================================================================
module MOG_MLOGOS
  #--------------------------------------------------------------------------
  # Definição do nome do arquivo.
  #--------------------------------------------------------------------------
  FILE_NAME = "Logo_"
  #--------------------------------------------------------------------------
  #Ativar ME (coloque " PLAY_ME = nil " para desativar o efeito )
  #--------------------------------------------------------------------------
  PLAY_ME = "Shock"  
  #--------------------------------------------------------------------------
  #Duração do logo.
  #--------------------------------------------------------------------------
  LOGO_DURATION = 80
  #--------------------------------------------------------------------------
  #Ativar o Botão para pular o logo.
  #--------------------------------------------------------------------------
  SKIP_BUTTON = true
end

$imported = {} if $imported.nil?
$imported[:mog_title_multilogo] = true

#==============================================================================
# ■ Scene Tittle
#==============================================================================
class Scene_Title < Scene_Base
  
 #--------------------------------------------------------------------------
 # ● Main
 #--------------------------------------------------------------------------             
   alias mog_t_logo_main main
   def main
       execute_tlogo if $logo_enabled == nil
       mog_t_logo_main
   end

 #--------------------------------------------------------------------------
 # ● Execute Tlogo
 #--------------------------------------------------------------------------             
   def execute_tlogo
       $logo_enabled = true if $logo_enabled == nil
       Graphics.transition(transition_speed); mlogo = M_logo.new
       loop do
       Input.update ; mlogo.update ; Graphics.update ; break if mlogo.phase == 1
       end
   end
   
end
 
#==============================================================================
# ■ M_Logo
#==============================================================================
class M_logo
  include MOG_MLOGOS
  attr_accessor :phase
  
 #--------------------------------------------------------------------------
 # ● Initialize
 #--------------------------------------------------------------------------             
  def initialize
      @phase = 0 ; @logos = []
      for i in 0...999 ; @logos.push(Cache.title1(MOG_MLOGOS::FILE_NAME + i.to_s)) rescue nil      
      break if @logos[i] == nil ; end
      @logo_sprite = Sprite.new ; time = [LOGO_DURATION, 5].max
      @logo_data = [0,0,61 + time] ; refresh_logo
      Audio.me_play("Audio/ME/" + PLAY_ME, 100, 100) if PLAY_ME != nil
  end
  
 #--------------------------------------------------------------------------
 # ● Refresh Logo
 #--------------------------------------------------------------------------             
  def refresh_logo
      if @logos[@logo_data[1]] == nil ; @phase = 1 ; return ; end
      @logo_sprite.bitmap = @logos[@logo_data[1]]
      @logo_sprite.opacity = 0 ; @logo_data[0] = 0 ; @logo_data[1] += 1
  end
  
 #--------------------------------------------------------------------------
 # ● Dispose
 #--------------------------------------------------------------------------             
  def dispose
      Graphics.freeze
      @logos.each {|sprite| sprite.dispose } 
      @logo_sprite.bitmap.dispose ; @logo_sprite.dispose
  end
  
 #--------------------------------------------------------------------------
 # ● Update
 #--------------------------------------------------------------------------             
  def update
      update_skip_logo ; @logo_data[0] += 1
      case @logo_data[0]
      when 0..60 ; @logo_sprite.opacity += 5
      when 61..@logo_data[2] ; @logo_sprite.opacity = 255
      when @logo_data[2]..(@logo_data[2] + 120) ; @logo_sprite.opacity -= 5
      end      
      refresh_logo if @logo_sprite.opacity == 0
  end
  
 #--------------------------------------------------------------------------
 # ● Update Skip Logo
 #--------------------------------------------------------------------------             
  def update_skip_logo
      return if !SKIP_BUTTON
      return if @logo_data[1] > @logos.size
      if Input.press?(:C) or Input.press?(:B) 
      @logo_data[0] = @logo_data[2] + 10 ; @logo_data[1] = @logos.size + 1
      end
  end
  
end

#==============================================================================
# ■ Scene Base
#==============================================================================
class Scene_Base
    
 #--------------------------------------------------------------------------
 # ● Terminate
 #--------------------------------------------------------------------------             
 alias mog_t_mlogos_main terminate
 def terminate        
     mog_t_mlogos_main 
     $logo_enabled = nil unless SceneManager.scene_is?(Scene_Title) or SceneManager.scene_is?(Scene_Load)
 end

end

#===============================================================================
# ■ SceneManager
#===============================================================================
class << SceneManager

  #--------------------------------------------------------------------------
  # ● First Scene Class
  #--------------------------------------------------------------------------  
  alias mog_t_mlogos_first_scene_class first_scene_class
  def first_scene_class
      $logo_enabled = nil
      mog_t_mlogos_first_scene_class
  end  
  
end

end

#==============================================================================
# +++ MOG - Clear Memory (v1.0) (Memory Leak Solution) +++
#==============================================================================
# By Moghunter
# https://atelierrgss.wordpress.com/
#==============================================================================
# O script limpa a memória utilizada pelo RpgMaker, basicamente dá um reset 
# no jogo sem que o jogador perca os dados dos jogo.
# Este script é voltado para quem estiver tendo problema com sobrecarregamento
# na memória Ram.
#==============================================================================
# UTILIZAÇÃO
#==============================================================================
# Basta usar o código abaixo através do comando chamar script.
#
# $game_system.clear_memory
#
#==============================================================================
# NOTA 
#==============================================================================
# Haverá uma pequena pausa no momento que a memória é limpa, portanto  é 
# aconselhavel limpar a memória durante uma cena ou quando for teleportar
# entre um mapa e outro.
#==============================================================================


#===============================================================================
# ■ SceneManager
#===============================================================================
class << SceneManager

  #--------------------------------------------------------------------------
  # ● First Scene Class
  #--------------------------------------------------------------------------  
  def first_scene_class
      $clear_memory ? Scene_Recover_Data : $BTEST ? Scene_Battle : Scene_Title
  end  
  
end

#===============================================================================
# ■ DataManager
#===============================================================================
class << DataManager
  
  #--------------------------------------------------------------------------
  # ● Save Game Temp
  #--------------------------------------------------------------------------
  def save_game_temp
      File.open("Quick_Save", "wb") do |file|
        $game_system.on_before_save
        Marshal.dump(make_save_header, file)
        Marshal.dump(make_save_contents, file)
      end
      return true
  end
  
  #--------------------------------------------------------------------------
  # ● Load Game Temp
  #--------------------------------------------------------------------------
  def load_game_temp
      File.open("Quick_Save", "rb") do |file|
        Marshal.load(file)
        extract_save_contents(Marshal.load(file))
        reload_map_if_updated
      end
      File.delete("Quick_Save") rescue nil
      return true
  end
  
end  

#===============================================================================
# ■ Game System
#===============================================================================
class Game_System
  
  #--------------------------------------------------------------------------
  # ● Clear_Memory
  #--------------------------------------------------------------------------        
  def clear_memory
      DataManager.save_game_temp
      reset = Win32API.new 'user32', 'keybd_event', %w(l l l l), ''
      reset.call(0x7B,0,0,0)
      sleep(0.1)
      $clear_memory = [RPG::BGM.last,RPG::BGS.last]
      reset.call(0x7B,0,2,0)
  end    
  
end  

#===============================================================================
# ■ Scene Recover Data
#===============================================================================
class Scene_Recover_Data
  
  #--------------------------------------------------------------------------
  # ● Main
  #--------------------------------------------------------------------------    
  def main
      SceneManager.clear
      DataManager.load_game_temp
      SceneManager.goto(Scene_Map)
      $clear_memory[0].replay rescue nil
      $clear_memory[1].replay rescue nil
      $clear_memory = nil
  end    
end

$mog_rgss3_clear_memory = true

IMPORTANTE:

NPM

Você tem todo o direito de usar esse material para seu próprio aprendizado. Espero que seja útil o conteúdo disponibilizado. Para rodar o jogo no seu computador (Windows) ou em outro dispositivo é preciso ter instalado o Programa RPG Maker VX Ace. Para jogar Game.exe apenas para Windows.

About

Visual Novel desenvolvido na engine RPG Maker VX Ace

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages