Thursday, April 24, 2014

Duality goes Unreal

Hola!  So we've been working in Unity for Project Duality and were about to subscribe to the pro version to begin implementing lighting and working on VFX; then we realized the difference in price and capability between that and Unreal 4.

Originally our purpose in using Unity was to learn the engine and because of the resources available for that. We also needed to have a highly accessible platform for us to work with.  This last reason has become especially important as our team has grown by a few heads.  Once we started getting to the point that we needed to look into committing to and investing in the engine, we realized that we were going to need more than just two licenses for James and I.  Unity is a great engine to work with, but at $75 a month per license (which we're still a little confused on how pricing for a team works exactly) and a commitment of 1 year minimum subscription, suddenly 2+ licenses was a little scary to sign up for.

As I'm sure you know, Unreal 4 was rolled out with an incredibly affordable subscription cost ($20 a month, cancel anytime, + 5% sales which we will prolly never have to pay anyway) and improved as well as new tools (yes, I'm looking at you Blueprints), with the same visual quality its always had.  Unreal is also an industry standard which, having a product built with it will improve our portfolios and, hopefully, chances of actually getting into said industry.  Also, the lighting capabilities of Unreal 4 is sexy as hell -- I like sexy.

So there it is; we've made the switch from Unity to Unreal and are very excited about it!  We are going to be making adjustments to our current assets and getting ourselves better acquainted to our shiny new toy so it may be a little bit till the next blog update.  Fear not my friends and peers, the juice'll be worth the squeeze.*

* 10 points if you know which movie that's from  :)

Sunday, April 20, 2014

Shiny stuff!

So the last couple weeks have been devoted building textures and modeling/uv unwrapping some assets to apply them to.  As you saw in the last post, I had some pretty basic models built already so there was already a baseline for me to work for texturing.

The Plan was to begin with creating 2 stone textures, one for assets and one for walls/floors (forthwith known as stoneAssets and stoneWalls) (forthwith heard).  I started off by building a template for a tileable stone texture in Maya and then exporting it into Zbrush for sculpting normal map information -- almost the exact same process as I explained in the Basement Stone texture for the Old Watermill below.  After that I also sculpted a quick tileable stone wall texture for normal map information as well.  When I finished with Zbrush, I imported the high poly meshes to Xnormal and extracted normal, AO, and height maps and a diffuse selection map in Maya for the stoneAsset texture.

After completing some pretty looking diffuse textures in PhotoShop, I imported the shiny new diffuse as well as the normal and height maps into Substance Designer where I generated spec maps as well as added wear and tear effects to both stoneAssets and stoneWalls.

stoneAssets Diffuse, Normal, Specular

stoneWalls Diffuse, Normal, Specular

After having some decent textures to work with, I went about uv unwrapping the assets and modular wall pieces.

Arches

archTypeA UV set

Pillars

largePillar UV set

tallPillar UV set

Sarcophagi

sarcophagiTypeA UV set

Modular Walls

It's pretty amazing what you can accomplish with just a few assets and a couple textures.  With these assets finally starting to look like something a little more interesting, I'll be plugging them into the Unity engine and begin working with lighting.  My goal is to have both static and dynamic lighting and to get more familiar with producing a finished lighting set up, including post processing.  I won't be working on assets anymore for the time being as I'm quite sure I'll be rebuilding everything after I better understand in engine lighting  :)

Till next time, stay classy

Friday, April 11, 2014

Project Duality

So the Old Watermill has taken a wee bit of a backseat to Project Duality for the time being.  The team has gone from just James Harris and I to James Harris and I + five and its really starting to take off.  We still have a long way to go certainly, but some major breakthroughs have happened and I wanted to document them here.

A brief synopsis of Project Duality quoted from our description on LinkedIn:

"A 3rd person bird's eye view Action/Adventure RPG in which the player explores two parallel worlds - phasing between both at-will to solve puzzles, combat enemies and bosses, and progress through levels.  Combat mechanics and art style is inspired by the classic Mana series that spanned from the SNES to the original Playstation and is very near and dear to our hearts.  This project will be a long work in progress and meant as a portfolio piece to showcase the teams talent and passion."


To date we've made 2 major breakthroughs:  Camera mechanics and production pipeline process.  Camera mechanics was our first major breakthrough and led to discovering our pipeline.

Originally we started with an isometric view with the camera centered on the player and this made the game feel completely removed from the Mana titles we are attempting to pay tribute to.  Our level development also felt very wrong -- Duality was becoming more like a tribute to Diablo or Baldur's Gate II (neither of which are bad mind you) and less like our beloved Mana games.

We went back to playing Secret of Mana and Secret of Mana 2 (Seiken Densetsu III) to regroup.  We discovered that these games, being 2D sprite based, are set up in grid chunks in which the camera is mostly on rails and advances only when the player breaks a threshold of screen space as they move forward through the level.  The camera doesn't follow the character as much as reveals the map as the character progresses and does not break the boundary of the level.  Example below:



So this led us to the idea of building our levels in square tiles and locking our camera to the level and advance only when the player breaks a certain threshold of screen space.  As we are building this game in Unity Engine and default units is in meters, we opted to build levels with 16x16 meter chunks with a level specific naming convention.

Which brings us to our pipeline process.  Being as we were now building levels on a square grid and that 16 is a power of 2, most of our future work is already simplified.  Texturing and maintaining texel density is a matter of division and asset scale and placement is extremely simple.  We also created a PhotoShop template with a 16x16 unit grid setup so all they have to do is draw a floor plan and export the .jpg to me and I can plug in the modular and custom assets accordingly.

Lvl1F1T1 floorplan jpeg from level designer


 Import to Maya

Extrude and create modular wall pieces

Place walls and ensure everything fits; adjust level floorplan as needed but maintain exit locations


Create environment assets from asset list

Plug in assets

This is the first floorplan of the first level and now that the modular assets are built, the rest of the level chunk iterations take a VERY short time to compile.

As of now we have 4 level chunks completed and this is enough space for our programmers to begin building the AI and combat systems James has designed as well as create and test our camera.  James has been focusing on updating documentation, organizing the team, and designing the elements our programmers need to get some testable gameplay going.  It will be a while until he can work on floor plans for the rest of the level and in the meantime I will be focusing on building tileable textures for the walls, floors, and environment assets.  I'll post progress on that front soon!