Since my last post, Krees and I finally completed the weather graphics. In Conquest!, each continent has weather effects which change hourly and affect food production, the risk of a ship being damaged while sailing, and how troops fight in combat. In the old client, a text description of the weather was sent. For the new client, we wanted to use images to represent the 11 different types of weather. For example, here is what freezing looks like: This show also shows the new pop-up design, which use color images vs. wood carvings and reduces the size of the scroll area. We are currently in the process of retrofitting some of the existing ones to use the new design, which provides additional variety and color to the 100+ pop-ups currently in Conquest!.
As part of this new design I created a Popup Manager class in Unity to handle existing and future variations. This was a rather large undertaking, as I had spread the code for the pop-ups across all the scenes and it took a couple of days to consolidate it all to one master class. I'm not sure if this helps any with efficiency but it reduced the overall size of the code and makes future changes much more manageable. This project is my first real foray into true Object Oriented Programming and I'm getting a big dose of on the job training. The code base has gotten better over time and I'm sure I'll continue to make further enhancements prior to launch. On the server side I made some pretty drastic changes to the communication protocol used by Conquest!. Using Message Analyzer, a free tool from Microsoft which allows you to capture all network traffic, I began looking at how much data is being sent back and forth between the client and server. Conquest! uses an XML based protocol and so has tags such as "Message", "Body", etc. While XML is a great protocol for humans to read and process its wordiness was unnecessary. But rather than switch to a different protocol, such as JSON, I simply shorted all of the tags to 2 characters each and changed "YES/NO" responses to "T/F". These two changes reduced the overall message size by approximately 20%. I also continued my crusade to remove unnecessary messages and reduce existing ones. Unfortunately, these changes complete break the Windows reference client but I stopped making changes to that a while ago. In the Core Labs program we heard a lecture discussing timelines and have our first deliverable due: a production timeline for each of our games. Fortunately I have worked on many IT projects so I have some experience to draw on. Follow the journey on Facebook or Twitter. Until next time, I hope to see you in the game.
0 Comments
Since my last update, Conquest! has seen several major enhancements to both the Unity client and the game server. The week culminated with an exciting opportunity for Conquest!. Read on! The first major piece of new functionality was the completion of the artwork for all 50 badges. Earning badges is a new feature in Conquest! (added just last year) and allows players to track their journey in the game. There are easy, medium, and difficult classes of badges to earn and they are transferred from Age to Age (if your player survives!). I also added 20+ sound effects to the game client and changed the music from one single track to six one minute tracks. These changes have greatly enhanced the user experience, something we will be focusing on more as we get closer to completing all the art and design. The effects and music can be toggled on/off individually.
Next simple animations were added: one to show when a player's movement points or gold have been adjusted and another for alerts (such as being attacked or robbed). As with the chances to audio, these enhancements specifically target the user experience by drawing the player's eye to important events. I'm using the newer Animator class in Unity, which supersedes the Animation class and allows for the definition of state machines. I was beating my head against the desk to get it to work properly until I found this amazing post, which was well written and included screenshots. Definitely a must read for anyone starting out with Animator in Unity! On the server side, I reduced the size and woriness of player log files by combining similar events into one entry (i.e. instead of separate events for the Campaign and Defense army consuming food, there is now one). I also moved descriptions of most items from the server to the client. Prior to this change, the server would send these (mostly static) pieces of information when a related command was invoked. This reduces the load for both client and server as text, which rarely changes, no longer needs to be sent around. In addition to several bug fixes I continued removing or reducing the wordiness of messages. Finally, Conquest! was selected by Core Labs for the Accelerator program. The program is a 6 month course designed to help demystify the business side of releasing a game to the market. This was my second application and I'm excited to be a participant. More information can be found here. Follow the journey on Facebook or Twitter. Until next time, I hope to see you in the game. |
AuthorJames has been working on Conquest! since 1993. Archives
June 2024
Categories |