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!

Moggie

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!

Moggie

Doing the Things I’ve Always Wanted To

Sometimes you find the best of luck in the worst of situations.

First and foremost many of the elements surrounding my personal site are where I’d like them. I dropped Facebook and haven’t really had a use for it for so long the move was long overdue, I updated many of the things here on Moggie @ WordPress to make it more comprehensive, I started actually using Twitter rather than just posting everything there, and I’ve shared a number of new adventures as a result of all of this. (Including work in progress photos on Twitter, streaming over Twitch, and recording over on YouTube.)

While the last two aren’t specifically related to my personal site, if I didn’t have this very blog, which I started for the site, I wouldn’t have a platform to discuss these things.

Twitch was a bold move for me as, well, for many years I’ve wanted to do streaming/recording (lord knows why), and I finally made the push. This led to YouTube actually having a purpose as I needed somewhere to put the recordings of said streams. It also taught me many new things about both streaming and recording.

I remember the first time that I done a stream and I was messing around with OBS, tweaking settings, testing upload speeds, and doing all sorts trying to make the experience enjoyable for all involved. It was a lot of fun- but I was out of my depth in so many ways. I knew people who done streaming and recording before but I had no idea how any of these things actually worked. I did have some experience with encoding and compression and the like so that helped. But the first time out? I had no idea what I was doing. Which, looking back on it now, is hilarious given I have everything working as I would like it at the moment. Could stream at a moment’s notice I could.

If you follow the channel you may notice that there’s a good few videos on there.

As for the future of the channel who knows where it will go. At the moment I’m just enjoying creating, editing, uploading, and sharing the content. It’s not much work as I don’t have too many things going on and I get to play awesome games in the process. There is very little bad about the entire situation. I didn’t get to add some things to the channel as I was hoping but that is for many different, unrelated, and expected reasons.

I also learned how to code in C# so that I could use Unity for many a game project. None yet finished, or even close, but they’re in development, and it’s really cool knowing that I can even do that. Never was much of a coder past my old Visual Basic days. But here we are. It’s got a long way to go- but at least it has been started and is somewhat under way.

So, yeah, it’s been an interesting ride, I’ve got my site and related social media where I want it. WordPress is looking fantastic. There’s content available on YouTube. Twitch, Instagram, and Google+ are still very much open and viable options. Facebook is out. Etsy is sort of in but that is tied to commissions and the like. While it hasn’t all been rainbows and sunshine for the last twelve months- it’s coming along. I don’t know where I’m going next and I can’t guarantee that I’ll be putting out as much content as I currently am to YouTube but I will try! Got a few great games coming along in May!

Have a nice week, all!

Moggie

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!

Moggie

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!

Moggie

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!

Moggie

Developing with Unity (Pt. 5)

Character creation creation is a blast. No, that’s not a typo- it’s a week of work!

One of the things I’ve had since the very beginning is a very crude character creation system. It’s not pretty, it doesn’t have textures, and it’s basically a box- but it works. It also allows me to build a general framework for things like statistics, statistical formula, which values to save, which to load, which need to be set at the beginning of the game to a default value, and really how to get everything working when there is a reason to have a character creation system.

Recently I’ve taken the time to update all of this to something a bit more pretty and a bit more functional.

I’ve also added in some basic skills and skill levels so that you can actually unlock/learn a skill on your first level during creation and distribute some attribute points. However, these functions also leave a lot of room to build in things like different character races, traits, and other neat things like that. While, at the moment, I’m not planning to have those- it never hurts to have the ability to.

Low resolution background textures that look awful are the best!

Low resolution background textures that look awful are the best!

That and it doesn’t look like a completely horrid grey box on a black background. It’s now a grey box on a low resolution skybox texture. Improvement? Maybe! The point is that everything is roughly where I want it to be and there are some neat parts of it (like the skill choice complete with skill windows) that I can pull out and use in other parts of the GUI. This is probably as close to done as it will get until I start texturing. I am quite happy with it, it serves its purpose, it gives information, and it allows me to clear my values and start over when I make major changes.

The other thing that came with all of this was developing a way to make skills actually usable. Previously I would show a blank GUI.Button where the skill would be, but, no longer, it now has functionality complete with cooldown. All sorts of background calculations go on and calculate if you have enough mana, if the enemy is in range, if the cooldown is active, and so on.

Therefore, with the basic combat system from the previous post, and the improvements in this post, the combat is really starting to take shape.

You can wander around, encounter enemies, fight enemies, kill enemies, receive experience, receive gold, get hurt, get healed, die, save, load, and do many other things. The inventory system is also functional in the sense that it’s there but it doesn’t actually do much. However, it does display the gold value and items found in lootable objects can be added to it. The next step in this journey is to begin to build some kind of equipment system and to actually get those items to do something. Which probably isn’t as difficult as it sounds as I have all the values for the items already created and stored.

Then we’ll be at the point where the character is created, can encounter enemies, can improve their equipment, and can work towards levelling up. Quest systems and some kind of log to follow once all of the terrain bugs are sorted out. Then it’s onto story and such. Oh and dialogue, quest rewards, bosses, dungeons… the list is quite long.

I have to admit that I’m in a little over my head with this particular project but I don’t regret trying to do it. It’s a challenge if nothing else.

Have a nice weekend, all!

Moggie