Jump to content
ElCodes

Introducing UR-RPG - And All-In-One asset for Unity

Recommended Posts

I moved over from RPG Maker to Unity a few years back, but, I've always missed the simplicity of RPG Maker and always wanted an all-in-one system that would turn Unity into something like RPG Maker. There are plenty of RPG makers for Unity, for sure, but none that would handle everything. 

I decided to use my time in lockdown productivity and worked on a prototype for a game idea I have. I wanted to make some custom Unity windows to help speed things up. I created a side project and experimented. Before long, I had a working database. I also needed a map editor, so I created that next and after I had those two tools, I realized I basically had the RPG Maker-like system I always wanted. I just needed something to handle Events. So... I created my own visual scripting tool. However, since going back to work I've had very little time to work on the project.

AllWindows.thumb.PNG.e47d5c3dff3669152f3f07f66de8d3f9.PNG

 

Details and Features:

Spoiler

 

As you can see from the screenshots, I've took RPG Maker and I'm using that as a starting point for functionality, but the finished project will probably end up looking a little different. I've had people question the legality of that, but all the code is 100% my own so as long as I don't use any of the official assets there's no problem with legality. Adobe doesn't sue GIMP because it's similar to Photoshop. Besides, I'm adding some of my own improvements to the workflow, and adding some quality of life improvements too to allow for better flexibility. I'm actually hoping to create a better tool...

Database

DatabaseExample-B.thumb.PNG.587414f85fe85687e483b29af039cbe3.PNG

Database is pretty straight forward. This is how you edit the data for the game same as RPG Maker. Similar to RPG Maker, it exports this data to JSON, then when needed, the game reads the JSON to create playable characters, items and so on. Initially, I wanted to make it compatible with RPG Maker JSON to make porting projects easier, however in all honesty, some systems have been easier to just create my own solutions for, rather than reverse engineer the RPG Maker JSON and figuring out what they're doing with it. Especially with events/visual scripting. This means, sadly, JSON isn't compatible with RPG Maker.

Only the playable character tab is complete and right now I'm just editing the JSON directly... but the core functionality is all there. It can save and load the data and you can edit but the only completed tab is the playable character tab. All that needs to be done to finish this off however is just designing the remaining tabs and any additional pop up windows for selecting graphics and stuff.

Map Editing

MapEditorExample.thumb.PNG.7236d2e4fe31f653b4123345b01d661e.PNG

Features already in place

  • Drawing tools (Single, square, circle, fill)
  • Layers
  • Autotiles
  • Zoom and move map

You can set a global setting for the size of the tilesets in a project. All tilesets need to be uniform, but if you set 32x32 to be the global setting you could use XP or VX tilesets and if you set it to 48x48 you could use MV and MZ tilesets. Or... if you want you can use a competently unique size such as 64x64, that's fine too.

I'm hoping, although I need to do testing on this, that I'll be able to add unlimited map sizes for people to create open world games. I'm not actually sure how it works in RPG Maker, but I know with other game makers they tend to load the entire map into memory. To negate this, UR-RPG uses a 2D form of occlusion culling. Thats a fancy way of saying it only draws what the camera can see, and redraws the map as you move around. I'm hoping this will help with the goal of unlimited map sizes.

Tilesets will also be handled differently. This needs to be coded, but the plan is to use 'Groups' for tilesets. Every individual tileset sheet the game needs will be set in the database, as well as collision. Then similar to how RPG has it's A, B, C, D sets, a group will just be a collection of different individual tileset sheets but what I want to do differently is how they are set. You create a 'group' of tile sets and then select from the individual sheets that the 'Group' will us. This means you can use multiple autotile sheets per group as well as mix and match building sheets, decoration sheets and terrain sheets. I'm also planning to have the map editor be able to draw from any 'group' that was set in the database... again to help create open worlds but still keep things organised.

 

Scripting

VisualEventEditor.thumb.PNG.16954323944fa3f98a176b7cc0973a38.PNG

Features already in place

  • Create Global or Local scripts
  • Create, save and load scripts for editing
  • Around 60-70% of nodes are done
  • Set conditions for scripts to be run
  • Set a trigger for script to be run

Scripting is where UR-RPG completely deviates from the RPG Maker formula. As you can see, this is done with visual scripts. With visual scripts you have a start node, then add nodes for common tasks such as show message, give money, move character and so on. If you think of the options you have while creating an 'Event' in RPG Maker, this is what you're doing with Visual Scripting and you'll have all the same kinds of options. This isn't based on the new Unity Bolt feature, I've built this from the ground up specifically for UR-RPG.

As for post-release community scripting, I've given this a lot of thought. Due to the nature of just C# in general, I shouldn't have to worry much about scripters who want to code in their own functionality. They should be able to just use polymorphism to override the default functionality. I'm planning on compiling the code for the database, map editor and script editor into a DLL file. This means the core functionality can be protected. However, I'm going to document as I go and will probably put a Wiki or something up on my website so experienced coders know how to customize and extend functionality. Exposed scripts for the battle system, title and stuff won't be compiled, so for things like a custom battle system, it should just be a matter of replacing the battle scene C# script.

 

Publishing

As it's a Unity asset... this includes an added benefit not found in RPG Maker. The ability to export to pretty much everything. PC, Linux, XBox, PlayStation, Nintendo Switch, Android, iOS... even a standard browser using HTML5 and OpenGL.

 

Still a lot of work needs to be done. I need to finish off the 3 core tools then need to code the runtime engine so it actually uses the data to create a game. I'm thinking of getting a basic runtime engine up and running so I can do a complete start-to-finish demo, or I may just finish off the tools and demo them one by one as development continues.

To help speed up development I've created a Kickstarter to help fund a year of full-time development, which should be all I need. However so far it's not gone very well and I'm not hopeful that it's going to get successfully funded so currently working on a Plan B roadmap. If anyone could help spread worth of mouth by posting about the project on any other forums, social media or Discords they're on that would be a mahoosive help. Personally, I'm kind of out of the loop with the RPG Maker community and so far have only posted here. I tried to join some Facebook groups and got in trouble for self promotion...

I've tried spending money on advertising, but that hasn't reaped the attention I wanted. I've had 250,000 people look at my website with no one going through to the Kickstarter page... The marketing plan I had has kind of failed so I need to target people that would specifically be interested in this project.

Regardless of whether or not I can get the Kickstarter funded, I do plan to continue development but it's just going to take much... much longer as I work it around my full time job. If I can gain enough interest, I will start a Discord server and will be adding a developer blog to the website at some point.

If anyone has any questions on UR-RPG or the project in general feel free to DM me here, or on Twitter.

Also, for more info check out my website: https://primepixelgames.com/ultimate-retro-rpg/

 

  • Like 1

Share this post


Link to post
Share on other sites

Posted in IWO Discord.
This is cool, by the by.

  • Like 1

Share this post


Link to post
Share on other sites
12 hours ago, ElCodes said:

Thank you :)

Dé rìen!
 

  • Like 1

Share this post


Link to post
Share on other sites

Quick Update

So, I booked the week off work to get some bits done....all of which I abandoned so I could spend the last 3 days working on UR-RPG. On Monday, only the Actor tab of the database was complete. Now all I have left to design are the Troop, Tileset and Animation tabs! I've also updated it to make sure it works with the latest Unity release.

This morning, I started work on the Troop tab with only a slight idea of how I was going to get it working, but not actually knowing if it was going to be possible to do in a custom Unity Editor Window....

9 hours later, it was basically fully functional! All that remains is adding the Visual Script Editor, which I already have the code for, just need to refactor a bit so I can nest it into other windows... but it's 11pm, I've been up since 9am working on this. I need some down time.

Here's the work so far. It's a little rough around the edges and needs optimization, but the priority was 'just get it to work'. It also played up a little because my computer is arse, and I had Adobe Audition, OBS, Unity, Visual Studio, RPG Maker MV and about 50+ Brave tabs open..... but here it is 😃

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted