Saturday, January 31, 2015

This is how games don't get finished..

So I did some research and I've been working on the inventory system for my game since Dec 6th. That's pretty much two months of work and today's update was to have been about it; but then I realized its been a long time and while I'm dedicated to finishing my game it would be really easy to just get interested in another project and let it slide off the radar.

This is how games don't get finished!  I know it because I have not finished a lot more games than I actually have finished!
SideQuest : A side project that lives in the depths of my hard drive tempting me to not work on the Rise of Dagon!

I'm not unique in this; every dev I talk to struggles with finishing projects. We all have hundreds of ideas that are exciting and would love to spend time on them.

War Runner was a "runner" genre game with tank based combat as the focus.
I have a buddy at work whom I partnered with to make a mobile game called War Runner (ios / android) last year, since that time we've tried to get another project going together. I think we've started at least six separate games but put them all aside as we quickly get turned off.

We even entertained trying to go back and updating War Runner as we've found a few items could be improved but we made less money on War Runner than the fee's it took to get it on the app stores.

Heck we've even thought about re-using the assets to make a different style game.. War Runner was a typical  3-lane runner style game.  While we were making it we really kept wanting to make a free roaming random tank game where you could blow up things as you drove around and had randomly generated missions pop up on your HUD.

But we can't seem to work on anything for more than 2 weeks before we both agree its just not feeling right and drop it.

The one exception so far was I started a side-project called SideQuest.

The concept for SideQuest was "side scroller meets Diablo" style game.  I was really excited about this to the point I put together the surface level with a village where the player gets their quests, and does their tasks like selling trash items, repairing and getting supplies. (Note: I didn't code in all the inventory and such just made the level, buildings, and placed the NPC's).

I also made a set of prefabs for the first dungeon level and was starting to make a movement controller for the character to prototype combat.
 
SideQuest dungeon looking very slick!

I also tried to share this one with my buddy but he wasn't able to get any work done before losing motivation and we moved on to other ideas for projects to work on together.  

However for me this is really an exciting side project that I really want to go back to when I can! I often imagine when the Rise of Dagon is done that this is the project I will take on myself next!

Also I have been working on a book cover for a friend of mine who wrote a Fantasy novel; and we thought it might be cool to do the cover in Unity 3D .. so I've been spending time here and there trying to compose this scene for his cover; but honestly we've been working on it for a year now and he keeps writing other books instead of finishing this one!

one of many possible book cover images
So yes my friends its not just game developers who  have side projects and can't finish things! Writer's have side-project-itis also!


So in the end though, despite all the temptation, and despite six or more weeks of work on the inventory system bearing fairly heavily on me I did not succumb to temptation of alternate projects this week. 

What I actually did was program in the drag-and-drop system for Rise of Dagon and made it so you can drag items from your inventory in to your equipment area as seen below:


And that is how games do get finished my friends; you work through those long dark slogs that are buried in minutiae that never seem to end! Because there is an end in sight and that ending includes a game that I'll be incredibly proud of once I finish it!

Thanks for reading, see you next week!

Saturday, January 24, 2015

Rise of Dagon ; Affinity Powers, Inventory Updates

This is going to be a big update today; I have a couple of items to talk about; Inventory updates being large, and the new Affinity Power system discussion.   Affinity Power's are the way that I've finally glued together my concept for the Magic system in Rise of Dagon in an interesting way that makes these powers more than simple spell schools.

This post might be a little TLDR for some folks ; if so feel free to either skip to Inventory or Affinity Power headings depending on your interests!

First though some quick comments about my move ;  last week I was moving and things went reasonably well. I did end up with no Heat and no Hot Water. And no one would come out to look at them as it was the weekend! I called the entire first page of top rated reviews on Yelp and not a single one would help.

Like a true engineer / independent / do it yourself guy I ended up doing some research around the house until I had a suspect and then used Youtube HowTo videos to isolate/verify and fix the guilty breaker fuses in my main breaker panel outside the house.  The problem ended up being one of the breakers was bad ; but did not actually 'trip' so it appeared to be good!

Inventory : Armor updates


So anyways moving business aside it has been two weeks and I wanted to share that the inventory system coding has been going really well.  The week before the move I had done some really productive programming on two evenings in particular and really got a solid start in to breaking the armor in to its proper design.

Friday, January 16, 2015

Rise of Dagon - Moving 1 week hiatus!

So I finally got my new house and will be moving tomorrow (Saturday the 17th) and therefore I will skip my devlog update this week. I've been busy packing and taking care of business related to moving (calling movers, turning on utilities etc) so its been a fairly non-productive week anyways!

See you the week of Jan 24th!

Saturday, January 10, 2015

Rise of Dagon - Potions and design considerations

If you are as in to RPG's as I am then the inventory is a big deal to you!  There's a lot of really cool stuff that plays in to a Role Playing Game when it comes to your character's development as it ties in to the equipment in your inventory and I really dig working on this part of the game.

One of the most difficult things to do while working on the inventory is to not go crazy implementing too many 'cool features' too early as that might cause me to have to refactor a lot of work if I decide to change things once the design starts gaining a bit of focus.


In the case of potions I added this week that concern actually came up several times in the code and once with the art as well!

I decided to have potions have two major qualities that help delineate what they are.

The first is what PotionType it is such as Health, Mana, Strength etc.

The second is the PotionStrength which is where I got in a little bit of trouble with over-doing things I think.  I decided it would be a good idea to essentially have an greater number of PotionStrengths than there are ItemQuality levels.

So basically if ItemQuality is broken in to  an enum like this:

Saturday, January 3, 2015

Rise of Dagon: Jan 3, 2015


The Rise of Dagon had a really nice start in 2014, but I am going to skip a January based 'year' recap because it was not started in January. 

Also I am going to skip a studio style yearly recap at this point because my indie journey also did not start in January.

So for today I simply bring you the latest and greatest Rise of Dagon update!

Firstly I have continued with working on the inventory system that I talked about last week. Given that I decided to work on the 'item inspector' elements and begin to implement some of the procedural loot system so that it could be displayed in the inspector.

So as you see in the first image (top of post) that we have an item being highlighted by a yellow mouse over highlight, and when the cursor is over it we now have a 'inspector' panel informing you what the statistics of that particular item is. In the screenshot I have generated a random 'common' quality longsword.  

In the next screenshot I have an image that shows off 4 different random items of differing quality.  

As you see for each item as it gets better quality information changes as well as the stats of the item are better.




This was done using the  IPointerEnterHandler, IPointerExitHandler interfaces in the new Unity 4.6 UI system.  I learned about them by downloading the 4.6 example project.  I do not recall seeing these interfaces listed in the documentation for 4.6 -- so I would definitely recommend digging around in those sample projects if you have not already there are some hidden gems in there!

So I implemented the two relevant methods as seen here and simple set my highlight color, as well as call a method on the player inventory to set the inspector properties of the item that was clicked on in the slotnumber:

public void OnPointerEnter(PointerEventData data)
{
if (containerImage == null)
return;
        containerImage.color = highlightColor;
        playerInventory.SetInventoryInspector(slotnum);
}

Then when done we set it back to the original color and disable the inspector until next time we need it:

public void OnPointerExit(PointerEventData data)
{
if (containerImage == null)
return;
containerImage.color = normalColor;
        playerInventory.DisableInSpector();
}

Finally I wanted to show off a little animated gif I made of a leather helmet that I decided to sculpt in to looking like a Raven molded in to the leather.  I ended up taking a screenshot ( as described last week) from a particular angle to use this as an actual icon for an armor set  - but it just looks cool all the way around so I wanted to share that on my dev log today.



Thanks for reading, see you next week!