Jump to content

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.



Details and Features:



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 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


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.




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.



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
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

Good news update:

I want to keep this short so I'll save you the details. TLDR version: Started week off with a broken project (Unity's fault), and a broken spirit. The last back up I had was before I had recorded the previous video so that back up didn't have the Mob/Troop tab. On top of that, I only had Wednesday and Thursday off to focus on the project BUT... during those two days I've been able to:

  • Rebuild the entire project from a new, non-broken, Unity project.
  • Refactor the Visual Editor script so it no longer requires it's own separate window and created the Global Event tab.
  • Finish off the Mob/Troop window, including optimizing it so it no longer lags and added it's own Visual Script area for creating up to 20 battle events.
  • Created the Types tab (Which I forgot about...).
  • ALMOST finished the Tileset editing tab. Just need to code in the ability to set collision, counter, damage floor etc. Hoping to get that done this weekend at some point...

Please pray to whatever deity you choose that we have no more issues 😛





  • Like 1

Share this post

Link to post
Share on other sites

Been a while since I posted an update but I've not been slacking, trust me.

The Database is now fully functional! All tabs have been completed, including Animation. I then started a new Map Editor... and then rewrote the code... twice. However, with the exception of the Add Event window, the Map Editor is now complete. If anyone wants to see actual video of what I have so far in action, let me know.

This means, next week I'll be starting the runtime engine. This is the part that takes all the data made with the UR-RPG tools and actually builds a playable game from it when you hit the 'Play' button in Unity. I'll be starting with the basic Scene manager and creating some basic scenes. Mainly the Map scene as I will also be making the Map Manager and Player Controller. From there it will simply be a matter of creating all the different scenes (Map, Window, Menu, Shop, Title, Game Over etc) and creating the Event system. The Event system is pretty straight forward stuff....buuutttt... probably going to take the most time to implement. 

Now I really don't want to jinx things since development has gone so well so far, but, if things do continue to progress at this pace I could have this out within a couple of months. (Originally I thought it would take a year). So much so I've actually begun thinking about release.

Once I have everything functioning, I'm going to release a Beta version to Patron. This version is probably going to be buggy, but it'll be considered a pre-release release. Hopefully I will be able to get some user feedback and real world application feedback which I could perhaps work in while I clean up the code for an actual release.

I'm also just looking for testers in general so if you want to have an early go with Ultimate Retro RPG, send me a DM and we can talk :)


  • Like 1

Share this post

Link to post
Share on other sites

Just wanted to share a demo of the finished animated autotiles.

Just like RPG Maker, all you have to do is drop the sprite sheets into the right folder. UR-RPG will then do all the work to turn the sprite sheets into usable Unity RuleTiles. Setting these up by hand would take around 15 or even 30 minutes per tile, but UR-RPG can create over 200 within a second.

Setting up your tilesets is the exact same workflow as RPG Maker. Just create the tileset and set each tiles data in the database. I've created a quick 1 min video example of animated autotiles working, but it's too large for this forum, so I posted it to Twitter. (Also please let me know if it's blurry. It's HD when I upload it... I don't whats going on with that).


Edited by ElCodes

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