Monday, March 20, 2017

Dev Blog- Sea Trading Game- Loading Screen created!

I finally have a loading screen that actually works, as can be seen below. It took quite a bit of time to get everything running smoothly, but overall I'm quite happy with the progress! Take a look below at how it works!

As with last week, I found a number of other issues while putting this together, and was able to speed up the process a fair bit. There are 3 threads that are involved in creating the world, one that creates the textures, one that creates the world, and a third for the UI updates, which is the least used thread. I'm still going to try and improve it someday, but for now, I'm quite content.

This week I'm going to do some bug fixes, and probably some more graphical improvements. I'm hoping to get a reasonable demo of the game done soon, and maybe even a name!

Monday, March 13, 2017

Dev Blog- Sea Trading Game- Threading the world creation process

For some time, my game has taken about 10 seconds to load, and it has been left as a blank screen while that was happening. I've long wanted to do something about that, and this week, I was able to start tackling the problem.

There were a few different ways that I thought to try to make this happen. The first that I tried was using the Asynchronous loading for scene management. This works great if you have a large number of objects that needed to be loaded, that each object doesn't take a long time to load. That didn't mix well with my game's system, where the loading time essentially happens with one slow object being created.

The next system I tried was using a coroutine. This didn't work, as the UI thread was still locked. There was a somewhat related option left, although it proved to be quite difficult in the end. The solution was to thread the world creation process.

I should note that the entire process is a single thread. This made a few things easier. The largest difficulty was that Unity's random number generator only supports the creation of random numbers on the UI thread. I managed to work around this by using the System.Random engine, but it took quite a bit of work to get it all to work properly.

Having this system in place is somewhat meaningless if I'm not giving the player an idea of what the system is actually doing. In order to make that happen, I added debug code to my logs to start to test the system before I start to work on the UI. While so doing, I effectively profiled the world creation process, and I noticed that one particular part was taking 90% of the time. I was able to speed up this process considerably, and now the time takes only 3 seconds, at least on my computer.

This week I'm planning on working on the UI part of the loading system. I am hoping to also get a better game over screen in place, which I was also able to start working on in this week.

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, March 6, 2017

Dev Blog- Sea Trading Game- Improving the buying dialog, finishing tutorial

This was a surprisingly productive week. I had thought the release of a game I have longly anticipated might just delay my game development a bit, but it turns out I was able to accomplish more than I have in recent weeks! I started out by finishing the tutorial, fixing a few related bugs, and I ended up re-doing the contract selection dialog (Broker)

The Broker dialog, as you can see, has a full background now, compared to what it had been before. I also added the arrow, which will give you an indicator as to which direction the city is. The plus side is, you can plan now your routes better. I'm quite interested in your feedback. This was in response to a request that I had to show the map of the cities to let one plan our their routes a bit better, I figured this does just as well and is a fair bit less cluttered.

As for the tutorial system, I have set it up now to hold the complete state, which fixes a few bugs. I now have a reasonable tutorial, which I want to do some user testing with soon. I fixed a bug that showed up in the tutorial map where the zoom was stretched too far. Now at max zoom, the entire map can be seen horizontally, as seen below.

I also fixed a bug where the contracts were recreated every time one docked. Now the contracts actually have to wait a day before they are recreated. I'm going to re-design the internal system further at some point in time.

This week I'm going to work on bug fixing and UI improvements and bug fixes. I suspect my work might be further slowed due to the release of the previously unnamed game, but I'll still continue to chug along.

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, February 27, 2017

Dev Blog- Sea Trading Game- New Tutorial System started!

This week I finally got a start on my new tutorial system, which you can see below. It will basically be a series of checkpoints that are unlocked, giving you clues as to the next thing that you need to do, until you've learned how the basic systems of the game work.

This week I'm planning on finishing importing the original tutorial files in to the system, and do some testing to see how well the tutorial works. I'm also going to work with ways to let the user know to check the status of achievements, if it changes.

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, February 20, 2017

Dev Blog- Sea Trading Game- Continuing conditions, reaction to similar game

This has been an interesting week. I was able to fix a number of annoying bugs, although I still have a few more to squash in the process. But more than that, I was able to get the game to actually work, including a "You Win!" alert that can appear! Note that the final version will have a sandbox mode, but it will also have some missions, if nothing else than for the tutorial.

The main thing I did this week was to improve the dialog displaying the victory conditions. I'm still trying to decide exactly what I want it to do, but I can greatly improve it once I have the decision made on exactly what I want to do with this dialog. It is coming along, slowly, however.

One of the big things I did this week was to look in to a similar game that has just been released, Winds of Trade. I've known about this game for about 8 months, which was about 6 months after I started my own project. Those early looks, well, I wasn't discouraged too much. When I first looked at the released version, however, I became a bit discouraged, I will admit. In a lot of ways, it is the game that I set out to make when I first started. But the more I've looked in to it, the more I realize that while it is certainly in the same space, and has a lot of the same features, there are quite a few differences, and I think those differences will make a huge difference in the feel of the game overall. In the end, I've decided to study the game, learn from it, possibly including a few similar UI/UX type features, but in the end, my game will be different than it will be. One thing that I have been convinced of as a result, however, is to defer my game a bit until I've made it better, and that when released, it should be of a similar quality level, if not higher, than Winds of Trade.

This next week I'm continuing the conditions, and tutorial fixes. I'm going to also start working on squashing some bugs that have been on my plate for a while.

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, February 13, 2017

Android Privacy Policy for my apps

This blog post will serve as my privacy policy.

I do not store any personal data, with the exception of grid squares for those who report location issues with Ham Finder. I will provide your location to the various APIs that I use to determine your location.

I do use a unique id for each phone to ensure that a token is unique to a given device. This is stored via a complex system of hashing, which will not allow me to identify any devices. That token is only stored on the local device, and is not sent anywhere.

Dev Blog- Sea Trading Game- Moving conditions to files

This has been a busy week, but not unfortunately for game development. The major thing that I was able to accomplish this week was to get conditions processing to an external file. This will allow for tweaking the conditions without re-compiling, eventually leading to mods being allowed. I was able to make a decent start, however, I've realized that this will be far more complex than I had previously considered, owing to the fact of adding checks and actions to make it smoother. I'm going to be continuing this effort this week, with a focus on moving the tutorial system to a conditions based setup as I have been desiring to do for a while.