Monday 20 September 2010

Terrastrom v1.0.1!



I am ready to begin sharing my project with the world. Bear in mind that I'm pretty new at programming (with real languages anyway), so much of my progress is personal learning and code improvement.

However, I'm happy to let people see where I'm up to, and you can download the first distributed version of the game [removed]. You might need to install the XNA framework in order for it to run, please see this thread for help. It's coded in XNA 4. I will work on packing the .rar with everything needed later on, and eventually provide an installer package. But for now let's keep things simple, and the focus on the game itself.

It's not doing a great deal yet, but I'll explain what it does and some of my plans.

Graphics

First of all, I need to point out the graphics are not mine. They are nabbed from an entry to the Assemblee Project, here. My graphical skills are appalling, so for now I'm using these stock graphics until I either find an artist or figure out how to draw pixel art.

The World Map

The world map is one of the most important aspects of the game and something I intend to spend a great deal of time perfecting. At the moment it's 100x100, and generates islands by simply gluing a load of circles together. The edges of those circles form sand, and the centres are grass. The rest is sea. I have in fact got a much more exotic algorithm built with rivers and mountains, but I decided to wait until I have more gameplay elements in place before I upgrade. I want the level generation to be modelled around the gameplay, not the other way around.

Trees

500 trees are dotted around at random on the islands. They don't have any functionality yet.

Player

The player spawns at a random location on an island (sometimes he can get trapped on a small one). He can move around, only on land. Arrow keys to move.

Screen

The screen took the most time so far, but I think it's pretty solid now. It starts centred on the player. I've implemented a border so that the screen will scroll when the player moves into that border, but stay fixed while moving in the centre. It's all done with global constants so I can tweak everything later. I have also implemented the ability to zoom. PGUP and PGDN zoom in and out. It looks dreadful at max zoom. I think I'll take out the ability to manually zoom eventually. Zooming may be used instead for previewing the map ahead of playing the game.

Deer

Today I added my first active object: deer. 50 get spawned, which move around at random. They continue to move whenever they are in an area near the player. At the moment the area is about twice the size of the area on-screen. That means when you zoom in less deer will move around.

Next up

The above gives a little taster of what I've got in-game so far. I would like to post more about the code and how things work, but will discuss that as I change and improve the current objects.

The next thing I want to add are objects which are not drawn. At the moment every object has a sprite, and when on the screen, gets drawn in its square. However I want to pack lots of detailed information into the game (think Dwarf Fortress). Perhaps small things like flowers, herbs, critters may be shown in text when you're stood on the square and be interactable, but have no visuals (at least until picked up). This would allow lots of potential actions when on a single square, and more content. The game already displays a list of items on the current square, but I want additional things to appear in that list which are not displayed on the map.

And yes, I'm aware of the giant blue border. That's where the interface is going.

No comments:

Post a Comment