Thanks for the encouraging words. I have to warn you this thing progresses at glacial pace. I’ve been meaning to add ambient sounds like birdsong for some time now.
I am hoping to do a big dev blitz toward the end of the month…
Thanks for the encouraging words. I have to warn you this thing progresses at glacial pace. I’ve been meaning to add ambient sounds like birdsong for some time now.
I am hoping to do a big dev blitz toward the end of the month…
I have several working tools written for controlling ambient sound playback. If you send me a desired api for how you’d like to access them, I bet I can make a jar/library to your specs. Message me if you’d like to give it a try.
philfei and i have agreed a simple API I can code against, so I am starting to add sound to Vangard. But the calls will be going to a do-nothing stub until later this year.
Sound implementation has been pushed by out by groundwork I am doing to ensure the consistency of world data - I have thousands of interlinked lines of world data and I wanted to be able to guarantee it was correct. That’s just getting finished, if I have time tonight I try to commit at least one sound.
I do have sound now - ambient birdsong and forest rustling, with random crow cawing.
I’m also in the process of backing out all the hardcoding in world generation, so I drive it all from the creature definitions. So for example as part of the oak definition I specify the density of Oaks as being 2 oaks / hectare (20,000 oaks for a default map), with additional rules for clumping and whether they are more or less likely to occur near settlements and so on.
EDIT: Just got the plant part implemented, so world generation is very much simplified wrt vegetation and doing the same for animals is only a short step away! Immediately the world is richer, with more varieties of trees and a wider variety of items in the tree drops.
EDIT: I also have animals loading from file now, so I have a wide range of species in the game: bears, wolves, foxes, boars, deer, and rabbits.
Spent the evening playing with @philfrei’s vagardsound.jar. It creates a very atmospheric night forest soundscape.
Man @philfrei knows a crap ton about sound and java. That’s awesome as my first love will always be audio Does vangardsound.jar use surround sound?
@philfrei can answer better but its a first cut and currently lets me mix in effects like foxes and owls and leaf rustling. It’s an important component of the game because I won’t have music, only ambient sounds.
Hi - I’m really pleased to hear the first cut has some positives. For some reason, the posts from the last three days (including ags1’s first mention of my jar) didn’t appear for me until today.
Doh! I realize why. I was relying on mail notification rather than coming to JGO, and I don’t have this thread set to notify me. Sorry for the delay in response!
The “first cut” that I just sent over was simple volume-panning stereo. There are some sound that are in fact stereo (“Wind-in-trees” and “forest-crackle”) which are allowed to stay as is, and others that are treated as mono point sources (fox and owl cries) so that they could be set to originate from different distant points as time passes.
My plan is to institute delay-based stereo at a later point if the benefits justify the required increase in demand of cpu. I’m not sure if I’ll attempt anything more than adding the delay-based stereo. I’d like to do something with the whole surround-sound thing, but I haven’t looked into how to output to audio systems that have more than two tracks, and I don’t really understand the math behind the fancy HTC-whatsis stuff. [What is that acronym? For sound that is stereo but gives the sense of above, below, behind, not just left-right.]
As far as I can tell, it might be possible to get some of the behind/above/etc. effects via a subtle use of filters, and I do hope to learn enough to implement same and experiment with this. In that case, the point source sounds, like the fox or owl, could perhaps be treated with some filtering to create more of a “surround-sound” illusion. But this is going to take a lot of study and work for me to figure out, and there is a lot on my queue.
@FabulousFellini Can I quote you on that? ;D Thanks for the compliment.
I have an AI-first approach to features, where the AIs get to execute behavior before I add it to the player entity. I am in the final stages of adding support for executing recipes by the player entity. I don’t have a complex UI for it, you simply click on a recipe and it shows a sidebar with the required materials, tools, skills and location, and a Make This! button. If anything is missing it is highlighted in red.
@philfrei, given that this is a top down game with vertical zoom in zoom out, I think I could make powerful use of “below” sounds.
Of course!
Added building definitions to Vangard today. At the moment the buildings are just outlines, and info on status, construction and maintenance maintenance costs etc. Currently everyone has a hovel, but of course smiths and others should at least have a cottage or longhouse, while chieftains should have a hall. Smiths need a separate forge for their work.
I’m still thinking about giving the player character a dog. It would be fun to train it to either do tricks, fight, guard or track.
To allow a certain degree of city-building strategy without an RTS-style tech tree, I’m planning on allowing temples to various gods to provide divine favor to citizens of the settlements. So a temple to Thor would boost attack and lawspeaker skills, while a temple to Odin would boostdefence, dodge and command skills. The number of temples that can be built to any god would be limited, creating some resource competition.
I like the dog idea!
My D&D group also propose a general Taming skill that could be used to convert wolves, foxes etc into companions. I don’t think that would be very “authentic” however.
I have been working with @philfrei on audio for a while. I will put up a new JAR soon with integration with pfambience.jar once we have ironed out a few glitches.
I have come up with a way to handle character ageing in the game. The problem I have is that I want the game to have ageing but it is hard to get an ageing rate that will work correctly given that I can’t foresee the actual mortality rate. The goal would be to have the character expiring after about 40 hours of gameplay.
My solution is to use the same system I am planning to use for trees, where trees have a few age categories, like sapling, young tree, tree, mature tree, old tree, ancient tree. When a tree in one age category dies or gets aged into a higher category, a tree from the next category down gets aged into tree’s category. So when an old tree is chopped down, a mature tree is aged into being an old tree, which causes a tree to become a mature tree, a young tree to become a tree, and a sapling to become a young tree. When a sapling is aged, then I spawn a new sapling somewhere.
So it would be the same for people - I would have categories like infant, child, youth, young adult, adult, mature adult, middle aged, old, wizened, terminal. The last age category actively kills people off, the player will get a timer to wrap up their affairs and select an heir!
Understandably, some people may not want to play a lineage and may want to play one character. For these cases I will let players opt to have a ring of immortality in their starting equipment. Instead of difficulty levels (which I can’t even imagine for Vangard) I will let the players choose aspects of their background, like this ring, or having a powerful friend or enemy etc.
Most of the audio glitches are ironed out. I am working on adding more realistic town plans as well as some variety in the size of settlements. However this implies I need the settlement economy to scale from a single hovel to to a small hamlet to a village to a town. Which is more tricky - because the rich keep getting richer, i need to print money (mine gold) continuously (aka quantitative easing). But small settlements won’t have a gold mine so they would run into a money vacuum. One solution would be to allow entities to barter goods.
One nice thing about differing settlement sizes is it sets up trade routes with small agricultural settlements exchanging their food and wood surplus for the manufactured goods from larger towns. So I need to add a itinerant peddler career to the game, which would be a guy plus a donkey (walking repository).
Are there going to be roads between towns?
Yes, eventually. Not only roads between villages but also little rivers too and bridges. However this needs to be done with path finding logic that doesn’t consume the CPU budget.
For now I have to focus on sound and town generation some more (currently there are only two building types, and we can’t have the chieftains living in hovels). Also I need to make the paths prettier at some point.
Also working on combat in my lunch breaks and height map generation intermittently, currently the game has no height map but one is required as a friend is looking at adding a 3D front end on Vangard. With another project contributor I also have to work more on documentation and coordination and separation of concerns.
I’m also haunted by the need to make economics more realistic, add in trading between towns so they are not necessarily self-sufficient, add in the ability for towns to grow and shrink in size…
@J0, I did quite a bit of work to make my path logic more believable after your WIDT feedback. I generate several possible street grids, pick the best based on a scoring system, then add in shortcuts based on a shortcut-finding algorithm, and then minimize the tree again - so the shortcuts replace any initial unlikely paths. A better road-generation algo was suggested to me on the WIDT thread, but it was less effort to initially hack around with what I already had.
It’s all a bit overwhelming, but I’m pleased that I have got crafting working for both AIs and human players. I also have made the world resizable so it can run on weaker systems now. And I did some analysis of frame timings with has improved game smoothness. Under the hood I have added a lot of integrity checks to the game assets, so all the references between skills and careers and items and creatures and plants etc are guaranteed to be valid… And that enabled me to get rid of all the hard coding and move all aspects of game content into declarative asset files. So I am making progress, but don’t expect the final version before Half Life III comes out