News - RyanBabij/WorldSim GitHub Wiki

02/03/2019

I've just about finished implementing the object interaction framework. Now I can go ahead and start coding the item interactions, which includes things like eating them and hitting people with them. There is still a lot of work to do before 0.1, but I'm getting there.

I somehow got LLVM working. There were some new errors and warnings which were quite useful. LLVM compiles about twice as fast as GCC, which is great for debug builds. The rendering seems to be slightly slower, so I'll still be using GCC for releases. However I'll be keeping an eye on it.

25/02/2019

I made very good progress on Adventure Mode since the 15th. I implemented line of sight, collision and dynamic map loading. You can walk around the entire world without any problems, and you can pick up and drop items. I also implemented a basic conversation menu. Tonight I've been working on object interactions. This can be a sticking point with some projects, but I think I've got it figured out well enough. I'm still trying to move towards a basic gameplay loop, but once I implement a couple of object interactions like woodchopping and fishing, then I could be close to a 0.1 Alpha release.

I haven't been able to get it to crash all week, which is great news because it was unstable prior to the bugfix releases. I also stress-tested World Generator and it seems like there isn't any memory leak like I feared. Memory increases for a few minutes then stops. There might just be some internal caching or something.

The main focus will be object interaction. However exploration, conversation and AI will probably also need some work. And finally I should probably improve the presentation before 0.1, for example by making the NPCs wear clothes instead of running around naked. I still can't think of a proper name for this game, but I guess something will come up eventually.

Load/Save probably won't be implemented for a while because I would have to update it everytime I add features.


20/02/2019

I've finished a huge chunk of work getting Adventure Mode working, and it looks pretty good. Just need gameplay now. I also spent a few hours upgrading MinGW GCC from 7.2.0 to 8.2.0. Unfortunately when I benchmarked it, 8.2.0 was actually 1% slower. I am not in a hurry to adopt it, but it's there if I need it. 8.2.0 makes some experimental stuff standard, and also I believe we're now moving into a standard system for threading. It's a good thing I didn't implement too much threading yet, because that would be a pain to update.

I removed several crash bugs and the program is running very stable for me. I was actually able to re-enable compiler optimisations which were crashing it earlier.

I learned that I was not including a DLL which was required for most users. Now anyone should be able to run the program.

Right now I am confident with progress, and I feel like it is a good time to start implementing gameplay features. I want to implement collision, basic interaction, and make the worlds more interesting to explore.

WorldSim currently has 9,204 LOC. And the Wildcat library has 16,835 original LOC.


15/02/2019

Okay I'm back for realsies this time. And it's the day after Valentines. COINCIDENCE???? Yes


27/08/2018

Okay I'm back. Feeling lazy tho lol. Hopefully will be able to get back into things. Working on local map stuff.


01/08/2018

Currently on holiday so work might be a bit slow for a while.


15/07/2018

Human tribes are now splitting up and exploring the map. It's working pretty well. You can generate a map with a single Human tribe and it will expand and split into smaller tribes until the landmass is full. I am running into some kind of slowdown for maps bigger than 257, even after limiting population. I suspect territory handling needs to be improved. Also tribes are randomly going down to population 0. I added code to garbage collect them, and their territory will just suddenly pop out of existence. I'm guessing it has something to do with old code for food handling.

I improved the Tribal wandering AI, and didn't even need to put in pathfinding. They just will sometimes move 1 tile away from their territory, and then go back. This creates realistic-enough behaviour. I just need to put in interbreeding, conflict, and fix the food issues, and then the basics of the Tribe code should be done.

Now I'm working on Tribe combat. Combat may be initiated if 2 tribes are adjacent. This is the first instance of Tribe-Tribe interaction, and the first instance where I realise handling time acceleration is not going to be simple. For now I have decided that each tribe uses all of its ticks before any other tribe can move. Obviously this will cause different output if you simulate a month at a time, versus simulating a day at a time. This means history will not be repeatable from the base seed (unless you use the same time-skips every time), and also will likely have gameplay implications.

Regardless, I have decided to keep it like this, and a combat check is performed after each move. The tribe that calls the combat move gets the initiative, meaning they decide whether to attack, and what kind of attack to perform. To start off, it will be a bunch of dice rolls. I might include some basic stat stuff too.