Showing posts with label Unity3D. Show all posts
Showing posts with label Unity3D. Show all posts

Saturday, May 28, 2016

Level Editor update, questions about early access, Kickstarter failed


As you may have heard (probably not because no one reads this anyways) my Kickstarter failed!

I had a particular roadmap planned out to reach video production gameplay goals for the Kickstarter campaign but now that the campaign has failed I have had to re-evaluate what features I need and in what particular order.

Had I been able to fund my project I would have proceeding in particular direction and had considerably more resources available to me.

Now that those resources are off the table the question at hand is given this is a single player RPG can I go to early access?

I feel that going to early access with part of my single player campaign is a fairly bad move - players will grind through that rather quickly and then be crying out for more content that is going to take a considerable amount of time for me to produce by myself.

Doing that would hypothetically result in an initial good release but would be followed by a lot of negative feedback/reviews from customers who might not be happy with my pace of updates.

User created content can far outstrip my personal ability to produce content ; but without a level editor there will be no user created content!  Given this I felt the best way to proceed forward would be to pivot my focus towards the level editor.

The first step of doing this was to tackle a task I had been putting off which is to "refactor" the level editor into a much more manageable architecture.

I had designed it on a 'as I need' basis and literally thrown functionality in anywhere I could to get things moving for the Kickstarter.

But now I need the Editor code to be solid and easy to work with in the sense of extending it and adding new features, but also in the sense of troubleshooting/debugging any issues that come up.

So I spent approximately the first 30 days after the Kickstarter refactoring all the core level editing functionality to point at the Level Loader class.

The Level Loader of course .. was meant to load saved levels in to the game.  But as you can imagine as you are editing - you are literally loading a level ... on the fly!

Previously I had "on the fly" editing being done in an Editor class, and final "in game" loading only in the Level Loader.

There was also another type of loading which was "inspector based loading" where you get into the individual details of any one grid square and change those details.  This represented a 3rd place code lived to load elements of a level.

So after refactoring all this - all loading is done in the LevelLoader now!

Having achieved this I then added several new features which I demonstrate in this video:

- ability to have an in-game preview window
- ability to toggle to a full screen gameplay mode
- ability to drag & drop monsters in to the game
- ability to toggle a skylight for ease of editing or previewing actual dungeon lighting conditions
- new create level dialogue with configurable elements
- a new player arrow icon - with a emissive texture to make it easy to see regardless of lighting conditions

Other work I did that is not shown:

- refactored the save/store/loading of levels into the local users directory structure ; this ensures users can save their levels to disk where they have permission ; it also gives a default place where I can look for levels to load that the user has created
- added ability to set custom save level names
- added loading dialogue that presents a drop down list of all levels available to load
- fixed quite a few bugs
- refactored the GUI to be more streamlined/minimalistic (more work to do here in the future)

So my next set of goals is to add even more functionality to the level editor; some of these additions should happen pretty quickly because they are just similar to functionality that I've already demonstrated here.  Other items of course are more unique and will require specific work to implement.

Thanks for reading, see you next time!

Wednesday, February 17, 2016

Unity 5.3 vs 5.4 beta lighting differences


I've recently tried upgrading my project, The Rise of Dagon, to Unity 5.4 beta 3 and it was such a disaster I lost a complete day of productivity and I had to revert my backups and go back to Unity 5.3.

The biggest problem was Substance support seemed to have gone completely out the window with the normal maps of substances not compiling at all and the metal/specular side of things gone completely through the roof so everything looked 100% shiny/metallic and therefore almost black with shiny reflectivity.

Despite that I did want to see what screenspace reflections might do for my project so I went ahead and gave this another upgrade try this weekend and things went a little bit better.

Substances still do not upgrade correctly - although the normal maps are compiling.  I had to bake the substance texture out and create my own material for the material to work in the game.

While I have not had a chance to really play with screenspace reflection feature yet I did notice some really dramatic (and good) differences in the lighting and shadowing that's going on.(Check out my comparison screenshot at the top.)


The Rise of dagon  uses almost completely real time lighting because the level is built at run time and therefore can not be baked. The reason for this is to eventually permit my players to have a level editor and built their own levels while in game - so they do not have to download Unity and build a level out and bake the lighting themselves.

This image shows more 5.3 lighting problems with the odd rim of light on the floor  where it shouldn't be.


For some reason in 5.3 real time lighting has consistently had problems with drawing good shadows, and spotty results in lighting where things would get washed out .. almost blurry.

In 5.4 beta things are looking really sharp and good - almost exactly the way I would like them to so fortunately this time it was worth the work of upgrading to the beta.

This is particularly fortuitous for me because I'm hoping to start working on my kickstarter video in the next week or so and having really shoddy lighting and shadows was going to be a complete nightmare from my perspective.

I had really hoped the lighting in Unity 5 would be a slam dunk out of the gates but it's been a real roller coaster ride, trying to get some level of consistency  and it seems each .x release has made significant changes - but never really 'getting it right'.  Many of those changes really seemed focused on the GI baked problems - particularly trying to bake lighting can take an exorbitant amount of time!

I had considered a hybrid approach where I would build my levels one way with baked lighting, and permit my customers to build it at runtime and use only realtime lighting but I realized this approach would cause me to let the realtime side of things slide out of sight while I focused on the baked approach.  The fact that baked lighting has been almost impossible to work with made that decision much easier though.

At this point I truly fear Unity won't get lighting 'right' until the 6.x cycle - I'm hoping I can get my game on some build like this 5.4 where it gets it close enough to the look and feel I need and then lock in and finish the game up.

Sunday, January 31, 2016

Second Level Set shaping up & various progress news

So my first post of the year comes rather late ; but I have lots of great things that have been going on!

Firstly I have been integrating a new dungeon set into the game!  I purchased this level set and I was very surprised to find something of this quality level that suited my game so well!

Here we have an example of the new level set with the Servant of Dagon meeting his end by the Cemetery Gates spell:


As you see it looks just brilliant! The materials are well done and high resolution and as you see the lighting and shadows from the spell really show off nicely against the rich texture set.

Furthermore I've been spending quite a bit of time polishing the lighting in many different respects. 

One thing I've been working on is getting the right mix of dark and light in the dungeon.  This shot shows off something close to what I want when the player has no light :



As you see the dark is truly rich and foreboding ; the player has very little ability to see outside of the given light sources and would create a good level of suspense forcing the player to stick to the lit areas in fear of what lies in the dark!

What you can't see in these stills is the work I've been doing on the lights to make them softly glow and pulse to simulate an actual fire. Each light source has 2-3 point lights that are colored and animated different giving different yellow/orange highlights and pulse/flicker at different rates as well as cast shadows that move.

All together its looking really good !  There is some difficulty of maintaining perfect lighting when swapping level sets though ; supposedly PBR materials are supposed to help solve this problem but at this time I still find it tough with my 2 level sets to get a lighting level that makes them both look absolutely perfect..

Its a tough decision that I'm putting off right now but I could hypothetically create some "per level" kind of lighting variables that get updated when you load between level sets.  This would allow me to really nail the lighting levels of course but I'm being stubborn and working with the materials and the light settings themselves right now to try and achieve that rather than resorting to this shortcut.

While there are still many other items to show off  I'm going to swap gears and discuss what's really been keeping my head down for the last month or so and that is I've been working very hard on composing my Kickstarter.

I've run into enough surprises and challenges while working on it I'm considering writing a few blog entries on those challenges.

Some areas of interest that I think might be interesting is Taxes (yeah ugly topic but very important!), Rewards & Fulfillment (slightly more exciting but risky and complex), and the Fine Art of Estimating Your Project Goal.

The actual project goal has been incredibly enlightening to me - I really always thought it was just a matter of filling in blanks on a spreadsheet but I've now done 5 different sets of spreadsheet calculations based off of different assumptions and come up with different numbers.  Each set of assumptions could be totally legitimate or completely wrong!

Anyways.. I'm unclear on who reads the posts or what interest level there would be on these kickstarter articles ; I know a lot of people see the word Kickstarter and close the page right away so please leave a note or drop me a line if your interested in such material!


Saturday, September 26, 2015

QuestFlow 1 now available, free, open source

As discussed last week on my blog here and reddit  I have written QuestFlow 1 is a Quest and Dialogue system for Unity 3D 5.x line written in C#.

QuestFlow 1 is Apache 2.0 licensed

If licenses are TLDR for you: yes you can make a game with this and sell the game if you wish!

QuestFlow 1 includes


  • scriptable object's for Campaign, Quests, NPC's, Conversations, Locations, and Achievements
  • Unity Editor Scripts for creating the scriptable objects
  • Unity Editor Windows for editing the scriptable objects
  • an Observer pattern based Quest Event Manager script to use in your implementation of the system in game.
  • some generic NPC icons to get you started prototyping
  • a sample scene demoing the QuestEventManager


Quest Flow 1 does not include:


  • A gameplay implementation.


----------------------

The bitbucket git repo:
https://erebusman@bitbucket.org/erebusman/questflow-1.git

----------------------
If you just want a Unity package to import grab this package:

https://bitbucket.org/erebusman/questflow-1/raw/ad44510d6b39326047bc543034ed424f59e11ee2/QuestFlow1.unitypackage

----------------------

The git overview page contains a readme that has a little bit of usage instructions to get you started.

There is still lots of room for this to improve including external file serialization and loading but right now this is a "handle everything inside the unity editor" type of solution.


There could be a game play implementation that went along with this however I just see that as something so personal to the game your writing I'm not sure if that's is really the target audience for this or not?


I expect a total of 3 people will download it and I'll be the only person to ever use it ; but hey its free so surprise me?!


Comments/discussion welcome.

Saturday, September 19, 2015

QuestFlow : A Unity 3D Quest & Dialogue Editor, free?

If you've been following me at all you know I'm working on a classic dungeon crawl RPG called The Rise of Dagon and as such I have need of a quest and dialogue system in my game.

Today I would like to not bore you with the details of how I typed so diligently on my game, but rather offer up a discussion about the QuestFlow system I'm writing and that I am looking to at releasing it for free.



As such I wanted to discuss what my needs were that bring me to this decision and then discuss with you (if you are interested) in having / using this system? And if you are interested what I might need to do to make it better for you in the short, mid and long term?

If you ever get a chance to work in professional software development that uses the Agile methodologies you'll come across this thing called a "user story".  A  user story describes what the end user  expectations are about the software you are about to deliver.

When I sat down to write (or purchase) a quest system for The Rise of Dagon I realized I needed to create a user story of what my expectations were going to be otherwise I might spend some time doing the wrong things and my time is limited and valuable so .. yeah lets not waste it!

The user story I came up with was:
"I need to be able to implement a quest system that allows both myself and my game playing customer the ability to create a full quest campaign with NPCs, Quests, Dialogue's, Locations, and Rewards. 
Ideally this system needs to be able to be integrated to the actual game.
Bonus points for the ability to re-use it in my next game!"
And so I went looking for a system that I could purchase that would do this for me on the Unity Asset store, and I also went Googling for solutions as well.

What I came up with was a lot of systems that almost worked; but ultimately one big clinchers came up again and again:  my game playing customers would not be allowed to use it without them also paying!

And this is critical for me because end user modification is huge ; if your game takes off and your gamers are able to create their own content ; they will create far more content themselves than you will ever humanly be able to do!

No system that required my gamers to go buy a hundred dollar software like Articy Draft for example was going to "add value" to my game.

Rather requiring a 3rd party purchase would just put the first 3 nails in the coffin  of modding for my game as far as I'm concerned!

While I did find some assets on the Unity asset store that could have let me make my game - I could not have freely distributed them to my customers; or I would have had to do extensive work to integrate the 3rd party utility to interface through my games UI.

I came to a point where I was considering the approach of using a 3rd party dialogue system called Dialogue System by Pixel Crushers but after prototyping a quest with it and then spending 2-3 days reading documentation I came away with a feeling that they were trying too hard to please too many people with endless 3rd party support options. Ultimately the system feels bloated and integrating it in to my game would probably require creating some sort of bridge between Unity and the LUA back end scripting that they use.

If I was willing to do all that (and I was) I should also be willing to spend a few days considering a homebrew system that was written purely in Unity and C# and that wouldn't require any dancing around with endless 3rd party systems.

So this week I wrote the initial implementation of Quest Flow and realized it was going so well that this really does seem like the way to go after all.

Additionally because I have the requirement that my gamers be able to use it freely; I may need to post it on the Unity Asset store as a package (or a git repo, or an importable package included with the game etc).

Given that .. we come to my post today .. if I'm going to be posting it for free then I should probably consider opening it up even further - to you!

So if I were to do such a thing, I realize that I myself would have questions like : what license, what features, does it do this thing I want it to do?

And given that I'm trying to develop games to SELL to MAKE MONEY .. it has to be a license that won't get in my way of doing that, nor should it do so if you want to use my quest system or distribute it to your customers!

So I wanted to open a discussion about the following topics:


  • What license would be most attractive for this? Currently I'm leaning towards Apache 2.0
  • What features would you like to see in such software - considering at least initially it is intended to be a complete solution within Unity in C#.
  • Should I in fact make this a fully open source project and post up a git repo for it and invite people to collaborate?

Obviously I'm okay with any other discussion as well but these are the ones top of my mind at the moment.

Where it is at right now:

  • I have written base classes for NPCs, Locations, Quests, and Conversations
  • I have written Unity Editor windows for all of the above


What do I plan on doing next?

After writing the Unity Editor windows I realize that this system really needs to work together better and I'm tempted either take a more detailed combined editor window approach that integrates all of the items together OR alternatively utilize the new Unity GUI to create a full featured Quest editor.

The advantage of using the Unity GUI to doing it is that anyone adopting the system could simply use this for themselves and their gamers by implementing it in a scene.

This second approach feels most right to me because of the end goal of user modification; but maybe I'm not thinking everything through here?

Thoughts?

Saturday, September 12, 2015

How I used the Observer pattern to implement doors, pressure Plates, pit traps, and levers

If you are like me at all when it comes to "design patterns" you might sort of shake your head and get a little lost in the architecture jargon that most of the texts, books, and websites often take when they are talking about them. As such the first two years of my programming experience I really didn't "get" patterns!

Well not too long ago I stumbled across the excellent book Game Programming Patterns by Robert Nystrom (which is available in all sorts of formats including on the web for free so check it out!) and finally someone was writing things in a way which made sense to me!

What I think really made the difference was that Robert was speaking about the patterns as they relate to game design - which is something I think about constantly - so I could totally relate to the concepts.

What struck me as interesting upon finishing the book is  that I had been creating/using recognized patterns on my own and I didn't even know it!   For instance I had implemented both a Singleton and Observer-like pattern for my Enemy Manager.

Thursday, September 10, 2015

In the middle of a long slump Indie Insights reinvigorated me with a simple lets play session for my game..


I've been working on the Rise of Dagon since April of 2014 and to be honest with you I had hit that really long deep trench  in the middle of a long project where daylight disappears and you completely lose sight  a project and have no hope of seeing the end either.

I still believed in my project - this is still the kind of game I've always wanted to make - but lately it literally felt like every step forward was becoming exponentially more difficult.

Then something totally unexpected happened to me:  a gentleman by the handle of Highsight who runs a Lets Play channel on Twitch for Indie Games in progress called Indie Insights reached out to me to offer to play my game, The Rise of Dagon, live on his channel.

To be totally fair Indie Insights has a fairly small audience (which he was upfront about) so realistically this was not 'my big chance' to show my game to the world or anything .

Rather it was just what it sounded like ; a chance for a tiny bit of exposure and maybe some helpful feedback.

Much to my surprise though the mere fact that anyone had reached out and showed interest in my game reignited my creative drive and spark! All of a sudden instead of feeling like I was carrying a ten ton heavy-thing with me; I was able to crank out what would easily have looked like a month's worth of work in the next two weeks getting my game polished up and presentable with several new features!

I had of course planned to do these things anyways - but all of a sudden I had really strong short term goals and a very demanding reason to make them happen!

I've linked the youtube video for his playthrough here in the post - and let me tell you I was actually really impressed with Highsight's feedback during the play through.   Particularly helpful was his style of 'stream of consciousness' feedback of just saying out loud exactly what he was thinking as he played through.

Sure : many things he talked about I either planned to do or had thought about doing but all of a sudden many things became painfully obvious I needed to do right away.

One great example is his feedback about right-click equipping items .. I had this on a list of  things to do "one day" but I realized that both because I had not implemented a 'paper doll' system yet and the confusion about inventory management in general that really I simply had to make my inventory much easier to use.

And that's a funny thing for me to admit because one of my goals had always been to make my user interface better than the old classic games like Eye of the Beholder and Dungeon Master - yet here I was neglecting it to the point that it really distracted/detracted from a lot of the game play how inventory management was difficult for him to figure out.

Otherwise though something that really inspired me was his ability to pick up on my core design for the look and feel of the dungeon.  It's super easy to get so locked into tunnel vision when you are making a game that you completely lose sight if your game looks and feels like you want it to - or you are just telling yourself that it does ..

Highsight's feedback about my dungeon's look and feel and the movement controls really inspired confidence that I was doing it right and that confirmation is HUUUGE for me! If the dungeon and movement don't feel right - this game is not going to be worth playing!

Another cool thing came out of him playing my game - and that is I've attended the live cast of the show a few times now and participated in giving feedback to the other developers whose games are being played.

Even when it's not your personal game being played - you learn things from watching Highsight play and comment on what' hes experiencing; and then comparing your observations and feelings about the game being played vs his.  Then at the end of a game play through he takes feedback from the audience  - which further helps spur discussion that may differ or match your perceptions about the game.

It actually reminds me of when I took art classes in college; and we would go around at the end of class and provide critical feedback to each other in a really constructive and thoughtful way.  This is something that's really intensely difficult to get as an indie and I enjoy it immensely when I can!

In summary I have to send out a heart-felt thank-you to Highsight for taking the time to show interest and play through my game - he made a big difference in my motivation that I'm still seeing the benefits of  - and that I'm very grateful for!


Saturday, August 15, 2015

Teleporters and Treasure!


This was a really nice week for productivity for me : I was able to get in teleporters and lootable treasure containers in to the Rise of Dagon.

While the lootable treasure containers did take a bit of code work because of the slightly complex nature of handling 4 different characters inventory including being able to drag & drop on portraits, in to hands, into the inventory, and into the equipment area where your traditional 'paper doll' for all your armor and such that has very specific slot requirements - yes despite that mouthful - it was only about 3-4 hours of work to get it in as I was able to copy patterns I had in for the rest of the inventory.

Also I was able to optimize/refactor a little bit of inventory code to be better while I was in there so it was a double win!

The teleporter was  pretty easy --  it literally took more time to make the particle effects than the code!  Its really nice when features that you worry about ahead of time end up being much less painful to implement than you had feared!  (either that or I'm slowly getting better at this but I don't realize it?)

I still need to integrate teleporters in to the level editor but I should be able to get that done by the end of the weekend!

That's it for this update - see you next time!

Saturday, August 8, 2015

Cemetery Gates Spell named

Special thanks to everyone who submitted names, there were actually quite a few really good ones ; Undertaker came up several times and was a very close call but in the end I went with Cemetery Gates for this Dark Affinity spell pictured in today's animated GIF




Special thanks to +Pedro Rocha for the spell name!

Also of note over the past two weeks I've been taking  the second past of UI polish and making the UI look less like Unity's default GUI and more like a fantasy RPG UI!

You can see it in the GIF above and also pictured here on the character creation screen:

New UI sprites/textures as shown on the character creation screen


I think it will definitely need more polish but it definitely comes off as more suitable to the game now that I've moved it away from unity's default!

Otherwise I've been working on polishing the core game in to a demo-able state. I have received two requests to demo the game one live, and one via twitch.  Once I have an idea what night the twitch broadcast is going to take place I will do an update via twitter  (follow me for notification: @CarlKidwell1 on Twitter ).

For the live demo it will be on August 18th at the Sacramento IGDA Meetup you'd have to sign up for the meetup to come but if your in the area and would like a preview your welcome to come!

Otherwise I've been doing some really focused refactoring/cleanup of my code as well. There are quite a few areas where things got really muddy during the design phase for player movement, and combat for the player and monsters -- also a bit in the inventory area.

I had tons of boiler plate code in some of those areas to handle if(player1), else if(player2) , else if (player3), else if (playe4) and then each brace would have 20+ lines of code for some complex inventory action.

I was able to take quite a few of those and parametize them so that only one statement is needed and it operates on a reference to the player that was passed .. greatly simplifying the code and making it easier to read and maintain - which I think was a really critical thing to do now. The project is getting pretty big and the more out of hand I let things get the more effort its going to be to maintain and make further changes to!



Sunday, July 12, 2015

What should I name this spell?

What should I name this spell?

I thought I would reach out and ask for some audience participation / help on naming this spell I'm working on today!

Spell Effect Description:

This spell is an "in progress" work from the Dark Affinity school of spells (black/dark/evil style magic).

The spell idea is to have a group of skeletal hands rise from under the target and attack it.

The red cloud is just for atmosphere and ambience .. the Skeletal Warrior pictured standing in the cloud in this case just happens to be the monster I caught in it for this screenshot - he is not actually part of the spell effect!

My initial name idea was "Army of Darkness" as a tribute/easter egg to the film of the same name but I'm worried that I might run in to trademark or copyright issues if I do that?

So .. now taking ideas for a cool spell name!

Terms & Conditions:

By submitting a spell name you hereby grant me rights to use it royalty free in my game.

Bonus

No promises.. but I hope to take your name/handle down (if you want) and include it in a portions of the credits, I'm already planning on doing a kickstarter and having some of the stretch goals include user design contributions so this is something I want to do anyways!


Good luck and thanks for the ideas!


edit: Updated image -- particles are more 'bloody' red less 'pink' lol.

Sunday, July 5, 2015

Animated GIF's and Substance Painter Tutorial, and more!

Hello,

I'm doing kind of a media dump today - - I've done several really good updates over the past few days including a video tutorial Substance Painter using the shield from my main menu, some animated GIF's showing off the new spells I worked on this week and a quick video showing off some of the spells from last week!

Substance Painter Video Tutorial:

Animated GIF's

Earth Crush ; one of my Earth Affinity Spells:

Earth Spike is another Earth Affinity Spell shown here:



Finally a quick look at the Ice Affinity spell IceBolt



And this video I show off the Firebolt and Icebolt spell a little more and discuss the spell system but I created the video last week so if you follow my G+ feed you may have already seen it:


Saturday, May 30, 2015

The Rise of Dagon main menu now in Unity 5 PBR!


So I've been wanting for a long time (yeah about 1 year) to create a compelling main menu screen for The Rise of Dagon RPG that I've been working on.

It's something that I knew would take a lot of energy and talent .. perhaps more talent than I actually have.

Fortunately things came together the past two weeks between Unity 5, Mudbox, Substance Painter and Silo 2 3D tools that I have.

Oh yes and a crap ton of very time consuming and difficult art production!

While it does look good I actually had a few problems with it. The main problem near the end was the PBR textures metallic values are not coming across in Unity 5 as I expect.

Check out the main menu as seen above - then check out this screenshot of the shield as being textured in Substance Painter the metallic rim around the shield - and the pounded bronze metallic sun in the middle are dramatically different!



After some Googling I found suggestions that perhaps I had not placed reflection probes or light probes in my scene (I hadn't) and that those might fix it (they didn't!).

In the end I was not able to figure out how to get the metal's to look even remotely accurate but I hope over time with future experimentation that I will figure that out. (but hey if you have some ideas leave me a comment I'd love some tips!)

I will say Substance Painter was a real pleasure to work with once I figured out how to do the layer masking (seen in upper right hand corner) it was really slick and easy to work with!  As long as you have 'substances' (similar to a material) to paint with you are ready to do some truly impressive texturing with some of the most powerful and awesome tools I've ever laid my hands on.


Also I had hoped to cause the text of "The Rise of Dagon" to glow or have some other interesting particle effects as I purchased Particle Playground 2 -- but I ended up having significant problems there too -- apparently to do the particle effect with a sprite you have to mark it as read/write enabled and turn it in to an 'advanced' import type in the Unity import settings for the sprite and then set all the settings yourself manually.

I was able to do all that - but somehow only the bottom half of the text showed up and I was running out of time to post my shot today for #screenshotsaturday so I went with what I have for the moment!

So despite the fact that it looks quite spiffy -I do sincerely hope to make it even better and leverage the learning experiences in making it towards making The Rise of Dagon look even better!

Thanks for reading, see you next time!

Saturday, May 16, 2015

How I implemented my first spell in to my Unity based RPG

Today I'm going to do something I haven't done before: attempt to share my complete implementation of a feature (my Spell system) in my Rise of Dagon RPG (made in Unity 3D) including some source code!

I know of course I'm no bloody genius and my code hasn't any unique ideas in it - in fact if your a particularly great coder you can probably spot some things I've done poorly.  (hey if so drop me a note - I'd love to make improvements!)

But also I hope that a few people might find it interesting - maybe you haven't gotten in to the new Unity UI, maybe you are just starting out on an RPG and seeing how someone else went about it will help you think your way through yours?

Maybe my game's code is a train wreck - and this will be a great laugh for you?  Perhaps a great example of what not to do?

As I'm attempting to share the complete implementation - this is going to be long! So hey if your the TLDR type; pan through the screenshots and bail now!

Otherwise .. here we go!


Saturday, April 4, 2015

One Year Into My First RPG - The Rise of Dagon




If you follow any of the Indie Game development communities in various of places like Reddit, TigSource, or even the forums on game engines a piece of advice you'll see fairly often is "don't make an RPG/MMO for your first project".

Doing so is widely considered a recipe for failure ; there are just too many things you need to learn that adding the complexity of an RPG or an MMO to the mix pretty much guarantees that you will fail, and fail super hard.

I was lucky enough that I didn't fall in to the trap of picking something too big to start with; instead I made a match 3 game, then another, and another. And then I made a few other types of small games. Eventually I made somewhere between 7-11 smallish games in the past 3 years (depending on do game jams count?)!

At the tail end of all those games I created a game that I spent a lot of time and money on ; but the publisher whom I thought was going to take the game - didn't take it.  And then I struggled to find anywhere to put it at all.

In the end that game was a gigantic flop - I think it sold a total of 4 copies.
 
After much introspection I finally decided that it was time to go ahead and do what I had wanted to do from the beginning - which is make an RPG.

I resolved that going forward I need to spend my time on a game that I can say I'm glad that I spent my time creating it - even if not a single person ever buys it.  Because in the end I might indeed just be making this game for myself.
 
So this is the story of what's happened in the year since I started that journey.  What I've learned, how far I've come and where I think I have yet to go.


Saturday, March 28, 2015

Mudbox Painting Tutorial on Servant of Dagon model

Hello,

To follow up on the set of tutorials I've been doing the past week I am doing a diffuse painting tutorial using Mudbox 3D today using my Servant of Dagon model.

I go over some basic painting tools, how to approach using reference, and paint a new texture from start to finish in an exploratory fashion


Sunday, March 22, 2015

Servant of Dagon - looking better in game (SOLVED)

Yesterday I mentioned that the Servant of Dagon was not looking up to the quality level I had expected in the Unity 5 Game engine.

This morning (fresh after some rest!) I took another look and found that by default texture compression had been selected for this model's texture.  After removing the texture compression he looks much closer to the intended quality levels as seen in this shot:


I moved him a little closer to the camera here to get a bit more detail in this shot showing through, he looks quite nice now (sharper and more details)  ... nasty compression, we hates it my precious!

Saturday, March 21, 2015

Rise of Dagon : Servant of Dagon


This week I wanted to work on getting a new monster model in to the game, but it takes a gigantic tonne of work to do all the 3d modelling, uv mapping, texture painting, sculpting, rigging, and animation as you can imagine!

However I decided that I had to try and do this  - so far if you've been following I've only been showing one enemy in screenshots, the skeletal footman.  While I hope everyone loves a good skeleton it was simply not nearly enough visual variety for people to remain excited about over the long term!

So I began a mad scramble to put this guy together - giving myself a goal of doing it in one week. Thankfully he's been on my design list for a while and I knew much of what I wanted out of the model.  Dagon is the evil god of the universe in this game and he has both dragon / serpent as well as darker cthulu like qualities.  So these Servant's of Dagon are a reptilian race who worship him and act as his agents in the game.

Back view of model

Realize of course I'm a guy with a full time job, a wife and kid and I do all my dev on the time  I can squeeze in between all of life's other commitments so were talking about 1.5 hours a day MAX and maybe 4 hours per day on the weekend.

I did not get him fully animated so you could say I failed my goal - however I did get him in game with the beginning of an idle animation.  Having set such an aggressive goal I was able to stay very focused and having got a nice looking model in game in such a short time I am really pleased!



What's a bit odd (to me) is he looks much better in Mudbox than he does in Unity 5. I'm not sure why as I brought over high res materials and normal maps etc. He doesn't look bad either - just not as spectacular and I can't be sure if I'm doing something wrong or if its just how it goes?  After seeing the Blacksmith demo video from Unity 5 I can't help but feel I am doing something wrong and losing out on visual fidelity if I knew the right buttons to press!

If you have any hints or tips on how to improve my characters look in game drop me a line I'd love to hear about them!


Saturday, March 7, 2015

The Rise of Dagon : Pits, Brazier's, Unity 5.0 released, and more oh my!



Last week I shared the new Portcullis that I was able to get in to the level format and editor for the Rise of Dagon.

As anticipated I went ahead and implemented more items in to the level format.

So this week I have added the following:

  • uncovered pits
  • covered pits (traps essentially)
  • pressure plates
  • floor braziers

An important note to make though ; I did not put in the logic to control the pressure plates and the covered pit doors.. that will have to be in a future update as it took a fair bit of work to get this content in this week.

I had one problem when doing it and that was the default Unity UI doesn't have a 'drop down' list so I did a really quick toggle for the implementation of the covered pit vs the uncovered pit but I could see this was going to get really laborious and inefficient eventually.

Some googling turned up a thread on the Unity forums talking about this implementation of a drop down list someone shared that looks promising (but I have not tried out yet).  Have you heard of any other good tutorials or drop down lists people have shared as of the 4.6 GUI rollout? I know a lot of people probably have needs in this area?

I also added some additional code to the logic of the player and monster movement that makes it so you can't step in to the same square as a component such as a brazier (there will eventually be other ones)





Above I show a shot from within the Unity editor that shows the light probes in the scene and an early version of the uncovered pit.

And then finally below I have the uncovered pit in an actual in-game screenshot that was placed with the level editor:



Right now you can walk right over them, I look forward to making the code that has you 'drop down' the pit and fall to the next level or potentially die - that should be a fun bit of code!

It was on Wednesday that I did some of these shots and Unity 5.0 was released .. so these shots are the first one's that are using a production build of Unity 5.  It was interesting because as with several of the beta builds when I loaded the project up some of the default shader properties must have changed once again and I was forced to make changes to my materials mainly in the area of the metallic and smoothness properties.

Overall though I ended up feeling like this final tweak to the shader seemed to improve the visual quality of the level just a little bit.

Another thing I've done this week is add just a little touch of ambient light to the levels.  It makes everything more 'visible' on darker screens ; but it then makes it so the level isn't quite as dark and scary so I'm not sure if I like it or not yet? It is nice to be able to see things for sure but I do want to build an atmosphere that the dungeon is a scary place so I think I will end up tweaking it down - or potentially pushing it up and down depending on if you have a light source on with your party perhaps?

The Brazier I added seems to have some problems in that it exposes the general weakness of the fire sprite I'm using at the moment (looks way too saturated and thick to me?) as seen in the shot below:


I've put that down on my list to make improvements on but for now it's a nice additional to the lighting possibilities in the level!

Finally here's a nice shot showing a pit and a brazier around a corner:


Thanks for reading, see you next week!

Saturday, February 28, 2015

Rise of Dagon: What's a dungeon without a portcullis?

This week I have approximately two weeks of work to share for you.  All of that work went in to diving back in to the level editor for The Rise of Dagon and adding portcullis doors to the editor and getting them in the game.

I also added those big clunky dungeon 'wall switches' so you could open and close them.
portcullis door with switch
The material on the switch looks too simple right now but it was more important to get it in the game and working than it was to polish the texture on it.

The really cool thing about adding in the portcullis door this stretch was that it added about 25% more visual variety to the current level layouts and it really just made things a lot more visually inspiring for me - such that I've decided I'll be focusing on adding more features to the level format for the next couple of weeks as my primary focus.




In closing I quickly wanted to mention if you enjoyed reading my 3 Year Indie Retrospective you might also enjoy year 2, and year 1 respectively. I had meant to link them in-line in the 3 Year retro but forgot to  do so as it took me a week to write all that up and by the time I was done that thought was gone from my head!

Thanks for reading, see you next week!

Saturday, February 14, 2015

Rise of Dagon : Rings, Necklaces, Earrings, Arms, and combat log added this week

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!