Monday, 19 October 2015

Hex Terrain Pics

It's very crude right now, but here's my hexagonal terrain system at work.

The current script creates a 20x20 randomised-height map with random cell state selections from (dark green woodland, light green grassland, brownish scrubland, grey shale). Then, when update is clicked I run a cellular automaton with mods for things like grass growing better near forests, everything growing badly on heavy slopes etc. Finally I run it twice for each update (to avoid the tick-tock cycling problems that make cellular automata look a bit weird and unnatural). All done in lua, then rendered by Irrlicht from the lua registry I made for Jump Point.

This is one result after 6 iterations (3 clicks of "update").


(Font and "FPS Touch Bar" controls are from the ProtonSDK demos, as usual.)

The grey areas are basically dips in the ground. Once I make regions blend into one another and make the height something a bit smoother than Math.random(-4, +4), the transitions should look rather a lot better.

I should note that the "This Is A Label" and Update button were both also added from script.

Next up - a slider bar for rainfall (which will involve adding slider bars to the GUI scripting) and add in tree rendering for the "forest" tiles.

I should probably mention I still have no idea what kind of game I'm going to make with this. It's still mostly just an experiment/toy :)

Sunday, 18 October 2015

Definite Progress

Update scripts work now, although I don't really like the results very much. Gonna do some more thinking about exactly how to make it work and possibly make more data available to the decision scripts.

One thing I'm noticing is that lua is disturbingly slow in Debug mode. Possibly stripping some of my debug output will help, and of course Release is a very different beast which I will have to check out shortly. OTOH if it remains slow I'm going to have to seriously reconsider this whole design.

I've also managed to get collision-to-terrain working but it's a resource hog and slides irritatingly. Since the thing doesn't really have many collision objects, I might just do conform-to-surface instead. Also - picking! (Haven't hooked it to anything yet though.)
So, a little bit of progress on my hexagonal terrain system. The dynamic updating is written, although it doesn't yet work properly. Managed to make the whole thing work with a minimum of branching (although there are limits to what I can do with a max function, really).

Might post up some pics or a video when it's working properly.

Wednesday, 14 October 2015

Late Night Coding

It's a dangerous habit to say the least.

I've found myself sitting down after Cerys has gone to bed, telling myself "I'll just put in an hour or so, debug that thing I've been thinking about, then I'll go to bed." Put some music on, open up my IDE...

Then suddenly it's 7:30AM and I'm volunteering to take Cessie's place on the school run as I am, after all, still awake.

And once again it looks like this might be one of those nights. Still, it's doing wonders for my state of mind. It's sort of amazing how much happier I am when I'm able to code. 3 years of illness has made me really cherish the periods when flow is remotely possible.

---

Can't promise regular future updates, but I've spent some of tonight's candle-burning idiocy on sorting out my various accounts for things so who knows? I have projects I'd like to talk about and projects I'd rather not talk about, so maybe I'll put something together about the former and leave the latter until 10 minutes before release :)

Sunday, 31 August 2014

Emergence

I've been sick for a long, long time. I'm still a bit ill - but it's starting to improve, at long last. There's light at the end of the tunnel now.

So, I need to start thinking about what I'm going to do with myself once I'm fully recovered. My old job at MCG is unfortunately not likely to be available any more, and I'm not sure I want to go back to embedded anyway.

So what to do?

Well... I can't leave Aberystwyth. My wife is settled here, it's the perfect place to bring up my daughter, and finding somewhere to live that's as well-adapted to Cerys' needs as the place we have now is almost impossible. 

I'm a practiced coder, and my capabilities are returning rapidly. I've been a technical support officer and I've run a company of my own. I have a lot of skills that would make me very marketable if I could leave the job wasteland that is West Wales, but that's not an option.

So, once again, I'm going to have to make my own opportunities. I'm going to try to dredge together what support I can, get control of my IPs, and then strike out on my own. I've done it before, after all. 

This is probably going to be difficult, but I can do it. More details to follow once they exist. See you all the other side :)

Wednesday, 14 March 2012

7DRL - Flagging

Having some nasty kidney problems this week, which combined with work are mostly killing progress. I have menus and an @ symbol moving around a map, and I have 3 more days. Not looking promising.

Saturday, 10 March 2012

7 Day Roguelike Challenge Entry

So. I've decided to take the plunge and enter the 7DRL this year. My entry is going to be called "Chosen".

I've been very vaguely playing with a command-line based Exalted combat simulator for a while now, so I've decided I'm going to take advantage of 7DRL to turn it into a Roguelike. It'll mean moving away from a lot of the Exalted systems, and obviously because of the limitations of this codejam I'll not be able to implement some of the really cool bits of Exalted such as mass combat, social combat, or the newly released Creation-Ruling Mandate rules.

Since I will be working and/or looking after the little madam for much of this week, I'll need to ensure the feature list is as small as possible. This is going to take Some Planning.

The Unconquered Plan

So, I need to decide what to focus on. First things first, I need an engine (since I won't have time to roll my own), and since I've been working in C# quite a bit recently and what little existing Exalted code will be usable is all in C#, I'm going to use the libtcod .NET wrapper. I should be able to get to "something moving around in a dungeon" nice and quickly with that.

Next up, priority features:

  • Simple chargen - pick a Caste and use a standard starting loadout.
  • No overland. Pick from a list of generated quests.
  • Each quest takes you to a different dungeon.
  • Populate dungeons with Exalted monsters.
  • Implement combat vaguely based upon Exalted tick rules.
  • Cursor or numpad based movement, bump-to-attack.
  • GUI needs to include obvious visuals for Essence pools and Health Levels.
  • Quick-key selection for attack/defence powers.
  • Include a selection of 4-5 attack/defence powers for each Caste.
Non-priority tasks:
  • Destructible scenery. Everything can be smashed to smithereens. I may in fact have "smithereens" as an item type.
  • The Chosen of the Sun give off sunlight when they use their powers. The LOS system in libtcod is perfect for this, and it'd be a nice change from light source handling in most RLs.
  • I'm thinking modifier keys for alternate modes rather than as shortcuts for running etc. Especially for attacking. Martial Arts moves might require quite a few modifier keys.
  • Use lower case for all commands. Upper case is special - Shift+anything means "use my Excellency to do that if I have one." (In non-Exalted terms, "Do it awesomely using magic".)
  • XP award per quest (and maybe other situations). Allow levelling up between quests.
Further info forthcoming shortly, this is just to give an indication of what I want to do. Visually I'm thinking very crude, probably ASCII in fact, unless I have plenty of time.