This week saw great progress on the Tavern area of Conquest!. Conquest! was designed to accept a command at a time and yield one response. In the new client we have designed screens around a theme, to tie like activities together. The tavern is a good example of that. Rather than just visiting a tavern and seeing player gossip, we created a "room" where players go to not only gossip, but also gamble in a simple dice game, view or set bounties on other players, view jousting results, and the top 25 players. In short we created a better, more immersive experience by tying things you would expect to do in a tavern together. This is exactly the same concept we have been using for other areas, such as Kingdom and City. In Unity it is very easy to add these types of screens to the game. I have a certain set of core elements, such as the HUD and the button list, which can quickly be duplicated in Unity using copy/paste. I did find some idiosyncrasies using this method in Unity. For example, copying entire canvas objects can lead to a situation where the position is off screen and even after correcting and saving it will not preserve the position (as of this writing I'm using Unity 5.2.1). This is overcome by creating a new Canvas object and bringing in the elements I need. I also discovered Canvas Groups, which allow me to very easily disable buttons when a popup is displayed.
There are a few more items we need to complete before moving on to travel, namely the Mystic and Church. At this rate, I would anticipate the mobile client will be "playable" in 60-90 days. On the server side I continued to make enhancements to support the mobile client. Most of these involve adding additional information to the output of commands, which make the client easier to complete. An example this week was adding the individual die rolls to the output of gambling (versus just the total of the two rolls). Follow the journey on Facebook or Twitter. Until next time, I hope to see you in the game.
0 Comments
This week saw an important addition to Conquest!: the ability to buy and sell goods at the local city markets. In Conquest!, each continent has different cities and each city has different markets. There can be a maximum of 10 markets in each city and they will be a combination of troops from each class (except the Vampire) and other commodities such as food or spies. Players are only allowed to purchase troops for their class. At the start of an Age, Conquest will randomly open 5-7 of these markets and over time will slowly open additional ones until each has 10. Markets will also change prices, based on having a surplus or deficit. As a text based game, actions like checking the markets, buying/selling, going to the tavern, etc. were separate commands. With the new client we are combining these common elements to make the experience richer. For example, when visiting the tavern you have a variety of actions you can perform: hear gossip, see the top 25 players, set/view bounties on other players, etc. On the back-end these actions are still separate commands but the client masks this from the player. Here is the new city overview screen: The two items we worked on this week are "Marketplace" and "Magic Shop". The latter only exist in port cities in Conquest! so that button is disabled in non-port cities. We have just started work on the tavern screen; hopefully we will finish that in the next few days. The markets look like this: The images for non-Fighter troops are placeholders for right now. You can see that, as a Ranger, I'm not allowed to purchase Soldiers. Clicking on an item you can buy brings up more details: We still need to add the troop's additional combat attributes to the bottom (such as ambush, range, shield, etc.). Note that players can purchase items here or on the previous screen. The magic shop looks like the Royal Vault screen, with the items laid out in a grid. Clicking on an item reveals the cost, quantity available, and a description of the item. Not all magical items can be sold, which is why there are only 3 pages instead of 4. We have not finished all the item icons (there are 50 in total).
Now that I have done several of these scenes, replicating them is a matter of cut/paste in Unity. While I'm still a novice Unity developer I'm confident that I'll make improvements to the client over time (same thing happened with the game server earlier this year). I have also been able to leverage the work I did on the WIndows reference client earlier in the year (written in VB). While the code is not 100% portable many of the problems I solved in that client can be transferred to the Unity client. There is still much work to be done on the Conquest! client; I'd estimate we are 30% complete at this stage. And right now the game isn't playable: players cannot travel, spy, or attack and none of the class commands have been implemented. But we are slowly chipping away and hope to make good progress over the next month. On the server side, I modified several commands to send the client information it needs to support the design. These changes included adding the class name of the troop for a market and adding a keyword for each artifact (this determines which image to load). An area of concern I have now is the amount of raw data I'm sending to the client. Conquest! already uses a numbering system to send data (which results in smaller messages). But adding additional bytes going to a mobile client (with limited bandwidth) will have to be monitored. Unfortunately, our Kickstater campaign failed to reach it's goal. Despite this, work on Conquest! will continue but it will take longer to complete without the funding we were seeking. Follow the journey on Facebook or Twitter. Until next time, I hope to see you in the game. This week saw the addition of two screens under Kingdom maintenance: Vassals and the Vault. Each of these posed some unique challenges in Unity. Once a player reaches level 4, other players may select them as a liege when creating a new player. One liege may have at most 4 vassals. Vassals provide a bonus to food production for their lord and in return receive an income bonus. Additionally, small bands of Militia will aid either the lord or the vassal while defending. A new feature added for the Unity client was the ability for a player to email an invite to their friends to become a vassal. The server already contained a few email capabilities so this was expanded to support the new email for vassals. RIght now, the email just directs players to a web site which will (eventually) provide instructions on how to download, install, and become a vassal. Eventually it would be nice to have everything done in one click. I'll have to save that for a future version. Since a player can have 1-4 vassals, I created a Vassal class in Unity to store the results from the server. Once received the client will determine which prefabs to show and hide the rest. Unity makes all of these pretty easy so once the basic structure and code was in place the rest was simple. Also new was the addition of using Canvas Groups in Unity to disable the background buttons. Before I was setting the active property to true/false, depending on whether a pop-up was displayed. This worked OK but is not a typical user experience. By setting the interactable flag to false, Unity shades the buttons and prevents users from clicking on them. Nice! There are 3 different kinds of loot in Conquest!: magical items, artifacts, and heroes. Magical items are common and can either be used or sold at the magic shop for gold. Artifacts and heroes are much more rare and there is a fixed amount of them in the game. A player may only have one artifact and one hero. All of your loot, plus the badges you have earned, are available for maintenance in the Royal Vault screen. This is a new screen, even though it uses the same background as Kingdom maintenance. There are 50 magical items and badges so a grid layout was used; the max page is determined dynamically, based on the number of items you have. Any artifact you own always appears in the first slot. Eventually, there will be a unique icon for each artifact and item. Any hero you have is displayed on the second tab, along with a description and an opinion the hero has of you. And finally, the list of all badges and which you have earned; this screen is still a work in progress but eventually there will be a unique icon for each. On the server side, a few changes were made to support these screens (such as the aforementioned email invites). I removed the "release" command and collapsed all Vassal related commands under one umbrella command ("Vassal"). I can't decide if I should do that for all actions or not i.e. have just a few commands with many variations. I also added the descriptions of items, artifacts, and heroes to the output from the server. This is expensive in terms of data so I may move instead to having them stored on the client. There are advantages/disadvantages to each approach. Finally, I added support to see another player's badges and the type of troop to the army listing. In most cases a player's troop type will be the same as their class, but there is a hero you can hire which changes that. Additionally, this might be a feature I want to expand in the future.
The Kickstarter campaign is in its final week. Please consider supporting us with a pledge of any amount: http://kck.st/1LTthng 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 |