Author Topic: The Resurrection of the Zer0 Division Engine  (Read 3725 times)

Offline ForeverZer0

  • CP's Pedophile
  • Global Moderator
  • Guardian of Chaos
  • ****
  • Posts: 3255
  • LV: 297
  • Gender: Male
  • Remember you are unique, just like everyone else.
    • View Profile
The Resurrection of the Zer0 Division Engine
« on: August 02, 2014, 03:28:47 PM »
So remember a few years ago when I mentioned I wanted to build a new and improved game engine that holds compatibility with existing RMXP projects, using XNA and IronRuby? I dubbed it the "Zer0 Division Engine", and it was the inspiration that started ARC? In case you forgot.

Well, while working on Rpg.NET, I was still getting that feeling that all the shortfalls of RMXP were holding me back, so during the past few days, I have had some free time, and I decided to take a quick try at seeing what it would take to create my original idea, before it became ARC and changed to something completely different.

I just wanted to let you all know I have it running. There is still loads of things to do, but I have successfully re-created RGSS, and have a game running smoothly on the screen, with rewritten Graphics, Audio, and Input. The tilemap rewrite is superb, can can run any resolution smoothly, without any of the priority issues I ran into in my Ruby rewrite, and the Ruby interpreter puts RMXP's to shame.

I still have lots to do before I start posting anything up, namely font rendering looks like garbage at the moment, and I need to create a custom build of IronRuby to remove the "superclass mismatch" error we ran into with ARC, which was something added into later versions of Ruby.

Once I get this running stable, the sky is the limit with what can be done.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Offline Zexion

  • Addicted to LoL
  • Chaos User
  • ******
  • Posts: 1519
  • LV: 69
  • Gender: Male
  • My anaconda don't...jk it does
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #1 on: August 02, 2014, 08:46:33 PM »
This sounds amazing f0. Does it fix the screen tearing issues that are standard in xp.

Offline ForeverZer0

  • CP's Pedophile
  • Global Moderator
  • Guardian of Chaos
  • ****
  • Posts: 3255
  • LV: 297
  • Gender: Male
  • Remember you are unique, just like everyone else.
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #2 on: August 02, 2014, 08:52:51 PM »
Yes, I was having some issues with that, but ended up all I needed to do was swap when I was drawing and when the Ruby thread were sleeping around.
I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Offline whitespirits

  • Ethereal Devastator
  • ****
  • Posts: 326
  • LV: 2
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #3 on: August 02, 2014, 09:01:07 PM »
Exciting stuff! An rmxp upgrade is definatly needed!

Offline Zexion

  • Addicted to LoL
  • Chaos User
  • ******
  • Posts: 1519
  • LV: 69
  • Gender: Male
  • My anaconda don't...jk it does
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #4 on: August 02, 2014, 09:07:32 PM »
Wow this completely replaces the need for xpAce lol

Online KK20

  • Master Scripter Fixer
  • Global Moderator
  • Guardian of Chaos
  • ****
  • Posts: 3133
  • LV: 378
  • Gender: Male
  • Choco Octo <3
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #5 on: August 02, 2014, 10:59:53 PM »
If this is as truly good as you make it sound,
this completely replaces the need for xpAce lol

Looking forward to breaking it :)



Other Projects
RPG Maker XP AceUpgrade RMXP to RMVXA performance!
XPA TilemapTilemap rewrite with many features, including custom resolution!


Nintendo Switch Friend Code: 8310-1917-5318
Discord: KK20 Tyler#8901

Join the CP Discord Server!

Offline ForeverZer0

  • CP's Pedophile
  • Global Moderator
  • Guardian of Chaos
  • ****
  • Posts: 3255
  • LV: 297
  • Gender: Male
  • Remember you are unique, just like everyone else.
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #6 on: August 02, 2014, 11:16:39 PM »
Another neat feature, or more of a by-product of its nature: any .NET assembly can be loaded into Ruby's scope and used just like it is.

Example:
Code: [Select]
load_assembly('System.Windows.Forms')

# And then you can create a window as you see fit
form = System::Windows::Forms::Form.new
form.Show()


I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Offline Moshan

  • Transcended Spirit
  • ***
  • Posts: 135
  • LV: 1
  • Gender: Male
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #7 on: August 03, 2014, 11:32:23 AM »
 All hail the Cookie Monster!

 Now...back in my corner....crying....I can't script...

Offline G_G

  • Green Gmod Game_Guy AKA G4 AKA hyper-G AKA G-force
  • Global Moderator
  • Chaos Ultimate
  • ****
  • Posts: 6586
  • LV: 407
  • Gender: Male
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #8 on: August 04, 2014, 04:17:38 PM »
Is this running XNA by chance? If so, do you plan on letting Ruby access the Graphics Device? I think this is pretty cool. I actually might be able to implement my own tilemap now using Tiled.

Offline ForeverZer0

  • CP's Pedophile
  • Global Moderator
  • Guardian of Chaos
  • ****
  • Posts: 3255
  • LV: 297
  • Gender: Male
  • Remember you are unique, just like everyone else.
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #9 on: August 04, 2014, 05:02:31 PM »
Yes, I am using XNA to do the rendering. I started with an XNA Studio Project, but have since switched it to a WinForms project with XNA embedded. I find it way easier to work with it like this.

As far as using XNA directly within scripts, thats very simple. I exposed the GraphicsDevice as public, and its also accessible from any Bitmap instance, since the Bitmap class is inherited from Texture2D.
Code: [Select]
bitmap = Bitmap.new(32, 32)
device = bitmap.GraphicsDevice

And since IronRuby can interop with any .NET assembly, you can load it into it's scope quite easily:
Code: [Select]
require 'Microsoft.Xna.Framework.dll'
require 'Microsoft.Xna.Framework.Graphics.dll'

device = Graphics.device
texture = Microsoft::Xna::Framework::Graphics::Texture2D.new(device, 32, 32)

As I just stated, though, that's not really necessary, since the Bitmap class is technically a Texture2D, as well as other primitive types, you can use one in the same way as a texture:

Code: [Select]
rect = Rect.new(0, 0, 128, 192)
color = Color.new(255, 255, 255)
bitmap = RPG::Cache.character('001-Fighter01', 0)
batch = Microsoft::Xna::Framework::Graphics::SpriteBatch.new
batch.Begin
batch.Draw(bitmap, rect, color)
batch.End

I am done scripting for RMXP. I will likely not offer support for even my own scripts anymore, but feel free to ask on the forum, there are plenty of other talented scripters that can help you.

Offline G_G

  • Green Gmod Game_Guy AKA G4 AKA hyper-G AKA G-force
  • Global Moderator
  • Chaos Ultimate
  • ****
  • Posts: 6586
  • LV: 407
  • Gender: Male
    • View Profile
Re: The Resurrection of the Zer0 Division Engine
« Reply #10 on: August 04, 2014, 07:43:39 PM »
I can't wait to play around with this. Since it is XNA, I'll have hardly any work incorporating Tiled into this.

Offline Spaceman McConaughey

  • Legit Poo Poo Man
  • Lexima Warrior
  • *******
  • Posts: 2002
  • LV: 46
  • Gender: Male
  • muh murph
    • View Profile
    • Titties, titties, and more titties!
Re: The Resurrection of the Zer0 Division Engine
« Reply #11 on: August 04, 2014, 08:23:45 PM »
Wow this completely replaces the need for xpAce lol

Psh, when RPG.net was announced, I thought the same thing.
You're a little late to the party, brah.

Anyways, fuck yes F0! :D