Developing with Unity (Pt. 9)

The problem with choosing how to develop the next features is choosing how to develop the next features.

While there has been a drought unequalled regarding the development of any of my projects in Unity that doesn’t mean there aren’t things you haven’t already seen. Such as the early development screenshots from the transition to Unity 5. As I’m sure I said previously, the transition wasn’t that bad as it was mostly on the editor side of things that everything went a bit awry. The code, which was the bulk of the project, was pretty much functional from the moment the new version loaded.

That said, there hasn’t been that many developments since then for a good few reasons.

The recently updated Adventurer's Camp.
The recently updated Adventurer’s Camp.

One of which is that I’m still questioning how I want to approach the development. Such as- do I keep the party or have it a one person thing? Many of the newer RPGs don’t feature parties and those that do are usually, in the case of Dragon Age: Inquisition, or Final Fantasy XIII, heavily reliant on tactical AI to get the others to do anything. As in, the days of things like Final Fantasy VI where you had a four person party that you could control each turn are long gone. Mostly. But it’s something I like- so I’d love to do it if I could.

The next set of issues lies with the skills. I don’t know how I want to do those- skill tree or no? Multiple levels or no? Upgrades or no? Who knows? I don’t! If I did I wouldn’t be having these many problems. But, the skills are also a big and expansive part of the project so they take a good long while to update/change around. Which is a lot of time wasted if done in error.

The information screen (where you can learn about the game world).
The information screen (where you can learn about the game world).
The character screen (complete with party members, skills, functional inventories, and functional equipment).
The character screen (complete with party members, skills, functional inventories, and functional equipment).

Finally, the last set of issues, of sorts, lie with the assets. As I’m not that great at 3D modelling and probably could never learn how to do it in a reasonable time frame (if at all) there’s little to no chance of providing my own assets to use. Though I have found some great free Unity-provided assets and I do have some great general fantasy assets in mind- there are no concrete choices yet. I’d like to get some, I’d like to get some others, I’d like to really get some of them… but there are so many choices. Many are required, though. Which opens up another can of worms- the integration of each set of assets together to create something that doesn’t feel stitched together.

Still I hope you enjoy the new development screenshots.

The Expertise screen (with categories for the different resources you can gather).
The Expertise screen (with categories for the different resources you can gather).

Truth is, I’d have done a video but this version of the game just isn’t ready for a video yet. Having switched back to first person, from third person, and using a new first person controller at that, basically means I need to figure out how to pause the character motor in menus. Otherwise you’d get sea sick trying to watch me navigate the menu system.

All of the above taken into account, if I could get a functional battle system, and actually build a new area, this would be playable. Funny how that works. Where the project is going from here, when it will be finished, if it will be finished, and many other questions will lie unanswered for a while to come. But, I will, as I do, remember how the whole C# thing works. Also, how Unity works. So this isn’t likely to be the last you’re going to hear from me regarding Unity.

Have a nice week, all!


Upgrading to Unity 5

I’ve been excited about few things as much as I was excited about this the other night.

I wasn’t too interested in the upgrades that came along with Unity 5 (mostly as I never read the upgrade notes) but after somehow finding myself looking at them the other night, realising a lot of once Pro licence features were now in the Personal licence, realising the Personal Edition was a thing, and generally being all a flutter with the various things that I could possibly now do with it- I just had to get it. For those who have downloaded previous Unity versions this one seems to be a bit heavier, takes a bit longer, and downloads a bit more from the internet during install.

The standard assets in Unity 5 have been updated and now feature many awesome things that you previously didn’t get. Such as high quality water and ocean prefabs. There’s also a few trees utilising the SpeedTree features. Not to mention a few really useful models, some prototyping things, and general awesomeness abound.

Unfortunately it doesn’t include some of the things that were included in the previous standard assets like Skyboxes and the number of textures it offers is a wee bit shy of what it used to offer. However, if you still have the assets from Unity 4, or if you have a project that uses them, you can simply copy them over and they’ll update mostly without issue to the new version. There are some things that you’ll need to go through and sort out (or at least I did) such as the Skyboxes which you need to fix for the HDR settings. It’s pretty simple, though. They literally give you a button that you press and it makes it all nice and shiny again.

However, when all is said and done- the fifth version of Unity is beautiful. It really is. There are some really nice additions to the base functions, the character controllers for both third and first person are massively improved, there are some nice test assets (including cars and jet planes), and if you have a nice collection of assets otherwise you will be able to bring this all together for a great project. I’m really stoked about the water, the new shader options, the new physics options, and the whole SpeedTree deal personally.

For those who visit the blog regularly you’ll know that I have a few Unity projects on the go at the moment.

I have the first- the very first thing I ever built in Unity- which I likely won’t finish/update. I also have the second and the major project (I guess you could say) which has been a bit shaky for the last month or so. Besides finalising the combat and equipment systems and creating a new area it’s pretty much playable. However, I don’t know what I want to do with it yet. I have already revisited the skill system once and I don’t necessarily want to waste the time doing so repeatedly due to my inability to decide on a path and stick to it.

The major questions in my mind are all about the progression in the game. Is it going to be story based? Mission based? With a party? Or on your own? I have all the relevant systems implemented to do all of the above but it’s about deciding which to stick with and follow. Which causes me no end of stress.

I have, finally, kind of, decided on the assets I would like to use. So that’s something at the very least!

Have a nice week, all!


Developing with Unity (Pt. 8)

Skill systems, fine silk ties, item systems- these are a few of my favourite things.

You remember in the last Developing with Unity post that I discussed how I feel that the item system is usually the make or break for a game for me? No? What- you mean you didn’t read it?! What kind of audience are you?! I jest. I love you. Like a man loves fine silk ties.

Or like this man loves fine silk ties.

I’m also rather taken to skill systems. While my poison is usually something along the lines of a point or progression based skill tree- I am pretty flexible. If the skills are good or interesting then I will take to it regardless of whether or not it features some way to invest in, enhance, or completely change skills. This is why, after playing around with a battle system script some, I started thinking of ways to revamp the skill system for my characters. I wasn’t bold enough to implement a point based system but I did give each class its own particular flavour.

I’ve worked a lot on the individual systems in the game trying to polish various things and get them to a “near final” state. This includes the equipment system where the entire set of items you will find in the game are now in, once equipped they are saved and loaded when next you play, the basic initial equipment is now added to the characters on creation (and all associated statistical bonuses), food can be eaten, junk can be looked at with a contortion of disgust, and so on. The tooltips are separated and besides some functionality which has been left out for the time being- it’s all there. The functionality that isn’t there is so ridiculously easy to add in as well.

The inventory is the biggest pain in my shapely rear at the moment as I don’t have any way to save it. Well, no, tell a lie- I could save it- but I don’t want to. Why? Well, many reasons. One is that while I could use the same save and load method I used for equipment for the inventory it’s a lot of work. It’s tedious. It’s time consuming. Which doesn’t put me off at all. But I don’t want to think of a better idea later and then curse myself for not adding that in instead. Or, worse still, adding it in later and spending more time on it.

Given that you can acquire, equip, and use items and that the demo isn’t going to be incredibly long (the first one anyway) there isn’t really a need to have a persistent inventory yet. When you get deeper into the game and past a couple of quests then it will become a necessity.

I’m sort of hoping that you can make one team and keep using it over and over after the first demo. In the first demo it’s all about getting a feel for the game.

By the time the second demo comes along (if it comes along) the inventory system should be saving itself and/or loading itself. But until then it’s not really on the high priority list. Seems like a silly thing to say, I know- but it does make a strange sort of sense. To me at least.

Have a nice weekend all!


Developing with Unity (Pt. 7)

Items, equipment, and all things you can loot from corpses! Or chests.

Following on from the previous post I began the project anew. All old scripts, all old assets, and all old project files were scrapped in favour of something a little more ambitious. I switched focus from a single character third person ARPG to a three person party RPG. I’ve included some concepts that wouldn’t be too out of place in a CRPG and really I’ve been working on systems more than anything. Character creation is much more difficult when there’s three of you, there are classes, and there are class specific skills included!

But the character creation and party abilities are more or less finished now.

I’m going to be adjusting the size of windows and presentation and things like that in the future. But for now it works, it has bells and whistles, and it saves correctly. Loads correctly, too. Be a bit awkward if it didn’t. The next task was the HUD which is pretty simple in this case as there aren’t many screen elements you need/want as there’s a whole menu elsewhere.

Behold- camp! Also, GUI. Also, character statistics!
Behold- camp! Also, GUI. Also, character statistics!

Which brought me the biggest beast of this, and, well, every project I’ve worked on thus far- items. The wonderful things that make you yelp in delight or snort in disgust. There are many different ways to work on them, to implement them, to provide their bonuses, and to separate their bonuses between different item classes. To be honest, this is the one section of the project that I absolutely dread as, to me, the items and the loot are often the make or break for the enjoyment of a game.

There are a lot of questions in my head when I think about items. What makes a really good item? What makes a really poor item? How do I make really good items stand out without diluting the feeling of awesomeness when you find one? Is that last question even a possible scenario? Many, many things.

With what I’ve got currently outlined in my project files I don’t have a huge amount of equipment, but I do have crafting, and I do have items you can’t craft which are inherently good, but there’s no reliance or need for either. You don’t need to craft to get good items. But, equally, you don’t need to rely on good drops for good items. I’ve also started working on the master script for every object in the game that can drop equipment, items, gold, crafting materials, and more. There’s also a partially working equipment system which you can throw a few items into. I’ve got to finish that and then find a way to save the inventory you have and equipment you’re currently wearing to the save file.

The good news is that most of the menu is done, too. All sorts of goodness already exists and there are parts I can reuse from the character generation script to make it much easier to progress to a fully working menu. It’s a lot of work- but it’s less than it would be if I couldn’t reuse things or if I didn’t have a project file drawn up.

After these elements are all fully working and available it is time to tackle the wonders of a combat system. Which is going to be a pretty big part of the project in itself.

Have a good week, all!


Developing with Unity (Pt. 6)

Full speed… reverse?

As odd as it may seem considering my recent progress with my Unity project I am thinking of starting over. Fresh. Something new. Something different. Or, as is more likely, the same but better than it currently is. Now, before you brandish your pitchforks and torches- I have my reasons! Let me explain! Oh, why won’t you let me explain?

To be honest I didn’t really know what Unity could do. Or what I could do with it. So I went into this project pretty much blind. I didn’t have any of the resources or the statistics or just about anything planned out. I’ve been winging it the whole time, which, so far, hasn’t worked out too badly. However, as I add new features like skills and the components attached to those features it is starting to become somewhat… tedious? Cumbersome? Unwieldy?

As an example think about any skill from any game you’ve ever played. It has a cost, sometimes a cooldown, sometimes a duration, and it can generally be improved. In this example that is four new variables that need to be introduced. For a simple skill. Which, while it is easily added to the code, it is not initialised with the rest of the statistics unless we start a new character, or add in something to set those values. So, every time I add a new skill I’m adding several new values which, as I haven’t planned them, are pretty much made up on the spot, which then I need to get working or else the GUI and keybind and everything else doesn’t work as it should.

While (as noted above) this is all very easy from a coding perspective it’s a more difficult experience for the testing and implementation phase(s).

Therefore, if I had just a simple framework and had something to work off of it would be a lot easier to do. Now, while I could also just draw up the framework and add it to this one, which wouldn’t be overly difficult- I want to trim a lot of the fat out of the code. I want to get all of the bloated code and strip it out completely.

That and I haven’t really thought about where I want things to go and how I want the character to progress. Plus, I do want to add classes with class specific skills and some other things that will make it a lot more enjoyable to play. Or test. As the case currently is. This doesn’t necessarily mean a lot of work for me in the short term as a lot of this is coding related and I can still use the bits that aren’t overly bloated with unnecessary code. It does mean I would be starting again from scratch.

But I reckon within a couple of hours I could have a basic and working character creation up and running.

To be fair, much of the time, if not half of it so far, was spent testing new components and working out all the bugs and various errors that a simple script can introduce. Not always. Some just work. But only when I sacrifice a goat to the Goddess of Harvests under the first full moon of every month. So, sadly, not very often. I don’t think it will be too detrimental at this point as most of what I have is just systems and statistics. With a framework, a set of statistics, and an actual reference I could probably get through it several times faster.

Have a nice Sunday, all!