I’ve been fairly productive this week, finishing my cargo hold updates. It’s not the most visible of updates, but it is required, and it is working now.
The biggest thing that I am working at the moment is getting the buying/ selling to work with the hold updates. This is requiring a bit of a change of the dialog, which is what I am working on at the moment. Once this is done, the game should be playable again. And then finishing up the missions updates should be fairly easy, and I can get back to adding new features instead of just updating them.
I’ve been able to put a fair bit of effort in to Colonial Sea Trader this week, and I’m making some really good progress on getting the missions integrated. It doesn’t show as much in terms of visuals, but I am definitely making progress!
The main thing that I’m starting to work on is actual integration of the new mission system. I haven’t removed the old one yet, but I am slowly demonstrating the shadow functionality of the new mission functions. So far I am able to create a mission, and have started the code to destroy a mission when it expires. So far most of that is working, except for a bit of code that I can’t really add in to place until I completely remove the old mission style, which I’m not ready to do yet. Still, I’m content for now!
One of the things that I have done is to organize the localization code a bit better so the lua code can use the localization text. It is working, as is evident by the test mission code I’ve executed thus far!
I’m hoping to continue to get the missions working. As things are definitely loading from the mission definition file, I’m hoping I can finish the first mission code, and start getting the rest of the code integrated. I’m hoping by the end of the year I’ll have all of the missions fully integrated!
The more I look at extending missions, the more I am coming to realize that there’s a lot of key features that I’ve been missing from missions all along. It’s long been on my todo list to do an overhaul of the missions system completely, and I’m now going to take that on completely, as it was becoming increasingly apparent that I needed to do so before I could properly show the list of missions, among other things.
One of the things that I noticed in particular that I need is the ability to execute functions when I arrive at a particular city, and on a particular day. By so doing, for instance, I can have missions expire, which never was something that I have done before, and other such things. I can also have multiple deliveries required for a mission, should I choose to do so.
What I’ve done this week in particular is to start getting the pattern figured out what kind of data needs to be stored, how to store it, and what kinds of functions I’m going to need. It’s all very much down in the details grunt work, but it’s coming together slowly.
No pictures for the week, again, it’s pretty much heavy in the code. Will see if I can get something for next week.
I’ve decided to finally make the plunge into a higher level of modability, and start working with Lua code. This came as a result of my mission XML code, which looks something like this at the moment:
Note that in order to do the math, I have a “mult” section and an “Add” section. It is just too complex. I showed this to a few people, who suggested I work towards adding full scripting support for these variables.
After looking around at the options, I decided to go with Lua for coding support, and specifically MoonSharp. I haven’t done a whole lot yet, but it is coming along. I’ve managed to execute some code, and get it to return the name of a city. I’m still very much trying to decide how to make it work, but it is coming along.
I’ve had this on my todo list for some time. The conditions and tutorial stuff have been something I’ve wanted to have scripting support to enable for a while. I’m going to start with missions, but slowly over time allow for other things to use the Lua scripting, as I will have the base support to allow for it easier.
I was able to accomplish a few things that I have long wanted to do this week. The key update was to overhaul the biome system considerably, converting a large number of code constants in to a config file. I’ve also played with the seasonal shader model a bit, and gave an indicator of the price system.
Each tile is assigned a Biome. The easiest way to see this is via the colors, as well as the tooltips that show up when you move the mouse over the biome, which will give the name. I have long wanted to assign biomes to the ocean and islands, which are used to figure out what resources are produced in a given location. Each plant, for instance, has a preferred biome. While I was at it, I also changed the moisture parameters to better balance the desert areas. In the end, this is what I ended up with.
Note the random “Tropical” seas that are lighter in color. I also added biomes for lakes and islands, so that northern islands will be different colored then other locations. I’m still going to do some tweaking, but that will come later.
I also spent time to set these up to be extended easily. While I haven’t yet set up most of these files to be modable complete, I have things set up such that they can be easily converted to a modable design. Things like new goods, ships, biomes, world generation parameters, and even goals will be able to be set up via some light modding, although I might not have how to do so well documented, at least at launch.
Another change you might notice in the above image is the top and bottom parts of the map are darker. I’ve added a system to take into account the lighting based on the axial tilt. To accomplish this, I did some tweaks to the shader. See it in action below.
Lastly, I wanted to give some kind of an indicator if a price is good when you are at a trading post. I’ve indicated “Red” for a bad price, “Green” for a good price.
As you can see, this particular port has cheap goods, which makes selling anything for profit as difficult. It will judge the prices against prices that you have actually seen, so be aware!
This week I’m planning on making the camera into a perspective camera. Just to give you an idea of what it will look like, here’s a snapshot of the progress. I’m also going to manage the biome localization, and possibly start working on the real world map.