Thursday 29 August 2013

Dev log week 35

This week has seen the following development:

Item pickup and drop
I added in proper item pickup and drop to the terrain. This allows the player to drop items to a stack of items on each tile. Also, any items in a stack on the ground can be picked up and placed into the players inventory.

Tile dig and fill
I added in the ability to dig up a tile (dirt, grass, sand, coal, rock) and have a resource of that type placed into the players inventory. I also added in the ability to fill a hole in the terrain with a resource from the players inventory.

Dig and fill now allows the player to reform the terrain. Once I add in more resource types, smelting, crafting etc, it will be possible to build castles, houses, structures, as well as flatten out land.

Content Editor
Possibly the best development activity this week. I created a standalone editor for content:


Content is stored in XML format. The editor allows me to read in the XML file, and easily add and remove new content.

As you can see in the screenshot, content is listed in the left pane, and its properties are editable in the right pane. The save button simply updates the treeview with the content model changes. The file menu is for opening and saving content XML files.

So, content creation will be extremely quick.


Friday 23 August 2013

Comments now possible - please comment!

Heaven knows why Blogger defaults to registered users!

I wondered why noone was posting comments. Anyway, I found what appears to be a setting to allow anonymous comments.

Please, post a comment here to let me know that anon comments are now possible. Thanks!

Thursday 22 August 2013

SurviveRL v0.06a released

v0.06a includes:


  • 3D ASCII terrain generator
  • "Test Item" spawning throughout the landscape randomly
The terrain generator seems fine now. I'll keep it like this for a few versions, to get a feel for any tweaking or not.

The "test item" is the base for the reagent spawning, think Ultima Online. In v0.07a, I'll add in the code to display them.

It runs in Windows, OSX and should run in Linux if Mono is installed.

Download links on IndieDB or the Wiki

Monday 19 August 2013

Kohonen SOM AI monsters

I put a forum post in the development section on Temple Of The Roguelike about this, which got a few replies. After which I decided to just take the plunge and add it in.

Kohonens Self Organising Map

Basically, it's a 2D array of anything which has been created and tweaked from an n-dimensional input source. Whatever that input is, or where it came from is irrelevant to the 2D array. What this does really, is just to organise the 2D array based on the relationships the inputs have to one another.

What makes it interesting, is that it does this fine tuning unsupervised. 

What I did so far

It's a neural network. So, I made a 2D array of 1000 x 1000 "neurons", which gives me about 100,000. That's about the same amount as all the neurons in a tiny ant. But, how those neurons in an ant are interconnected, I dont know. In my network, adjacent neurons are connected only.

I then gave this network a long list of 3D data to "investigate", or train. It took a while. But the relationships were always the same when finished. Sometimes, the start points might be different (the network doesnt know which is the start really).

So, once I could see the neural network code was working fine, I plugged it into my monster code.

What Next

I now have hundreds of monsters in the game wandering around with brains that can learn stuff. The monsters for now use A* pathfinding to chase the player, but once I switch on the neural network code and start using it, well, they will be smarter, and very difficult to kill.

Cloud Based

I use MEF (http://msdn.microsoft.com/en-us/library/dd460648.aspx) for plugins in the game. This AI stuff i'm doing will be moved over to separate plugins in a few weeks. After that, I will place it on some type of cloud service. I'll then link the training process of the AI from the game, back to the cloud.

As more and more people play the game, the cloud AI will learn. Players will be able to switch out the AI plugin anyway, so if it gets too hard to play, they can just activate a local AI plugin and ignore the cloud AI.

Finally, I will have a game that has an unsupervised cloud AI, where the monsters adapt and get better, as players get better. Who will win? I don't know really :)

One Last Thing...

There are hundreds of RLs out there, with all the wonderful things a RL is. Sure, I could spend 7 days to just whack in all that stuff too and make SurviveRL another one on the list. I don't see the point though. We can all keep playing those RLs for now, and keep monitoring SurviveRL as it develops into something of a hybrid RL. So, if enough people ever ask, I'll take 7 days and just hack in RL stuff. For now though, i'll keep on developing on a tangent.

Wednesday 14 August 2013

Video: 3D terrain exploration

Here is a video demonstrating the 3D terrain as presented in v0.06a:


It is by no means complete.

What I am still investigating, is a method to display the various heights so that black areas (heights higher or lower than 3 levels from the player) of the various regions are accounted for too.

Also, I will introduce roads, rivers, structures and flora properly in the next week or two.

Once the terrain is generating nicely, I will move onto the AI in the game, and that brings with it things such as emergent combat behaviour for monsters and enemies, AIML for the NPCs and complex FOV and LOS strategies.

As it is now, the game looks boring and doesnt do much. But if you take the time to follow the dev progress over the next month or two, you will see it become something worth your time playing, and hopefully enjoy it too.

Tuesday 13 August 2013

3D ascii terrain generation implemented

Progress for v0.06a

Up to and including release v0.05a, the terrain generator placed tiles randomly within each map region. Of course, this can make every screen look boring, as there wouldn't be any mountains, just a series of tiles that randomly change as you the player walk from region to region.

What I've done for the v0.06a release, is to use a terrain generator routine which isn't random. It's still pseudo-infinite e.g. it gets created during gameplay and has no predefined end. But the difference now is that a mathematical algorithm is used together with some other tricks to make the landscape more designed.

The end result is a great improvement. What you the player will see, is a landscape that appears as a contour geographical map. Areas of the world that are higher than where you are standing, are coloured lighter. Those areas lower are darker:



Water and Trees

If you click the image above, you will see an example of this. The blue area is water. The game shows terrain one level above your current level, and one below. Walking to a level lower than you, makes you drop automatically to it, and the game recalculates what new levels of the region you can now see. The same goes for levels higher than you: you automatically go up the landscape, and can see new areas from your new height.

So, v0.06a will add in an improved 3D landscape to explore. It wont be finished, but still, a better terrain generator than that used until now.

More status updates as usual throughout the week as progress is made.

Wednesday 7 August 2013

v0.05a speak peek #2

Some more work done:


If I manage to add in a few more windows before Friday, great. Otherwise, expect this release in a few days.

Tuesday 6 August 2013

Upcoming v0.05a UI sneak peek

Here's a look at the UI that should be released on Friday this week:


It needs a few more hours work, but has most of what was in v0.04a converted over to the new UI framework.

The game display window is now 64 x 32, so lots more to look at on each map position.

Monday 5 August 2013

User Interface development

This week im busy adding in a proper user interface to the terminal.

It will allow me to create screens and windows within the terminal itself, so that the game can work similar to how Dwarf Fortress does with overlapping views that can be shown or hidden with keypresses.

Expect a new update (v0.05a) on Friday 9th with the UI in place

Friday 2 August 2013

v0.04a (terminal emulator) available for download

New version:

- Added terminal emulator. Game runs in its own terminal, not the console

Check the wiki for download links at:  http://surviverl.shoutwiki.com/wiki/Main_Page

Stats and Keys added

Stats and Keys areas added to screen:


Starting to look more like a bit of a roguelike :)

v0.04a available to download and play within a few hours. New blogpost coming soon to announce

Game in terminal screenshot

So here's the game running in its own terminal emulator:


Keys are still the same. Selecting different fonts from the font menu resize the terminal properly. I like the idea of using a proper terminal emulator :)

Next step: Creating proper stats areas and combat messages area

Terminal emulator added :)

I managed to implement a terminal emulator into the engine. Here is a screenshot of the basic part of it:


What it means:
  • The game will run in its own terminal, no longer the console window
  • I can create proper areas in the game screen for stats, inventory, game area
  • Fonts and tilesets can be modded
  • New font sizes
Expect a new free version 0.04a to download in 1 or 2 days using this terminal emulator



Thursday 1 August 2013