Saturday 31 August 2013

Little by little the big jobs get done

I catch the train for two hours every working day and this time is dedicated solely to development of Asciilands. That's at least ten hours a week plus extra bits of time that I find for the project. This means that the rate of improvement and refinement is very constant and satisfying.

Sometimes, however, there will be a major change that requires more than a one hour block and needs to be done all in one hit so I'll have to save it for the weekend. The last one was to completely rebuild the way the map was rendered from scratch; the one I just completed was re-writing the way the javaScript handles the directional input so that the controls feel more like the RPG games I grew up (better handling of multiple key-presses / releases in various combinations). I've always felt that the feel of the controls of a game can make or break it and I don't want Asciilands to feel in any way sub-par. It's feeling good at the moment so I am, too!

In other, more visible news; the interface has been completely re-imagined! No more nastily placed windows, no more top-left aligned map! It looks like a game now!


The map feels much better in the middle, especially when the light radius is shrinking and growing. Having the player right in the middle always rather than jumping around because of different draw-distances is much more user-friendly.

The other panels of information work much like they did previously except for the Text panel which is part of a new method for making the server-side code interact with the user interface. The new method allows for more interesting interactions than just displaying text. The example shown is a book that allows the user to turn the pages.

Oh the possibilities!

I feel I must apologise, or at the very least acknowledge that it's hard to get much out of these posts when so few of you have used it hands on but some of my more technically inclined friends might be interested in some of the methods and lessons being learned behind the process.

Tuesday 27 August 2013

Welcome to Test Island (27/08/2013)


Today I made some cacti. They are static props made for desert areas. If you want to see them in inaction, you now can - on the Asciilands Test Island video tour.

It's a beautiful place, even if Jared did, for reasons unknown, remove my cow. 


In other news, this blog is now the top search result when looking up 'Asciilands' in google! Bing and Yahoo haven't worked out that we exist yet, while duckduckgo links here.


Thursday 22 August 2013

Quick update

Just thought I'd give a quick update on what's been going on with Asciilands.
List format!

  • Further optimisations
    • Literally halved the number of AJAX queries and reduced the total amount of transmitted data by about 30% (with 0 compromise on any user-end aspect)
  • Entirely rewrote how interface updates are sent and received. It is now much less grueling to set up a point of communication between the interface and the update system and we can send more interesting updates to the interface:
    • Updates used to be restricted to text and the text would appear in the various panels. Setting up the targeting and deployment of these messages was a pain the bottom so it's has been thrown out, simplified and re-written.
    • We can send other stuff now, too! One example is view dimensions; you can walk into a dark cave and the view shrinks so you can only see three squares in any given direction but then when you pick up some kind of light emitting item, the draw distance is increased to eight squares or something like that. Previously this would have required a refresh.
  • Objects used to behave in an "out of sight, out of mind" kind of way. By that I mean if you're being chased and you manage to out run them to the point that you can't see them anymore, they would no longer move. It also meant that if you were standing in a spot where you couldn't see any other objects, you can be sure that no objects would enter the screen. The system would only action visible objects. Obviously this needed to change or else having a really tight view range in a dark cave would actually be advantageous. There is now a much larger, fixed "action area". this is obvious and it probably should have been like this the whole time but hey, I'm still feeling this stuff out.
  • Other little things have been added like other experimental NPC behavior and pushing blocks now slows you down so you really need to push.
    • NPC behaviors now include an NPC that will follow you when spoken to and stand still when spoken to again (much like the NPCs in the Half Life franchise).
    • Objects with chasing behavior no longer track the player but instead track a "target" object which may or may not be the player. This is another step in the direction of complex interactions happening between NPCs without player involvement.
  • Other stuff, I can't remember it all. It probably doesn't make a whole lot of sense to people who have never interacted with the engine in the first place. Just letting you know that things are moving forwards! 
  • Soon to come: Major change to the way the interface is laid out. Floating panels get the job done but ultimately suck. As the information on the UI gets more complex and varied, the panels are less and less able to communicate the game state effectively.
I'm not on either of my Asciilands dev machines so I can't give you a screenshot however I will share this:
I have the best girlfriend in the world and she made me these pancakes:
This is the first ever Asciilands fan art AND the first ever Asciilands food-via-social-media post!

Tuesday 13 August 2013

2,000!

2,000 lines of [functional] code in Asciilands!*
Well, a few more but close enough.
Turns out those lines didn't go as far as I had predicted and while it is largely playable, most of those lines just went into optimisation. This is exciting nonetheless; the size of the rendered view can now be quadrupled with no noticeable impact on performance, even on my sub-par laptop!
Any optimisation means that we can push the limits of what is possible. A larger view can mean many things. Already we were using a tiny view for dark areas but a significantly larger view? Who knows! Maybe climbing up cliffs will give you a good vantage point! Maybe some items will allow for greatly improved visibility. The average screensize is now a factor in the size of the view more so that the lag created by the old method of rendering the view.


There's really not a lot to report apart from the whole 2,000 lines thing and that the engine is progressing nicely. All previous capability has been restored and new capability added. It feels good to be ahead again with things running so much more smoothly after a do-over.

There are a few more systems to re-write in ways that make more sense when used in combination with the re-written systems but that stuff should be done within the week then onward to the combat engine!

Also thanks to those few who have helped test Asciilands! If you are interested in testing, just let me know via any means available to you. All testers are appreciated and will be mentioned in credits / as NPCs / recognised in some way in the finished product. All contributions however big or small will be remembered and credited.

Arbitrary screenshot of something new:

*Line count calculated by searching for line terminations ( ; ).

Tuesday 6 August 2013

Blog now open!

The blog is now open to the public!

I haven't done an update for a while and this is mostly because I've been revising a lot of old code and only added a tiny bit of new functionality. I'm trying to get the engine to a point where we can just churn out content and flesh the game out into a good, playable experience.

To ensure content is kept fresh and diverse, the engine needs to support the creation of complex characters and behaviors and allow for the easy creation of additional behaviors as well as ensuring the parts of the world can interact with each other, not just the other players. This is what will make the world feel much richer and engaging.

Dev tools are being developed alongside as ever to make contribution easier for the keen.

As far has having something releasable goes, Asciilands is at least 90% there. It currently stands at 1,833 logical lines of code and I believe it will be something rather playable by 2,000.

Can't make a blog post without a screen shot, right?
Here's something you haven't seen yet: