Sunday, July 27, 2014

catching up

It's been a while since the last post mostly because the time I have to spend on the game is better spent programming than writing things here. At least until I get stumped on something and need to do something different. Which is where I am at now.
 
So what has happened since the last post? A lot actually, of the initial roughly 10,000 planets placed in the starting galaxy, around 200 exist within the habitable zone of their respective stars and are able to support life. Of those 200, approximately 80 have been named and exist within the starter player area where it is possible to travel, via high speed shuttles, to each of the planets.
 
This brings about a new direction I'm taking the game for starting players. Simply put, space flight in this game is a complex operation. I would say it is up there with landing on a space station in the original game Elite from the 1980's. At least up there with my experience which was that about 40% of the time I crashed into the space station and the game was over.
 
Rather than have all starting players get a ship and be expected to travel around in that, you can take shuttles. The goal is to make money and also gain some valuable experience. So when you start out you can play the game in a few different ways.
 
The simplest is to trade resources from one planet to another. Planets make significant money in the import/export business of resource trading. So players can join in this by purchasing blocks of resources and heading to other planets to trade them. Small problem though. As advanced as these civilizations are, they do not allow their resources pricing to be exposed. So unless you have your own private network to share pricing, do not expect to easily locate the best place to go and sell your goods.
 
Another way to make quick money is to take missions. There are various delivery missions you can take which can make you some quick cash when you don't have enough to really invest in resource trading. These missions vary widely and may have significant risk/reward if you are willing to deliver black market goods.
 
You can also start a small mining business. All the planets offer the ability to run surface mining operations. With some investment of equipment and staff, you can start a small mining outpost and either trade your goods directly with other planets or put them up for sale if you prefer not to be in the delivery business.
 
Finally, you can craft goods. Not only can you craft things you may need, you can craft things to sell.
 
So this is where I'm at, I'm building all the systems around gameplay that has nothing to do with space flight which is funny since that's what this game was really supposed to be all about.
 
Now as for planets not sharing pricing. I'll get into more detail later on, but there's a short version I can share here. A really long time ago a large group of planets got together and began an interplanetary stock market system for resource trading. While a lot of people got really rich off of this system, it decimated the economies of some really great planets. Of the 58 planets that shared the markets, only three remain populated. Of the three, only one has a strong economy. In fear of the same happening throughout the galaxy, planets have all chosen to not offer the means to check current prices without traveling. There are many trade networks that offer pricing and it is common for traders to talk to one another, sometimes offering false leads and other times joining together to share the wealth in huge trades.

Saturday, June 28, 2014

Creating Solar Systems

One challenge faced in making the game is the creation of solar systems. If the idea was for the game to have a dozen static stars, then you can craft each solar system and put effort into how things are structured. But in a game with hundreds of thousands of stars, creating a random engine to generate solar systems is required.

So today I offer a screen capture of just the field created in an application used to prove a concept before I commit the application to actually generating solar systems for each of the 3000 test stars.



In the game the circles won't exist. They are just to prove that the math is working properly. Basically each planet exists within it's own orbit boundary. Keeping the game simple, all orbits are perfect circles.

The red circle indicates the beginning of an asteroid belt. There are additional factors in place to determine the density of the asteroid population. In the game asteroids will provide significant income for those that pursue mining as a career. The dots are not asteroids, but clusters. In the game, the main map when zoomed out would appear similar to the above. But when you are zoomed in and flying around an asteroid belt you would see significantly more dots on the radar. Just be sure you've equipped a good set of deflection shields on your ship, asteroids can take a serious chunk out of a space ship if you attempt to navigate without the proper equipment.

Thursday, June 26, 2014

Toshiba won

I intended to buy an Asus but after spending countless hours at BestBuy over the past few months looking at each laptop, typing on the keyboards and deciding what I actually needed I decided to buy a less expensive laptop.

I got a Toshiba for $599. It's powerful enough to write software but weak enough that I won't install games that will distract me from programming.

While the game lends itself very well to the touchscreen laptops, I opted not to buy one that had touch screen.

In the end I got a laptop that has a great keyboard. My typing test was to see how well I could type
private static void method(){
for(int x=0;x<1928;i++)
doSomething(i);
}

I also tested the location of the arrow keys, tab key and power button. Oddly there were a few models where the power button was so close to the delete key that I shut the unit down while testing (lenovo).

The other problem I had was that I had purchased units in the past and returned them. For some reason when you close the lid on some models (mostly Lenovo) the unit powers down instead of sleeping regardless of how you setup the power options.

I still have 12 days to return this to BestBuy but I don't think I will.


Ok, break time is over, back to coding...

Saturday, June 21, 2014

New Computer

I hate buying new computers. Granted I usually build my own but I've been trying to do a lot of the programming using a Win 7 VM on VMware Fusion on an 11" MacBook Air. Bottom line, with a new laptop I will do more. So I'm about 99% sure I will be buying an Asus laptop, they seem the most solid and have a screen resolution that will actually work in creating this game.

So hopefully in a short amount of time I'll be back in to programming instead of all the different organization tasks I've been taking on that a mostly useless 11" MacBook can handle.

Saturday, June 14, 2014

Mind Maps

I've been spending a lot of time making mind maps of the different aspects of the game that require development. It's a humbling experience when you see what you've built and what is required to be built.

With the direction in hand, now I'm able to focus attention on the areas of the game required to make it playable. While a huge emphasis has been put into the development of space travel, it's actually one of the least used systems when playing the game. So for the next couple months I will focus on the travel, financial, trade and crafting aspects of the game.

I guess I had this total epiphany when I realized that space exploration was useless without a reason to leave a planet outside the public transportation systems available.
 
mind map for programming tasks:
 
 
 
Too small to read, for some good reasons, the map above represents the core game engine in the center black box. From that are each of the main functional areas:
  • Travel
  • Skills
  • Inventory
  • Player structures
  • Quest engine
  • Crafting engine
  • Financial systems
  • User interfaces
  • Combat
At this point about 15% of the boxes are completed which has created an almost playable game. So for now I can zip around the galaxies, plot waypoint, gather information about planets and fly a somewhat reliable space ship. In showing part of the game the other night my ship exploded, with warning. I forgot that my engines were heating up...
 

Wednesday, May 28, 2014

Making Planets

When I set out to create planets I had two goals:

a) I wanted the planets to be totally random, so that when I play the game they are just as new to me as they are to the other players.

b) I needed an application that could do this in significant volume, there is a need for about 375,000 planets.

So I offer a screen shot of a program I call Planet Builder. Using a handful of numbers, the tool creates randomized planets at a rate of about 1 per minute. Luckily I am able to run 5,000 iterations of the tool at a time making it possible to create all the planets needed in less than a day.

The example shown is actually only a partial planet. What you see is a water based planet (all the blue) with the solid land masses defined. Black is just plain land and the white are mountains.

Additional passes would be made in the tool to create resource areas. For example, parts of the map may have gold, iron, platinum, diamonds, etc that players can setup mining camps to harvest.

In terms of gameplay the concept is pretty simple. Speaking only for advanced players with significant skills, it is possible to scan a planet remotely with a probe that will return a list of materials that are available on a planet. If it is decided that there are desirable materials then the player can explore the planet with a landing craft. Flying around the planet the player can survey areas of the planet for specific classes of materials like metals, gems, gasses, etc. The survey computer will then return maps that indicate the areas that could be mined for resources.

The player would then send out additional probes to sample the quality of the resources to determine if it is worth mining.

Players have a choice in the level at which they wish to collect resources. Casual players may use robots to harvest materials, this inexpensive method would return enough material for a player to make some lightweight items for their own use but would be too slow if you plan to build items in mass for resale.

Alternatively you could build a mining camp. Camps have some requirements including security, power sources, transports for the materials, employees and the mining equipment. Other expenses may play a part such as life support for the employees if food is not easily obtainable on the planet or if there is no atmosphere. But the investment may be well worth the extra effort involved in creating a mining colony.





In case you are interested in what parts of the interface mean:
drops = the number of land masses created though the way land is generated 2 drops could run into one another and appear as one drop
passes = the number of moves the tool makes once the cursor hits the canvas
range = a random number is generated between the two numbers and acts as the distance between the current cursor location and the next
size = the brush size that is drawn on the cursor location

In the upper right the numbers refer to the randomness that takes place. Without some alterations to favoring the direction the cursor randomly heads in next, the numbers are even. But it is possible to manipulate it so that the cursor tends to "go south" more than "go north" which can help create planets with funky patterns. 

In practice most numbers in the interface will be randomized within a set of constraints for all planets that are created. Again, I want to play the game and experience every planet seeing them for the first time like any other player. So there are likely to be some really strangely laid out planets in the game. 

Multiple passes are made which draw the planet in a random sort of smudge pattern. The canvas is 1200px square (though this image only shows a 516px version of the app). 

When players locate planets they want to land on or survey an image will be offered that is 300px square (because that's the size of the interface onboard the ship that allows you to view terrain of a planet). The same small image will be used as a "mini map" when traveling on the planet. A horizontal and vertical line will overlap the mini-map to indicate your current position. Even though the planet is displayed as square, what you see if the entire planet flattened out, so when you travel to the right and reach the end, you start back all the way on the left so simulate the square being a round planet. 

Yes, it is a little unrealistic that all planets are 1200x1200 but things can change over time.

As far as exploring the planets, 1 pixel will equal 50px of terrain where your crew takes up 1 pixel. This means that planets are essentially 60k units square. This means that it would take about 15 minutes to circumnavigate a planet in your landing craft and about 3 weeks to walk around it on foot (assuming you can, there's no swimming allowed). 

Thursday, May 22, 2014

ground

From the start the game has been about space exploration. But I've really wanted the game to be about planet exploration. So I've setup the systems to begin planet creation and combine what I consider the two most significant inspirations in creating this game, Exodus Ultima III and Odyssey the Compleat Apventure (spelling is correct).

The premise behind the game has not changed. The ability to place mining colonies on planets and the ability to both harvest natural resources and the need to defend your mining colonies just got added.

More to come...