One of the things that has been on my list of planning improvements for a while is the missions system. Right now the system I have is very much tossed together, including stuff like hard coded mission types, no conditions upon which a contract is cancelled, etc.
As mentioned last week, I’m working on giving a status of the ship. The next thing after goods on my list was to show the missions in progress. That actually is proving more difficult than I would have suspected, primarily because I’m wanting to include different kinds of mission parameters that I actually don’t show in the dialog. So I’ve decided that I’m going to work on revamping the mission system.
The mission system will most likely have conditions for on success, on failure, and on accept changes that can happen. I have an existing conditions system which I believe I can adapt to working with this new system.
I hope to start working on this new system in earnest over the next few weeks. Hopefully I will have something nice to show by the time this is all done!
There is one major thing that I accomplished this week. I’ve been at it for a while, and finally, I present to you, perspective view!
The most difficult part of this was getting the minimap to look correct, which involved considerable rewriting of code.
The astute among you might also notice a new button on the lower left. I’ll leave the exact purpose of this button a mystery, but it will be the major project for the next week at least that I’m working on.
Not a lot else to really give you for now. Stay tuned next week for more!
I’m amazed at the amount of improvements that I have been able to make after having playtested Colonial Sea Trader. It is a much improved game over where it was only a week ago, thanks to the good feedback that I was able to get, between being put in to the situation of having the game ready to play, playing it, seeing it played, and getting some direct suggestions from people.
Most of the feedback I personally collected was in the forms of bugs. I noticed a lot of things that most players didn’t, like the money could sometimes become negative, the load time was huge, the fonts displayed were wrong, and quite a few other things I noticed by watching people play. These I made some huge improvements on, and I can say that many, if not most, of these issues are addressed!
I already wrote a whole blog article on it, but I’ve improve the loading speed immensely! The load time now is only a few seconds, as you can see from the below game dev vlog.
The other big improvement is the price list, which now allows for selecting items to be prioritized. I also did a few other tweaks to how it looked, and you can see an example below:
For the next week, I’m planning on doing streams both Monday and Tuesday evenings, working on improvements to the selling dialog, some kind of a way to indicate if the good prices are better, some tweaks to the pricing model, and other UI type changes.
Aside from that, the biggest thing I’m going to work on is if I only want to allow moving to cities, and what that might entail. I am increasingly thinking that I will only allow moving to cities and other points of interest, and not just traveling to any point, but I’m not completely sure. At the very least, I will only allow moving to a city if a city is within a few tiles of a city. Let me know what you think!
As with the last few weeks, I’ve been working towards my game demonstration at this week’s IGDA-DC District Arcade. I’ve been making dialogs clearer, looking for issues, but most of all working on improving productivity. This week I was able to find quite a few issues, and I think I’m pretty much there! I’m now able to play for about 5 minutes without any issues, and I’ve identified one more thing that when I get it fixed will allow me to play for even longer!
The biggest difference to allowing me to play longer is the fact that water and food are now available in ports. After digging in to the issue, I found that it was a simple rounding error that prevented me from getting more water, fixing that allows for me to continually get the water that I need, as well as some food. It will still need tweaking, but overall it’s looking pretty good!
I made a few dialog improvements, related to buying and selling. The trading post now shows a much improved price list compared to before, as I started to do last week.
Also, I’ve been working on solving the issue of seeing behind the sign when I have a ship there. This is one potential solution that I’ve been working on, let me know what you think. I have a few other things that I can try out too, but I’m really curious what you think.
As for Twitch, I’ve decided the following. I’m going to stream when I have the time to do so, and am working on something that will work well for Twitch. The most likely times that I will stream are Monday, Wednesday, Friday, and Saturday evenings. There are other times that might work as well at random, but I won’t count on them. I’m going to try and do it once a week. There are a number of ways to find out when I’m streaming, the best is to follow me on Twitch.
This week I’m going to continue the playability improvements. Specifically, I’m going to work on better showing what is limiting one’s ability to travel. I’m doing this because the lack of funds was actually what limited me, which wasn’t what I thought my issue was. I’m probably going to also further refine the dialog improvements from last week.
I decided I’m going to try something different. I was listening to a GDC talk about a number of things, one of the things was streaming your development work. I decided, why not? So I have set up a Twitch account, and figured out how to make it work. I did do a single test stream Friday, and it worked quite well. The next time that I will do it is today at 12:30 EDT, 1630 UTC. I know it’s only a few hours notice, but I’d love it if any of you could jump in and say hi, and see how things are going. I’ve set aside a number of topics to try and make the stream more interesting, I’ve decided no one wants to just watch me spend 3 hours digging in to a code base that I’ve been working on for over a year to fix some obscure problem. Mostly I’m going to focus on UI and Player Experience. So please, stop in. I’ll keep going until I can’t anymore, assuming there is interest.
I’m continuing to work towards the District Arcade, in only 2 weeks! I missed the date last time, the correct date is September 16th. As I previously mentioned, playability is the major thing that I am working on to improve with in the game prior to the event.
I started my test stream by playing the game, and carefully taking notes of where I felt the playability was lacking. The first area was that the price difference between buying and selling was just too high. I tweaked my settings a bit, and ended up with a price difference that was about 10-20% of the cost in most instances, which seems much more reasonable than the 2-3 times the cost I was seeing before!
Another major issue has been the lack of food. I’m still working on this, it’s a far more complex issue than I had first realized. Still, I think I set up a system this week that will be closer to fair, it’s going to take a while to really make it.
One thing that has really bothered me is the game looked much different in the compiled version than in the one I was running in my Unity window. I spent the better part of a few hours digging in to the code to figure out what was going on. In the end, I realized it was the Unity quality settings, the default value differed between the two versions, and made a huge difference. Check out the images below, the final product, and two test cases showing the difference between the two.
I also fixed an issue where the journal would overlap text sometimes. In the screenshot I showed last week, I was able to manually fix it, but it wasn’t working right in the game. The bottom line is, the list of cities that I allow comes from a text file, and each entry is on it’s own line. I was splitting by “/n”. I can hear half of you groaning now, knowing what my error was. Because I made the text file in Windows, there was an “/r” still attached to the end of the city. That is a carriage return, which basically means to start the text over again at the beginning of the line you ended on. The good news is, I’ve fixed this! It will now also support linux formats, FYI.
Lots of stuff happening, things are really starting to pick up! I did another development vlog, check it out below.
This week, as I suspected before, was a bit slower than I would have hoped for. As I mentioned at the end of last week, I made a trip to see the total solar eclipse (More later), which took much of my game development time for the week. Still, I was able to make quite a few changes that are smallish, but quite important. I do also have a bit of exciting news to share with you all!
The only visible change was adding a bit more decoration to the journal, as seen below. There may or may not be a subtle Easter Egg included, I give full credit to anyone who can spot it;-) Likely I will add similar tributes to others who have helped me to make this game possible, it’s been quite fun to do so.
As with previous weeks, I’ve been localizing more text. Most of this week’s changes were relating to goods, I now have most of them localized.
The biggest gameplay change this week was I lowered the time to move by a factor of two. It seems to make a huge difference in gameplay! I’m hoping to continue to do exploration in this field to improve the gameplay further! Particularly with some news that will come later on;-)
As mentioned previously, I made a trip to see the total solar eclipse in the US last week. It was really amazing, I recommend that anyone who can takes the opportunity to see one! One of the stories I heard while I was there was one that I had heard before, that of Columbus using knowledge of a lunar eclipse to impress the natives, getting them to do what he wanted to do. It made me think about how I could use this in Colonial Sea Trader. I think I’ve decided that some random events will occur that include eclipses, and will have some kind of an effect, which I’m still trying to work out. It should be quite interesting.
And lastly, for the exciting news! I have been invited to present Colonial Sea Trader at the IGDA DC’s District Arcade this year, on September 21st at Bravo Bravo in Washington D.C. If you are in the area, stop in and say hi, I’ll let you test out the game and give you a chance to provide some very direct feedback.
With the upcoming public demonstration of Colonial Sea Trader, I’m going to concentrate on getting as many updates to improve the gameplay as possible. The first was making things run smoother. The next changes will probably ensure that I have a reasonable distribution of land types, and thus good types. Stay tuned for more!
Lastly, I did post a short development vlog this week, check it out below.
I intended to work only on the journal this week. It turned out that while I did this, I realized that I needed to improve my localization support considerably. The previous method only allowed for the translation of entire phrases, which works for some instances, but not for all. To remedy this, I decided to allow for the insertion of words in to localization strings, as I have seen done in other places. This allowed me to add in stuff, like where you docked, goods you purchased, etc. I also started to work on a journal display, which I will be working on to improve quite a bit.
There are a few other things you might notice from here. The first is that I now have an official date entry, showing the year, month, and date. I’m still going to be including that in more places, but it is a start.
The other thing you might notice is that I’m now using color icons for the bottom right bar. I still am going to play with them some, but I think colored icons are better than the old mono-color icons I was using.
Previously I had only the barest skeleton of localization support. I now am officially using it! The localization dictionary is actually the first modable item that I am supporting. The script will come in a folder that anyone can change, should they so desire. When I have done more localizing of strings, I will give this out for assistance in translation, but right now it is premature, if anything.
No video this week, up until the last moment I was working on just getting anything graphical to show up, but I should return with a video next week.
This week I’m going to continue to improve the journal display, both in adding more items to the journal, as well as improving the display itself. I’m also going to work on actually localizing all of the strings in the game, now that my localization support has made it this far.
This week I did a lot of bug fixing from my last video, including ensuring that food can be directly purchased. I added the ability to use a number of interesting emojis, and have started using them. I made the goods table scaleable to all sizes, improving the look at full screen. I improved dialog to purchase goods as well.
One of the biggest things that I discovered when I added the good tables was that I have a pretty severe lack of resources available. Despite the roughly 30 goods available, I was only using maybe a third of them. Why might that be, I wondered? To solve that, I did some diagnosis of the number of tiles produced of what types, and what the cities that were produced were. By so doing, I found that I had almost no grassland produced, where many of my plants are programmed to start, and lots of jungle and rainforest type land. In a word, my land is too moist! Also, many of my cities are made on islands, and I currently consider islands to be a different type of biome, which I haven’t done a lot with. Bottom line is, I have a lot of things to improve in regard to the world generation. This will be high on my list in the coming weeks.
There was one bug I fixed in regard to the world generation. I had discovered that the poles were no longer showing as covered in ice, as had been done previously. To figure out what happened, I looked at images from this very blog over the course of the last month to determine when the bug was introduced. Knowing when it was introduced, I could more easily track down the exact problem, and had it fixed within 10 minutes. Keeping a blog can have many benefits!
The biggest improvement was to my price dialog introduced last week. I added some darker columns to improve readability, allow for it to be scaled, and removed items that aren’t actually available for sale anywhere. The bottom line, it looks like this now:
One thing the eagle eyed might notice is there is one icon that looks quite a bit different than the others. The sheep icon is new. I used the fonts from the Noto color emoji to the mix, and in so doing find a few nice icons for use elsewhere in my game. The sheep was one of the ones added. I haven’t decided on a final style for these, but more that I am looking for a temporary icon to give me something to think about in terms of the final style.
I did another video. I’m going to work on improving these videos overall, but these early videos are teaching me a whole lot, including what to include, how to make the video production work, and last but not least, showing me bugs in my game that I might otherwise miss.
All in all, it was a productive week! This week I’m going to start a new dialog, namely an activity journal to show what you have been doing, and what is going on in the world. I’m also going to give the procedural world generation a bit more thought, and possible start using that!
This has been one of the more productive weeks I’ve had in a while. I had tentatively planned to do Ludum Dare this weekend, not having any inspiration from it, however, I decided to keep working full steam ahead with Colonial Sea Trader. And I managed to do quite a bit.
The first order of business was fixing the ugly looking square box from last week. I determined the cause of the problem was the resolution with which I was drawing the box. I set the resolution to be constant. In addition, I now only redraw the box when resizing, otherwise I just shift the texture coordinates, which allows the game to run faster. Redrawing the minimap was actually one of the longer tasks done each turn, so speeding that up helps quite a bit!
The eagle eyed among you will notice two additional changes in the above image from previous weeks. The first is that the land looks quite a bit different. While debugging the minimap, I discovered the textures weren’t being applied correctly. In the process of fixing this, I discovered a number of other issues, the most notable was that the game didn’t look the same in the compiled version as the editor. To solve this, I first determined that it was the frequency of the bitmasking operations that was the issue. In the process of discovering this, I turned the frequency way up, and I found this version, which I quite like. Let me know what you think!
The other change is that there is another button working in the bottom left hand corner. That is the price list dialog. Here is what it looks like in action:
Note that you can sort by any of the columns. I’m going to work on prettying up a few remaining issues with this, but overall, I’m quite content.
I did another video, which you can see a bit more gameplay. Take a look at it below.
On tap for this week is fixing a few remaining bugs observed in the price list. Assuming all of those go as planned, I next plan to start working on price rumors, where when you visit a port, you will get an idea of what the price of goods will be for other nearby ports, and possibly even exotic ports.
This week I tried something I’ve never done before, posting a video blog entry. I won’t do this every week, but I will try and do it at least once a month. In the process of doing this, I found a lot of issues that I hadn’t otherwise noticed.
There are a few things that I pointed out that I know about and haven’t had a chance to resolve yet, but I discovered a few key issues while doing the vlog. The biggest thing was the minimap image looked absolutely horrible. After thinking about it for a few days, I came up with a new approach which is much faster, and looks better compared to what it did before.
I’m still not really happy with the minimap overall, but I haven’t figured out what to do about it, yet. It is coming, however, and I expect to be fully there soon! I’m looking at pixel scaling algorithms, or perhaps a custom shader to improve the look of it somewhat, not sure what I’ll do yet.
I found it quite interesting at how fast the game plays in the build version. I think I want to slow it down actually, which is interesting because when I play it in the Unity window, it runs much slower. Still, I’ll have to come up with a better way, stay tuned!
I also spent some time learning about how to import Emojis, it turns out that my text rendering engine can support emojis, and thus all I have to do to add them is to get the data in to the right format to use, and import them. I haven’t gotten there yet, but when I do, it’ll improve some use. And no, I’m not talking about using smilies, see my previous blog for what I’m talking about using.
This week I’m going to sit down and do the price list. I’ve got it started, it’s time to get it to a working state. This might be delayed if I decided to do Ludum Dare again, but I should have time notwithstanding to finish this price list!
This week has been one of those that is more behind the scenes progress than code progress. I’ve been trying to figure out exactly what I want to appear in a price list. There are some things that are obvious, and others that are less so.
First of all, I want a system such that one doesn’t know the actual world price list. In ye olden days, you wouldn’t know the price of something in the entire world, and I want to reflect that. But there are some rumors of prices that you will hear, in addition to the prices that you have observed at a particular time.
There are a few different systems that I have seen for such a system. The first is that of Pirates!. In that game, there is no price list at all other than what you see, but you can periodically receive prices of the prices in rumors. These are stored in a journal which you can review if requested. The price lists are typically seen by talking to people in a bar, which is a reasonable approach to update the prices.
The second is that of Winds of Trade. There there is a global price list, along with the date, price, and fidelity of the prices. While I like that general approach, it’s not quite what I’m wanting to do. It’s too accurate.
The approach that I’m looking to do is somewhat of a hybrid of the two. I want the rumors to exist. When you visit a tavern, you will get some idea of what prices are like in other parts of the world, particularly if you “loosen” people’s tongues. But I think it makes sense to collect your observations in a single point.
I think this will have 2 different modes, one that sorts by city, and one by good name. The City view will only show a summary of the key goods in a city, which will be used to get an idea if you need to go to a city, what else can you bring there or get from there that will be useful in other locations.
The goods list will look at least somewhat similar to the Winds of Trade screen, but will probably add a bit more information. Winds of Trade focuses on a fleet of ships operating independently, while Colonial Sea Trader focuses on a single ship, or possible a fleet of ships operating together. In either case, you are in a known location. I will take advantage of that to show where a city is with respect to your location, and how far away it is. This should help with determining your next location you wish to travel to.
Okay, all that being said, I did do a bit of work with the code of the game. I improved a few things that showed up when I played the game compiled vs in Unity. This is an example of the fixes I worked on this week, before things were showing through this graph, making it look rather ugly.
This week I hope to get a prototype set up viewing the prices of items by the item type. I’ll also keep working on stuff to improve the game further.