Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411196 Posts in 69314 Topics- by 58380 Members - Latest Member: feakk

March 18, 2024, 09:49:10 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsTrollskog - a folklore fantasy village builder RTS
Pages: [1] 2 3
Print
Author Topic: Trollskog - a folklore fantasy village builder RTS  (Read 16000 times)
StormsInJuly
Level 0
**



View Profile WWW
« on: February 12, 2017, 11:58:41 AM »

Trollskog is an indie 4X folktale fantasy real-time strategy city-building game.


Trollskog is coming to Early Access on August 19th!

The story so far
Trollskog was dreamt up largely because of what I felt was a vacuum in the real-time strategy genre. There is a lot of unexplored space that developers simply aren’t experimenting in. I want to lift the fog from these areas, and create a novel experience at the intersection of citybuilders, roguelikes and traditional RTS.

The ultimate goal is to create a more relaxed experience than your typical RTS, while also placing more focus on interaction with the world and the creatures in it than your typical city-builder. I want the players to take the game at their own pace. Build a village, craft an economic engine, and explore the game world, which is filled with towns, both friendly and hostile, NPCs and quest-givers.

Thematically, the game is inspired by swedish folklore, in particular the work of Jon Bauer. If you’re unfamiliar with his paintings, you should really check it out! While this setting shares some creatures with the nordic mythology most people are familiar with, it is also quite unique and mysterious.

The game design is inspired by RTS games such as Warcraft 3, Age of Empires, as well as citybuilders such as Anno 1404, and 4X games like Civilization. Taking some of the best pieces of each and combining them into a novel whole Smiley



Trolls are one of the neutral races of the forest. If you're on friendly terms with them, they'll reward you handsomely. But if you anger them, they can cause you a lot of issues...

The procedural map generator places points of interest such as resource nodes and troll warrens, and will dynamically generate quests that reference these places in the world.


The game runs on its own engine, with most of the tech handcrafted to fit the peculiar needs of a large-scale RTS game like this. I self-finance, and have developed a lot of tools and workflows to try and boost my productivity. I’m looking forward to sharing some of the more interesting hacks I’ve come up with Smiley


Three skeletons guarding a resource node. These guys can't really be negotiated with, and will defend this goldmine to the death... Or, beyond?

Although most of the game can be accessed by peaceful means, the undead take the role of bad guy when there's content that needs to be gated behind a military force.

What’s to come
I’ll be finishing up the trailer in the coming weeks, and from then I’ll be moving full-steam-ahead into greenlight.

The engine supports multiplayer, but I feel hesitant to promise feature-complete multiplayer at release. While I’ve played a few quick 1vs1 matches in the alpha build, the most promising multiplayer gametype is shaping up to be cooperate PvE, or perhaps larger free-for-all games. The more competitive. In my experience, the competitive nature of 1vs1 style games that most RTS games focus on just don’t mesh too well with the slower pace of Trollskog.


There's a site, my twitter, and a facebook page, but my plan is to be sharing most of my progress and thoughts in this thread in order to interact a bit more with the greater gamedev community. Working as a solo dev, it’s easy to get stuck a little in your own head-space, so hopefully I can shine some light on my process here.

If you'd like to chat, come and drop a line in the discord!
« Last Edit: August 01, 2019, 05:33:56 AM by StormsInJuly » Logged
StormsInJuly
Level 0
**



View Profile WWW
« Reply #1 on: February 12, 2017, 01:22:54 PM »

I'll finish it off with some gameplay screenshots Smiley


This city specialization menu lets you pick some properties that make each city unique. I want these to be "Interesting Choices"™, so rather than being flat bonuses, each of these has some upsides and downsides, leaving it up to the player to minimize the disadvantages while maximizing the advantages.
The specialization focused in the picture allows a village to entirely skip wheat production and instead focus all farming efforts on growing hemp.


A zoomed out view, showing some map generator features and a 3x3 chunk map.
Logged
Pineapple
Level 10
*****

~♪


View Profile WWW
« Reply #2 on: February 12, 2017, 04:18:27 PM »

I like the look of this! Good RTS games seem to be in short supply these days.
Logged
codekitchen
Level 0
**


View Profile WWW
« Reply #3 on: February 12, 2017, 07:23:19 PM »

Very interesting, I love the idea of a real in-depth city builder where I can take on RTS missions involving my city.
Logged
subliminalman
Level 0
**



View Profile WWW
« Reply #4 on: February 12, 2017, 09:01:46 PM »

This sounds awesome! How are you designing the game so players play at a slower pace than the click-fest that is StarCraft and other RTS?
Logged

StormsInJuly
Level 0
**



View Profile WWW
« Reply #5 on: February 12, 2017, 11:40:32 PM »

This sounds awesome! How are you designing the game so players play at a slower pace than the click-fest that is StarCraft and other RTS?

Good question... In singleplayer, this can be achieved by letting the player tackle the content at their own pace, rather than facing an intrinsically hostile AI that will always attack the player at a certain point in time. I want a pacifist playthrough to be entirely possible.

In a multiplayer 1v1 setting where the objective is to eliminate the other player, you can't really get around the fact that executing your strategy faster is always going to be better.
So I want to focus on a cooperative gamemode first and foremost. I would also love to experiment with persistent multiplayer servers but this would require further engine development. For PVP gametypes, the victory condition will be completing quests, rather than just eliminating your opponent. Still, rewarding mechanics and execution is sort of unavoidable in competitive multiplayer. After all, in RTS games, time is the one true resource (I want to write a lot more on this subject some time, but I need to leave it at that for now)
Logged
foofter
Level 4
****


MAKE THAT GARDEN GROW


View Profile WWW
« Reply #6 on: February 13, 2017, 01:31:39 AM »

Graphics and animations look nice, and the slower and co-op play sound good, too!
Logged


@_monstergarden (game) and @williamzwood (me)
See Monster Garden progress here: https://forums.tigsource.com/index.php?topic=56012.0
Alec S.
Level 10
*****


Formerly Malec2b


View Profile WWW
« Reply #7 on: February 13, 2017, 02:21:56 AM »

This game is looking very good so far.  I like the art style, and I like the approach you're taking to the genre.
Logged

subliminalman
Level 0
**



View Profile WWW
« Reply #8 on: February 13, 2017, 04:18:48 PM »

I would also love to experiment with persistent multiplayer servers but this would require further engine development. For PVP gametypes, the victory condition will be completing quests, rather than just eliminating your opponent. Still, rewarding mechanics and execution is sort of unavoidable in competitive multiplayer. After all, in RTS games, time is the one true resource (I want to write a lot more on this subject some time, but I need to leave it at that for now)

Sounds cool! One of the things I like about persistent strategy games (eg. Clash of Clans, Evony, etc.) is the stories that come from the player base where groups will form to ally against another group. I like your approach better though where it seems to be more about living within the world while also having to deal with players around you, a nice balance.
Logged

StormsInJuly
Level 0
**



View Profile WWW
« Reply #9 on: February 18, 2017, 03:34:09 AM »

Thanks for the kind words, everybody!

I've been in crunch-mode these past few days, working on a trailer so I can start my greenlight campaign next week. Ideally I would have liked to have a little more time, but as you all probably know, Valve has imposed a bit of a deadline on us Smiley

So I've been doing a lot of video editing, sound effects work, and so forth, but I did take my time to work on this little character:

This guy is informally called the "tutorial raven", and he wants to teach you some of the basic gameplay concepts. Don't hurt him Wink


Logged
StormsInJuly
Level 0
**



View Profile WWW
« Reply #10 on: February 25, 2017, 08:06:29 AM »

Trollskog is now on greenlight, with a flashy new trailer! http://steamcommunity.com/sharedfiles/filedetails/?id=868324604

The updates in this thread have been a bit short because I've mostly been working on this trailer and marketing, which isn't terribly interesting to read about. But it can be entertaining to watch!
Logged
StormsInJuly
Level 0
**



View Profile WWW
« Reply #11 on: March 19, 2017, 07:57:45 AM »

Aaand we're greenlit!
In the end, it only took a little over 500 Yes votes.
Here are some analytics, for you numberphiles out there:


So, traffic just from Steam's greenlight queue was king (and is the first big peak on the greenlight graphs), and making a few reddit threads also paid off in spades - the second peak is largely reddit and a few press mentions. It would seem my other marketing pursuits were not particularly fruitful. Good to know!
Logged
pelle
Level 2
**



View Profile WWW
« Reply #12 on: March 20, 2017, 12:18:39 AM »

I really like the look of this, especially as a Swede that has played RTSs almost exclusively in single-player or coop (two players against a bunch of AI opponents) and barely ever competitively.

Are there any plans to also build this for linux and/or mac? Or/and get distribution through humble or gog in addition to steam?
Logged
StormsInJuly
Level 0
**



View Profile WWW
« Reply #13 on: March 20, 2017, 11:09:37 AM »

I really like the look of this, especially as a Swede that has played RTSs almost exclusively in single-player or coop (two players against a bunch of AI opponents) and barely ever competitively.

Are there any plans to also build this for linux and/or mac? Or/and get distribution through humble or gog in addition to steam?

Hej Smiley I would love to do a linux and mac build, but I'm prioritizing the Windows version right now. It's quite difficult for me to estimate how long it would take to port the engine. A lot of people are inquiring about it though, so I'm going to look into it in the coming months.

I have given a little thought to itch/gog/humble but haven't really started that process yet.
Logged
Pixel Noise
Level 10
*****



View Profile WWW
« Reply #14 on: March 20, 2017, 05:21:55 PM »

Congrats on the Greenlight! This is looking great already. I love the gameplay you've described - definitely following this  Beer!
Logged

Pixel Noise - professional composition/sound design studio.
 https://soundcloud.com/pixel-noise
 https://twitter.com/PixelNoiseMusic
 https://pixelnoisemusic.bandcamp.com/

Recently completed the ReallyGoodBattle OST!  https://www.youtube.com/watch?time_continue=2&v=vgf-4DjU5q
ddengster
Level 0
**


View Profile WWW
« Reply #15 on: March 20, 2017, 10:14:42 PM »

Congrats on the greenlight! Wish my game could have the same outreach as yours Cheesy
Anyway, have you tested the (technical) limits of your game? How large is your map and how many units could you have in the game world at any one time?
Logged

StormsInJuly
Level 0
**



View Profile WWW
« Reply #16 on: March 21, 2017, 01:44:35 PM »

Thanks dudes, you brighten my day Smiley

As for the technical limits of the game, there are a few different bottlenecks in the engine, but I'm striving for 60fps at zoom levels similar to what you saw in the trailer (that is, the zooming-out scene) on my dev machine, which isn't fancy. you can adjust hwo aggressive you want your LoD culling to be based on your specs..

The pathfinding was the biggest issue, eating up a lot of CPU cycles as the game grew in scale. But I've been doing a lot of work with the pathfinding algorithm this week, so now the game can easily handle thousands of "smart" entities (moving, thinking, singing, dancing) and 100 000+ dumb entities (such as trees and foliage). I plan to write a big update on this soon, because boy is pathfinding a deep rabbit hole.

The renderer can always be optimized further but does an adequate job of instancing as much as possible to reduce draw calls. My shader code leaves a lot to be desired, since writing performant shaders requires a good understanding of rendering pipelines (not my area of expertise!) and careful planning (not my style  Durr...?)
Logged
StormsInJuly
Level 0
**



View Profile WWW
« Reply #17 on: March 25, 2017, 01:15:34 AM »

I've been working on the tier 2 visual style, trying to make it distinct from tier 1. I've gotten some mixed responses on whether or not it looks like an upgrade from tier 1 (see the structures in the OP).



One thing I've been struggling with is making tier 1 look as simple and basic as possible, while still being interesting to look at.
The other thing is that, while the tier 2 material is fairly convincing as wood, the tier 1 material does not look like clay/adobe/mud - more like stone, which is going to be tier 3. Gonna iterate on this some more...
Logged
StormsInJuly
Level 0
**



View Profile WWW
« Reply #18 on: April 07, 2017, 01:04:47 AM »

Last week I've been in the lab, polishing the pathfinding algorithm. It was sort of working earlier, but in my opinion it's one of those things that you can't really skimp on in an RTS, since how the units move through the world and react to your commands goes a long way toward determining game feel. Having units get stuck on terrain and get lost in the woods may have been acceptable in a 90s RTS, but these days it would be unacceptably frustrating.

Before, the pathfinding system in Trollskog was based on the Jump Point Search search algorithm, which is an optimized variant of A* that assumes the traversed graph is a grid. I first encountered the algorithm in this whitepaper.
Since the terrain in Trollskog certainly is a grid, it seemed like a good fit.


The lit area indicates a route calculated by the JPS pathfinder. The yellow squares indicate jump points. Path-smoothing is applied to the route, as JPS tends to generate straight routes that take as few 45 degree turns as possible.

While JPS was orders of magnitude faster than my initial A* prototype, it wasn’t the performant silver bullet I’d hoped for, and it didn't help at all with steering behaviors - A single entity following a path worked fine, but having a large group of entities all navigating together, bumping into each other and other entities along the way resulted in a lot of edge-cases, sometimes requiring path recalculation. I kept piling on band-aids for a while, trying to fix new strange behaviors as they arose, but eventually made the decision to try another algorithm.

Some research into my problems led me to flowfields. These are great because they practically solve pathfinding and steering using the same algorithm. This GameAIPro chapter by Elijah Emerson remains the best writeup I’ve found on the subject.

Flowfields work quite differently from graph-traversal algorithms like A* and its variants. To summarize, it works by calculating a vector to the goal from each tile on the map, then each entity just has to follow the average vector of the four tiles around it to find the goal.

Filling the entire world with vectors for every move command would be crazy inefficient, so instead we break the world up into sectors, and only fill the sectors that contain moving entities.


Here we see a 64x64 chunk of Trollskog’s world, divided into 8x8 sectors.

These sectors play two roles, one as a convenient bound for our vectorfield floodfill (to avoid having to fill the entire game world with vectors) and also for the first-pass hierarchical pathfinding. We can let the pathfinding system do an initial, broad-strokes search by traversing whole sectors at a time before we run a finer search on a tile-level, letting us break up a potentially large request into many smaller ones.


A region showing debug vectors. Tiles that have line of sight to the target just have a vector pointing straight to the goal.

We need to keep these pathfinding sectors up-to-date by recalculating them, individually, whenever an entity that blocks a tile is placed or removed. And naturally, we want to generate these pathfinding regions as late in the terrain generation process as possible - An average 64x64 chunk of terrain in Trollskog contains about 2000 trees, and keeping the pathfinding regions up-to-date during the generation process while those trees are being placed would be a pointless waste of resources.

The advantages to this approach were immediately apparent. In the worst-case, A* and JPS explored most of the world before concluding that, yes, this unreachable spot surrounded by trees is, in fact, unreachable. The hierarchical flowfield approach can often rule out destinations which are not connected to any portal instantly, or at worst rule them out during the initial portal traversal stage. The algorithm scales wonderfully with multiple pathing agents, since they can re-use the same pathfinding data.


Here, 2 entities pathfinding with vector field debug display enabled.

The result works a lot better than the previous (JPS) implementation, with a lot of tweakable variables (like collision radius, repelling force, etc) that I can play around with to make the end result look and feel the way I want.
« Last Edit: April 07, 2017, 01:14:55 AM by StormsInJuly » Logged
StormsInJuly
Level 0
**



View Profile WWW
« Reply #19 on: April 22, 2017, 03:45:12 AM »

Watched some people play the game for the first time this week, and was struck by the importance of adding GUI indicators to the villagers to help the player understand what they need to focus their attention on.

A unit "idle" indicator, tells you if a villager could be working, but isn't:


Here's a notification that tells you if a building has new abilities (i.e. a giant flashing "CLICK ME" sign): https://giphy.com/gifs/l4FGBEvMygIsErMJO/html5
Hard to miss, no?
Logged
Pages: [1] 2 3
Print
Jump to:  

Theme orange-lt created by panic