Entradas

Mostrando entradas de 2015

Winds of Trade Dev Update #12

Imagen
Once again it's been a while since the last update. But lots of things have been accomplished in this last month:

New stats screen, displaying lots of different metrics about the evolution of your company compared to those of your competitors. Sorry, you don't have HTML5 video and we didn't catch this properly in javascript. You can try to view the gif directly: http://giant.gfycat.com/GorgeousLinedLabradorretriever.gif. Dynamic sky: the sky is no longer a static skybox. Now the position of the sun, the color of the sky and the lighting change according to the time of year and volumetric clouds are generated randomly.
Lots of new contract types, that will now affect the relationship between your company and the different countries. Do you want to help one nation transport weaponry to win the war against another? Well, you better be prepared for the consequences (and the rewards!)Added different color correction profiles that can be selecte…

Winds of Trade Dev Update #11

Imagen
Wow, it's been a while since my last devblog update! But in these last few weeks a lot of progress has been made towards making Winds of Trade a real videogame. Here are some of the latest news:

Started progress on the 'contracts' feature that will let your company accept transport contracts with different companies or governments in order to make some extra money.
Added random world events that affect supply, demand and prices of different goods. Things like bad harvests, public works or population booms now happen making the world feel more alive and changing the dynamics of the different economies.
Two new ship types: Indiaman and Xebec
New "Balance Sheet" window in order to see how your net worth evolves year after year.
Changed the toolbar buttons that used to have text in them and now have some lovely icons.Now you can rename your ships. Not a huge feature, but definitely one that makes the game feel more 'complete' and less of a work in progress.Fixed l…

Winds of Trade Dev Update #10

Imagen
Lately I've been focused on deciding on a set of features I wanted to implement in order to make a 0.3 version of Winds of Trade. I am almost done with them, so I can send this new development release to some friends for testing. These are the latest changes made after the whole "add procedurally generated countries to the game" nightmare:
Lots of tweaks to the terrain generation algorithm. Now it's a lot more "island-y", runs faster and crashes less. It's still not perfect, but it's a vast improvement over the previous version.Added a basic macroeconomy simulation: countries go through different economic situations (like depression, recession, prosperity and so on) that change the rate at which they manufacture and demand different goods and the overall prices. For example, a country that's going through a depression phase will lower its coffee consumption; or a country that's going through prosper times will increase the output of manufactu…

Dividing a procedurally generated world into countries: a quick and dirty implementation

Imagen
When I first started developing Winds of Trade, I thought the whole game in terms of cities. You could go with your ships, visiting different ports and doing the usual buy high and sell low stuff.

But after a while that felt a bit unrealistic and not too interesting in terms of gameplay, so I decided that every city in the game had to belong to a country. That opened lots of new possibilities, like having your ships recruited by a ruler because his country was going to war with another; having economic cycles that affect all of the cities of a territory; or having some countries ban certain goods, opening the doors to the wonderful world of smuggling.

That, of course, brought some new challenges. My main two problems were: how to determine what country each city belongs to and how to determine who owns every pixel of virtual land available in the world. Here you can find the incredibly simple, quick and dirty solutions I used to face those problems.

Chapter 1: "Who runs this town…

Winds of Trade Dev Update #8 (or so)

Imagen
I think it's a good time to let everyone know the latest updates I have made to Winds of Trade. They are not super exciting, to be honest, but they were things I had to get out of the way before starting progress on the new features I plan to implement soon. Here are the details:

Added a basic settings window where the player can change the music and sound effects volume, the size of the UI and a few graphical settings.Added a "buy max" button in the city window, so the player can automatically purchase the maximum amount of a specific commodity (limited by ship cargo capacity, commodity availability and, of course, funds).Added 'click' sounds to the UI buttons.Improved the overall appearance of the game lighting by tweaking the ambient light settings and a few camera image effects.Fixed a bug that caused the camera to be in a random position when loading a game instead of where the player left it.Changed the background screen while the game is loading to somethin…

Stratecam in Winds of Trade

A few days ago I published an open source RTS camera script for Unity. Today I have finally finished removing the old camera script for Winds of Trade and replacing it with Stratecam. I am pretty pleased with the result, the old one was pretty much unusable. Here is a video showing it on action:



Now that I got this out of the way I am ready to continue with the implementation of some new features I've been longing to do: like countries, wars, a working settings window and improvements to the financial information window! Yay! :)

Stratecam: Open Source RTS Camera Script for Unity!

I've always wanted to take a piece of code written by me and release it as open source. Today's the day!

Stratecam is an open source RTS camera movement script I wrote for Winds of Trade. It has both mouse and keyboard control, movement smoothing, pan/rotate/zoom, it can follow objects around and it has a lot of options to customize and fine tune the behavior of the camera.


In case you want a better understanding of what it is and how it works you can find a small gif showing some of its capabilities here and a live demo (requires Unity Webplayer) here. I am pretty happy with the results and I hope I can get some feedback in order to keep improving it. I also welcome all of those who want to take it and make their own modifications and improvements to the project.

Source Code For Stratecam Here

How I implemented save/load in WoT: A Serialization Nightmare

Imagen
In every game dev project there comes a time when you have to face a technical challenge you don't like at all. For some people it's AI, for some others it's pathfinding and for me it's serialization. Let me explain a bit: I come from a web back-end development background, so persisting stuff is, by now, part of my very nature. But working for almost 10 years with databases (relational or otherwise) saving the whole state of a game in a single file via serialization sounds like a nightmare to me.


The first approach Naturally, the very first thing I did was take a look at the C# serialization classes and hope that everything would be solved immediately. After reading some tutorials and articles about it, it sounded like the perfect solution.


That did not last, though. I quickly ran into issues, though: It seems that some of the Unity classes that we hold near and dear to our hearts - like Vector3, Quaternion and Color - do not implement the Serializable attribute that C…

Clouds are here!

Imagen
Sometimes as a game developer you don't feel like working in the really important stuff. Sometimes you simply want to spend hours obsessed on getting some small detail right that doesn't add a lot to gameplay but you do it anyway because it's fun to implement it. That was exactly the case yesterday, when I decided to implement a cloud layer when you zoom out in the map. The final result is something like this:


So, here is how I faced this pretty useless task.

Step 1: Generating some cloud textures The first thing I did was open Photoshop and generate a few different cloud textures. In order to accomplish this I used the "render -> clouds" option and then put a mask in front of it where I drew random shapes and then applied some gaussian blur. The end result is something like this:

Step 2: Making a cloud prefab The next thing, after importing the textures in Unity, was to build a cloud prefab. I don't need volumetric clouds for this game - after all, they w…

How I implemented multiple selection and grouping

Imagen
Until a few days ago, you could only select one ship at a time in Winds of Trade. This, of course, makes managing a large fleet a pain in the butt, so I decided to go ahead and implement multiple ship selection and movement. These were the basic rules I decided on:
Player can select multiple ships drawing a rectangular area with the mousePlayer can select multiple ships while holding "ctrl" and clickingPlayer can move all of those ships at oncePlayer can create selection groups using "shift" + number keysPlayer can then recall those groups I have to say I pretty much didn't know where to begin. So I decided to start with the most basic thing: replacing the datatype for the variable that holds the currently selected ship. I.e.:
var selectedShip : Ship;
Became:
var selectedShips : List.<Ship>;
After fixing all compile errors the change unleashed I decided to get started in the UI stuff. First step, making sure the user can draw a rectangle by dragging the mou…

Out with the old, in with the new! (I love you, Unity 5!)

Imagen
Boy, competition is definitely a good thing: there were so many cool announcements regarding game engines lately! But the one that really matters for me and my project is the official launch of Unity 5, that now includes almost all of the pro features in the free version. Physically-based shaders? Sure! Real-time global illumination and real-time reflections? You got it! Profiler, occlusion culling, render to texture? Yup! It's all there!

So far I have only migrated my project from Unity 4 to Unity 5 and it was a pretty straightforward process. I only ran into a few minor issues regarding skyboxes with weird black spots on them (solution here!) and audio sources being initialized in 2D mode instead of 3D, what made all of the sound effects in the game to play at the same time.

I have also migrated the water effects from Water+ (a pretty cool and inexpensive add-on from the asset store) to Water4 (the one included with the pro version of Unity 4, now free). And does it look amazing…

Feedback is awesome!

A few days ago I let another person play my game for the very first time. I shared a copy of "version 0.1" (that means barely playable) of Winds of Trade with a friend of mine, who also happens to be a developer, and a fellow gamer, who is currently working on a game of his own.

It's pretty incredible how in ten minutes I got myself 11 new tasks in Asana (that's what I'm using to track my game's tasks for the time being) with things to fix or improve. Some of them are bugs, some of them are UI improvements, some of them improve gameplay... But all of them are new and good ideas to make a better product!

So, as soon as I reach 0.2 I suppose I'm going to hand out a few copies here and there and see what happens. Early feedback is crucial!

Just found one of the very first builds I made!

Imagen
After making what I consider a "version 0.1" build today I found the very first build I made of Winds of Trade. It seems it's slowly becoming something that resembles a game.


This is what the latest version looks like:


Winds of Trade now has... well, winds

Imagen
Last night I took a few hours to implement basic wind behavior in the game. After all, a game set in the "Age of Sail" definitely should have wind affect the whole trading system. Wind severely affects the ships' speed, thus it also affects travel time and which trade routes are more profitable than others.

Moving a fully-loaded galleon against a strong wind could prove to be frustrating and almost impossible, while your small and sleek schooner (full of illegal goods, of course) can ride the waves swiftly when the air is blowing in the right direction, so no pirates or port authorities will ever dream of catching you and your ill-gotten rum.

From a technical point of view, this basic wind implementation has two parameters that define it. Yes, you guessed right, speed and direction. Those two parameters slowly change over time. The wind speed changes in such a way that it will always try to remain around an average value, with a few calm days and a few windy ones. Here y…

Some screenshots showing what I have so far

Imagen
This are just some in-game screenshots to show how far the development of Winds of Trade got until now (a clue: not very far). Please take into consideration that almost all assets (except for the ships themselves) are just placeholder assets or 3d models I borrowed from the web in order to test. Same goes for the UI, it's just something I made in 5 minutes in order to visualize progress and it's not the final product.







So It Begins...

My idea is to update this blog in (hopefully) a weekly fashion with any news related to the development of Winds of Trade. What the hell is Winds of Trade, you might be wondering... If so, just take a look at the sidebar.

What are the objectives for this blog? Well:

1) Create a community around the game-to-be.
2) Provide insight into the development process that an indie game goes through.
3) Discuss topics related to the most challenging technical aspects of game development. This includes a bit of game design, a bit of UX, a bit of algorithm design and analysis...
4) Receive feedback on the way I'm doing things.

Enjoy! And thanks for reading!