Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411699 Posts in 69399 Topics- by 58454 Members - Latest Member: roeyskatt

May 19, 2024, 08:23:45 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe Rise of Dagon : A Classic Dungeon Crawl RPG
Pages: 1 2 3 [4] 5 6 ... 9
Print
Author Topic: The Rise of Dagon : A Classic Dungeon Crawl RPG  (Read 34259 times)
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #60 on: November 20, 2014, 07:47:25 AM »

NOTE: I apologize I forgot to cross post this this weekend as I've been busy packing up to move.  Please visit my blog to see the images this week!

http://punchypuncherton.blogspot.com/2014/11/rise-of-dagon-week-of-nov-15-2014.html

This week was a little low on productivity because Visual Studio 2013 Community Edition came out.

This was a really exciting development for me (and a lot of developers) so naturally I rushed out to download it the first night.

It ended up taking the full night to get installed and slowed my machine down a lot so I didn't get much done.

The next evening when I launched it said it was VS 2013 Express  .. which I though I had removed but I guess not?

So I had to remove that which took most of that evening, and then finally the next evening I reinstalled 2013 Community edition and now it is working properly.

So I thought I was set at that point but then I started experiencing Unity Editor crashes pretty frequently - which was not happening before.

So I swapped back to Monodevelop and the crashes are still happening.  So I started saving every 5 minutes .. which didn't work .. I actually had to make a change, quit Unity, and then load Unity to get anything to save.

Needless to say this was frustrating and very hard to be productive while this was going on.

In any case I persisted and got a few minor things done.

The first thing is I made some small improvements to my level loading code. I had previously implemented this loading with a fairly quick hack and found that it was not loading pillars that were not connected to walls so I went ahead and fixed that.

So the screenshot featured at the top shows a little section of room with freestanding pillars that I made to test that code fix.

Next up I was able to do a bit of work on some of the specular materials.. in Unity 5 beta I am using the new PBR default shader and I've found that something in the specular maps is causing some 'sparkly' artifacts to occur.

I was able to resolve this largely by going through the specular maps and using the Photoshop levels filter and make the whole thing darker by about 70%.

Then as needed in particular areas I did a select by color range and toned down other overly bright areas even further.

The takeaway I'm getting is that specular maps need to be much darker in general to look right in Unity 5 PBR mode!

Finally I was able to get some player targeting code done where I am able to find out which monster(s) are standing directly in front of the player so that when they press their default attack it will target whatever is in front of them.

This actually was tricky as I was using a physics collider box but it turns out (at least this is what I think) that I couldn't use the colliders when I a manually transforming the object around rather than letting physics do it.

I was able to figure this out eventually by reading the docs and swapped to a Physics.OverlapSphere as shown on the Unity docs and this did the trick!

So that was it for this week.

As an advance notice I am moving next Saturday so I will be skipping the update in favor of doing it the following week of Nov 29.

Thanks for reading, see you in two weeks!

« Last Edit: December 27, 2014, 12:09:17 PM by erebusman » Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #61 on: November 29, 2014, 06:21:56 PM »




As promised after a week break I have returned with an update.

I was hoping to have been moved the previous week but unfortunately the place I was going to was not ready yet. So that is still at some point in the future for me.


One of the big things that happened was the Unity 5 beta 14 release.  I updated to this release and it made a gigantic difference on the look of the levels to the point where everything looked like it was made out of super-shiny metal!

So I had to refactor a lot of the shader settings and found that they had swapped the default Unity 5 material from 'specular' model to 'metallic' model.

I believe they also massively ramped up the specular levels of everything in general. So you'll find that the screenshots look different due to tweaks I made; however I can't say this is the final look & feel because I expect things to change again as the beta isn't over yet!


Unity 5 Beta aside I've been focusing on some polishing to the core game loop.

The core game loop is in .. in case I hadn't said that before!

So the core game loop being in is great but it was missing a little bit of polish that made some of those things not so easy to see to the player.  For instance if a player had died, the only way for you to know that previously was the red health bar looked 'empty'  , which it could also look pretty darn empty if you had only 1 health left for example.

So I now have a skull replace the player portrait when they are dead to let you actually know that particular character is dead.

Also there are now damage blood splashes on the character portraits, with the amount of damage you have received

Over the next week I plan to add more polishing bits as I mentioned above that provide feedback about what is going on to the player and improve the game play in general.

So now I'm going to be tightening the core game play loop and try to get game play to that really tight and fun spot that it needs to be at.  This is a really exciting point to be at for the project, but there's still lots of work to do that is not part of the core game loop.



So for the past two weeks we have the changelist:
first pass character portraits added to GUI
animated damage splash on character portraits
animated damage number indicator on character portraits
monsters now face player when attacking at all angles
migrated from legacy animation to mechanim system
added monster attack animations
added monster death animations
added monster miss animations
end game condition for party death added
skull portrait for dead character condition added
end game condition for party victory added
first pass end game menu added

Thanks for reading, see you next week.
Logged

Infernohawke Entertainment
surt
Level 7
**


Meat by-product.


View Profile
« Reply #62 on: November 29, 2014, 07:16:35 PM »

Where does Dagon come into this? It doesn't look fishy/watery at all.

Or is it a different Dagon?
Logged

Real life would be so much better with permadeath.
PJ Gallery - OGA Gallery - CC0 Scraps
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #63 on: November 29, 2014, 08:30:46 PM »

Where does Dagon come into this? It doesn't look fishy/watery at all.

Or is it a different Dagon?

Hey surt,

Thanks for asking.

So there's what I think is the original Dagon from east semetic Mesopotamia as detailed here on wikipedia.

Then there's the Dagon of H.P. Lovecraft again wikipedia info here

Mine is neither, but was influenced by both in my decision making process.

The Dagon in Rise of Dagon is an elder dead god that is trying to return to the fantasy universe that The Chronicles of the Dead Sun takes place in.

I had designed a fair bit of the plot and back story for Dagon before I chose its name. I wanted Dagon to look really  creepy - and yes I am a big H.P. Lovecraft fan anyways so no shame on that I admit it: it influenced my mental imagery process. 

But once I settled on the general look I did some googling for old god names from our history and that's when I found the Mesopotamian Dagon ; and realized H.P. Lovecraft had simply borrowed from history also (I hadn't know that previously)!

What's possibly further interesting (and more unique) is Dagon is part of a duality god; the final conflict in the destruction of the previous Universe culminated in Dagon and the good god (unnamed at this point) merging in to each other in their final conflict the good god impaled their combined body with a god forged weapon creating a big-bang that seeded the new universe that my game takes place in.

That's all backstory that will probably never be told in-game but it is what helps inform my design about the game, its gods, and the game universes origins.

Thanks for asking!
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #64 on: December 05, 2014, 07:57:31 PM »

This past week I updated to the new Beta 16 of Unity 5 and have been also house hunting.. despite that I got a really nice amount of work on the players inventory system for the Rise of Dagon!



So things are looking really good at the moment but I need to put the code together on the back end for this to all be useable .

This week I focused on the layout and trying to get it to scale right at different resolutions.

I also watched a few tutorials which were generally decent but I noticed that people don't seem to know about the ability to add Layout components to your UI.

On the left portion where the 'paper doll' slots for inventory is I have manually positioned the inventory slots; but on the right hand side the grid of actual inventory slots is done with a Unity Grid Layout component.

This is super handy; you do not have to spend a lot of time messing around with making things line up in code.  You add the component and put in a few parameters .. and bam! You have a working grid layout.

There is also a nice horizontal and vertical layout components; the menu bar at the bottom in the shown screenshot uses the horizontal layout!

Definitely check those out if you are using the new 4.6 unity GUI.

Other than that I will continue working on the inventory this week hopefully with the ability to drag & drop icons between slots this next week. I have never done that before so it may take a little work. .Its also not something in the new UI so I'll have to probably make my own IDragable interface or something to that effect.

As a side note I am at least tentatively going to do Ludum Dare 31

I should probably post a series of posts on my blog here and posts on the wordpress blog there as well as I go along.

Thanks for reading, see you next week!
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #65 on: December 07, 2014, 07:39:42 PM »

BONUS UPDATE:

Just a quick update mid-production-week I participated in the Ludum Dare 31 48 hour compo and created DEATH POLICE 3000

http://ludumdare.com/compo/ludum-dare-31/?action=preview&uid=31427

DEATH POLICE 3000 is a satire based on the current social issues in the USA ... shooting of unarmed civilians by our police force most frequently black males but also homeless and mentally ill men are targeted as well, and combined with the old movie Death Race 2000 where sport was made of killing people.





WARNING: Features blood, killing innocent people including cartoon violence.

Gameplay is very simple; attempt to underprivileged people while avoiding killing privileged people. As long as you don't kill too many privileged people you will probably win! (AKA satirically the game is somewhat rigged like in real life)

There is no way to die; just try to get the most kills you can in 30 seconds.

If I had more time and was able to work more in to the game I would attempt to make a better challenge for the player than just a timer, some threats to avoid; perhaps try to kill people while not being filmed or to try and break iphones and cameras to destroy evidence and such but those were things I did not have time to get in!



The satire comes in at the end depending on if you "win" or "lose" you get slightly different messaging about your actions.

Thanks for playing, I hope you enjoy and please vote and leave feedback!



NOTES/BUGS:
- Made with Unity ; requires a browser that can run Unity web plugin and permission to do so
- QUIT does nothing in web mode
- there is nothing stopping you from running out of bounds of the screen at this time
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #66 on: December 14, 2014, 11:00:39 AM »




Wow what a week!

Firstly if you had not already seen I participated in Ludum Dare 31 last weekend. I did the 48 hour competition version which means I had to make a game from scratch in 48 hours all by  myself.

I was really pleased at the theme "the entire game on one screen" and I was able to quickly and efficiently utilize Unity 4.6 to make the game idea I had planned on.

I really didn't hit any roadblocks in the process and the 4.6 Unity GUI went a long way (in my opinion) towards making this a really smooth process. I have been using the 4.6 GUI since it came out in beta so I don't blame you if haven't gotten up to speed on it yet; but I think most developers will find it reasonably easy to work with and suitable for many purposes.

I think it still has room to grow - but as a 1.0 version of the new GUI I'm very happy!

In other new I also found out last Friday (the 6th) that I was not going to get the house I was trying to buy and the people who had been selling it had a lien against them so they could not legally sell it.

So I ended up doing some house hunting on Saturday and Monday this week; and found a house I liked.  Then I ended up spending the rest of Monday evening filling out paperwork to put in an offer on the house.

In addition to all that the new parts for my PC I ordered from Newegg (two weeks ago!!!!) finally came in and I spent Friday night and this morning (Saturday the 13th) putting it together.

Everything went smoothly but it was a complete new system build as I have an old PC from about 5 years ago it was time to do a complete refresh!

So effectively I had about three evenings to work on the game; in which I did get a few things done!

Firstly I have expanded the players UI.  Particularly I have blocked out the area on the page for the player to have their personal attributes displayed when you hit the "i" button to go along with the inventory, character stats and the 'paper doll' to equip your armor.

Right now it looks a little bit too 'techno' (see screenshot at top of post) but I am still working on getting the first pass done and working from a programming standpoint- I'll polish the UI later.  Polishing before functionality is complete is often wasted time I have learned from previous experience.  (Yes, yes, I still can't help myself sometimes but I pat myself on the back when I can behave- and I'm doing that now!).

I also spent some time with Unity's 4.6 demo UI project where they have implemented a Draggable and a Dropable style script.

I learned quite a bit by doing so ; but at the same time their implementation stops short of being fully a drag & drop system.

In fact you can only drag in one direction!  And once you drop it; you can't drag it out.

The I combined the scripts in a new way to make what I thought would be a drag & drop script for any inventory slot - and it doesn't work!

So I read their all the code they have; and it all makes sense to me. I read it again; and it still made sense.

I assume something is intercepting one of my calls that I'm not aware of or something; but in any case from a 3-day productivity standpoint that's about all I had time for!

So this week I am settling in to my new PC and reinstalling programs, but I was careful to get Unity 3D , Photoshop, Visual Studio 2013 community edition all up and running first so I should be on track for continued development of The Rise of Dagon

Thanks for reading, see you next week!
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #67 on: December 21, 2014, 08:23:18 AM »

This week I got to enjoy sculpting in Mudbox on my new system.  I definitely noticed the difference.  Things seemed smoother and I was able to work with much higher sub-divisions without having any kind of performance issue.

Skull VDM I made in Mudbox:



It was a little weird, previously I had to sub-divide until just before I noticed a performance problem and do my sculpting just below that level.

Now with my new system I just subdivide to the level needed for the model and everything is much smoother.

So firstly I made a skull on a plane and then used it to make a template to do further carving with called a VDM.

So the VDM once made properly can then be used as a brush to scuplt with so I made this pillar that might be used on a wall panel as part of a decoration for architecture to add atmosphere.

I was really pleased with both how much easier it was to do the carving and then the use of the VDM was smoother/easier too!


Pillar stamped with VDM skull


 I also did some further experimentation with a block and some painting in Mudbox to make this block of stone that has skull's embedded in it.



It looks pretty neat but practically speaking its not a prop I would be likely to be able to use in the game.


Finally I spent some time further on the inventory system.  Now if you click on any of the character portraits to launch the inventory it will open it for that specific character and in the upper left it will show the characters Name, Character class, character race, and character level. At the moment I haven't implemented leveling so everyone is set to level 0 in case you were wondering why it shows this guy as level 0.



On the right side I made the inventory icons a little smaller to fit more inventory in a smaller area and then I used a test bit of code to randomly insert up to 50 1h or 2h weapons in to the inventory - or occasionally it will leave a blank spot.

I currently don't have any armor icons so I'm definitely going to need to work on that soon!

So that's it for this week.  For next week its Christmas holiday weekend in the United States where I am at - so I will probably either skip the update or do a very small one.

Thanks for reading!
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #68 on: December 27, 2014, 12:08:34 PM »




This week I mainly focused on a process to create inventory armor icons for the players. I was able to previously purchase some weapon icons but I have as of yet not been able to get a good resource for the armor sets.

So I was able to work out a process that got a little faster as I went along which is really important if I'm going to create a bunch of icons by myself it can't take a really long time or the game will take too long!

So the chest armor took the longest being about two evenings to get it where I liked it.  The pants took a day. And then I was able to get the boots and gloves done in one day.

What I hope to do now that I've been through those pieces is to use the low poly version to sculpt additional armor variants very quickly speeding up the process even further.

I realize these are not incredible sculpt's that would look great in Thief game or something but they come out as armor icons very nicely.

Otherwise as time permitted I focused on some troubleshooting I had been putting off.  Previously I had to manually hit a 'load level' button once the main scene loaded ; given some of the changes I made this week now the level initializes on its own when you either start a new game or hit continue.

- Got automatic level loading in; previously you had to click a 'load level' in to the game once the game started
- You can now swap between different character inventories without having to go out of the inventory and back in
- added GUI "X" icon to close out inventory
- added supporting code for X icon to close out inventory

I also made some improvements to the inventory code to support swapping in between characters.

This next week I will probably work further on some armor icons and inventory code.

Thanks for reading, hope you had a nice holiday and a happy new year!
Logged

Infernohawke Entertainment
agersant
Level 4
****



View Profile
« Reply #69 on: December 27, 2014, 07:54:01 PM »

Great devlog, keep up the good work!
Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #70 on: January 03, 2015, 12:56:06 PM »



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!
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #71 on: January 12, 2015, 06:57:41 AM »


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:



   public enum ItemQuality
    {
        COMMON,
        RARE,
        SUPERIOR,
        ELITE
    }

And the PotionStrengths initially looked like this:

    public enum PotionStrengths
    {
        TINY,
        SMALL,
        MEDIUM,
 LARGE,
        HUGE,
 FULL 
    }

This became a problem in two areas.

The first is when I use the item inspector I color the title of the item according to its ItemQuality.

I should have stopped right there because 6 PotionStrengths is more than 4 ItemQuality levels; and that was going to make my code more complex, or I would have to ignore strength as a factor when it comes to evaluating a potions quality.

Of course though it makes all the sense in the world that a potion that is really small/weak is lower quality than a potion that is big or full ; so I should have put a bit more consideration in right then.



But no - I barreled on and didn't worry about the bit of code to print out the item title yet. I started working on the item icons next and it was going fairly well.

I have a quick screen here to show I kept the process pretty simple; I actually modeled this in Silo 2 and then used the "Subdivide" feature in the program to "smooth" it out and took a screenshot within the Silo 2 program!  I did not bother to do a 3d Render as that would have taken a lot more time for production and it looks good enough - especially as you see in the last shot I overlayed and applied a mild Photoshop effect (took literally 5 seconds) and it looks great!

So as I was iterating through the design's of all the potion bottles some things occurred to me when I got to the 4th bottle:

1) For every additional potion strength I do I have to come up with another at least mildly interesting potion bottle to visually display that this potion is different to the user (read I was raising my production time )

2) For each of those it will take up additional video memory that has to be stored

3) It was becoming clear just from the sheer number of bottles I was modelling that this was just too much variety; it was going to become inventory clutter rather than useful.

So I took a step back and decided to keep it down to 4 PotionStrengths after all going with

    public enum PotionStrengths
    {
        TINY,
        SMALL,
        MEDIUM,
        BIG   
    }

Which ends up being convenient in several ways and implements something I like in theory which is each one of those can represent a potion that increments its strength by 25% so you have potions that can "heal" or "restore mana" of  25%, 50%, 75% and 100% making their perceived usefulness and quality match the ItemQuality levels perfectly!

As well thiss makes it more convenient when you are in a difficult fight to make a decision to use a 25% or 50% potion rather than a 100% every time because that's all you have available.  If all you had was a 100% potion you might save it until your health is extremely low because you want to get full use out of it.

Also this lets me give out healing and mana potions more frequently as the stronger ones will be rarer and therefore perceived as more rewarding (and hopefully exciting!) finds for the player.

Also .. if you hadn't figured it out yet.. if I stick to this strict scaling of 25% - 100% values .. the potion retains its usefulness no matter what level you are!

When I had 6 PotionStrength levels I was thinking to scale the potions for hard coded values like 10 health, 25 health, 50 health and so on.  In a percentage paradigm the potion will retain an equally relative value to your level through out the game!

And when i realized that I knew I had the right answer and fixed the code to match the 4 level quality and kept myself from modelling further bottles and taking up more video memory!

Thanks for reading, see you next week!
Logged

Infernohawke Entertainment
deab
Level 2
**



View Profile
« Reply #72 on: January 12, 2015, 08:57:39 AM »

Enjoyable read, and looking great.
Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #73 on: January 12, 2015, 10:01:22 AM »

Thanks deab, much appreciated!
Logged

Infernohawke Entertainment
Vaxx
Level 0
**


View Profile
« Reply #74 on: January 12, 2015, 11:25:02 AM »

Please take a look at the bottle again. Right now it looks like its a red vase because you filled it up to the top, even the glassy neck area which cannot contain any fluid at all. I don't want to be picky but have you tried just to fill it up to the middle and leave the rest transparent all to the top? Might look much better and more realistic.

Source of inspiration

Great read so far. Keep it up!
Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #75 on: January 12, 2015, 12:36:15 PM »

Please take a look at the bottle again. Right now it looks like its a red vase because you filled it up to the top, even the glassy neck area which cannot contain any fluid at all. I don't want to be picky but have you tried just to fill it up to the middle and leave the rest transparent all to the top? Might look much better and more realistic.

Source of inspiration

Great read so far. Keep it up!

Hi Vaxx,

Thanks for the great feedback. You are right - I just colored the entire bottle red. 

I see what your saying now ; the assumption is that this is a 'vial' that is clear and you are viewing a fluid level makes it look weird because if that were the case then the top portion of the container would be fully transparent near the cork stopper right?

Do you feel like there is something I could do that would give you the viewer the feeling this is an opaque bottle rather than a glass vial so that you wouldn't have the feeling it looked wrong?

The reason I ask this is the production time to render out a transparent glass surface would take more time and if I can make a small adjustment to the art to change the perception I could use that time to make other art assets if you see what I mean?

In any case thanks for the great feedback I'll take that into consideration.
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #76 on: January 24, 2015, 11:49:11 AM »

NOTE: I was moving last week so skipped the Jan 17th update:

===========================
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.


One challenge I deal with is that all of my base classes for items do not extend Monodevelop; the reason for this is simple of course - you can only inherit from one class and I need the inventory items of each kind to all extend BaseItem so I can address them more easily in code via lists or dictionaries of BaseItems. Ultimately though this ends up creating a design issue in that I need to be able to pick up the Sprite for the icon for the inventory item - which is part of Monodevelop!

So I ended up making separate Icon classes such as IconLightArmor, IconsHeavyArmor, IconsMediumArmor.  These classes have helper methods that can retrieve or look up the icon sprite by the sprites internal ID that I have assigned and then the GUI can do the same. So these helper classes are good - but in the case of something like potions its pretty simple , there are only so many types of potions right?


But in the case of Armor now were talking about a whole new level of complexity for several reasons:

Firstly we have to determine what kind of BaseItem it is (equipment)
Then we have to determine if it is by Light, Medium, or Heavy.
Then we have to determine its Slot such as Helm, Chest, Leg.

So when I ask for a new piece of random equipment I have to figure out that its going to be a Light Helm and have the IconLightArmor class find me specifically a helmet icon -- meaning that icon assignment can't be as random as the initial item generation.

So this ends up being a fair bit of pretty close to Boiler Plate kind of code in each class for Icons. I did enough work in fact I was able to make it all generic code except for the actual Sprite assignment (because of course the Cloth Helmet and the Plate Helmet icons are unique) and the unique IconID's in each class!

I felt pretty pleased with myself when I got this all working and the screenshots you see inline here are showing some icon inspector windows

It was also at this point I realized I had not put any kind of Armor rating on the armor, so it was a very easy task to go to the BaseEquipment class and add a new integer for ArmorRating and then add the armor to the random item generator and the inspector!

There is still a little bit more work that needs doing when it comes to Armor as you'll notice the item names are in ALL CAPS as well as they aren't exactly great item names; but I am reserving that work for when I get in the Prefix and Suffix modifiers for equipment and then finally mix in those prefix/suffix modifiers with naming improvements and well have the full system rounded out at that point.

Affinity Powers


So finally I'm announcing something a bit unique about the game and that is the Affinity Power system!

Previously you may have noticed on the inventory an area that was labelled "resistances" and that is now changed to be "Affinity Powers"



The fantasy universe of the Chronicles of the Dead Sun takes place in a primordial/elemental universe that is inverted in its composition from our current universe.  Instead of  the void of outer space we have in our universe - the Dead Sun universe is filled with matter.

Planets are in fact holes in the endless matter, some of these holes might be the size of a city. Some of the holes are the size of planets, and very occasionally there are holes that are immense..

The point of this at the moment for the Affinity Power discussion is that this primordial universe this game takes place in is intertwined or even overlaps the 6 Primary Elemental planes.

The Primary Element planes are:

  • Fire
  • Earth
  • Water
  • Air
  • Light (Positive)
  • Dark (Negative)


As players are created, and as they level they may either inherit or place points in their Affinity Powers.

Depending on your class, and its abilities Affinity Powers will grant you potentially multiple benefits.

Fire Mage Example:

If you are a Mage type class and have points in the Fire affinity ; then naturally your Fire spells will be more effective.  This is not to say without points in Fire that they would be useless; they would simply be at their base level. A high Fire affinity spell might in fact have a higher critical hit range as well.

In addition this Mage with a high Fire affinity would be more resistant to Fire based spell effects and attacks  against them.

Finally for this example a Mage is a generic caster; but a Mage who has invested in Fire affinity might gain access to specialized Fire spells beyond the core spells available to the Mage class.

Spells have not been designed at this time so this area is very up in the air at this time as to what this will end up looking like.

Water Warrior Example:

Lets also say for example you had chosen the Tortuga race (which is an humanoid turtle race). Being a Tortuga grants you a starting bonus for Water affinity - and over a few levels , or perhaps even with some items bonuses you had raised your water affinity to a high level you would (similar to the Fire Mage) receive a resistance benefit to Water based magic attacks against you - but furthermore healing spells based in the Water Affinity would grant you a larger healing benefit than those who lacked Water affinity that you have!

Furthermore if you had weapons, or armor that had water based power or properties on them you might expect to do more damage with them or gain higher critical ratings the higher your personal water affinity was.

So a Tortuga Warrior with an Ice Sword might be able to both hit for more water damage, and if a freeze proc occurred expect the freeze duration to potentially be longer (if the water affinity is high enough).

Faction Example:


Finally Affinity Powers are not merely magical ; they are also social in effect affinities  -- and like in real life if you share an affinity with someone you are more likely to get along with them!

This area is not designed out yet because I have not placed in NPC interaction yet but the plan is that if you go to a merchant with a really high matching affinity they might offer you an extra magic item for sale that matches the affinity you share.  Or they might give a slight discount to you because of the shared affinity.


In summary Affinity Powers are meant to have a broad effect for your character and react against how your character is built.  While you can not control the random drops you will get in the procedural loot system - it will certainly be a really cool moment when your Dark Mage finds a Longstaff of  Death that grants +10 Dark power!

I wanted to combine this in to something that was a multi-faceted and meaningful attribute for the player rather than just a number on a character sheet that you will not care about at all.

Players interested in min/max will potentially build a party that takes advantage of Affinity Powers such as a Tortuga Healer with Water affinity and seeks out Water affinity gear will make possibly the most effective healer in the game!

Thanks for reading, let me know what you think of Affinity Powers?  See you next week!
Logged

Infernohawke Entertainment
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #77 on: January 31, 2015, 11:27:15 AM »

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!
Logged

Infernohawke Entertainment
FuzzySlippers
Level 0
***



View Profile WWW
« Reply #78 on: February 07, 2015, 04:36:05 PM »

Could you solve some of those inheritance woes by using interfaces? One nice thing is that Unity can now officially do GetComponent on interfaces so you can use them a lot more aggressively and you can implement multiple.

I've combined interfaces with non monobehavior components to avoid too much boiler plate code. You can do stuff like say handling the PickUpObject interface call with a StandardIconPickUp() component that fulfills the request but then on the InspectObject if you need something special handle it directly.

You can also get tricksy with PubSub sort of dispatcher setups to combine it with Monobehaviours though Unity examples does this kind of thing with SendMessage sometimes which I dislike. I spend way too much time pondering and redoing this kind of thing. Searching for that perfect implementation can be just as bad as side projects.

Your world building sounds neat. Makes me think a bit of Arx Fatalis setting which I always thought was critically underused.
Logged

erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #79 on: February 13, 2015, 10:09:26 PM »


This week was pretty crazy when it came to productivity - for some reason I was just hitting goals one after another and was able to get a lot done!

I would like to think it was just from pure awesomeness, but I suspect that I have reached a certain velocity in my inventory system and therefor was able to make a lot of changes in a short time due to having set up much of my system already.

So I was able to create icons (using in part some 3D assets I purchased, and also some items I modeled myself) and then add earrings, rings, necklaces, and arm armor to the game.


Each of these items of course is part of the procedural loot system so there is a very wide variety of items that can be generated out of the combinations of prefixes, suffixes and magical attributes that can be on a weapon.

I was also able to program in the ability to restrict the type of item you can equip according to the slot it goes in. So previously you could drag an gauntlet in to a helmet slot, this is no longer the case.

Further more I was able to get my message system up to speed and create your basic RPG combat log window.  Right now I post some messages to the combat log are for debug purposes, like when a monster sees you -- this will eventually become apparent through either sound design or animations or a combination of those, but for now its a nice way to make sure that the monsters have spotted me and should be behaving as such.




Finally Unity delivered the first RC candidate of Unity 5... RC means "release candidate" meaning apparently they feel it has enough features that they are done adding new features and now they just need to make sure everything is as bug free as they can make it before it ships.

So I took another pass at tuning the graphics as every beta it seems to have gotten out of sync a little bit with my settings or the tone mapping script changes and becomes invalid etc.



Thanks for reading see you next week!
Logged

Infernohawke Entertainment
Pages: 1 2 3 [4] 5 6 ... 9
Print
Jump to:  

Theme orange-lt created by panic