Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[Community] The community evolutionary VX scripting project

Zeriab

Sponsor

The community evolutionary script project for RMVX

This is a little fun idea I came up with while drunk.
The basic idea is to apply the 5 word story to a script. I.e. each member built a little on the script.
Since writing a script and writing an easy is not the same there are some differences.
I don't expect anything useful to come out, I just expect some fun :D

Rules
Any posts which does not build on a script are completely ignored. I.e. they don't count in the 3-posts rule.

Rule 1: Choose a script from the last 3 submissions (up to)
You have to a script from the last 3 submissions to build on.
Remember that disqualified submissions does not count.
There are two cases where the choice is limited: (Note that the cases may not be mutually exclusive)
  1. There are less than 3 submissions in the topic. This limits the choice to the amount of submissions.
  2. One of your submissions is among the last 3 submissions. This limits the choice to the submissions made after your own. (Yes, this effectively prevents double submissions)


Rule 2: Code restrictions
Rule 2.1 Only one section
Do not write code which uses more than one sections.

Rule 2.2 Stay in RGSS2
No Win32API calls, no file creations, no shell executions, etc.

Rule 2.3 Sprites as only form of visual output
Any visual output must be made using a sprite.

Rule 2.4 Comments
Comments are allowed and are ignored in terms of effect on the script.
There are basically no comment restrictions.


Rule 3: Disqualification
A submissions can be disqualified.
Disqualified submissions are ignored in Rule 1.
I will occasionally check up on this topic and disqualify posts if necessary.

Rule 3.1 Handling 'bad' submissions
By bad submissions I mean submissions which will be disqualified in due time.
There will be a period of time from a bad script is submitted until it is disqualified.
In this time period it is still counted among the 3 submissions in Rule 1
Do not pick the submissions if you can see that it will be disqualified.
You are responsible for checking up on the script you pick being ok.
Follow-up disqualification is a definite possibility. (Avalanche disqualification)

Rule 3.2 Rule violations
Any Rule 2 violation causes immediate disqualification.
Also of follow up scripts. (Think avalanche effect)
Blatant disregard of Rule 4 & 5 will also cause avalanche disqualification.

Rule 3.3 Errors
Syntax errors cause an avalanche disqualification.
For other errors it's a bit more tricky, since it's not feasible to guarantee
You must be able to start the script and exit without problems.
This rule may be amended if necessary. I will give a notification in that case.


Rule 4: Additions
You may add up to 5 new effective code lines to the script.

Rule 5: Modifications
You may alter up to 3 effective code lines.
This includes removal of script lines.
Note that if you remove one statement and add another in its place it only counts as a modification.
If you add two statements in its place it counts as one modification and one addition.

Let's say that we want to swap x and y then one way to do it is:
[ruby]temp = x
x = y
y = temp
[/ruby]

This counts as 3 effective code lines.
You can put it all one line by using ;
[ruby]temp = x; x = y; y = temp
[/ruby]
This still counts as 3 effective the code lines. If you use parallel assignment you get this:
[ruby]x, y = y, x
[/ruby]
That is 1 effective code line.

So there is no reason not to structure it nicely with spacing and line-braking and etc.
Using special language features is encouraged.
In doubt you can look at the grammar for the ruby language with 1 effective code line = 1 statement (stmt)


To run delete everything section except Main.
Replace that with this:

[ruby]# Create scene
$scene = Scene_OurScene.new
# Call main method
while !$scene.nil?
  $scene.main
end
# Fade out
Graphics.transition(30)
[/ruby]

Insert a new section. You can copy the script from a post in there and you should be able to run it.

Rule 6: Submission
Add this in the top of your post if it is a submission:
[size=150]Submission[/size]


If the post does not contain this line it is not considered as a submission.
This (first) post is considered a submission as a special case since it defines the initialize scene.

Be sure to post the entire script and not just the section you have edited.
To ensure the sanity of your fellow scripts please wrap the code in [ruby ][/ruby] or [code ][/code] tags (With the space removed naturally)

It is also a good idea to tell which submission you have picked.


Initial Scene
[ruby]class Scene_OurScene
  def main
    start                         # Start processing
    perform_transition            # Perform transition
    post_start                    # Post-start processing
    Input.update                  # Update input information
    loop do
      Graphics.update             # Update game screen
      Input.update                # Update input information
      update                      # Update frame
      break if $scene != self     # When screen is switched, interrupt loop
    end
    Graphics.update
    pre_terminate                 # Pre-termination processing
    Graphics.freeze               # Prepare transition
    terminate                     # Termination processing
  end
 
  def start
    @sprite = Sprite.new
    @sprite.x = 304
    @sprite.y = 224
    @sprite.bitmap = Bitmap.new(32, 32)
    @sprite.bitmap.fill_rect(0, 0, 32, 32, Color.new(196,196,196))
  end
 
  def perform_transition
    Graphics.transition(10)
  end
 
  def post_start
    # Nothing yet
  end
 
  def update
    if Input.press?(Input::C) || Input.press?(Input::B)
      $scene = nil
    elsif Input.press?(Input::LEFT)
      @sprite.x -= 9
    elsif Input.press?(Input::DOWN)
      @sprite.y += 9
    elsif Input.press?(Input::UP)
      @sprite.y -= 9
    elsif Input.press?(Input::RIGHT)
      @sprite.x += 9
    end    
  end
 
  def pre_terminate
    # Nothing yet
  end
 
  def terminate
    @sprite.dispose
  end
end
[/ruby]

*hugs*
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top