I noticed that comments were not possible for anonymous viewers. That's changed now.
Feel free to post comments without needing to be registered, or logged in.

When i'm coding i'll try to be on IRC: #craftinspace on irc.chatnet.org

Saturday 19 May 2012

Harvesters

Harvesters work in a similar way to those in the Star Wars Galaxies MMORPG (discontinued, replaced by SWGTOR).

New code was added related to these. They detect 5 ore types, and mine those at specific extraction rates per minute. Ores don't have extraction rates, its the harvester that sets that.

When opening a harvesters output, it pauses the harvesting. This is so that you, the player, have enough time to sort or collect the mined ores without stress. Closing the harvesters output window, resumes the harvesting.

Tuesday 15 May 2012

Multiplayer progress update

Since late Friday evening, multiplayer support has been updated.

It is possible to connect multiple clients together now, and any of the clients can add/remove blocks in the shared world. This has been tested across the internet, so it's not restricted to local networks.

There has also been a few screens added into the main menus, which allow selection of known servers, as well as add/delete servers.

Also, there is a chat function now in multiplayer. Players can use the internal chat function to send text messages to the server, which everyone can read. There is no private/direct IM between players yet. That will be added once login details are added soon.

I'll get some screenshots onto the blog, and possibly a small video showing the multiplayer support in action.

Friday 11 May 2012

Server and Multiplayer Support

This week I started the code for a dedicated server. The skeleton code is now in, and many clients can now connect to it.

The game itself has had some network code added also. It is possible to connect to the server, and listen for incoming data from the server.

I will now need to decide which parts of the game require the server, and which parts can be kept within the client.

At the end of this, in a very short time, will be multiplayer support as part of the game.

I'll keep posting information about this important feature as more parts are added into it.

Week In Review

This last week was quite slow, compared to previous coding weeks.

There were some bugs in the UI code, that were fixed.

Wednesday 2 May 2012

Progress report

Still busy with refactoring to the new engine. Almost done with existing features.

Here's another screenshot:


It shows the smoke engine, with several different columns of smoke at various thickness. The smoke is animated, dynamically generated.

Mobs now have attack behaviors. More on that in an upcoming video, once a few more minor bugs are fixed.

Monday 30 April 2012

Killing mobs



Water screenshot

Here's a screenshot (been a while since the last one):

The hotbar will be repositioned to allow for the widescreen view of the game, so ignore that for now.

In the screenshot, you can see:

1. Ripple effect on water
2. Caustics on the surface of water
3. Detail textures applied across many blocks
4. The new lighting engine working together with the water transparency

Thursday 26 April 2012

Progress

The week has gone as planned. The refactoring is progressing well, into the new engine.

Last night, I spent some time on migrating the various UI screens over also.

As promised there will be some screenshots soon, and videos. There are many new features to show, but it's better to get them all into place in the new engine, and then make videos that are worth watching again.

Comments

I noticed that comments were not possible for anonymous viewers. That's changed now. Feel free to post comments without needing to be registered, or logged in.

Monday 23 April 2012

Auto crafting continued

I managed to finish the code for auto crafting this evening.

There is some refactoring that I will need to do, before implementing the procedural space station generation. So, I hope I can get that task done during the evenings this week.

I already have the code done for procedural space station generation. I just need to implement it into this code base. It shouldn't take too long next week.

Space stations will be lots of fun, some dangerous, some not. Not easy to tell, when first entering one :)

Sunday 22 April 2012

Auto Crafting

I'm going to add in automatic crafting stations during the next few days.

Let me explain:

In Star Wars Galaxies, I remember that players could make crafting stations. Then, raw materials in bulk are put into a sort of input window, and then a schematic (like a blueprint) is put into the station too. The station is started, and say every 45 secs, an item from the blueprint is created.

It's like a factory, for crafting when the player carries on with less boring things in the game than just crafting all day.

This is what i'm going to do also, an automatic crafting station similar to the one described above.

Saturday 21 April 2012

Trading system done

This evening I was able to complete the trading system.

It's now possible to sell items for credits. Using auto miners, any player should be able to mine blocks, collect them, and sell them. It's also possible to buy items from vendors.

Thursday 19 April 2012

Trading System

Details on the trading system

Almost coded into the game. A few days more are needed. About 50% complete so far.

Each player now has credits. These credits are used to buy new items, or raw materials, or anything that can be purchased in game really. This is all virtual, no free-to-play here or in game items for real world money.

The space stations in the game have vendors. So, to buy and sell stuff, the player needs to first get access to a space station. Teleporting to one, the player can walk around to find a vendor for a specific raw material or item. You won't find a weapons vendor wanting to buy other item types.

Once a vendor is found, it can be accessed and a screen displays the items for sale. The player can either put items into the vendor, in return for credits, or buy items.

I don't want to spoil it now, on how the items on a vendor work.

For players would aren't so interested in pure combat or multiplayer modes, crafting and resource gathering and rare item collection is also possible in the game.

I'll post some screenshots and possibly a video once the code is finished early next week.

View at 30 chunks

Time for some math (excuse if its wrong):

Each chunk is made up of blocks 16 x 16 across, and 256 high (yes, the height is at 256 blocks!!)

which means a single chunk holds information about 16 x 16 x 256 = 65536 blocks.

If I set a draw distance at 30 (extremely far, farther than MC and if I'm correct, Castle Miner), it should allow me to see a world of 51 x 51 chunks (needs double checking).

Let's count some blocks:

51 x 51 x 65536 = 170,459,136  blocks (170 million)

And this is running at a stable 58-60 FPS without lag. This is on a PC, not an xbox 360. Moving around, digging, placing blocks. The engine seems extremely stable. This also, with vertical sync set to true, and using Reach profile (XNA terminology).

What does all this mean for me as a player/gamer?

A very fast game engine. Less stress put on drawing the world. More options to add more game features. Put it this way: if I enable fly mode, it is impossible for me to outrun the terrain generation. Again, the math might be wrong. I just wanted to give some idea of how exciting it will be to play a game based on this new engine :)

Tuesday 17 April 2012

Tonight's coding

New engine
The engine is almost rewritten. This was needed so that upcoming game features could work faster.

Garbage Bins
These allow the player to trash unwanted items. They have a safety timer of 5 minutes. During that time, the player can still retrieve the items from the garbage bin. Once the timer is hit, the items get deleted from the bin.

Harvesters / Auto Mining
At intervals, these blocks will mine ores and other resources for the player. The player doesn't need to collect the items, as they are saved with the saved game. The problem the player has though, that the mining hopper (the output of the harvester) can overflow, and anything mined, doesn't get stored. So, retrieving items is necessary.

To stop mining, simply empty the harvester, then pick it up.

I'll post some screenshots soon, showing some of these new features.

Some initial gameplay infomation

I thought it time to announce some of the gameplay features which will be added in:

1. System maps

Travelling to different planets is achieved by selecting a planet from a system map.

2. Space stations

These are located throughout the galaxy.

3. Travel terminals

These are found on space stations and are used to travel to different systems, and locally, planets within a system map.

4. Vendor terminals

These are found on space stations and are used to buy/sell resources, items, weapons etc

5. Space credits

Mined resources can be sold on vendor terminals in return for space credits.

6. Loot

Alien species will drop random loot when defeated/killed.

Sunday 15 April 2012

Update

There's been progress this last week.

Some of the new features added include:

Multiple layered caverns:


Looking down from just under the top ground level, you can see a large cavern below. And looking through the cracks in the ground of the cavern, you can see a further layer of caverns even deeper.

Light sources are now blue crystals:


The texture for the blue crystals is just a placeholder, it will be retouched soon.


I've looked at space station blocks, which should be used in building bases on planets:




And finally, humanoid mobs are spawning now:



It's been a week of bug fixing, and playing the game too!




Wednesday 11 April 2012

Stress Test: 200 Mobs


Video shows a test of 200 mobs wandering around. Frame rate was around 60 fps.

Monday 9 April 2012

Unlimited containers

Just a quick post to mention that unlimited containers are now in the game after tonight's coding session.

I had expected it to take 3-4 days, but having found a better solution for implementation was able to cut that down to a few hours.

Sunday 8 April 2012

Mobs again

Here's another screenshot showing about 30 creatures wandering around. Imagine how dangerous this would be once the combat AI is added in!!!


Containers

There are containers in the code:


The focus at the moment is in creating infinite storage containers within the game, as well as different types of storage.

It should take 3-4 days to implement this.

Mobs

Check this screenshot from the game:



It's difficult to see what going on here, i'll try to explain. In an upcoming post, I'll make a video so that you can see the movement of these creatures.

Creatures are wandering. With regards to AI, they have no set behavior or complex state. There isn't anything that they have to respond to. Animation is wandering also. Combat or any other animation isn't being addressed.

The code is currently unoptimized, but still able to have 50 creatures wandering around without severe drops in FPS.

Very, very promising.....

Tuesday 3 April 2012

Game Videos

Here are two videos from the game.


1. The first video shows the inventory and crafting:



2. The second video shows the lighting:


When I get some more time this evening, I will explain more of what is demonstrated in the videos.

Wednesday 28 March 2012

Inventory Screen again

Heres an image showing the current status of the inventory screen:


I'll explain what is shown here.

The "058" in the top left corner is just a Frame Counter that i'm using during development and testing. It will be removed from the game.

Crafting Input
This is the 3x3 window where blocks and items are placed in a pattern. Depending on the blocks and pattern, an item can be crafted. There are many different blueprints which the game itself could use. As explained in an earlier blog post here, these crafting blueprints can be created by users too, for modding purposes.

Output
This is where the crafted item will appear to be picked up. In this image, you can see that there are 10 iron blocks created. These can be picked up and placed in the inventory or hot bar.

Inventory
There are 27 slots to use in the inventory. Each slot, as well as the hot bar, can hold 99 items or blocks. I might increase this to a much higher number later on, as actually it makes no difference in the code. Its more of a limit that should be used as part of the gameplay.

Hotbar
This is an exact copy of the hot bar that is shown and used during the game. The numbers underneath show the number keys that can be used during the game, to directly select that hot bar slot. It makes it easier to see them here, when loading items or blocks into the hot bar for later use.

The four squares on the right are part of the gameplay. I don't want to explain those at the moment, but they are planned as important parts of the game too. More details on that, and the actual gameplay once the v0.1 alpha is released.

Tonights progress

I took a few hours to clean up some bugs.

First, was to remove the option to delete a game, if no saved games exist (obvious bug!).

Next, I cleaned up the inventory screen code. Gives the inventory screen around 60fps now. Crafting is very fast to identify the input items and decide which output item to craft.

Also, the XML based crafting blueprints are really good. Just make a new one, or copy an existing one and make the changes manually. Restart the game, and the new crafting blueprint is available. Very easy for modding!! It will be updated to allow for properties of the item to be read into the game too. Take that later on in the alpha stage.

I'll keep working on the crafting code for a while, as it will be an important game mechanic. Crafting works, but some code is still needed to make it more enjoyable to work with.

Tuesday 27 March 2012

Progress

After the weekend, and yesterday evening, the following have been added:

1. Crafting framework (more on this below)
2. Mobs, animating with rigging
3. Inventory controller
4. World item controller

Crafting framework
This is based on blueprints. A blueprint is a plain XML file, with predefined nodes. It will allow anyone to easily add in new crafting items even if they are not part of the original game. So far, it allows for new game blocks to be created.

Once there are some decent gameplay entities (mobs) moving around in the game with some simple A-star algorithm or other pathfinding AI, I'll try to create a video and post it on this blog.

Not many screenshots lately I know. That's partly because the coding has been more of game engine changes, than anything related to graphics.

Friday 23 March 2012

Rigged testing: cube man

A short video showing basic textures on a rigged cube man for the game:



Hopefully should have this in the game within a few days

Thursday 22 March 2012

More progress

Hmmm, if the coding keeps at this tempo, it might be better to create a change log and link to it! Anyway, here's a list of updates from last evening's coding:

Sound
1. Added a music controller to manage background music in game
2. Updated the sound controller to manage in game sound effects
3. Added in code for 3D positioning of sound effects around player and at distance

Selection Block
1. Fixed a bug to stop selection when player isn't in range of a block, or not pointing to one
2. Fixed a bug where the selection block remains highlighting the previous dug out block

Particles
1. Added a particle system
2. Added digging particles when digging blocks

Water
1. Added a liquid controller to manager flowing of water when digging out around water. Water now flows into the empty space that is left




Wednesday 21 March 2012

Evenings progress

This evening was spent adding in the following:

1. Block placement has sound
2. Hotbar slot now highlighted with a border
3. Left/Right cursor keys used to select hotbar slot
4. Number keys 1-9 directly select hotbar slot
5. Mouse scroll wheel used to select hotbar slot
6. Digging now related to strength of used item
7. Mouse pointer now shows the selected item from inventory
8. Base code added for storage containers
9. Blocks for placement are taken from the selected hotbar slot

So, no new gameplay features, except small changes to UI and the start of storage separate from inventory.

Tuesday 20 March 2012

Progress report

This week was spent making some modifications to the main textures. Also, some rework was done on the hotbar.

There will be some further work done on the engine itself, which is likely to make the alpha a little later than expected.

Please remember that the v0.1 alpha is likely to be sparse on gameplay.

Don't expect more than simple block removal and placement, together with the ability to walk around on the first planet of the game.
Don't expect crafting.
Don't expect enemy types or combat.

There is code in place for some of these features already, but after initial testing, it has been disabled due to time constraints in demonstrating an upcoming v0.1 alpha.

The reason for such a sparse v0.1 alpha is to allow for that to be added in during the alpha stage, and refined during the beta stage.


Tuesday 13 March 2012

Profiling

I've been spending a bit of time profiling this evening also. I'll see if any improvements can be made

No Textures???

Strange this, if I remove the textures from the blocks, and just use the lighting at the moment, it starts to look like Cube World:


Not sure I like it. It moves away totally from the Space theme, and more towards a Toony look.

Monday 12 March 2012

Textures

I've been working in photoshop yesterday on new textures. Expect some new screenshots shortly.

Sunday 11 March 2012

Update

"1. Ability to delete saved games from the in game menu"  -  DONE
"2. A small bug with Y position on the world items"  -  DONE
"4. Rework of the main game HUD to increase FPS"  -  DONE


I'll try to get the other - Edit: 2 items done this coming week.


I'm not sure the inventory screen needs profiling. It's running at 60fps nicely. So, I'll cross that one off my list now. Which just leaves me to fix some textures which are copyfree, and get this alpha v0.1 out.


All those who are waiting for the alpha release from me - apologies :( I'm running a bit behind schedule. Don't want to pass over a version with those 2 items still on the list.

Tuesday 6 March 2012

Inventory working

I spent about 30 minutes this evening to fix a bug with stacking items in the inventory. That's fixed now.

I have a few small parts I want to tidy up before finally packaging the v0.1 alpha release, which are:

1. Ability to delete saved games from the in game menu
2. A small bug with Y position on the world items
3. Profiling on the inventory class
4. Rework of the main game HUD to increase FPS
5. Textures

This should get the game to a basic creative mode, with persistence of each world.

I don't think I can manage to get this done by Friday. So, a release is probably going to happen sometime next week.


Monday 5 March 2012

Free private alpha version

I'll send out a free private alpha version of craftinspace to anyone adding a comment to this post. Your email address is enough.

Tuesday 28 February 2012

Cavern screenshots

I placed some red flowers in the caverns to get some light down there. Here are some screenshots:





As you can see, it's very dark down there. But hey, this is space, and it's underground =D

Now, just need to think up which type of blocks to find underground in these caverns....

Hotbar and block placement

Spent about another 30 minutes this evening to get the hot bar working. Blocks are placed by selecting the relevant type from the hot bar slots (only using slot 1 at the moment).

Once the blocks there run out, the player needs to move another stack of blocks there, or start digging out new blocks again.

Similar to how it works in Minecraft and Terraria.

What this means is that I now have the minimum viable product that I could version as 0.1 alpha (YES!) and put it up for people to download. I'll wait a few days or one week longer, to get some of these smaller bugs fixed, and hopefully get more blocks into the terrain to dig out.

Deep and large underground caverns

Check this:


I added in deep underground caverns. Credit goes to BamYazi for the original idea (thanks!)

I'll add the option to place torches, and get some screenshots of what it looks like down in the vast caverns under the surface.

Alpha v0.1 (almost)

Tonight's coding was to add finally in the ability to create a new game via the main menu. DONE!

So, there is a an alpha version to play with. Well, almost.....

Just one very tiny amount of code to add in, which is related to inventory items:
the ability for the game to stack blocks and items separately based on each type. After that, to allow the game to select the block/item to place/use, based on the selected hot bar position. Easy stuff.

It looks heavily like there will be a proper v0.1 alpha out next week, for anyone to test or play with.

Keep checking this blog for the link....

Monday 27 February 2012

Inventory textures

As mentioned in a previous post, here's the screenshot of the textures in the inventory slots:


It demonstrates:

- textures in individual slots
- background white in slot to highlight the hovered slot
- a text wording at the mouse pointer of the item

A small fix still to do of stacking items individually, will work on that tomorrow.

Other small point also is creating the keyboard input routine for the new game menu screen, to allow the player to enter a desired world name for each new game. Also to enter a random seed for the world to use during the procedural terrain generation.

And once these 2 small additions are done, its a case of feature freeze and clean up to get this finally to a v0.1 alpha release.

Still on target for a release at the end of next week....

Sunday 26 February 2012

Textures in Inventory

Tonight's coding was to add textures for each item within the hot bar and inventory. This went fine. Just some small coding to allow the textures to move when the items are moving. Not much to do there, but it's getting late, so i'll leave that until tomorrow evening.

Expect a screenshot also tomorrow, all going well :)

Friday 24 February 2012

World items

Tonights coding was to place textures onto the world items, which are those after a block is removed:


In this screenshot, you can see the moon rock blocks, and the lower level blocks. These smaller blocks are collected by simply moving close to them. Then, they attract to the player, and are auto collected. Otherwise, they rotate and bob up and down when waiting to be collected, similar to Minecraft.

Thursday 23 February 2012

update

Last evening was spent reworking the code for the world items.

Not much to describe really, only that the code itself is being expanded to allow for more types of items later on. Better to get that in place now at the alpha stage.

I'll try to get something decent to take a screenshot of this weekend, time permitting.

Oh, and i'm still on target to get some type of demo out to play, in two weeks.

Tuesday 21 February 2012

Tonights coding

Load game:
I put in place the load game menu. Its possible to load any saved game now.

I'll work on getting the code in, for creating a new game, together with either a random world seed, or a specific one entered by the player.

Let's see how that goes....

Monday 20 February 2012

Update again

Inventory:

The base code is done now. Its possible to move items freely around within the inventory, to/from hot bar and crafting area. Moving an item onto an existing one, places it in position and puts the existing item onto the mouse pointer, similar to Minecraft and Terraria.

Some more base work to be done to get textures in now, but the code is done at least.

Menus:

I added in the menus for creating a new game and loading an existing one. Some more code to be done just to tidy those up still

World SEED:

The world seed is now persisted and reloaded when a save game is loaded in.

Small, small progress over the weekend, but still progress :)

Saturday 18 February 2012

Update on progress

Since my previous post on Wednesday, the following has been added/updated:

Persistence:
The world is now loaded correctly from the saved game
The player's previous position in world is loaded from the saved game

Blocks:
The removed blocks now spawn the icon blocks, which bounce and rotate until collected. The blocks detect the nearby player, and move towards the player to be collected, similar to how it is done in Minecraft and Terraria.

Inventory:
The inventory is saved and loaded correctly
It is possible to click/move/place items within the slots in the inventory
Items stack in inventory per slot. Once a slot reaches its maximum stack amount, the next free slot is used.
Removed blocks attempt to place in the hotbar first, similar to how it is done in Minecraft and Terraria.

A screenshot showing the stacking in the inventory:


Note: The items themselves, with textures and attributes will be added after the movement code is finished in a day or two.

Wednesday 15 February 2012

Water

OK, so there isn't water on the moon, but i wanted to see how water or other liquids would look like so far. Here's a screenshot:


There's a nice light effect across the surface.

When I get more time later, i'll update the HLSL shader to make the water move a bit with some simple waves. Not sure though if water on other planets should have waves? Maybe particle effects of gas bubbles rising from the surface instead?

Better get back to some coding now..

Inventory screen

Heres what the inventory screen looks like so far:


It's dark because the inventory screen is on top of the main game screen. When that happens, the game screen darkens so it's easier to see the inventory screen. I don't pause the game in the background, so its still possible for enemies to attack!

I've laid it out similar to Minecraft, so that crafting will have the same type of feel to it. This screenshot shows the 'X' cursor, that is moved around to select each of the blocks and for picking and dropping items between slots.

The code is already added for highlighting each slot, with supported code too. All I need to do now, is get some nice textures ready for the blocks in the game so far, and connect it to the persistence code (load/save stuff).

Once this is done, I should have a version ready that can be called "creative" mode :) I think a week from now. Let's see how it goes.....

First screenshot !

This evening I was able to get the world loading from its save, with blocks being removed/added from the saved game. This is definitely a step forward now!

Next step is to get the inventory to save and load.

Things are moving along :)

Anyway, here is the very first screenshot i've taken of the game so far:


The textures are NOT the final ones. They are just a series of textures I found on the internet, and are purely for testing.

What you can see here is:

- Some type of weird space atmosphere with green fog
- A moon type texture for the ground
- Lots of 'X' type flowers which emit red light around them
- A hotbar, similar to Minecrafts
- To the bottom right, the health and oxygen levels (yes, in space we need oxygen!!)

Next post and screenshot will show the inventory screen so far


Tuesday 14 February 2012

worlds are saving!

So I got the code in for saving worlds now. I'll optimise it more later, but for now the world saves only the parts where blocks were added or removed.

Some more work to do on the inventory code, and then i'll get that saved too. A day or two I expect. Once the player, world and inventory are all loading and saving fine, I think i'll look at the inventory screen again.

I wonder what the first ever screenshot of CraftInSpace will be of?

Monday 13 February 2012

progress update

So,

The game has the following parts at the moment:

Graphics:
voxel 3d block terrain
highlights block to dig/place
sky with galaxy images and stars
fog
some nice moon rock textures
transparent water
sound for digging
background music
head movement

Lighting:
Ambient Occlusion
Sky/Space has gradients
Blocks can emit light
Overcast lighting/shadows (blocks under blocks are darker, for example caves, or overhangs/cliffs)

GUI:
start screen
loading screen
pause screen
inventory screen
hud with hotbar - 9 slots

Mobs:
Flying mobs
Mobs chase player
Mobs patrol

Blocks:
Falling blocks

I've also got the persistence (load/save) code in place but it's not active. The world regeneration is fully thread based now, and runs at ease around 60fps.

All the code is running fine on PC, and is compatible with XBOX360.

Screenshots coming soon :)

Friday 10 February 2012

First Post!

Craft In Space !
A game I've started coding. It will have the same style as Minecraft, but be based in space :) So I decided to call it CraftInSpace.

It will follow a "block craft and mining" gameplay that Minecraft has, with a 3D voxel terrain engine, where the landscapes can be altered by removing or placing blocks.

Status so far:

Well, As I wrote some of the code for TechCraft (techcraft.codeplex.com) I will reuse most of that code. Since then, I've added in mobs (entities) and some other stuff. I'll save that though for another post, and hopefully put up some screenshots too.