Artwork

Good news everyone – we have first real artwork made specially for NG!

Blacksmith is one of my favorite characters in the game, for he has this unique combination of working with cold steel and burning hot fire, creating tools and weapons from chunks of raw metal – a true artist of hammer and a man of highest respect in town.

Few days ago I have asked my friend Basy to make a sketch based on NG, for example depicting the smith. To my surprise she agreed. With a couple of references and some guidance she made this wonderful and heart-touching sketch:

Blacksmith

Blacksmith

Smith’s strength becomes obvious when you see his huge hammer, few people can actually lift, but he operates it with ease. He is a hard-working man, with a touch of fiery fire in his beard, noble spirit and a very kind heart.

Posted in Artwork | 5 Comments

Small anniversary

It’s been 500th commit into NG repository right this moment 🙂

Posted in Sidenotes | 2 Comments

Live progress #14 – tile picking

With a help from Jery now we have a precise tile picking algo and a nice debug visualization of it, showing the bounding boxes underneath:

2014-05-04 terrain bounding boxes

We split terrain into quadtree of bounding boxes. When we need to pick a tile below the cursor, we first check bounding boxes and discard those that don’t intersect with the picking ray (cast from cursor position). That way we effectively discard 95% of tiles and hittest only remaining few inside the hit bounding boxes. On the screenshot that is the smallest purple box around the cyan picked tile.

Posted in How things work, Live progress | Leave a comment

Live progress #13 – archers

Experimenting with adding new kinds of towers and projectiles required to make the projectiles to work in the first place. So here is the core of any distant attacks – the arrows, now in 3D:

2014-05-04 archers attack

Colored circles below units are to separate their by types – reds are archers, yellows are footmen. Cyan and blue ones in the distance are serfs and workers.

Posted in Live progress | Leave a comment

Live progress #12 – Stones, roads, cursors, AI

The funny thing about AI, is that once you let it loose it starts living on it’s own. So I was poking around, fixing various bits and pieces and added a second player to the Lake map.

Continue reading

Posted in Live progress | 2 Comments

Thoughts about military

I’ve been thinking about organizing troops in NextGame. This post is a snapshot of my thoughts, incomplete and fragmented, so please allow enough room for later changes and details to be added.

Firstly we would want to keep the Rock-Paper-Scissors principle, so that each troop type has a weakness and an advantage. Secondly we want to keep tiers – that is different levels of troops.

Continue reading

Posted in Ideas | 11 Comments

Live progress #11 – stonemining

Taking advantage of 3D and stone deposits being decals, now stone can be mined from any direction and from any terrain type underneath:

stone2stone3stone4

P.S. Meanwhile School and Store got a little sketching progress.

Posted in Live progress | 4 Comments

Live progress #10 – refactorings

Last week has been rather busy, so most of the time spent was in shorter session and aimed at refactoring.

Redoing rendering approach. Now houses and units do not draw themselves, like they used to. That allowed to put all the rendering code into single unit and adjoin many identical pieces into one.

Decals are being regrouped for easier usage in terrain too. Internal stuff.

Houses got a simple building visualization – wip house slowly grow up from under the ground. Until we have a better idea, that sort of indication is quite sufficient.

Viewport settings are read from XML and now can be refreshed from F11 menu without restarting the game. Such approach helps a lot while development goes – so that any section of meta-data can be refreshed on-the-fly.

Posted in Live progress | Leave a comment

How terrain works #2

Last time we have stopped on basic terrain appearance. How mixing surfaces and transitions between them works. Today’s the second part of the terrain being explained – decals.

terrain01

Continue reading

Posted in How things work | 9 Comments

Neat thing about modern Delphi

We have a custom type – TKMPoint. That type is basically a pair of values X and Y. In older days when we wanted to add two points together (for example defense position and unit position within the group) we needed to write it like so:

// Sum up parts and make that a new point
ResultingPosition := KMPoint(GroupPos.X + UnitPos.X, GroupPos.Y + UnitPos.Y);

// Or make a custom function to add two points together
ResultingPosition := KMPointAdd(GroupPos, UnitPos);

Now when we can drop Delphi 7 support, we can use a handy language feature that allows to override operators, so we can simply write:

ResultingPosition := GroupPos + UnitPos;

and that works because compiler automatically substitutes the + operator for TKMPoint with a function:

class operator TKMPoint.Add(const A, B: TKMPoint): TKMPoint;
begin
Result.X := A.X + B.X;
Result.Y := A.Y + B.Y;
end;

In other words – adding points together became simple and neat 🙂

Posted in Sidenotes | Leave a comment