Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411525 Posts in 69377 Topics- by 58431 Members - Latest Member: Bohdan_Zoshchenko

April 28, 2024, 05:27:19 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsDWARVES --- It's done and I added a Post Mortem post.
Pages: 1 ... 6 7 [8] 9
Print
Author Topic: DWARVES --- It's done and I added a Post Mortem post.  (Read 22979 times)
JobLeonard
Level 10
*****



View Profile
« Reply #140 on: June 07, 2016, 11:48:25 PM »

"& Linux"

Joy!

PS: While we're on the topic of optimalisations, please get a Linux test system and make sure the stupid Linux VSync bug doesn't hit you. Basically, in Unity by default vsync is off even when it says it's on and it maxes out one CPU core, even when the game is otherwise idling. This is not fun on a laptop.
Logged
lithander
Level 3
***


View Profile WWW
« Reply #141 on: June 08, 2016, 12:59:04 AM »

@JobLeonard: Hopefully we can find and fix that kind of stuff while still in Beta. We try to give the Mac&Linux versions the same attention as PC & Consoles. But Unity oftentimes just doesn't work as well there (OpenGL backend vs DirectX) and if it's a bug in the engine sometimes you can't do more than wait for a version update that fixes it.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #142 on: June 08, 2016, 01:11:39 AM »

I know, it's not a complaint towards you guys Smiley

This one is fixable though; it just has quirky settings behaviour. IIRC it's just a matter of explicitly setting the vsync, with a few other settings.
Logged
duyth
TIGBaby
*


View Profile
« Reply #143 on: June 28, 2016, 10:59:33 PM »

hey lithander,
I like this game & going to buy it to get access to Beta.

I know you guys are not doing multi-play, but from a dev perspective, do you think that Physic based combat is tough direction if you ever plan to do multi/online play? I'm asking because we are playing around with a prototype with multiplay through Unreal engine and it looks like handling physic based combat is not ideal
Logged
lithander
Level 3
***


View Profile WWW
« Reply #144 on: June 29, 2016, 01:50:22 AM »

When we say physics based combat we don't mean that we have a physics engine like Havok influence our combat simulation but that the combat simulation engine (called HORDE for Horde Onslought Realtime Dynamics Engine) which is written purely in C# implements soft body physics principles to drive the simulation. So the physics "engine" we use is something I wrote specifically for the game. It only operates on (soft) capsules and circles in a 2D space. But it provides the base on which all the other components of the simulation operate. (such as scene queries, collision detection and response, pathfinding, the physical effects of special abilities, AI behavior...)

So at one point ini the game loop we say HORDE.Update(deltaTime) and then the simulation spends ~5ms on progressing the simulation by deltaTime.

Let's say we simulate 100 combatants fighting. Then we'll also have 100 Entities in the Scene - one for each combatant - to visualize the combatants. These look at the simulation state and figure out how to change the Animation StateMachine so that the visual animation and scene position fits the simulated position and state as good as possible. Ideally the visual entity would always be in the center of the circle representing them - but in practice they're always off by a couple of degrees and centimeters. There's a "rubber band" constraint making sure that the offset stays within roughly half a meter.

Okay, now when I wanted to turn the game into a multiplayer game then I'd move the World simulation to an authoritative server. Send the input commands to the server and get the current server state in response. In theory the client wouldn't be affected much. But of course the network communication would introduce lag - the input you send is based on a visual representation that wouldn't reflect the real gamestate as good as it currently does. It might be necessary to take the state you get from the server and extrapolate it into the future by the amount of lag you have so what you visualize matches the simulated state more closely.

Also you'd have to figure out how to do the simulation on the server. What helps here is that our Simulation has no dependancies on Unity. So the Server could be implemented purely in C#. But because the simulation is rather expensive (The 5ms i mentioned does not reflect the cost accurately because the simulation uses a worker thread to asynchronously update some stuff between frames) you'd need to provide quite a bit of computation.

An alternative would be to have one of the clients handle the simulation for all the players. Of course this adds all the drawbacks (cheating, server disconnects) that are associated with peer-to-peer.

Lag should be more tolerable than in a FPS and the same countermeasures would work here. So I guess you could make a decent multiplayer game out of what we currently have. Of course it costs a lot of extra development time and introduces runtime costs (hosting servers, providing for matchmaking, maintenance) and risks. So we don't do it for the Dwarves.

The HORDE Engine (the custom sim code that is independant of all external dependencies except .NET) is about 4k lines of code. I still believe it was a good decisions to write this from scratch. It's just nice to have 100% insight and control over such a vital component of your game. And actually it's likely we're going to use HORDE in future projects, too.
« Last Edit: June 29, 2016, 01:56:49 AM by lithander » Logged

JobLeonard
Level 10
*****



View Profile
« Reply #145 on: June 29, 2016, 01:53:26 AM »

Is the engine deterministic? Because in that case...

http://www.gamasutra.com/view/feature/131503/1500_archers_on_a_288_network_.php
Logged
lithander
Level 3
***


View Profile WWW
« Reply #146 on: June 30, 2016, 03:04:47 AM »

A deterministic simulation that runs on each client just trading commands is something we used in Battle Worlds Kronos and even though the theory is straight forward there were a couple of hard to track bugs where the gamestates go out of sync. Finding and fixing those wasn't fun... (the article you posted also hinted at that^^) But we had games were both player won *their* version of the game so that's a plus obviously. Wink

When reading the AoE article I was surprised that they consider 500ms of command lag tolerable. I don't think that would work for an action oriented RPG like ours but that's an assumption I never tested.

I'd say lag is the biggest drawback (beyond complexity of getting it to work) that I can see in that approach. If you can integrate commands only after all other clients have acknowledged receiving it this will make the approach laggier compared to just sending your commands to an authorative server, running your own simulation/extrapolation and then fixing small deltas in the gamestates by syncing the state with the server continously.

On the other hand syncing the gamestate without causing loads of traffic might be tricky too. :/ Thats a lot more data than just communicating the commands that will influence how the future gamestate unfolds.
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #147 on: June 30, 2016, 04:22:42 AM »

Yeah, half a second is a  bit much. But AoE was one of the early RTS games when clicks per minute did not exist yet.
Logged
lithander
Level 3
***


View Profile WWW
« Reply #148 on: August 25, 2016, 04:58:53 AM »

I'd love to post something exciting. But that's just not what the final months of working on a project are like. Instead it's a fierce battle of green vs red. Will we ever catch up to the red line? =)

Logged

lithander
Level 3
***


View Profile WWW
« Reply #149 on: November 26, 2016, 04:14:11 AM »

It's done!

The game will release December the 1st!

http://store.steampowered.com/app/403970/
https://www.gog.com/game/dwarves_the

I can't wait to see how it's received. It certainly was the biggest, most expensive and most risky (because RPG is not a niche genre and our gameplay doesn't follow a well established formula) project our smallish studio has undertaken so far.

There have been a hell of a lot of great games that got released recently and many didn't get the sales they probably deserved. No wonder with people sitting on huge backlocks of games - while time remains limitted. On the other hand it's not so much a niche product as our previous games, it's based on an actual IP that many people care about. And it's the first time we used new types of marketing such as targeted facebook advertisments and showing the game on international show floors. What that means is that I have not even an intuition about how good it's going to sell and what players might think. Wink
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #150 on: November 27, 2016, 05:37:11 AM »

I have no time to play this, but feel obliged to buy it for the Linux support alone Hand Money Left Smiley
Logged
lithander
Level 3
***


View Profile WWW
« Reply #151 on: December 19, 2016, 02:08:42 AM »

The Dwarves started out as a humble experiment it turned into a medium-sized commercial project and when updating the DevLog later I always felt like it didn't realy fit into the DevLogs section of this site anymore.

Now that I've started working on the next project (https://www.facebook.com/ironharvest) and I'm really not sure if I should make another devlog about it. It's even more ambitious then The Dwarves. But I kinda enjoyed having a place to describe the small little steps going on behind the scenes!

What do you think?
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #152 on: December 19, 2016, 05:50:04 AM »

It does fit the DevLog section. Nothing wrong with being commercial - as long as the blog is actually about development and not just about promoting your game (I mean, around here, blogging about development is the promotion of your game).
Logged
RujiK
Level 2
**



View Profile
« Reply #153 on: December 19, 2016, 01:21:43 PM »

I liked this devlog, you should do another. Also before you completely leave the Dwarves you should do some kind of post-development conclusion (Things that could have been better or different, general audience consensus, etc)
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #154 on: December 19, 2016, 02:50:49 PM »

Yeah, do a postmortem!
Logged
lithander
Level 3
***


View Profile WWW
« Reply #155 on: January 24, 2017, 07:13:01 AM »

Okay, let's conclude this with a super quick&dirty post mortem!

The game has been released for a couple of weeks on PC, Mac, Linux, PS4 and Xbox One now. We've shipped the first patches and received a number of reviews. While we of course aren't too happy with the low metacritics value (60-70) the sales have been pretty good. We're going to reach break-even before entering into the "Sales" part of the product lifecycle. That's especially great because the game has only partially been funded with publisher money so some considerable part of the profit will end up with the developer. (which sounds like it should be the normal way of things but really is not)

So, in two ways this has been a stepping stone for us: We've made a successful debut in a much more difficult genre (RPG, instead of point&click adventures or turn-based strategy as our previous titles) and the returns will help us develop an even more ambitious game next.

The approach to develop a custom physics & combat simulation in vanilla C# outside of Unity and to use that as the basis for the ingame combat encounters paid of. Of course it takes a lot of time. But the biggest plus is that this approach eliminates risk and puts you in control as the code is not a blackbox but well understood. If you rely on Unity native functionality and plugins you're effectively working with blackboxes and if something doesn't work out as planned (or is plain buggy) it's often not clear how to "fix" it. You're also more limitted by techonological constraints in your gamedesign if you don't control all the details.

An area where that kind of control isn't so critical is the presentation/visualization. This is the first game where we didn't spend a lot of programmer time on writing shaders or custom rendering code and instead looked for 3rd party solutions wherever possible.

While we will stick with that general strategy for our next title the approach as executed in DWARVES wasn't without fault: Developing HORDE (the combat simulation engine) parallel to making the game meant that we had to wait for the systems to arrive before we could really finalize the gamedesign. "How does the game play and will it be fun?" is a question you should be able to answer as early as possible. But our focus on technical features ("fight with a small group against large amount of foes in melee combat") that would make the game unique and true to the book meant that we took a bet on this approach to also yield a fun game.

If you look at the meta-critics that didn't work out too well. But to be honest it's more complex then that: Reading the actual comments and reviews to find out what players liked and what they disliked you'll find a lot of contradictions. Some liked the combat some didn't. Some liked the turn-based strategy parts (played out on the boardgame like world map) some found it superfluous. The same goes for the story-telling, the control-scheme etc... by making a game that was part point&click adventure, part action RPG with twist (control 4 characters simultanously instead of only one) and part turn based strategy with the additional goal to faithfully tell the story of popular fantasy book (that was written without a videogame in mind) we made a game where it was very hard for players to like all elements of. Especially as the combination also meant that non of the individual parts reached the depth that it could have if this part would have been the core focus of the game. I think in the end we raised expectations (some intentionally some not) that we then didn't really meet. At least not for all players alike. For us making something unique felt important but for the metacritics sticking to an established formula would have been better.

In addition to all this the technical execution wasn't flawless. We gave the different locations (the game is split into a couple of dozens unity scenes) into the hand of individual artist that would create a scene in Unity based on a general description. At that point the combat/gameplay that would happen in these scenes was roughly planned but not prototyped and tested. So we would first finalize a location and then implement the gameplay and because the scene couln't be changed anymore without incurring extra development cost the gameplay suffered. So the locations have oftentimes a cool atomosphere - more like places and less like disguised playgrounds as the levels in other games often feel to me - but at the cost of the gameplay not being as fun and smooth as it could be.
To make matters worse when locations where put together we didn't monitor the impact on performance enough. If it was running smooth on the artists computer he felt like everything was fine - even if it wasn't smooth the expectation was that engineers would be able to optimize that later. Well, turns out that some of the optimizations necessary to get close to the target framerate of 30 fps (which isn't what many games would call smooth in the first place) we had to cut down on the simulation elements and sometimes reduce the scenes visual quality at the same time.

This was a reminder of something that we should have known in the first place: It's a good idea to grey-box levels and focus on the gameplay first. It's also important to monitor resource and performance budgets throughout the development process and not consider it as something that can be done as part of the "polishing" phase in the end.

If you got questions, let me know. I can go into more detail if requested but for now I think the post has grown long enough allready. Wink
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #156 on: January 25, 2017, 06:02:28 AM »

Thanks for the postmorten!

Based on the critique you got it sounds like a baptism-by-fire kinda thing. Looking forward to what you'll be building next!

(if you/your team starts a new devlog, I wouldn't mind if you post a link here to announce it)
Logged
RujiK
Level 2
**



View Profile
« Reply #157 on: January 25, 2017, 06:20:03 AM »

That was informative, thanks!

You should post a link to your next devlog here if you make one!
Logged

VampireSquid
Level 0
***


View Profile
« Reply #158 on: January 25, 2017, 06:30:27 AM »

Awesome.  Thanks for sharing and I appreciate your candor.

Quote
We're going to reach break-even before entering into the "Sales" part of the product lifecycle.

I think this says it all.  You did well.  Congrats.
Logged
Jabberwocky
Level 0
**


View Profile WWW
« Reply #159 on: January 25, 2017, 07:22:41 AM »

Cool - I remember following your guys' work way back with the Book of Unwritten Tales, as I was doing Ogre3D work at the time as well.  I'm very happy to see you guys are still alive and kicking.  Your stuff always looked super professional and polished even back then.  Congrats on the successful release!

If you're keen to share, I'd be interested to know the rough sales breakdown between consoles vs. non-consoles.  But I understand if this is not info you're public with.

The approach to develop a custom physics & combat simulation in vanilla C# outside of Unity and to use that as the basis for the ingame combat encounters paid of.

Very interesting thoughts on working within the "blackbox" of Unity, and finding ways to mitigate the associated risks.  I've always disliked closed source game engines for this exact reason.  But I like how you guys dealt with it.

Reading the actual comments and reviews to find out what players liked and what they disliked you'll find a lot of contradictions. Some liked the combat some didn't. Some liked the turn-based strategy parts (played out on the boardgame like world map) some found it superfluous. The same goes for the story-telling, the control-scheme etc... by making a game that was part point&click adventure, part action RPG with twist (control 4 characters simultanously instead of only one) and part turn based strategy with the additional goal to faithfully tell the story of popular fantasy book (that was written without a videogame in mind) we made a game where it was very hard for players to like all elements of. Especially as the combination also meant that non of the individual parts reached the depth that it could have if this part would have been the core focus of the game.

Ugh.  That's preaching to the choir with me.

Mixed genre games are notoriously hammered by reviewers.  Because if your game includes say a strategy element, but that element isn't as deep as that reviewer's favorite pure strategy game (and how could it be?), you get blasted for the omissions, rather than kudos for the extremely difficult task of mixing genres into a greater whole.  It's a shame, and probably part of the reason there is less innovation within the established genres than there could be.

I very much appreciate the post-mort.  Thanks.
Logged
Pages: 1 ... 6 7 [8] 9
Print
Jump to:  

Theme orange-lt created by panic