30 Jul 2014

First Dota 2 model attempt.


Frist try hoping to be published in the workshop.
A kind of kunai for Rikimaru trying to refining the workflow and stick with the game style while understanding how the game shader behaves.
Model has 284 triangles I think that this shape didn't take benefits from more triangles at in game size where also the octagon ring seem to be a real circle.
Texture is 256x128, but has been edited at 1024x512.




23 Jul 2014

Lunch Break vol 5

Yesterday instead of a concept or a speed paint I did a speed sculpt in sculptris also due to the happyness for the intuos 3 working again.
I realized that I wasn't sculpting so much lately so I want to do some speed sculpting in lunch break.
Oncein a while I may also make some more serious piece that takes longer.
This was done from scratch with no base mesh with no real idea and no reference.

I don't really like its ears and sideburns even if it is a stylized char hope to do better next time.

While it's good to start from scratch sometime it's never good to start without references and I'm doing it too often.

18 Jul 2014

Lunch Break vol 3


Rushed this out in B&W it was a bit sad so I believed and had the time to make him deserve some colour.
Hate to colourize things in a second pass as it's hard for me to make digital line art that doesn't look as shit (hoping to switch to a wacom cintiq for inking), so normally I i found more productive to start loosely painting directly in color.

Lunch Break vol 2

Generally when I'm not too inspired I just end out drawing those kind of muscolar monsters.
Maybe one day I will find a use for them, but as now they just take space on my hdd.

Lunch Break vol1

Concept of dagger.
Possibly I want to simplify it a bit to be released as Dota 2 weapon.

3 Jul 2014

My old Project Anarchy renderer project ask revenge or at least to be started again soon or later.

After playing a bit more with pbr in Substance Painter I added Physical Based Shaders to my plan for the Project Anarchy Pc Renderer I was making.

I woud also like to have proper blending of parallax corrected and preconvoluted hdr probes and possibly screen space reflections for global(precomputed) and local (realtime) reflections too feed them to the shader to make it able to reflect something good.

I'm still waiting to see what will be included in Pc Exporter,this put this project in pause, even if many times was stated that pc exporter will have same exact feature set than mobile one.
I will feel a bit bad about reimplementing the same 4 things again and again, things that are just available in Vision and, and quite standard nowdays.

Things like SSAO and PC quality shadowmap techniques that are not present on mobile but feel quite obvious on a pc engine and I definitely want them.
To not talk about some kind of motion blur and depth of field but risking seriously to go feature creep if not just reached that stage just from the initial idea of starting a pc renderer , even a little one just for fun.

As for lighting I believe that forward with light indexing would be an interesting solution to try and to plug in at some time looking for max 4 realtime per pixel light that are more than many  real world scene requests if you also consider lightmaps and cubemaps and ssr to deliver most of the reflections missing from static lights.

As just Said Still no one applied to help me with this project, but I hope things will change when Pc Exporter will be released and I can devote some free time to it.
Sad as I also hoped to work on some scene to show these things out.

I will leave other consideration at later time when my mobile game projects will be in a more advanced state of development  to be alble to do a more focused and lucid thinking.
I'm still going slow on my things, but this time slowed down mostly on purpose to rise the quality, better than slowing down to make things the hard(and satisfing) way or to rush something out I don't really like and hope to monetize.

New version of the 44 Magnum Retextured in Subtance Painter

Stainless Steel and rubber grip for my old m29.

No m628 round bottom grip for it as I didn't wanted to model and bake it again.

I'm quite satisfied with the rendering apart from aliasing and the lack of  post processing in Substance Painter.

Allegorithmic wrote me on tweetter that an updated renderer is coming really soon.
I hope it will be on par of Substance Designer one.

About this last one I'm evaluating to take the indie version of it too as I'm a big fan of MaPZone,but it doesn't work seamlessly with Painter that makes you able to modify Substances in realtime.

My budged is however untouchable at moment(especially as indie version is very low price but too limited for commercial purposes) and Project Anarchy Pc exporter is not even out.

I need to start a dedicated piggy bank ,then one for summer holydays and who knows how many others.


2 Jul 2014

First Steps with Substance Painter.

Got this software yesterday and did some test just to learn it.

Substance Painter has an huge potential and could be a real game changer.

While pointing to the future it currently run quite fast and stable on my 5 years old pc.

I got just one freeze so far changing from 1024 to 2048 on a big project, but it did it right in other situations in half a day of use.I also have to say that it doesn't simply scale the pixel but recalculate almost everything in the new resolution, so this justify the time it takes.

It's easy to follow a  non destructive workflow and make fast variation even the most drastic ones so inspires you to try new things and be creative(something you definitely look for in an artistic software).

Brushs control is quite good and complete,but I would add Photoshop like opacity control other than the just implemented flow control as not everyone like it's analogic feeling.

Particle brushes are very fast and let you achieve results very hard to do in 2d texturing very easy to use and fairly controllable and customizable.They are less unpredictable than you can think but parameters are not so descriptive, possibly a tooltip popup or similar may fix this explaining every param a little bit better.

The painting is very focused torward roughtness , height and metallic features of the material supporting hi precision formats.It doesn't seem as complete on diffuse painting that at moment is not on par with scalar values painting.(es color swatches are still in development)

It lacks any kind of classic 2d drawing features like gradients, text and vector based geometric shapes reling on the inport from external sources.

It also lack the ability to make your own alphas/decals like in zbrush but rely completely on imported pictures/substances and a large number of procedural brushes available with a set of parameters to shape them at your will.

Overally it seems to be more videogame oriented and democratic than products like Mari and with few unique features and kind of workflow that distinguish it from general solutions like Zbrush and Mudbox with these ones with the hi def sculpting as a plus for a comparable final price,but Substance Painter with a good edge on flexibility as both zbrush and mudbox texturing workflow suffers too much linearity in certain spots.

Definitely good for hi frequency details in normalmap faw faster to do here in heightmap than scrulpting them with millions of poly.

License.
Not the clearest one.You can use indie steam version commercially in an unconstrained way just on steam workshop.
For every other kind of commercial work there is a cap of 10k$ yearly income (quite low in a western country for a freelance artist), but seems that this cap will just apply after the beta will end.
EDIT Full commercial version is available on Allegorithmic Site at 449$ or you may pay the difference if you just own the indie steam version.


Pros:
Ui is very user friendly just after you understand that many interfaces exist in basic and advanced (with more options) form so at beginning most options seem to be unavailable, but they are indeed just hidden making everything look cleaner.
Fast and Easy to achieve good results.
You can easely adapt a layerstack to a different model for an even faster and  project coherent result.
Very rich  roadmap.
Great substance integration as expected.


Cons:
Lack of more poly selection tools circle , poly , lasso etc.
It just switched from the great 50% discount to the quite good 33%, but still very low cost for what it offers.
Custom Presets are not widely supported in the software(they will be in future).
Shader/normalmap aliasing especially at glazing angles with white blinking pixels  in the renderer view.





Shots are made with internal renderer, far from products like Marmoset toolkit or even Substance Designer, especially for the lack of any kind of post processing and discrete lighting setups(Designer integrates Yebis 2 a well known post processing middleware).
Not a great issue in this kind of product, but as I just said, something more could be done from the aliasing side(I suggested the generation of Toksvig Maps for normal map antialiasing to modulate with glossiness/roughtness maps).


27 Jun 2014

Still finding my direction

Some time ago I evidenced some huge faults in my way to approach a simple project that I had just shipped in past.

I'm still to find a viable way to run game projects, but even if sometime I feel my efficiency goes down I can make treasure of any accident an looking at the entire picture see an overal positive trend.

From a business point of view I'm running out my budget and my passive income is not enough to refill what i spend every month.

I stopped run any other work since February and i had to go live in Spain for a while and it has not been so economic at all.

The worst thing is that it looks like my full time efforth has produced less than free time one, but in reality I had explored a lot in those times challenging many previous assumptions just to come to my own way to do things.

Yesterday I watched an episode of the serie "Big Bang Theory" where one of the characters ask herself if to become an actress would be better to work as maid or act in very bad movie production.
Luckly my working experience was different and the range of jobs I run in non gaming fields always teached me some good skills I can now apply to games, Not that having a maid job cannot help your acting(who knows).

Bad games could surely open your way in the industry as junior employee ,but how they turn out to be in the "run your own studio" context?

I always tought that funding my games with money coming from other works was a fail, as a sign that a my game business was not going to be sustainable, but in the end is the only thing that has made me come to this point or I had to stop this way before If I just had to rely on some of my previous bad game earnings.Games that only few played  and remember(luckly?!?).

I have now clear that my goal is not to ship whatever game I can just to keep this going with the money coming from it and keep this way.

There are very few cases where this has worked out and even for who this worked out not every games toruned to be very profitable just very few ones, but we just remember them for those games not looking at the huge amount of bad and unprofitable work.

There are very few cases in whatever business of people reaching the break given point in record times  especially if you add to the equation random products that no one asked for or products came last in a just saturated branch of the market offering poorly made clones of well known products. 

Mobile platforms and Steam on Pc in past years has been a bit misleading giving evidence to some epic win cases even breaking whatever accepted rule, but there was also many and many almost untold misadventures and epic fails.

I point to get to the point where I can realiaby ship real user experiences that fullfill real end user needs, with my own unique touch leveraging what I can do best and not totally fall through other things where I'm not so good manteining an overally hi level of polishness.

To do what I can do best is sometime hard as learning what I can't actually do within my standards demands generally a lot more focus and not be able to delegate is frustrating, but hope it will make me better at delegating tasks in future.

Rising my own bar a little bit more every time is easy but doing it in a way that people can see and enjoy is a must and is all but easy. 
No one matters if I wrote qualitative piece of code or if I gained more and more artistic skills, become faster or better at something.
what the game overally tells about you could be a totally different story and the only that counts in the end.

Do errors as early as possible is what will make my games more sustainable in the mid to long term even if it means to risk a lot now.The amounts of risk and errors and speriemtations I can do now is an opportunity that I will hardly got again even if all will turn for the good.

Getting fast to the market with no value and major unresolved issues is a non sense.

I had to consolidate what worked good in those months as a framework and workflows for future works and cut everything else.

I have set lots of hard and flexible constraints on my next efforts,most relevant is to try to not use c++ in prototipation and use very few of it also in the final gameplay code leaving it to major modules and macro optimizations.
We will see how this and other things will work out in next posts if you still find them of any interest :)







15 Apr 2014

Project Anarchy Scaleform Plugin ver. 2014.0.5 Review


Today I noticed that while the Scaleform plug in in 2014.0.5 is a great step forward still miss useful functionality.

Add to this that the performance of the various inter ops between c++ and Action Script is not really clear by both Project Anarchy and Scaleform manuals, the proper use of Scaleform is still a bit confusing.

Let's explore a bit what is missing...

24 Mar 2014

Render Multiple Animated Flags(or other animated decorations) on Mobile

I'm writing this in answer to a post in the Project Anarchy forum about rendering lot of animated flags but also work for any kind of group of animated decorations.

On mobile generally you want 2 things:

  • to limit per frame computation.
  • to limit per frame uploading of data from cpu to gpu. 
  • batching to reduce draw calls.

Keep read for a list of some possible implementation based on your needs and constraints.

22 Mar 2014

Havok Project Anarchy GDC 2014


In this video emerges something about what we can expect in the upcoming update.
Next come my review of this talk with some of the info extrapolated from the video.

18 Mar 2014

Game Project Time.

Before on this blog


In November I tried to start a game project you can find some concept of it on this blog then shouted it down suddenly .

I don't even remember why, but mostly because it didn't look as something you can do in some free time.


Infinite Planning


In 2014 I decided to not take any kind of job and just dedicate myself to gamedev and hope to not die of starvation meanwhile.Two Months and a half are passed planning things out.

In these months I continued the design of some old projects ,but never seen a real opportunity to start them in a proper way, everything seem to be out of my possibilities lately.

Meanwhile I got some good time to experience with Project Anarchy and did various tests and I'm very happy with it and more confident in general as I don't have to worry about the tech.

As someone just know I'm also making some post shaders for the PC version(I hope that this week we will get a release date), but without a game to show the effects on my motivation on that project is not at its best, also because this doesn't help with starvation as I planned it to be a community project (a huge fail as now considered that no one applied to help me so far).

In this 2 months I have also tried to have an healthier life and I got very good results as I've lose 6cm of belt line fat so far and put 4kg of muscle weight at the same time.
This just to train myself to the hard work that will come and to put a better me in charge of taking care of my game dev goals.

2 Mar 2014

Test with Uncharted 2 Tonemapping + simple color correction on Project Anarchy Demo.

Added tone mapper from Uncharted 2 to the demo.
Using modified tenderer with hdr , gamma correction and msaa x4.

Figuring out how parameters change the tonemapper curve shape is not really intuitive, but is one of the best I have seen for flexibility.

This is a filmic tone mapper so made to simulate the response curve of a real film,but you can customise this cuve a lot.

There is no perfect tone mapper and seeing it as something just to make all the details pop from the hdr render buffer in some "scientific way" is very limited so i tend to like more customisable ones especially this one.

It is a real artistic tool that makes very different looks possible so I think that is good to expose and play with all curve parameters,even not physically plausible ones, so that different looks can be achieved.

You can also selectively give more contrast to specific parts of the dynamic range and or introduce clipping at will :)

It is an RGB tone mapper so it doesn't just work just on Luminosity and some saturation can get lost in the process.

I use the same curve for all channels but I also want to try with different curve per channel to see if it is pratical and what results can be obtained.

Currently i just added a channel scale and bias for color correction and the saturation control to the shader to desaturate the scene at will or recover some of the lost saturation.

Here with various parameters to make some fast styles made totally by this post effect.
It would be great to test with dynamic daylight a procedural sky.

Actually I don't have any real time soft shadows, nor the sky shader(as both are only provided in the full version).





26 Feb 2014

Generic Post Filter (actually blur, max and min) for Project Anarchy.

Today made an initial generic filter Actually it is implemented as post processor , but I planned to made it as helper class other posts can use to make intermediate textures.

It works at original half and quarter resolution in box(2 pass), hexagon(3 pass) and octagonal pattern(4 pass).


Actually permutations supports 3, 5 and 7 taps in a linear pattern.


Actual filters are box blur(even if esagonal and octagonal approximate gaussian blur), min and max.


It is implemented on both pc and mobile.


Next step I want to try downsampler and other non separable filters.


Downsampler to reduce flickering of hi frequency details when working at quarter resolution.

Half resolution doesn't really need it in my tests .

Built in glow make a simple pass for downscaling that effectively stop flickering in quarter res.

On the other hand my actual filter  just run the first pass of the chosen filter as downscaling shader.


This is an example of the Blur and Max filter downscale to quarter 5 tap in 4 passes box( hexagonal shape as you can see in the last picture).Bur is very smooth jpg actually destroys the quality of the picture.

24 Feb 2014

Project Anarchy improve the Glow Post Processing.

Time ago I tested the glow shader and noticed it isn't as slow as I  believed on mobile if you mantein a low number of iterations.

It actually use dependent texture read so maybe it can be further improved.(p.s. comment in shader says it doesn't really use dependent texture read even if shader it a bit harder to follow in all it's permutations).
Actual implementation seem to do 3 interpolated taps so probably my blur cannot be faster than that, at least for few iterations( i have to see if I can make a better blut with 1 pass and 5 or 6 taps).

I want to implement one with vertex shader interpolators instead to compute uv in pixel shader.

Glow is composed by the most % by a blur filter.

In the actual pipeline this blur is just used in the last glow pass where it merges with the scene.

I don't really like this choice so instead to simply change the shader I want to modify the post processing so that blur can be used multiple time and glow get calculated and added to the scene with other effects and not in it's own pass.

For the blur:

I have to check the max number of texture coordinates ( opengl es limit is of 32 float varings) , but on mobile better to stay within 8 texture coordinates.

I have two 2 main options.


  • A Separable gaussian blur with 5 to 8 taps linear filtered.



  • A 3Pass box blur up to 8 taps (linear filtered) with shape similar to gaussian after the third pass.
First task so will be to complete the blur shader.


.



21 Feb 2014

Basic renderer update for Project Anarchy (PC)

Hdr and multisampling was disabled for mobile render I added them for the community project to include additional rendering features and post fx to the pc version of your game.

Example is very simple and not so original.
All is made a bit extreme to evidence the clipping and the missing precision in the glowing of the normal version that totally miss to represent the extreme power of the lights.

Multisampling is enabled on both images but the resizing and compression doesn't make it  noticeable but it is there.



In this other test with fantasy scene there is a visible banding in the ldr version, banding is presnt also a bit in the sky of the hdr due to sky texture ,and jpg compression.Hdr one has MSAAx4.
After this test I have added in editor controls for texture filtering ,max anisotropy and mip lod.



20 Feb 2014

About Project Anarchy community project and economy of collaborations.

Today I was thinking a bit about an economic system(gamification elements could be added to make it more appealing and engaging) to run full or partial Project Anarchy community projects and collaborations to release in app market.

I look for some feedback about this system and someone that may help me to rewrite all  in a better form(expecially my bad english) and define proper rules and mechanics.

Free to Play with advertising is a common monetization strategy in mobile market and may come handy to manage this profit sharing, but other alternatives may be found in future(es crosspromotional) so other kind of games could be included in this kind of system.

An open souce system can be made to select a different service and account everytime an ad is requested in the app and sepecific user account get selected in turns based on an extabilished algorithm.

Every user who will partecipate to this initiative to get help with his project will receive a certain amount of share points.those will represent an actual number of ad views % of his app he intend to offer for help.

Those share points are limited at beginning so you may run a small project or just delegate small parts of your project.

Running successfull project (that get released) or completing tasks in other projects let you acquire the possibility to dispose of more share points on your next project on pair with trust.

He then will decide to emit tasks(for the entire project or just part of it) and specify the total value of his game in sharepoints(not bigger than his total reserve)representing 100% of his project and how many points he will reserve for the community tasks.

Bidding could be made between users who want to run that task for a certain number of share point taken from the points emitted for that project tasks based on their own evaluations.

The project runner will then select the better offer, assign the task and reward those points on accomplishing that get allocated in the worker personal reserve and setted up in the advertising system on game release.

System may not be perfect(we may change every part of it),not be 100% fair in every part of it(but remember that it is mostly made for helping others so they will "probably" be fair with you to continue to get helped from you and others) and maybethe system is not even cheats free, but it is based on acquired trustfullness so accumulating points, but not be trusted upon others is pointless as your point lose any value to the eyes of people.

as 1% in a game of a relieable person that deserves trust and make quality games have a greater value than a the 50% in a low qualitative game from a cheating person that generaly doesn't finish project or make really bad games.

Previously made code(as libraries or open source) and assets could be selected from a community repository and a share could be attributed to the original creator/s and contributors of the resource(es. it may require actual points to acquire the licence of use of a resource).

In future a system to bid sharepoints for money may be estabilished based on previous performance records(How much your points was worth in your previously released games).

Rules have to be defined well and possibly a good software platform have to be developed to run this system.


18 Feb 2014

Planning a Project Anarchy Pc Renderer project.

Project Anarchy has actually a cutting edge render for mobile, but it is also the only renderer it comes with.

Someone can argue that something that is cutting edge on 1w of mobile device power cannot make a good use of all the exceding gpu power of the pc platform.

Adding on this on pc you have just access to dx9 (dx11 is available only in the full pro version).

The constraint to work with dx9 and not on the latest api at first confused me a bit.
I feel like investing on rendering features for an old gen api was not a great future investment as I wasn't seeing it the right way.

I was not missing dx11 features that in my humble opinion are not a great deal in actual games even if something is moving lately.
Compute Saders are a great thing and gives room to lot of optimization ,but the actual state is that current games shows quite slower performances for a minor degree of improvement.Many optimization that seem so good on paper done with Compute Shader seem to work just under certain loads and conditions.

Many other new techniques that makes use of newer capabilities of dx11 seems to be more academical than pratical in a real game scenario.

What makes my feelings about writing a render for PA totally wrong was the lack of proper knowledge about how Project Anarchy renderer internally works.

It is totally flexible and configurable and makes you write your own render in approximately 20% of time than doing it from scratch and way more easier as it has a proper utility function for every evenience.
The best part is that everything is very api agnostic.

There isn't a big difference if you are working of console or mobile , for dx9 or dx11 you don't care too much.Stay in the limit of what are your platform capabilities  and everything works out of the box.

The kind of render effects you have or if you feature a forward or deferred render doesn't make a good render as having the kind of flexibility Project Anarchy gives you to make whatever technique you need in your game.

All is customizable nothing is hardcoded.

Its customizability and provided code lets you to write a whatever new renderer in (approximately) 20% of the time required to make normally one from scratch.

However many people don't have time or skills to write a shader or code a special effect and will never attempt to make a renderer of their own.

In my free time I'm starting experimenting with a pc renderer for Project Anarchy just for passion as mobile renderer is just as good for the kind of games I'll do(even on pc).

The main goal is to make simple plugins to make my and your games more appealing on pc(mainly by post processing).

But a long therm goal could be to make entire renderers with  complete working set of advanced shaders.

I want to receive some feedback about your rendering needs and if there are rendering and shaders enthusiasts that want to partecipate in the development.




6 Feb 2014

Normalizing and Tuning Two Axis Analogic Stick Input For Better Character Control.

Normalizing analogic axis Input in Project Anarchy.
This applies both to real controllers and touch ones ( es touchscreen tumblestick)

Unit Square vs Unit Circle

Analogic stick raw input is generally mapped to a unit square.

Using raw input with you controlled character makes it go faster in diagonal directions.

This maybe was ok  in the 80's ,but nowdays looks terrible.

To make their character move at the same speed in every direction most people use to normalize the direction vector.

Digital Vs Analog or Area vs Perimeter

Vector normalization introduces another issue with input.

You controls after vector normalization are no more analog.

Everything get mapped to the perimeter of the unit circle instead to just being constrained to the unit circle area.

While this is acceptable or even wanted in some cases , on the other hand in many other cases is good to have as much precision as possible.

As Project Anarchy comes with lua scriping I wanted to share the lua source to constrain movement to the unit circle area.

finaloffset is a  Vision.hkvVec3
offsetx and offesety are raw x and y axis.

finaloffset.x = offsetx * math.sqrt(1- (offsety * offsety)/2)
finaloffset.y = offsety * math.sqrt(1- (offsetx * offsetx)/2)

now you can use you finaloffset wherever you want with full analog precision.

You can also add a deadzone directly in the input mapping or after.

Analog Input Tuning

Input of this function is too linear for my taste so you generally want to map original offsetx and offsety to a curve tuned to give more control.

The simplest still very effective one is the exponential curve.

The most trivial way to make this input exponential is to write

offsetx = offsetx * offsetx * offsetx
offsety = offsety * offsety * offsety

Make this just before the normalization.


Offset are just multiplied 3 times by themself to not break the sign as Raw input is in the -1 to 1 range and have to stay in this range also after multiplications.

This gives you more control in the lower range of stick movement letting you to move the character with precision at lower speed then goes fast to the max speed.