Tuesday, September 4, 2012

Prototype gameplay video

I recorded a short video of prototype/techdemo gameplay.

It is just Sara running in town and talking with two NPC-s. As you can see, the town is composed mostly of placeholder boxes.
In cathedral you can see Annette, who is not present in techdemo. Also the sight IK is working - thus people are actually looking at the face of Sara while talking.

Also I am currently working on new semi-realistic texture for Sara.

New face texture
I do not plan to make shinya strictly photorealistic, although most textures will be based on photos. Everything will be a bit simplified and more colorful. The correct balance needs some tweaking, but the techdemo hopefully shows a little bit of final visual feeling.

Wednesday, August 22, 2012

A little nostalgia

Digging through my drawers I found some old pieces of concept art and hijacked these for the benefit of Shinya.

A castle at the end of the world

I do not even remember the time when I created this (it has few more views and floorplan as well). The castle was an illustration to a story which I now only remember vaguely. It is situated on desolated seashore, ruled by dark and violent knights and hides short but bloody history.

The castle of Irene
This one was created for a unfinished visual novel "The Song of Mountains and Water". It was planned along the lines of Japanese dating sims with plentitude of charactes and complex relationship.
 "The Song of Mountains and Water" never took off, but it lent the geography and many characters to Shinya story. Among others Sara - the protagonist of Shinya - comes from "The Song", although she had a secondary role there.
The castle ruins were intended to be situated in southern mountains - where you can see the castle gates in techdemo.

A mill
This again is from "The Song of Mountains and Water". It was planned to be at the same place where there is now a mill in Shinya techdemo.

Thursday, August 2, 2012


Annette is an older lady who will also appears as minor character in Shinya. She is also the most recent and advanced character model in Shinya.

Modeled in Blender 2.63.
3269 vertexes, 3115 faces.



The model is 99% quads with clean edge-loop topology - the only exceptions being few triangles on hands.

Annette topology


She has full deformation skeleton and simple but effective animation rig.


There are also bones for basic facial expressions and hair and clothes movement.

Facial emotions


Texture is non-overlapping (except hair).

Texture layout

Annette is available from Turbosquid and The3DStudio for 49$.

Sunday, April 15, 2012

Shinya techdemo for Linux

I took some time and managed to get Shinya techdemo to compile under Linux (more precisely 64 bit Ubuntu 11.10). It was surprisingly painless - seems that years of cross developing Sodipodi and Khayyam for Linux and Windows have payed off.

The demo can be downloaded from Shinya homepage.

City house at night

It requires SpiderMonkey, SDL and SDL_mixer libraries.
There is only 64 bit version currently. I have no 32 bit Linux computer and I do not trust cross-compiling...

The two biggest problems were NVidia drivers and fonts. There is some weird bug either in Shinya or NVidia drivers that causes Z value of directional light volume to go crazy. It happens only on some cards, and on certain NVidia cards only in release mode - whatever it means. The same bug appeared under Linux build too - as a temporary solution the light volume is clipped a bit closer than far plane. Thus some faraway mountains appear darker than they should.
Fonts are rendered using libnrtype frontend to Fontconfig and FreeType2. Unfortunately I am not sure, which fonts with eastern-asian glyphs I can expect to be installed, so sometimes texts may not be very good. One possibility is to include some free font with Shinya.

Also, for your viewing pleasure here is wolf walking animation rendered in Blender. It is still a bit stiff, but looks pretty good at Shinya resolution:

Have fun!

Thursday, April 5, 2012

Rendering foliage with highpass filter

If rendering foliage on has two options:
  1. Render it in opaque pass, using alpha test to discard transparent pixels
  2. Render it in transparent pass, using true alpha blending
Alpha blending gives the best results but kills your rendering performance very quickly. First - the blending itself is much more fillrate intensive operation than opaque rendering. Second - you cannot use deferred rendering. And third - you have to sort polygons.

Here is the transparent pass render of small test scene, as a reference:

A patch of Dactylis glomerata, rendered in transparent pass

Even small patch of forest or meadow will have tens of thousands of polygons. Something like realistic landscape simply is not doable using transparency on current generation hardware.

This leaves us with the other option - opaque rendering.

While writing foliage shaders for Shinya the biggest problem was, that scaled down textures (i.e. higher mipmap levels) looked totally crappy. Whatever was the original shape of plant - looking at it from distance it morphed into rounded blob.
The reason for it was the minimization algorithm, that averaged alpha. Thus the parts of foliage where there were only few "holes" - i.e. central parts - became completely opaque. And the parts, where there were only few leaves - i.e. outer regions - became fully transparent.

The "original" opaque render, using default mipmap generation (box filer):

The same image, rendered in opaque pass with box-filtered mipmaps

While messing with textures and trying to find the best alpha cutoff value, I finally got the right idea - we do not want to get the average image but want to preserve "features" of image in minimization. Features being both "holes" and "patches" (i.e. leaves). This can be done by increasing high frequencies of image. I.e. we want to replace the standard mipmap generation filter (normally box filter) with something better.
Fortunately I was already composing mipmaps by hand while creating packed textures. Thus I added very simple edge-detection filter with 3x3 kernel to the foliage mipmap generation (after the minimization with box filer). And the results were really good.

The "enhanced" opaque render with edge detection filter:

The same image, rendered in opaque pass with edge-detection filter

As you can see, edge detection successfully preserves the general features of the texture - stems and narrow leaves, while simple box filter tends to smear these out.

The kernel for edge-detection was:

-1 -1 -1
-1  9 -1
-1 -1 -1

And here is a screenshot of the foliage shader in action. The meadow size is about 40x40 meters, grass is about 50000 instanced polygons.

Sara in meadow

You can download the Dactylis glomerata texture from my DeviantArt gallery.

Have fun!

Saturday, March 31, 2012

Shinya technology demo

Things are going pretty well in Shinya-land recently. For the first time it has materialized in the tangible form for people other than me. And got its own webpage as well: http://lauris.kaplinski.com/shinya/index.html.
You can find the technology demo at the download section in Shinya homepage.

Sara and wolf. Sorry - I don't have red riding hood model for her...

Some notes:
  • It is currently only for Windows. When I'll find time and there is interest, I'll probably try to release Linux version as well.
  • It is compiled in Windows 7 with VS2010 express - I hope that all dll-s are included.
  • It is alpha quality code - do not be surprised if it crashes or does not work at all.
  • It uses OpenGL - id it does not work, you may try upgrading graphic card drivers from NVidia or ATI.
  • Very little of the actual game-land is present yet. Or more precisely - the land is present, but mostly empty.
  • Movement and collision system is not fully finished yet.
  • Vladimir is liar - the town is called Spielburg, not Midgard.
  • You cannot initiate talk with wolf.

Have fun!
Lauris Kaplinski

Monday, February 13, 2012

Shinya - the game

I have made too big progress with Shinya to not share it at last...

It uses the same rendering engine as Khayyam (Sehle library). Most new (and unreleased) features in Khayyam are actually implemented so it can be used as scene builder for Shinya. Among other things there are now reflections, occlusion queries, volumetric lights and darkness, instanced vegetation, layered terrain and so on...
No - I have not forgotten the new Khayyam release. The main problem holding me back is that there should be at least preliminary support for new materials for POVRay exporter. And things just progress too fast...

Shinya playable tech-demo is nearly complete. The biggest roadblock at moment is fixing remaining shader bugs for ATI GPU-s (this is the unfortunate consequence of writing engine in OpenGL...)

OK, I know - pics or it did not happen...

Sara looking down to Shinya world

Shinya will be adventure game, similar in style to Quest for Glory series. It takes place in (alternate and fictional) medieval times somewhere in central Europe.

There is a bit more vegetation in some areas
The main heroine is Sara - a bit complicated 12 years old girl, who is recently moved to the area with her aunt (she is orphan, as expected).

Another human being!
She will involuntarily dragged into some intrigues, conflicts and mysteries that have lately developed in this otherwise tranquil place. Or maybe not so involuntarily - se is, after all, a bit complicated damsel...

A mill at the main river
Modeling in Blender has been the other big time-consumer other than programming. I am slowly starting to get a grasp of this program - not a pro yet, of course.
The most complex model so far is cathedral - LOD 0 is about 190 000 triangles (LOD 1 about 2500). I develop Shinya mostly on laptop with NVidia GT540M GPU - and thus hope, that for the time it will be released it runs smoothy on most desktop computers at least.

Inside cathedral
The world of Shinya is 4x4 km freely roamable terrain. It has continuous day/night cycles - but you cannot stay awake indefinitely, even by using stamina potions. Thus NPC-s will have certain time to arrange things without player peeking over their shoulders.

Ah, almost forgot - Shinya it is written 深夜

Have fun!

Tuesday, January 17, 2012

Models and textures

I have been busy with modeling and texturing for Shinya - and rewriting parts of Khayyam/Sehle to support certain must-be features like vegetation instancing and geometry LODs. Some (semi)finished things are available for download - more will come. Although certain parts will probably remain secret fro now...


Sara the tween girl (Blender render)

Textured and rigged, about 6000 polygons. Blender source file and some exported formats can be downloaded from TurboSquid.

Oak tree (Blender render)
Oak tree with 3 LOD levels.
  • LOD0: 4407 vertices, 2791 faces
  • LOD1: 645 vertices, 442 faces
  • LOD2: 21 vertices, 7 faces
  • Collision (only trunk): 24 vertices, 16 faces
Blender source file can be downloaded from OpenGameArt.


Unfinished medieval house. About 10000 polygons, needs some agressive LODing.

Cathedral interior (Blender render)
Unfinished cathedral. About 55000 polygons - half of those are window frames. Needs also some agressive LODing to be usable in game.


Seamless ground texture - dead leaves

Small collection of plant and ground textures is available from my DeviantArt page.

Cut-out plants

A collection of cut-out plants at OpenGameArt.

Have fun!