diegzumillo
|
|
« Reply #20 on: May 26, 2015, 02:19:19 AM » |
|
This is awesome!
I once tried to make a crowd simulator using a scalar field method for a game. The purpose was different but the idea might be of some use for your project. The ideas are not mine though, I just implemented them from papers explaining the algorithm.
My quite bad implementation test:
the advantage of the algorithm is that once you calculate the fields, the number of orcs matters little to performance.
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #21 on: May 26, 2015, 03:04:47 AM » |
|
@diegzumillo: Is that some dynamic programming I see?
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #22 on: May 26, 2015, 03:35:40 PM » |
|
I've noticed that in any game where the enemies just blindly walk towards you, and you are faster than the enemy, you can herd them into a small area by circling around them quickly. And then kill all of them with one shot of a bazooka or whatnot. Any plans to counter this?
Definitely! The problem will be approached from two different angles: One is game & level design so that kiting just isn't an effective strategy. The other is about giving the orcs a more realistic behavior where they won't be kited easily but instead try to take control over the battlefield so that there's no place to run. We want to encourage teamwork between party members (combos!) and using the environment to your advantage. For example the bridge in the concept art might be a good place to stand your ground because by blocking the path with your heroes you could avoid getting surrounded and maybe you can even push orcs over the edge! I once tried to make a crowd simulator using a scalar field method for a game. [...] the advantage of the algorithm is that once you calculate the fields, the number of orcs matters little to performance.
Skalar or Vector fields are definitely going to be part of the solution. Simple search algorithms like Dijkstra work by flooding the map from start cell until the goal cell is reached. Now, when you turn that around and flood the map starting from the goal then you get not one shortest path to the goal but the shortest paths from all viable cell at once. The flood results in something similar to a heightmap and all you gotta do is to let water flow (or marbles roll, whatever metaphor works best for you) from *any* cell downhill until the lowest point (the goal) is reached. That was quite some eye opener, when I first realized that. And while writing the AI for Battle Worlds: Kronos i used this trick quite a lot. Now, for this game, there are many similarily clever ideas to borrow from that generate behavior that is - if not identical to the movement of a crowd - at least similar to individual characteristics of crowd movement. Flocking for example and Fluid Simulations! I think getting the movement of the horde right is not so much about finding completely new ways to calculating this but of mixing established techniques in the right way!
|
|
« Last Edit: May 26, 2015, 03:48:20 PM by lithander »
|
Logged
|
|
|
|
diegzumillo
|
|
« Reply #23 on: May 26, 2015, 03:44:59 PM » |
|
@JobLeonard I'm afraid I don't know what that is @lithander I can tell I'm gonna love following this devlog
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #24 on: May 26, 2015, 11:03:39 PM » |
|
@lithander: Kiting! That's a perfect term for it, I figured a common pattern like that would have a name. I'll remember that . Good to see you've been thinking about this, looking forward to see the ideas tested in implementations! @diegzumillo: That's ok, it's considered a pretty advanced programming technique. It's not, it's just often explained in a terrible way. Plus the name is very misleading 0. I could link the Wiki page, but I think it's only more confusing. This tutorial on seam carving is the easiest to grasp example I've ever seen, check that out. 0: A friend of mine who's a much better programmer than me, and has a master in CompSci and maths so presumably knows what he's talking about, recently noted (paraphrased) that most of the time it's just optimizing a recursive problem with the same recursive solution plus memoization on top. And memoization is just a fancy word for caching your results. That can be tricky to get right, but it's not so complicated as a concept if you put it like that, no?
|
|
« Last Edit: May 27, 2015, 04:43:03 AM by JobLeonard »
|
Logged
|
|
|
|
mk
|
|
« Reply #25 on: May 26, 2015, 11:30:01 PM » |
|
Love the concept art and it's nice to see which tools and prototypes you are using to progress. Keep it up! We want to encourage teamwork between party members (combos!) and using the environment to your advantage.
Does this mean you'll be able to switch between party members? Or you have online-multiplayer in plans?
|
|
« Last Edit: May 27, 2015, 04:04:30 AM by mk »
|
Logged
|
|
|
|
Mittens
|
|
« Reply #26 on: May 27, 2015, 12:35:24 AM » |
|
That concept art really inspires hope that this could go somewhere pretty cool, keep it up!
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #27 on: May 27, 2015, 03:00:19 AM » |
|
MK, your quotes got mixed up
|
|
|
Logged
|
|
|
|
mk
|
|
« Reply #28 on: May 27, 2015, 04:05:17 AM » |
|
@JobLeonard, ooh, right! Fixed
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #29 on: May 27, 2015, 04:38:04 AM » |
|
Thanks for all the good feedback! That's really motivating! That's damn cool stuff! And while Dynamic Programming is a term I hadn't heard before the seam detection method is very elegant and clever and also pretty similar to the dijkstra-hack I described earlier. So, I didn't know "dynamic programming" and at the same time I did know. Sometimes I feel like there are a plethora of technical terms getting thrown around that hurt more then they help. There are lots of interesting ideas burried in technical papers, hidden behind paywalls, academical speach, references to way too many other papers, exotic algorithm-names build from the author's names and complicated math formulae that give you the impression you're never gonna understand it. Once you *do* understand it you often feel like authors tried hard to explain it as obfuscated as possible. Feels like they are not trying to communicate an idea but formulate it in a way that makes them look as educated, academical and smart as possible. Really not my kind of teaching style. (This is general critizism of academics not directed at you, JobLeonard. The way you explained it was to the point and entertaining!) Does this mean you'll be able to switch between party members? Or you have online-multiplayer in plans?
You'll definitely control all party members. The thing we are not yet sure of is wether that will happen in realtime or if there are some options to give you time to make decisions or plan some behavior that is executed in parallel. You know like turn-based or pause and play. Personally I'd like to keep it real time. There are no online multiplayer plans but local coop (two players with gamepads control the party by switching from hero to hero instead of one) is something that sounds very cool and not too hard to implement.
|
|
« Last Edit: May 27, 2015, 04:44:33 AM by lithander »
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #30 on: May 27, 2015, 04:46:17 AM » |
|
Once you *do* understand it you often feel like authors tried hard to explain it as obfuscated as possible. Feels like they are not trying to communicate an idea but formulate it in a way that makes them look as educated, academical and smart as possible. As an educator: yes, agree completely.
|
|
|
Logged
|
|
|
|
Christian
|
|
« Reply #31 on: May 27, 2015, 10:07:25 AM » |
|
Love that concept art! Have you seen the game Infested Planet? It's a sci fi RTS, where your small squad takes on a..well, hordes of aliens. That was the first thing that came to mind when I saw this
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #32 on: May 27, 2015, 03:07:33 PM » |
|
Have you seen the game Infested Planet? It's a sci fi RTS, where your small squad takes on a..well, hordes of aliens. That was the first thing that came to mind when I saw this
Haven't played it but "Starship Trooper" is a reference often mentioned in game design meetings! Our game focuses mostly on melee combat though. It's nothing you got to avoid to survive. The famous Helms Deep battle out of "Lord of the Rings" with the Orc slaying contest between Gimli and Legolas... that's what I've got in mind as a vision! I promised 3D art earlier. Here's an high-poly WIP screenshot of a 3D orc. The reason the armor pieces are so cluncky is that in the game individual orcs will only get a small percentage of the screen space. As you can see minor details get lost quickly. So we exagerate a little.
|
|
|
Logged
|
|
|
|
oldblood
|
|
« Reply #33 on: May 27, 2015, 04:23:49 PM » |
|
I'm sure I will be the only person to ever say this but-- I kinda wished it was all 2D. I get why there are benefits to doing this in 3D and the highpoly orc looks great... I just love when 2D games break out and do something really unexpected despite it's limitations. Love the whole "Helms Deep" take on game design, very cool project.
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #34 on: May 28, 2015, 02:57:52 AM » |
|
I'm sure I will be the only person to ever say this but-- I kinda wished it was all 2D. I get why there are benefits to doing this in 3D and the highpoly orc looks great... I just love when 2D games break out and do something really unexpected despite it's limitations. I know what you mean. When I see great concept art I always wonder why games never look like that? The abstraction that's inherent in a painting isn't a bad thing. But for practical purposes 3D is just way easier to do. How can 2D be harder to do then 3D - that's counterintuitive. One dimension less shouldn't be harder but simpler! Well the problem is ofcourse that the world you try to render in 2D is still 3D... just imagine how many different animations we'd need if we wanted to prepare for a characters every possible rotaton around his vertical axis. I think you'd need a automated rendering system that turns a 3D world model into beautifully painted, fluidly animated 2D scenes... and that's something nobody got right, yet.
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #35 on: May 29, 2015, 01:01:19 PM » |
|
Together with our lead animator I've started working on the motion controller. This is just the move state but it's the most difficult/interesting one because if this works then everything else (getting pushed, falling down etc) will also work. The idea is to synthesize a walkcycle from prototypical animations: walk forward and backward, sidestep left and right, all this in fast and in slow and of course walking a tigh left curve and a tight right curve. If for all valid combinations of parameters a set of mixed animations can be found that - when blended together - results in plausible movement the character will be super-responsive because there are no transitions and thus no need to wait for the right exit time. The only thing that still needs to be done carefully is to change the parameters continously and to avoid all combinations that will result in bad looking blend-results. Hopefully I can show you some walking orcs next week!
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #36 on: June 01, 2015, 08:40:28 AM » |
|
Struggling a little with supplying the motion controller with the right values at any time. Right in the sense of resulting in a continious motion that is plausible, not jerky and gets the dude where it's supposed to go. Details about what I currently do can be derived from this thread.
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #37 on: June 01, 2015, 04:39:14 PM » |
|
HD Video: *happy*
|
|
|
Logged
|
|
|
|
mk
|
|
« Reply #38 on: June 02, 2015, 12:32:28 AM » |
|
Hey, that's awesome! Nice progress. How will big ogres(from concept art) interact with regular orcs? Will they trample them in the heat of battle sometimes?
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #39 on: June 02, 2015, 12:35:54 AM » |
|
I get a bit of an "Orcs on Ice" feeling from it But it's still really good!
|
|
|
Logged
|
|
|
|
|