Monday, December 26, 2016

Dev Blog- Sea Trading Game. Ship Needs re-vamp, slight performance increases

This what a somewhat slow week, but I did at least put in a first blush attempt at improving ship needs. I also did a few graphical and other processor improvements.

Let's start with the pretties! I tweaked my display slightly, after playing Civilization I re-thought somewhat how the graphics should look. I'm still not finished, I have some very definite ideas of how to improve the texture considerably, but I wanted to play with it without committing to anything for the moment. Here's what I ended up with!

I also discovered Unity Best Practices, and did a fair bit of implementing some of those, which I believe improved my speed somewhat, especially a few of my problem cases.

The big effort was on re-vamping ship needs. I'm now pleased to report that I have a system in place that will completely manage ship needs that is configured via an XML file, as are most things in my game! It's still a bit of a work in process, mostly in that I suspect needs will come from multiple sources (Cargo, Crew, Ship Model, and to a lesser extend the scenario file (I might turn off needs for tutorial purposes, for instance), but overall it's starting to come along.

Well, that's all for this week. By the end of the year I hope to have added Cargo needs for the ship to properly manage, which will include feeding the livestock, for instance. Until next time!

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Monday, December 19, 2016

Dev Blog- Sea Trading Game. Managing the needs of a ship

This week has been one of thought most than actual action. I did a number of code cleaning up items, tweaked the lighting slightly, but most of what I've been doing this week is thinking about exactly how I want to have the needs of a ship be met.This has caused me to re-think how some other things are done in the game as well.

A ship will have a number of needs. Some of these will be based on the size of the crew (water, food, salary), some will be based on random events (Extra rigging, sails, cannon shots, etc), and some will be fixed per time (Rot, barnacles, etc.) Initially I will be working on the crew size items, but I will add in random events as I can do so.

This week I plan on at least getting the ship needs system coded. Not sure how much I will be able to accomplish, it is a busy week after all. Still, it is all coming together, slowly.

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Thursday, December 15, 2016

Ludum Dare 37- "Jewel Defender" Post Mordem

I recently participated in my first Ludum Dare, making the game "Jewel Defender" over a 48 hour period (I spent about 10 hours of actual work on it). In this article I want to document the process of making it, I will probably do a separate article on what I plan to do post-Ludum Dare as a result of feedback. You can download it at the link on the Ludum Dare page.

Jewel Defender is a tower defense style game, but purely using melee traps. I had the time to include two traps, one that is a swinging sword, the other a block drop.

The theme was "One Room". I went in to this Ludum Dare either wanting to do a prototype of a game I had previously had in mind, or a prototype of something that I could use for my Sea Trading Game that I've been working on for some time. I decided to try out an idea that I had long had of making a game where you set traps to defend a few high value artifacts, namely gems.

Friday I was able to spend an hour on the project, which was enough for me to test navigation meshes. I had not previously done any work with the Unity AI system, and learned a lot in that process. Early versions were problematic, as can be seen below.

The major obstacle I faced was getting collisions to work correctly. I often had traps that wouldn't trigger, or objects wouldn't be placed that were supposed to, as can be seen below. I finally found that certain objects needed RigidBodies, while others didn't need them. With the right combinations of rigidbodies, I was able to make everything work right!

I slept Saturday evening with a single trap, decent looking graphics, but objects still weren't being placed as they should be.

My time on Sunday was quite limited, but I spent most of it just getting my traps to be placed right. I made an actual score, and got the building cost of making traps set. I ran in to what at first appeared to be a Unity bug, but ended up being me accidentally placing an animator on my walls, which moved my collider for some reason!

I also added the ability to destroy traps, otherwise one could simply set up a massive wall of traps and keep anything from practically winning. I threw in a few sound effects, and overall was happy with the game, although I really wanted to have more traps set up, along with more robots trying to take the gems.

I wasn't able to spend as much time on this as I would have liked, because I was sick for the entire duration of the event. Not really sick, but enough that I wasn't at 100%, and had to take frequent brakes. Sunday evening I had finally worked out the bugs in the simple version, and initially submitted to Ludum Dare with only a single trap type, but 4 hours to spare. I slept for a few hours, and then realized I still had motivation to do one more trap type, which ended up being the swinging sword.

I can tell from my play through of the game that it isn't very balanced, it is very difficult early on, and surprisingly easy later on, if you can make it that far. If I had more time, I would have improved that balance some.

What I would really like to know is if I should persue this as a game, particularly in comparison with my much further advanced Sea Trading Game that I have been working on for the entire year. What do you think? Leave a comment to let me know!

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Monday, December 12, 2016

Dev Blog- Sea Trading Game. Better Good Selection, improved dialogs, starting to use graphics

Despite taking the weekend off to do Ludum Dare, I actually managed to do more this week than I thought I was going to. I fixed a number of bugs, and started to work on the dialog selection. I also started to give at least a primitive look to a number of my dialogs, as you'll see below.

I started to improve my Missions dialog. I've long had in mind that I wanted the missions to look like they were written on paper, posted on a notice board. I'm still not quite there, but you can get a feel for it below.

Buying goods was dramatically changed. I'll let the image speak for itself, see below. I'm not quite happy with it, but it's a good preview of what will come, I believe.

I fixed the dialogs, they are now pretty playable. I haven't found any show stopper bugs in the game anywhere, so overall I'm happy!

For this week, I'm likely going to solve a problem that I have in a number of places, and that is my grid views are less than perfect. I'm going to write a tool to dramatically improve those grid views, and I might even sell it as an asset in the Unity Asset Store... I'm also going to work on making the game feel more like a game. Right now it feels like a sandbox, but not a game. You can't lose, and while there is a score, it doesn't really mean anything. I'm going to add the capacity to starve to death, lose animals, etc. I still won't put in completely random events yet, but...

Also, stay tuned, I'm going to release a post-mordem from my Ludum Dare project, should be good!

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Monday, December 5, 2016

Dev Blog- Sea Trading Game. Angled camera, improved text, ship hold configuration started!

This has been another productive week, with a lot of interesting changes. The major accomplishment this week was to allow for tilting the camera, which gives it a much better look in my opinion. I also caved in and purchased TextMeshPro, which has a much better look for the text, as you can see below.

I have in mind I'd like to do a perspective view eventually, but it's a fair bit of work. Thus, I'm going to hold off on it for a while, but here's my ultimate vision.

Next, I started working on the different ship configurations. It's still a work in progress, but here's what I have so far. Each ship will be re-configurable to one of a number of configurations, which have various specialties, pure cargo, lower class passengers, or higher class passengers.  I'm still toying with exactly what it will end up with, but you can see below.

This week I'm planning on first finishing with getting this dialog working, and then moving to ensuring trading is working proper with all of the new changes. If I'm able to get all that done, I'll go back to adding more goods. I'm not quite sure how much I will accomplish this week, however, as I'm likely going to participate in Ludum Dare.

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Monday, November 28, 2016

Dev Blog- Sea Trading Game. Selling goods, adding more possible types of cargo holds, updated graphics

I'm almost at that functional state that I promised, I'm still hoping to be there by the next blog post, if not sooner. I've got selling goods working again, meaning that buying, selling, and taking on missions all work with the new Cargo Hold system! Here's what selling goods looks like thus far:

I also did some work on improving the graphics slightly. Specifically, I made the ocean and ice shinier, and did some tweaking to the colors in general. Check it out below!

I'm planning on doing a system of designing holds. I think for now I'm going to allow for a number of configurations per ship, but the actual hold configuration will not be free form, at least not yet. Will experiment with this custom configuration before I go any further.

As always, let me know what you think!

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Also, see Old Ham Media on Facebook for a chance to win Ben Tristem's newest course, a multi-part series on building an awesome RPG!

Monday, November 21, 2016

Dev Blog- Sea Trading Game. New Hold Design in action, fixing viewer

This has been a busy week, mostly in making the following dialog work again, with it's new format. This involved finishing the code rewrite I was working on last week, adding a bunch of new stuff, and making sure the barrels somewhat fit the locations given. I'm working on a new selection system that you can see a very early prototype of on the right hand side as well, more to be coming on that soon. I'm also likely to change how the ship is oriented.

The 3 items on the right are there for testing purposes, but eventually they will be selectable options on what type of cargo to take on. This will most apply to passengers, who will be placed in cabins of various types, although it might apply in other locations as well, I haven't fully decided yet.

Just to give you an idea, this is what the ship currently looks like when completely full (Without the pretty background added for the above, sorry!)

It's rough, but more than adequate for my needs at the moment. I'll improve the ship background at some point in time, as well as improving the placement a bit, but for now...

I also set in motion a few behind the scenes things that will allow me to do a rotated camera view. This is an example of what it might look like, but I'm not finished at the moment.

So, what do you think? In particular, what do you think about the new dialog to put goods in the ship? Any other feedback?

This week my plan is to get buying/selling goods fully formed, and then try to get the camera rotation fully working. I should also start adding goods again. I'm also going to work on improving the current "lovely" diagram for selecting what goods to buy. I'm also going to improve a few object placement issues, where certain objects should be on top of other objects.

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Also, see Old Ham Media on Facebook for a chance to win Ben Tristem's newest course, a multi-part series on building an awesome RPG!

Sunday, November 13, 2016

Dev Blog- Sea Trading Game. UI changes at long last! Working on a new trading interface

As I mentioned last week, I'm going to spend a few weeks working on UI type changes before I go back to doing hard core behind the scenes changes. Well, I half followed through on that this week! I did make a number of UI changes that I've long wanted to do, but I haven't been able to for one reason or another until now. In the process of making one of those changes, however, I realized to support it I needed to re-write a fair bit of my code behind the scenes. Bottom line, I divided my time pretty equally between the two tasks.

Most of my time was spent working on a new system for storing cargo. The current system is, well, confusing and not really workable. I've made a few improvements to it over the last few months, but it's time to scrap it in favor of another system entirely. What I've decided instead to do is to have all of the goods in to a single hold, including passengers and supplies, with some configuration items possible to make it all work a bit smoother. Here's a concept art for what I'm aiming for:

There will be a number of slots where goods can be stored, if there are goods, they will appear there, otherwise an empty spot will appear. I'm sure this will need quite a bit of work, and the artwork isn't the best, but hey, I've always said the plan is to get the game to a point where it is fun without the artwork, and then find an artist at that point.

Another thing that I'm quite pleased to inform you of is that I successfully fixed a long standing bug where the name of the city was sometimes hidden, or blocked out a ship's name. Here's an example of it working correctly!

Lastly, I added a display showing how many days it will take to get to a given location. It's a huge improvement for sure!

Bottom line, there is definitely a lot of progress still to make, but things are coming along! I'm expecting to have most of the UI things fixed that have been driving me crazy by the end of November, after which I will continue to add more core game features for a while.

This week I'm planning on getting the new cargo hold system in good shape, including re-configuring holds, buying/selling goods, and taking on missions.  I'm still considering if I want to do the same fishing system that I've had in before, most likely I will continue to do it, but I'm not 100% sure at this time.

If you haven't yet, feel free to like me on Facebook, join my Google Group, subscribe to my Sub Reddit, or follow me on Twitter, where you are likely to get frequent updates!

Monday, November 7, 2016

Game Dev- Sea Trading Game. Promo Video, improved graphics, new path forward!

I ended up doing a number of things differently this week than I expected, but overall I'm quite happy with what I was able to achieve. I created my first simple video play-through, updated the ship graphics (Thanks Kenney!), added more goods, spent time thinking about the goods that I do need to add, and overall prioritized my plan. But first, my demo video!

I'm planning on doing another version of it soon, with a lot more thought put in to it, but I'm going to work on some graphical improvements first. Which brings me to my second point, I've decided to change how I'm doing updates to the game. Specifically, I'm going back to a para-dime that I had some time ago, namely that of spending a few weeks working on UI improvements, and a few weeks working on behind the scenes changes. At this point in time, I'm going to work on the UI changes. I'm still going to continue to add goods, I have quite the list of them, but I'm going to save those to a few per week, focusing more on the other items.

I also added a ship graphic at last! I took the advice of Rick Davidson and using graphic assets that are out there already. I'm also going to make a few differences in how things are displayed, see the previous paragraph.

Lastly, I added a number of goods, as I have been doing for some time. Potatoes, Cucumbers, Onions, and Carrots are among the items that have been added.

The biggest thing on the plate for this week is updating the way the ship stores goods. I've been thinking for a long time that I really don't like the way that goods are stored on the ship. I've decided on a few changes. First of all, I will change the holds store goods. The primary unit of reference will be barrels. There will be an above deck portion of the ship that larger goods can be stored, as well as animals, and smaller unit space goods will be stored in the hold.

Monday, October 31, 2016

Dev Blog- Sea Trading Game- Seeds now being produced, demand now prioritized

The main goal of this week was to improve the seed functionality, to ensure that seeds are being produced. I was in fact able to get that functionality to work, and seeds are now being produced! The other goal was to better allocate unused productivity, basically producing goods when nothing is needed. I have the logic in place to do such, and am currently testing it out.

One of the first things that I did was to improve my "secret" developer panel to let me know how many goods were being produced of what variety. I learned a lot from these, including what resources are being produced, and that some of them were not being produced. I also learned that there were lots of idle people, which indicated problems in my system.

Figuring out how to properly prioritize demand was difficult, to say the least. What I ended up doing was thinking about what characteristics would be in an ideal demand prioritization system. Of these, some applied to a specific need, and others applied to maximizing the benefit of the city. I set up a separate priority queue for the latter case, and it's all working out nicely!

This week I need to finish debugging things put in last week, and then I'll be back to adding in lots of goods! I'm planning to add in crop building first, and then I'll be able to start working on other types of goods, including resources and manufactured goods.

Monday, October 24, 2016

Sea Trading Game. Improving sell/buy pricing, producing goods at "factory" locations, and starting to manufacture seeds

This was another week with relatively few easily visible changes, but those changes are quite critical! The changes include manufacturing at "factories", which previously did not work correctly, manufacturing "seeds", which will allow one to make seeds if there is not sufficient raw goods to form an object.

Seed production was the biggest change, and the most complex one. They are required for situations in which a city wants to make cotton clothing of some kind, I will need Cotton. In order to make Cotton, I need to plant it, which will produce "raw cotton", and that "raw cotton" will then be converted to usable cotton, by removing the seeds from the useful fibers. Previous to this week, I could only produce goods that directly satisfied a need, now I am able to produce the materials required to manufacture such goods. I am still not completely done with this, while I have seen it work somewhat, it doesn't work as well as the other good production works. In addition, there is no demand for seeds, which seems to not be realistic. I'm still working out exactly how I'm going to do all of this, stay tuned!

One of the most positive changes was improving how goods are sold. Previously, it was possible to have even valuable goods that aren't in demand at the moment to sell for 0. This isn't realistic at all. I was able to fix the system. Buying a good and selling it in the same port will lose you some money, but not everything you originally invested.

I'm still working through how a lot of things are going to work out. I think I'm going to re-design the ship hold system sooner than later, as it's becoming more of a pain, although I can't promise I will work on that this week. The critical thing I believe is to finish the systems I added this past week, to get them working as expected.

Lastly, I'm starting to think about putting together a promo video. I would be interested in any tips that anyone out there might have. Thanks for all of your support, you guys are awesome!

Monday, October 17, 2016

Sea Trading Game- Improving selection of goods to produce, more goods.

This week was much like the previous week. I continued to refine both the model of growing crops as well as adding more goods, and refining existing goods. I also made use of the regional modifier, as used for minerals.

The first thing that I added was a capability to see what a city was doing. Specifically, I told the game to place an icon on the tile to show what was being produced on that tile. As of right now, I don't actually have any icons drawn, but I am using a simple standard icon to show the difference. This code is very inefficient at the moment, but I'm working on improving it.

Right now the dot is rather small, I'll tweak the size of it when I have actual icons to be used, I recognize that what is seen right now is really small. I'll figure out a way to improve the speed of this as well, but for right now I'm leaving it slow because it helps me in debugging the game.

I started to balance the game a bit as well, to make sure that crops were being developed appropriately. For instance, Gold is now produced only in certain locations, although it can be quite highly available in those locations. There is a generic "food" gathering capability, which will give food for local population, think gathering berries, hunting, etc, and the more generic crop growth, which will give much more food, albeit at less frequent times.

Some crops are currently growing, primarily tobacco. Tobacco is interesting because it is used primarily for recreation, and it is the easiest to produce of the goods that I have for "luxury" usage. I'll no doubt be adding more, but I'm primarily focusing on food crops for now.

Bottom line is, the game is continuing to make slow steady progress. This week I plan on ensuring that goods can be produced that aren't dependent on a tile, such as clothing. I'm going to look at the buying/selling price at a port to make sure it seems reasonable. And lastly, I'm going to start looking at including demand for goods that aren't directly required. For instance, Wool is required to make Clothing, but Wool by itself isn't particularly useful. Right now Wool won't be produced, because it isn't directly required.

Monday, October 10, 2016

Sea Trading Game- Improving farming model, factories, livestock breeding

The name of the game this week was to improve the farming model. Previous to this week, I had a simple model in place, but I hadn't really tested it out much. As I'm now going through the process of adding more goods, I needed to improve this model quite significantly in order to make more sense. Features added included consuming seeds, producing new seeds, working differently for the southern hemisphere vs northern hemisphere, if applicable. I also changed things such that seeds produce goods only when the good is complete. I did a full set of tests to make sure that everything was working as expected, which revealed a number of issues which I was able to resolve.

I also fixed the Tutorial mode, at least to the point of getting it to run, although it still doesn't quite do what I would like. This will still continue to be updated as I get the feature set to where I want it to be, but I'm still not quite there yet.

I started to work on livestock breeding, such that there will be new sheep (The only livestock that I have thus far) will be born. I'm still not quite happy with this system, and it will be one of the first things that I tackle this week, but it is a start at least.

I also added factory system for creating goods. Wool and Cotton clothing was the first thing that can be created through this system. Check out the latest amount of goods!

Lastly, I have made it so there are multiple ways to produce goods, although they aren't currently being used. This could, for instance, allow for collecting food vs planting food.

As with last week, as I added new goods, I was able to identify more issues with the underlying system. As mentioned before, I'm not really happy with the livestock system, I'm going to re-work how that is managed. I also have a few more specific details that I'm considering as far as my goods system is concerned, but it is coming along quite nicely. Lastly, I'm increasingly getting to a point where I need to change how my goods are displayed, with so many goods I probably don't want to actually show everything that I can.

Monday, October 3, 2016

Sea Trading Game- Adding new goods. modeling real-world agriculture.

This week has started something that I've been wanting to get to for a long time, adding new goods! I started to test my various systems, including the use of seeds, tools, and working on modeling livestock. I didn't actually change a lot this week, although what I did change allowed me to see what some of the problems I'm currently faced with, and work to tackling those issues.

I've thought for some time that I wanted to model something like the Columbian Exchange, which was the process that brought goods in from across the globe. Rubber was found in Brazil, tobacco in Mexico, potatoes in the Andes, horses, sheep, and cows in the Western Hemisphere. These, and many more, were moved across the globe, such that now these foods, and animals, are grown across the globe. This week, I started to make progress towards that goal.

I've been focusing on Agriculture for the beginning. Having procedurally generated seeds is proving to be interesting. I know that Civilization has different "Luxury" goods that are randomly placed throughout the globe in regions. I wanted to do something similar to this, and I've got a system that I think has at least started it.

In doing research for this, I've learned a lot of things. First of all, many of the plants that we have are combinations of plants from different locations. Some crops existed in both the Americas and Asia, like cotton. Others only existed in one region, like rubber. I've got a system in place that will set these up at least initially, I'm struggling to make sure it will work for a longer term game, but it's coming along slowly. What my preference would be at this point is to have many goods such that each area has it's own unique type, although how well that will work I'm still determining.

One of the most useful resources has been this data sheet on plant growing seasons and locations in the United States from Cornell University. Every one of these plants will be included. I expect I will also include other plants as well that aren't commonly grown in the United States. I'm still working on how to get this to model fruit growth, which will follow a different system. Seasons will matter in this game, it will dictate the availability and demand of goods!

I did a bit of revision to my biome table. The key difference is that desert is less common than it was before, which is replaced by grasslands. This has a small effect, here's a randomly generated map you can see below. Desert is much rarer than it was previously, although I will likely still do some tweaking to that. I'm using an Arizona State University provided Biome Map as a reference to my game database to determine what grows where.

So far I have several eatable plants, sheep, wool, and cotton that I've started to think in more detail about how they should work. I've also started to work with rubber, although I'm still trying to figure out the usage of that for the time period that I'm working with, it was only really made useful in the 1800s, although it was in some use prior to that time. I think before I move too much more forward I'm going to work on first manufactured goods (Clothing most likely), then think through mining and trees more, and resolve a few issues that have come up as I've started to increase my database of goods more. I'm hoping to have these resolved soon, so I can proceed.

One thing that I thought long and hard about over the week, and I'm starting to get a better idea, is how to make the ship loading and configuration easier to use. I've decided to drastically limit the options of cargo hold types, including some that can only be placed on the top deck of the ship. It's coming along slowly, although I'm probably not going to do a ton of work on that at the moment, I might rename a few of the hold types, and possibly change graphics, accordingly. The main purpose of this change is to allow for the transportation of livestock, which will primarily be done on the top deck of the ship, as was done historically. Large cargo will also only be carried on the top of the ship. Barrels will be the primary cargo contained below decks, which will replace crates.

The crew of the ship also gave me a lot of thought. Right now I have crew as a single person, with a few attributes. I'm thinking that I will actually allow for the entire ship to be staffed, by looking at bios for potential candidates in each port. These sailors will stay for some time, some might only be for a single port, others might stay for a few voyages, and still others might stay for life.

Lastly, I've been thinking of ship based needs. This will include food and water, both for cargo (Livestock and passengers), as well as the crew. There will also be items for use during the voyage, and how that will work I'm not quite sure yet, but likely tar, sails, weapons, etc will be of some use during the voyage. Fishing will be a rare occurrence, although it will be something that can be a task that the crew will attempt, they likely won't get huge hauls (Unless the ship is configured for fishing, which will be a huge set up upgrades I'll get to some day). I'm trying to think of how these will be monitored, and I'm starting to come up with a system, although it will still need some time to come to full fruition.

I do want to add that I'm not sure how much I'm going to follow reality, but I'm going to try to do it as much as I can, because I think modeling reality will in the end make things more interesting. World history is interesting, and I think making a game that mimics the aspect of bringing goods from one part of the world to others is interesting. 

Bottom line is, I didn't actually do a whole lot this week, but what I did was able to help change the direction a bit of the game towards a useful end. I think I found a lot of issues now that will save me a lot of time in the future, and make a more interesting game!

Monday, September 26, 2016

Sea Trading Game- Distributing seeds, goods

One of the biggest things that I've been struggling with is how to distribute the initial set of skills, and seeds. Historically, plants really only existed in a small area of the world, and were distributed from there to other locations. Domesticated animals were fairly easy to transport, and often moved significantly from place to place. Skills often existed in only a few particular locations, although they often could be spread significantly from place to place. How was I to model this?

What I decided to do is to allow for a number of "seed" locations. The seeds will only exist in certain biomes. The seeds are given to certain cities to start with. There are a number of locations that is specified to create each seed. The seed generation is set to have each city have a good chance of having a seed. Skills work in the exact same way.

I'm still trying to decide how to transfer these seeds from place to place. As it stands right now, the seeds will only exist in a single location, although I'm probably going to allow for seeds to spread to nearby cities, although exactly how close I haven't determined yet.

I also worked on speeding the game up, and was able to fix a few long-standing issues to speed the game up. See the results below.

As of right now, I have one last objective to go until I can start populating goods. That objective is to allow for using multiple input files, to spread out the load a bit easier, allowing me to share XML files between configurations.

Once that happens, I can start mass producing goods! I've been playing a free game called Dwarf Fortress recently, and through it been thinking about how I want to have goods actually work. I've long been wanting to have a huge system of potential goods, and I think I have a better idea of how to make it work after playing DF. Still working out a few details, but it is most certainly coming along!

Monday, September 19, 2016

Sea Trading Game- Trust Factor, Upgrade Buildings, Automatic flow of goods, prefer closer cities for missions

This was a week of a whole bunch of little fixes. There are a number of little things that I needed to do in order to start adding more goods. That is the major milestone that I'm working towards at this moment. I was able to finish almost all of them.

Fixes this week include:

1. Transporting people will actually cause a loss of talent and people from the original station, and bring that to the new location.
2. Goods now will flow automatically, albiet rarely, from city to city.
3. Missions now have a preference towards closer cities, not having to go so far out.
4. Automatic good and people transfers will prefer closer voyages as well.
5. There are more types of buildings in a city. These buildings will be mostly hidden, at least initially, although I have hopes to include them in a photo of the city. These buildings will allow for the production of various types of goods in addition to what they currently do.
6. There is a trust factor. If you complete many missions for the same location, then it will tend to trust you with more cargo.

I also did an appraisal to review every time in code that I have listed an item as needing to be done in the future. Many of these I was able to do now due to updates I've made in other locations in the game. I did add an action item list to keep track of all of these things, and moved a few of the higher priority ones to the top of the list!

This week, on my agenda, is to prioritize a bit more my to-do list that I captured this week, to do some speed enhancements by object pooling, and to finish a few upgrades that I need to do to allow for entering goods. If I get all of those changes done, then I will start with the fun stuff, namely adding goods. I'm hoping to include a LOT of types of goods, my goal for this initial pass is maybe 30-40, or even more if I can make it happen.

Lastly, I'm going to leave with a request for some feedback. One of the things that I think is the least clear in the game is the ship dialog. Part of that is the poor graphics, which I've included below. I'm very much in favor of changing just about anything. Please let me know what you think!

Things that I'm looking out for:

1. I would like to have different types of holds.Currently I have hidden compartments, very secure storage, two types of passenger cabins, and a generic hold, plus an area that isn't set up for anything. I'm considering more options.
2. Some goods will prefer certain types of holds.
3. The ship should be configurable.

Right now I have the tile based system seen above, where each section of the hold can be independently configured. I was hoping to someday make the outline of a ship out of this somehow, but I haven't quite figured out what I want to do. I'm curious to see what ideas you have. Thanks!

Monday, September 12, 2016

Sea Trading Game- Improved missions, pathfinding speed, trade goods in the background, and better population distributions

This has been a pretty productive week, and once again I'm starting to really make some good progress. My list of things to do is mostly relatively easy, except for the re-balancing which no doubt will be a long term task, and adding new goods. I even put out a test build to my Google Groups test group, although it has plenty of problems.

One of the first things that I did was to allow one to see more missions in the "Broker" screen. This proved to be relatively difficult, but it is now working as expected.

The next major task was to try and improve the frame rates, in particular when doing pathfinding operations. I did quite a few changes, including many updates to my C# A* I released to Github. All in all, I improved the speed by about 5 times, which reduces the lag considerably in the game!

That being done, the next task was to increase the mission level in a logical fashion. While no doubt I will need some improvements, including letting the user know when they have achieved a new level, levels are now in fact being updated behind the scenes. The effect of this will be to gradually increase the size of the cargo of the missions, which ultimately will allow for making more money. I'm still no doubt going to tweak the system somewhat, but it is coming along nicely!

People and goods now will be  moved around spontaneously. This will keep cities fed even if they can't produce food, for instance. It's still a primitive system, but it is coming along nicely.

Lastly, I improved how people are managed. People moving will actually transfer skills when moving from place to place. Also, the number of people in a given location is more realistic.

For the next week, I'm hoping to do a number of small systems on my plate. The most difficult of these changes will be to allow for goods to be manufactured in buildings, for things that require such buildings. Finally, I'm going to start working on a more realistic set of initial conditions, which should come together nicely. If I manage to get all of that done, I'll start adding goods, which you can suggest for possible credit in the game, especially for unique items!

Monday, September 5, 2016

Sea Trading Game- Making missions more meaningful

After making my ship move around the screen, the first thing that I did was create primitive missions. These missions were randomly generated, and didn't really mean anything at all, aside from a way to earn some money. That, however, has changed this week.

For those of you who have been around a while, you may remember that only one mission was ever assigned at a time. That is now quite different. Look at this one random collection of missions now created:

Note that there are a few missions to carry passengers, but most of them are to carry cargo. There is a third type of mission that I have defined, to bring cargo to the point of origin.

Previously these missions were completely randomly generated. Now they are based on a few things. People are more likely to want to leave a city if the moral in that city is low. There eventually will be consequences for that city, but for the time being, there isn't. Next, if there is a surplus of goods, then the desire is to send them to other locations. If there's a high demand and low supply for something, then it tends to request that you bring goods of that type to the city. They also will affect the supply of goods.

While I was going through this, I also overhauled the process of buying/selling goods. For once thing, I noticed that selling goods didn't increase the supply at the location the goods were delivered. I also need to improve the display of missions. The dialog doesn't work well with multiple missions, among other things it doesn't scroll, so for resolution challenged screens not everything can be seen. Last on my list before I can really do a new test build is to improve some algorithm speeds behind the scenes that result in a noticeable lag, particularly when docking with the first city.

Beyond that, I still need to do a lot of tweaking, things like adding new goods. If you would like to help me with that, please do! I have a google form set up to accept suggestions for goods to include. If I receive lots of help, I might even list you in the credits for the game!

Monday, August 29, 2016

Sea Trading Game- Speed improvements, finishing city personality

This was a somewhat slower week, but still productive! This week there are a few new changes that really make a difference. The first is finishing adding city personality items. The personality now fully works, including testing!

The biggest improvement, however, was in speed improvements. I did a lot of code profiling this week, and found where there are bottlenecks in my code. The biggest ones are in my A* implementation, which I was able to speed up quite a bit. I still have a fair bit of work to go, but the game has gone from occasionally having unplayable slowdowns to simply noticeable slowdowns, which I am confident I can make go away. That should make things much smoother! For the technically minded out there, I found that using arrays instead of dictionaries can make things go much faster, especially for things that change a lot.

The other thing that I've done is to start to re-write the contracts system. Contracts now will be to carry a good that is in short supply to somewhere needed, or to bring in a good that is much needed. I'm still working the details out, but it's coming along!

I hope by the end of this week to have most of the hard stuff done. I might even have a test build to try, likely one that I will only send out to my Google Groups page. The key things that I am trying to do is to finish the contract model, and to model shipping by sea to other locations. I might even model moving from a land based city to a sea based city. Thus far I don't have any land based cities, so... I'm hoping by mid-September to have something that's in really good shape, possibly ready to start bringing it to the next level!

Monday, August 22, 2016

Sea Trading Game- City Personality

It's been a slow week, but it happens. I've been making good progress towards my city personality definition. While I'm at it, I've improved pretty significantly the goods generation process, as well as the consumption process. They both are working much better.

Goals for the coming week are to distribute the city personalities, and work on spreading the demand from neighboring cities. I'm also planning on overhauling the contract management.

Monday, August 15, 2016

Sea Trading Game- City needs, consuming goods, land based navigation

This was a very productive week, which allowed me to accomplish most of the goals I had set for the week. I was able to create generalized city needs, consume goods, and even start update to the mission profiles such as land based navigation.

The biggest thing was working on City Needs. A City Need is defined as a fundamental need of a city, namely those that can be transported. These include things like food, water, clothing, building materials, and even non-needs like luxuries. Each good is set such that it will satisfy one or more of these needs. Demand then is not for a specific material, but rather a "need". I will likely set some specific "needs", most likely for things like drugs, but otherwise it will be more general.

A city can now consume these goods. Consumption of goods will increase the happiness of a city. Failure to meet the needs will result in the people being unhappy. I might even add in a death connection, I haven't figured out all of the details.

I'm working towards connecting all of the cities, keeping a list of the distance between each city. I haven't yet optimized this list generation, it can take considerable time, but I'm getting there, slowly. The rewards for missions is now more in line with the rest of the system.

I also added a super secret invisible dev panel, to assist in debugging things. For instance, I've added a calculation of global supply/demand, as seen below. Note that is tells me that balance is required, as there are too many of some materials (gold, silver, rum, tobacco), and not enough of others (water, good, wool). Of course, I haven't even yet tried to arrange the material generation in a more logical manner.

Lastly, I wanted to show how being at a marginal demand can affect price. Here's an example of the price changes for a material, as one purchases most of the good, the price goes up.

This week I'm hoping to do some work on flushing out a personality profile for a city. These will include things like how much storage of an item do they require, how willing are they to try new things, do they value people's happiness more than money, and related attributes.

Monday, August 8, 2016

Sea Trading Game- Price based on Supply/ Demand!

Modeling supply and demand is proving to be quite difficult, but I am most certainly making progress. This week I was able to increase/decrease the price based off of the supply and demand, including the short term future supply/demand! This actually took considerably more effort than expected. Previously, I had code to estimate a year's worth of supply and demand, to determine what goods to work on. This was relatively easy. What was far more difficult was to determine the average supply and demand for a sliding window of time. Just that feature took me far longer than expected, and in fact, took almost the entire week. In fact, if you compare my to-do list with last time, you might notice a slight increase in the number of items. The good news, these should be quicker things to complete than what I finished this week.

Aside from that, I was able to use this feature to adjust the price based off of the supply and demand. The price will adjust somewhat, so purchasing a large block of goods or selling a large block of goods can affect the price and be adjusted for accordingly.

Lastly, I was able to add in a "rot" feature, where a good will go bad if sitting in storage for some period of time. There are a few more things that I want to add to this calculation, including thievery, reduced rotting if properly stored, and quite a bit of balancing, but it's coming along slowly.

On the table for this week is a problem I've long debated, and have been unable to find a suitable answer yet. There are many types of food, grains, meats, etc. I don't want to particularly care what type of food is eaten, although I want to store the type of food individually, at least to some extend. For instance, Sheep and Wheat will have very different behaviors, and I want to model that. The question then becomes how do I determine how much food to eat, and of what type? I have a few ideas that I'm going to play with this week, we'll see what happens.

Lastly, a bit of a note about references. For those of you long term followers of this blog, you will know that originally I was planning a 17th/18th century time frame, the age of colonization. As time progresses, I'm shifting that time-frame earlier. The start of the game now is planned for something shortly after Columbus sailed to the United States, perhaps most of a 1530 starting time-frame as opposed to 1610 that I previously considered. A big part of this was an excellent book that I have read called 1493, by Charles C Mann. It has inspired me to change the focus somewhat of the game to the Colombian Exchange, where before Columbus arrived in the Americas, diseases, plants, animals, and even cultural references were very regional, while after the entire world began to exchange these items.

Friday, August 5, 2016

What things are purchased with my Amazon Affiliate Link

I have an Amazon Affiliate link. Most of the links are for specific products, however, people end up buying all kinds of stuff using this link. This is a list of some of the more interesting things that people have bought so far this year using my affiliate link. This is a small collection of the things that have been purchased, still, they are among the more interesting ones. Note that if you don't see the images below, you might have an ad blocker enabled, you might want to disable it for this post.


Thanks to everyone who has helped support this site by using my affiliate links, no matter what odd things you purchase. You guys are awesome!

In case for some reason you can't see the images, here's the text list.

Monday, August 1, 2016

Sea Trading Game- Supply now determined by demand

This week was a slower week than many, but I did still make progress. As in previous weeks, I've been working on supply/demand, and figuring out how to get it. This week much of my time was spent supporting an Android app I made for Amateur Radio operators, Ham Finder. It took longer than expected, but it was necessary, and now I can focus on what I really want to work on, my Sea Trading Game!

Each city now automatically determines what the supply/demand requirements are for a given turn. Each city does this by estimating it's yearly requirement for a given good, and making goods accordingly. It's still not perfect, but it's good enough for early testing. It works now, although the system is quite primitive. I'm going to eventually add in more logic, some kind of behaviors. The behaviors will determine how much goods to stockpile, if the city wants to make money, be self-sufficient, or other such things. That of course will take time, I'm hoping to still get to it by the end of the month.

On my plate for this week is determining the price based on Supply and Demand. I have an idea of what I want to do for that, that will take in to account the current supply/demand, the short term future supply/demand, and what is the intrinsic value of an item at a particular location.

If I get that to where I want it, then I'm going to do a few other things, including have supplies consumed by the people, probably rotting with time, and hopefully "Good Families", where demand is for a family of goods, like food, as opposed to a specific type of item, like grain, meat, etc. I haven't thought exactly through what I want to do with that, but I'm getting there.

Lastly, I showed you my list of things to do last week. Compare that to this week's list, and you'll see that I am in fact making progress! Note that most of the things on the bottom of the first list are to refine things that I started this week.

Sunday, July 31, 2016

Ham Finder 2.2.12 Upgrading to Android Studio and Android 6+

I know recently I've been doing far more game development than Amateur Radio stuff, but I figured this deserved a blog post. I've been working on upgrading a lot of the internal guts to Ham Finder, specifically updating to the latest APIs. What this means is there should be prompts for permissions, for example. It should be more stable, and be overall faster. Here's what it took to do that:

  1. Import in to Android Studio- When I last touched Ham Finder, it was built using Eclipse.
  2. Update all of the API calls to the latest versions, getting from Gradle where possible.
  3. Go through almost every file fixing issues that Android Studio detected. One of the most common issues has to do with preferences, these are now all done asynchronously, so it should be a bit faster. The same goes for maps, it should be somewhat smoother.
  4. Update Spatialite- Spatialite is the core library that allows for the offline county, country, state, dxcc, etc testing. In upgrading the Android build, the old Spatialite stopped working. I was able to resolve this, with quite a bit of work.
  5. I discovered a few minor issues along the way that were resolved.
 This sounds easy enough, but I actually spent quite a bit of time getting all of this to work right. The bottom line is, Ham Finder should run smoother than before. I did keep a list of a few issues I'd like to resolve that I found when working through it, but as you might have noticed, my unnamed Sea Trading Game is taking quite a bit of time. If I see enough interest, I will make some of these updates. In fact, part of the reason why I did this round of updates is because of generous purchasers buying upgrades over the last month. Thanks guys! If I see sales continue to climb, that will be a good sign that there is still interest in this product. That especially holds true if I see some of the more obscure in app purchases being bought, such as the French offline maps.

The new version should be released by August 1st, although it might take another week if I find some critical issue at the last minute. It is currently available for beta testing, which you can opt in to via this link.

Monday, July 25, 2016

Sea Trading Game- Modeling Supply, and a path forward!

This week as in recent weeks has been a week of figuring out some core gaming stuff that doesn't easily translate in to progress, but is really essential to getting the game to work correctly.

The main focus of the week was on creating supplies. Like the demand before it, I set up a series of modifiers that can be added to a good that determine exactly how a supply is managed. The most interesting of these was to require "tools" and "seeds".

A tool is an item that is required that isn't consumed to make a new product. For instance, an ax will make wood production easier than it would be without one.

A "seed" is something that is required to make something else. For instance, you have to plant a bit of food to grow new food. A seed could even be making a resource out of another, using iron to make an ax, for instance.

Of course, most of this modeling will be semi-transparent to the user, but what will be seen is that you will be able to change the world through your trading. There might be a continent that has never seen potatoes, for instance. You bring a load of potatoes, and someone plants them. Then all of the sudden that new continent has potatoes growing there.

Another similar thing to "seeds" is "skills". A skill is required to make something. These skills will be propagated by moving people around. If a continent has never seen black smithing, and a black smith is brought there, then that new skill will begin to be used, and spread throughout the continent slowly.

The effect of all of this will be that you, as a lowly trader, can change the world in profound ways. I'm starting to see this as a real possibility, and excited to see how it all comes together!

The last thing of importance that I did was to get my upcoming path figured out much more smoothly than I have been recently. For the last 3 weeks, my task was "Figure out Supply/Demand". That's it... Now I've broken down what's left into more manageable chunks, which always helps my productivity.

Top of the list is to add a bit more logic to supply management, and then start figuring out how the pricing structure will work from supply/demand. I'm not quite sure how this will work out in the end, but this is a really crucial step to the game, and when it's done, I really think it will feel like a smoother game overall! I expect to have most of this accomplished by mid-August, and from there to start adding more goods and working on balancing the game.

Monday, July 18, 2016

Sea Trading Game- Getting demand just right

This week hasn't had a lot of visible progress, but I have been making good progress on the real heart of the game, the trading goods model.

There are two things in particular that I'm working on modeling, the supply and demand. Together, these will create a price for a good. In theory, the higher the demand, the higher the price, and the higher the supply, the lower the price. Of course, it sounds really simple to put it like that, but there's a lot more behind the scenes to make it all work.

This week in particular I worked on the demand piece. I've added a lot of items that will cause demand variation. Certain things will be in higher demand in certain seasons, for instance, or temperature dependent, or even days of the year (Holidays).

The one thing that's been causing me a bit of grief is demand related to novelties, or even addiction. This was quite important in historical, or even modern, markets, and I'm trying to get something that feels realistic. I've got a reasonable first pass at a model, but I'll no doubt have to refine it several times.

I also dusted off my old unit tests, and found a bunch of bugs. I managed to fix all of them, and my unit tests all pass! Unit tests are helping quite a bit with getting the supply/demand formulas correct.

Going forward, here's my rough plan. This week I plan on getting the supply piece figured out. The supply piece is quite a bit harder than the demand, because each city will have to make it's own decision as to what to work on. I'm not quite sure I'll get it to that stage, which is where I'd like to see it, but it'd be awesome if I did! I'm going to use resources such as the following graph, copied from the Wikipedia Supply and Demand Page.

The next major task is to figure out the pricing based on supply/demand. That is going to be rather difficult, and I expect it to take the better part of a week to figure out. Hopefully I can also figure out how to satisfy demand through other means, either loosing interest in something, or having other people ship it, or even starving due to a lack of supply!

Lastly, I'm going to start adding in goods. Hopefully a lot of goods. At the very least, I'll add something in that will test all of the major functionality.

Once this is done, I have a number of things to polish, like improving the displays, artwork, improving contract processing, etc. Those things will take some time, but I'm starting to see the light at the end of the tunnel.

Last thing, I've decided that I'm going to publish this game under a company known as "Old Ham Media". For now, it links to my sparsely populated Facebook page, but that is also something I plan on working on in the short term future!

Monday, July 11, 2016

Sea Trading Game- Modeling Supply and Demand

This week I don't have any pretty pictures, like I've had in recent weeks, but I do have something that is the real essence of the game coming to life. This week I've been working on modeling Supply and Demand, the very essence of economics, and a critical part of my Sea Trading Game. I haven't figured everything out yet, and some of this I want to be a surprise for when people are actually playing the game, but I will share a bit.

First of all, I now have an increasing supply of goods for a port. I'm now taking away from the supply to fill up the ship, and thus there is a limited amount of goods for a given port. I'm trying to model this in such a way that not all goods will be available, at least at the beginning of the game, in all locations, although the exact details of how this will work out I'm still trying to figure out.

I'm starting to add things that manage demand like temperature, season, and even interest in a particular item, such as artwork.

Bottom line is, it's slow work, but it's starting to come together. There's no pretty picture that I can show of the work in progress, unfortunately. I expect I'm going to be in this situation for at least a couple more weeks, hopefully by the end of the month I'll have something I can show for my work.

On tap for this week specifically is to keep making supply/ demand curves, and likely increasing the number of goods available by a few so that I can start modeling some of the more advanced supply/ demand items that I wish to do. If I somehow get to it, then I want to start adjusting the price based on the supply/ demand at a specific location. 

Monday, July 4, 2016

Sea Trading Game- More biomes, seasons, and several performance bug fixes!

This was a very productive week. At the end of it, things looked like this (Clouds disabled, as they make the GIF much larger):

I'm still working on the exact details, but I'm quite happy with how it has been working out so far. I'll probably tweak things a bit at some point in time, but for now, I'm quite content.

There are two things that I did from this. First of all, I added a moisture model, which seems to work pretty well. I also fixed the pathfinding code to be much faster than previously. I added colors for all of the seasons, and allowed for transition between them as you see. I don't think I particularly need to explain more on that front.

This week I'm going to start working on something a bit less glamorous, but still extremely important. I'm going to figure out how supply/demand will work in the game. I'll likely slow down the progress of seasons somewhat at some point in time. I'm going to start adding more goods, now that I have biomes figured out. It's probably going to take a while to get all of this worked out, so there likely won't be much visible progress for a few weeks, but I'll see what I can do.

Monday, June 27, 2016

Sea Trading Game- Biomes, Bitmasking, Clouds, and more!

I know that I said last week that I wasn't going to have much time for game development for the week, and to not expect many updates. The truth is, I found more time than I thought I would have, and ended up doing quite a bit with that time. This is the latest version of what I have.

I'm still playing with the clouds in particular, I have a few things in mind, will see how they work out. This is still an early test, so let me know what you think!

I also changed the way the wind is shown on the graph. It's still slower than I would like, I'm trying to figure out how to improve that, but it is much more visible, and I'm happy with the direction it is going. Along with that, I started using more realistic wind patterns, basically I set up the trade winds, with a bit of noise.

It can be seen on both of the previous images, but I've been working on bitmasking, basically making the land not look so smooth. Here's a closer up picture to show how it looks. I totally scrapped the system from last week, and went with a shader based approach, which I document exactly how I did it on the Game Development Stack Exchange.

Movement is no longer easy to do diagonally if both primary directions have land. As there isn't a visible gap between them, it seemed the appropriate thing to do.

I also fixed a bunch of small things, too many and small to enumerate them all. Sufficeth to say the game is better than before.

The way I generated the biomes allows for a slight seasonal variation, although I don't think the seasonal variation is quite what it should be. I'm working on how to make it work best still, but it should be cool when I can get it worked out. It's a task for this week, but lower priority.

This week I'm planning to get the other half of biome creation figured out, namely getting the moisture part done. When I'm finished, we should have something like deserts being formed, which should look really cool if I can get it all figured out! Beyond that will be numerous speed improvements, the game doesn't work as well as I'd like when fully zoomed out. I'm also trying to work out a more seamless noise, there are still visible seams if you know where to look.

Thanks to Jon Gallant, BTW, for his tutorial on world creation, which I used in some part to complete. He's got some great games, including one in the work called GORB that I'll highly recommend when complete.