RPGDEV - AN RPG DEVELOPMENT TOOLKIT

Posts

Pages: 1
Hi there!

I wasn't exactly sure where the best place to post this was but I am interested in getting community input on a project I am currently working on. You may be asking what is RpgDev?

I decided to start work many years ago on effectively an alternative to mainstream solutions currently available when it comes to developing 2D rpgs. I have spent many years working with different game engines and found in particular the newer RPG Makers really lack the features which several people want and does not provide the flexibility the various different types of RPGs require.

My aim for RpgDev is to provide a set of tools and a game engine for people to develop desktop-targeted RPGs. The game engine is built on cross-platform technologies so it will support Linux, Mac and Windows operating systems. Mobile isn't ruled out; the only thing stopping me going down that route currently is resource.

What's so special about RpgDev? I'll provide a list of features currently implemented:

Implemented as of 03/06/2018:
Map
  • A technical layer limit of 4,294,967,295. This depends on hardware capability and realistically you would rarely use more than 2.
    Have maps as small as 1x1 or bigger than your PC can handle.
    Optimisation via batching.
    No limit on tile set height or width.
    Map sprite textures are grouped into bigger textures internally providing big performance increases and allowing you to use texture dimensions that would usually lag some other game engines.
    Assign a collection of maps to a certain world; allowing you to move seamlessly between the map instances for open world scenarios.
    Fog & tint options.
    Lighting texture for each map You can use the editor to export map screenshots to be used in creating artificial lighting effects without overriding fog.
    Collision system & terrain tags.
    Event system with auto run, touch and interact triggers.
    Mix different sprite sizes with scaling.

Game
  • Support any screen size while maintaining aspect ratio.
    Built in 1x, 2x, 4x scale modes.
    Custom splash screens while starting the game.
    Midi playback support with the ability to change sound fonts on the fly, changing the playback speed and volume. Currently only support for .SF2 sound fonts.
    Fade in/out transitions.
    Font rendering.
    XML file formats
    Movement & animation.

Editor
  • Real time preview of changes No need to test play the game to see fog/screen tint changes.
    Change tile set collision, priority and terrain tag options.
    Paint/erase tiles and groups of tiles.
    Modern interface supporting various screen sizes.

Scripting
  • C# 6.0 Class Library scripting
    Ability to implement custom events and editors for the RpgDev Editor.
    Thread-safe scripting API that you can extend with your own class library.

This list will expand in the future and it is just a list of features currently in place, I'll be getting a website launched soon but if you would like to see a video of some functionality see the below video:

https://www.youtube.com/watch?v=0bKPcKaBwvo

(Please note the above video uses assets from Inquisitor at RPG Palace and Pokemon Essentials pack)

Here is a screenshot of the editor so far (Some of the layout is liable to change when I get the event windows fleshed out):


What I would like to know, for those of you out there; If you could ask for any feature in an RPG development toolkit (Like RPG Maker) what would you want?

Any feedback on what I have currently shown is greatly appreciated. Thank you for those who take the time to check this out. I'd love to hear from you!

Visit the website at https://rpgdev.co.uk

Dan
Looks like a really promising start, I look forward to seeing this evolve!
Essentially what RPG Maker MV should have been? Wink Wink Kadakowa.
Looks nice, but the icon sizes are a bit big and toy looking.

There's one thing you shouldn't do, include a default battle system! Simply focus on RPG basics, party system/formation, stats, classes, races, items, weapons, etc.

C# scripting is great, but if you want to pull in users an easy visual event system which you noted but should be able to create an entire game without C# (think RPG Maker here).

Since your using tilesets your entire map should consist of a grip and checking the alpha of the tile to see where the collision should begin "makes slopes, half-tiles easier to manage" maybe you already thought of this?

Good luck on this!
Looks good so far. Going to be following how you develope it even further!
author=Rukiri
Essentially what RPG Maker MV should have been? Wink Wink Kadakowa.
Looks nice, but the icon sizes are a bit big and toy looking.

There's one thing you shouldn't do, include a default battle system! Simply focus on RPG basics, party system/formation, stats, classes, races, items, weapons, etc.

C# scripting is great, but if you want to pull in users an easy visual event system which you noted but should be able to create an entire game without C# (think RPG Maker here).

Since your using tilesets your entire map should consist of a grip and checking the alpha of the tile to see where the collision should begin "makes slopes, half-tiles easier to manage" maybe you already thought of this?

Good luck on this!


Hey thanks for the feedback! The entire toolbar at the top of the editor will likely be changed massively (To represent the style elsewhere in the app, and also to modernise it), I agree that it looks bad.

Regarding battle systems, these are essentially packages you would be able to choose (Think steam workshop), so even those without programming knowledge can use either a basic set of plugins for a traditional rpg structure or use community made scripts with an interface in the editor to manage installation and setup.

Furthermore; you'll gain the advantage that scripts will be able to enhance and introduce options in the editor making the user experience even easier for those who aren't programmers.

Collision at the moment is handled in the same manner as RPG Maker and some very old school RPGs. Due to the modular nature of the editor and the engine it won't be too difficult to have different collision options depending on the preference the user has in the game that they are making.

It is possible to introduce a full blown 2D physics engine that would handle per-pixel collision for those more free flowing games like action RPGs for example.

At the moment you have a collection of maps in a world, they have a shared tile size (E.g. 32x32) but you can mix tilesets of (64x64) at 0.5x scale and (16x16) at 2x scale as demonstrated in the video with a 16x16 Pokemon tileset and a 32x32 RMXP tileset.

The point around slopes and half-blocks is a good one and would require a collision system more sophisticated than that of the RPG maker series. It really depends on how much the community wants it.

Great to hear from you.
Dan
Red_Nova
Sir Redd of Novus: He who made Prayer of the Faithless that one time, and that was pretty dang rad! :D
9192
Real time preview of changes No need to test play the game to see fog/screen tint changes.

Assign a collection of maps to a certain world; allowing you to move seamlessly between the map instances for open world scenarios.

Thread-safe scripting API that you can extend with your own class library.

Ability to implement custom events and editors for the RpgDev Editor.


holy shit i'll buy twenty copies

Can you expand on that last point a little more, please? To what extent can I edit the editor? Say, for example, I want to add a command to the top toolbar (below the file, edit, etc. command bar) that opens up a window that displays user-specified stats of the current map (# of events placed, # of unique tiles used and the # of times each unique tile was placed in the map, etc.), would I be able to do that? Or did I misread something?

---------------

Anyway, is this geared more towards the casual audience without much scripting knowledge or those already comfortable with programming? If the latter, then the above features I've highlighted (particularly the last one), can supplement the desire for many features that people would want.

What made you choose C# as opposed to, say, C++ or Javascript? People here, especially those who use RPG 2K3's DynRPG and MV, are used to either language. Not saying it's impossible to learn C#, but if you're trying to attract casuals, then the language barrier will be a big turnoff for those who are already comfortable making small edits and the like to

As for what I'd like to see, hm...

- An ability to enable/disable singular scripts in the editor would be nice. Testing for modularity is kinda tedious in Ace, and it'd be nice to roll back changes if a script I'm working on isn't working out without needing to manually remove it from the list.

- If there is some kind of error in an event (like a transfer command to a map that was later deleted), it'd be great to have some kind of highlight to indicate this, like give the event a heavy red tint or something.

- Creating some sort of base skeleton event that can be referenced from other events. I know that I currently have a "quick drop" room where I have specified events such as touch encounters I copy/paste to other maps. However, with hundreds of touch encounters placed, it'd be ungodly levels of tedious to edit each one of them if I needed to add a new event command or something. So having one superclass or skeleton event that I can edit once and apply to all similar events would be wonderful.



Anyway, this is a neat start, and feature that I was gushing over (if we're thinking of the same thing), gives RpgDev one hell of an edge over something like RPG Maker. Keep it up!
Hi Red_Nova

That's some great input there thank you for taking the time to reply to the thread. It's great to see the positivity around what has been mentioned so far.

author=Red_Nova
Can you expand on that last point a little more, please? To what extent can I edit the editor? Say, for example, I want to add a command to the top toolbar (below the file, edit, etc. command bar) that opens up a window that displays user-specified stats of the current map (# of events placed, # of unique tiles used and the # of times each unique tile was placed in the map, etc.), would I be able to do that? Or did I misread something?


The plan us to have both input and output options for plugins so they can target predefined extensible areas of the editor (Such as the even window, map window, the file menus). It is also possible for me to add the ability to have a dockable window (Ala Unity Editor).

I will be writing some performance monitoring APIs for this purpose (And to also allow developers to debug their plugins more effectively). I see no reason why you wouldn't be able to achieve the functionality specified.


author=Red_Nova
Anyway, is this geared more towards the casual audience without much scripting knowledge or those already comfortable with programming? If the latter, then the above features I've highlighted (particularly the last one), can supplement the desire for many features that people would want.


The simple answer is both. There is no need to sacrifice any usability for extensibility or the reverse. The system is designed with this modular purpose in mind and one of the main reasons I decided to take up this project is that many alternatives sacrifice one for the other.

To summarise, the editor base components should be easy enough to use that you could make a game without scripting a single line. The addition of community provided addons/plugins will make the experience even easier for those less experienced.

author=Red_Nova
What made you choose C# as opposed to, say, C++ or Javascript? People here, especially those who use RPG 2K3's DynRPG and MV, are used to either language. Not saying it's impossible to learn C#, but if you're trying to attract casuals, then the language barrier will be a big turnoff for those who are already comfortable making small edits and the like to


There are several reasons why I chose to build the engine in C#, I've built more primitive earlier versions in C/C++, but ultimately decided on C# for these reasons:

- Much easier to port to different platforms than lower level languages like C/C++
- Faster than languages like Python, Javascript
- I can integrate the game engine with the editor heavily which is based on WPF (The same toolkit Visual Studio is built on)
- C# has great runtime compilation and dependency injection
- It shares many of the great concepts of C and Java as language
- There are a vast amount of resources and libraries already in existence for .NET

(I don't really do the arguments for C# justice but I do think it's a great solution)

For scripting, I did initially consider Ruby but after tests and thinking about the way I wanted to integrate with the engine and editor it made sense to use C# as a scripting language. The Visual Studio editor can be downloaded for free and has fantastic features like built in source control, intellisense (Code completion etc). So you can utilise a well established development suite that would provide better editing facilities than any of the other languages.

I wouldn't say C# is much different to C/C++ or Javascript, anyone coming from that background would have a head start learning C# and may even be pleasantly surprised.

Ultimately C# will provide the best performing and most portable base for the engine.


author=Red_Nova
As for what I'd like to see, hm...

- An ability to enable/disable singular scripts in the editor would be nice. Testing for modularity is kinda tedious in Ace, and it'd be nice to roll back changes if a script I'm working on isn't working out without needing to manually remove it from the list.

- If there is some kind of error in an event (like a transfer command to a map that was later deleted), it'd be great to have some kind of highlight to indicate this, like give the event a heavy red tint or something.

- Creating some sort of base skeleton event that can be referenced from other events. I know that I currently have a "quick drop" room where I have specified events such as touch encounters I copy/paste to other maps. However, with hundreds of touch encounters placed, it'd be ungodly levels of tedious to edit each one of them if I needed to add a new event command or something. So having one superclass or skeleton event that I can edit once and apply to all similar events would be wonderful.


Great points here, I'm definitely on board with your enable/disable scripts idea. This would be achieveable and depends really on how granular you want to go. (E.g. Enable/Disable plugins like a custom battle system, or enable disable the individual components of that plugin?)

I like the idea of error reporting via visual cue on events, the C# plugin option would allow me to quite easily introduce a system to validate the input/output of particular plugins.

I completely agree with your third point; in fact this is effectively already implemented as each event is globally unique and not restricted to a particular map (You just specify in the map that it is there). When adding a new event to a map it creates an instance that can be easily shared between maps. This was implemented this way so NPCs could walk between map instances in open world scenarios.

Thanks very much for the input, I hope my response is well received.

Would love to hear more ideas and these are well noted.

Thanks
Dan


Cap_H
DIGITAL IDENTITY CRISIS
6625
The picture looks nice. I havent read the rest yet.
This looks smashing. I'd love to add some ideas of my own, but it looks like everything is covered already!

One thing I'm curious about is if the database is modifiable in the same way the editor is planned to be; ie, new database tabs and so on. The editor seems to be completely customisable, so does that mean I could add in a pre-made script, open the database and see a new tab there? I'm mostly thinking about this from an ease-of-use rather than a high-level functionality standpoint (since I understand that someone who knows what they're doing can tweak things as they like), since I am incompetent when it comes to anything technical.

You might also consider making a gamepage here at RMN (I believe they're a special type of page for editors/programs) so you can organize all your information into one place and people can follow the project and get notified about updates and such. You can also host images for it on a gamepage.
author=Kaempfer
This looks smashing. I'd love to add some ideas of my own, but it looks like everything is covered already!

One thing I'm curious about is if the database is modifiable in the same way the editor is planned to be; ie, new database tabs and so on. The editor seems to be completely customisable, so does that mean I could add in a pre-made script, open the database and see a new tab there? I'm mostly thinking about this from an ease-of-use rather than a high-level functionality standpoint (since I understand that someone who knows what they're doing can tweak things as they like), since I am incompetent when it comes to anything technical.

You might also consider making a gamepage here at RMN (I believe they're a special type of page for editors/programs) so you can organize all your information into one place and people can follow the project and get notified about updates and such. You can also host images for it on a gamepage.


Hey thanks for the reply. With regards to the database, that's exactly right. Because it's built on C#, you build your plugins as Class Libraries, the editor and database uses reflection for the data model. The core components built into the database will be built with the same system which gives the most flexibility. You also will be able to define the layout of the editors through your plugin allowing custom editor interfaces for database items.

(So in a Pokemon game you could have editors for Pokemon and NPC trainers with custom interfaces with the associated properties of a Pokemon game for example.)

I am in the process of getting the website put up with content, I do have forums online which is where a lot of the community input and public information will be. I'll look into the game page thing though thanks.
If a forum is available you should release it even to gather ideas.
author=Rukiri
If a forum is available you should release it even to gather ideas.


You can find the forum at https://rpgdev.co.uk/forum I wasn't sure about link dropping in here though.
Three things come to mind.

Script store. Give me the ability to search and download scripts from inside the editor.

Please please please let me rearrange the database without breaking everything. Like health potion is item #5, but I later realize the database would be better if potion was item #30 instead, so it can be next to other healing items.

Give me a way to unit test my scripts.
author=Rukiri
C# scripting is great, but if you want to pull in users an easy visual event system which you noted but should be able to create an entire game without C# (think RPG Maker here).

And be able to customize the UI appearance without a bunch of scripting, unlike MV and VX.
author=Ramshackin
Three things come to mind.

Script store. Give me the ability to search and download scripts from inside the editor.

Please please please let me rearrange the database without breaking everything. Like health potion is item #5, but I later realize the database would be better if potion was item #30 instead, so it can be next to other healing items.

Give me a way to unit test my scripts.


Hey thanks for the input.

A script store is on the roadmap as I want to have real tight integration with the editor and community made packages/scripts. I also don't want the process of finding and installing content to be tedious or difficult.

In terms of IDs it uses a friendly string to identify items so instead of magic numbers like 5 for a Health Potion it would be referred to in scripts and events as a name of your choosing (E.g. HealthPotion_01).

The order for the items in the editor is for aesthetics and can be changed by the user.

Unit testing for scripts is a good idea and something I will look into.
author=Bluefeathr42
author=Rukiri
C# scripting is great, but if you want to pull in users an easy visual event system which you noted but should be able to create an entire game without C# (think RPG Maker here).
And be able to customize the UI appearance without a bunch of scripting, unlike MV and VX.

Hey thanks for replying

There will be a UI editor in development soon so nothing is dead set and unchangeable, in terms of things like Window skins, the only thing RpgDev assumes is that every window skin has an XML file defines each corner, the centre and each side in relation to an image file.

There will be a set of common components (Input boxes, choice menus etc) but the user can also define their own custom components.

If you check back at the forums I will have updates relating to UI in the near future.

Thank you again for your input.
No problem. I'll be watching this project with interest.
Pages: 1