As Ronin will be my next WIP, I’ve been doing some more design for it. I’ve not yet decided what I’ll be using, either C#/XNA or continue with Dark Basic Pro, all prototype stuff is being done in DBP and it is likely I’ll stick with that…or maybe shift over to Dark GDK.NET. I love how C# handles your projects and data. I’m trying to emulate it in DBP, but it’s not class based like C#, so it’s difficult to get an accurate emulation.
This project will be a lot more complicated than Abeyance, but for the time being I am stealing Abeyance’s media instead of spending time making Ronin’s. The engine is important at the moment…hence I’m not even at that stage yet.
Here is a diagram for how the engine will be built, it’s designed with C#’s class system in mind.
You’ll notice I’ve used ‘List Data’ as a class, in C# that won’t be an issue as it already has a list class, but in DBP I could use array lists, but I’ve created my own list functions, which I am already using in Abeyance. So if I stick with DBP a ‘ListData’ source will be necessary, One thing you might notice and you might like, ‘Party’, the Ronin engine will support multiple player characters in a party format. A maximum of 3 to a party, and there will be 3 types of characters in a party: Melee/Tank, Support/Magic and Ranged attacker. On top of that a character will be able to use stances, which is like my Threshold system for Abeyance. I’ve not posted details on the ‘Battle Manager’, but one feature of it will be to have weather effects. Some RPG’s use them, but not many, the most popular would be the Pokemon series and I know Final Fantasy XI does it too (Scholar has weather changing spells, but they’re not as cool as they sound) and you could add Skyrim to that list as you can call a thunderstorm with one of your Shouts. I quite like weather being effective in a battle. Ronin will have classes and one of them is ‘Privateer’, master of the seas, so the Privateer you meet in the game will be able to influence the weather. In the game’s lore a skilled Privateer can manipulate the weather to clear away boat crushing storms, summon the wind to move their ship and cast a storm to swallow their foes.
You will get to use a Privateer fairly early in the game, because the character, ‘Akai’ is the Ronin in the game and he is hired as a mercenary to protect a town from smugglers and serves alongside a Privateer. A sample list of classes in the game, though currently incomplete:
Samurai (melee/tank), Privateer(ranged), Ninja(melee/tank), Shintoist(support/magic), Warden(support/magic), Monk(melee/tank).
A Ninja in this will actually be a little like Shadower in Abeyance, striking from the shadows.
Now, what kind visual style do I want to go for? There’s 4 types of scenes I’ve got.
There’s ‘Rooms’, which looks like below (from my previous blog post)
The room wasn’t for Abeyance, heck it’s not even for Ronin, it was just created to get a visual style. You’ll also notice the bitmap font. It’ll be using them. Abeyance will be using this style for rooms with more than 1 level – like Keats’ house, so you could walk up some stairs and it’s easy to see just from the side rather than coding some fancy camera routine to deal with. ;).
Indoors – Perspective. This is what you’ll already be familiar with in Abeyance. This will be used for larger rooms.
Outdoors – Perspective. Again, what you’ll already be familiar with in Abeyance.
Outdoors – Open. This will be used for the world map, but also some scenes. Abeyance too will be using these, but only in 1 dream world, Keats’ sanctuary.
The other thing you’ll notice is ‘ScriptEngine’, which is something Abeyance lacks, I want to be able to code my game through scripting.
So you can already see why this is going to be a big project that’ll take forever to complete. Abeyance is small in comparison, but at least Abeyance has a number of the engine components Ronin will need so it won’t be as if I’m starting from scratch and I can cover the design as I’m going through Abeyance, particularly in solving problems I may encounter with Ronin.