Category Archives: Screenshots

State of the Project Address v3.0

Even three point o-ier than before!

So, it’s been a long while since my last big post… Sorry about that.  Time to rectify away, though!

Since my last State of the Project post (way back in August of last year!?!) we’ve accomplished a whole lot!  Time for a list (in pseudo-chronological order)!

Vanity/Wardrobe

We rolled out our combined version of a Vanity/Wardrobe system.  While we haven’t hooked it up to the account system yet, we’ve got a solution for integrating it with the game in internal testing/review right now.  In the meantime, you can save/load your creations via a bit of text.  If you haven’t checked it out, you can find it here.

Housing

While housing (along with the associated streets and friend signposts) is set up and working, there’s some architectural and infrastructure stuff keeping it (and other instanced areas) from working in anything other than a test environment at the moment.  I’ve been chomping at the bit to get this rolled out, but we’ll just have to wait a bit while we work out some of the other kinks.

Pathfinding

CubiRacing

Our NPCs can move!  While we still have a few bugs to work out here and there, most of the NPCs are fully functional, though we don’t have foxes working yet.

Namerizing

Eleven Wardrobe Namerizer

Eleven Wardrobe Namerizer

We requested some help from our amazing community to provide new names/descriptions to the items in the wardrobe, since that data has been lost to us.  While we might have been able to simply dig around to find the lost info somewhere, we thought it might be a good opportunity to put our own (and some of your) personal touch on things.  It’s closed down at the moment, but keep your eyes out for other ways you can contribute in the future (we may even open this, or something similar, back up)!

Throwaway Server – Thrown Away!

That old Throwaway Server we were always talking about?  It’s no longer being actively used for development.  Instead, we’ve pushed the real thing up on GitHub along with a couple of other repositories.  Full disclosure though, there are still a couple of repositories we’re holding private for the moment that are necessary to run the game (if you want access to contribute, just send us a message from the info over on the Contact Us page.

Alpha Release

Eleven Logo

We finally managed to get things to a point where we could welcome people into both the forums (public) and the game (private).  We’re continually adding more people to our testing group as activity levels and system stability allow, and we’re making loads of progress in getting things ready for bigger audiences.  An unfortunate disclaimer though, we’ve still got a long road ahead of us along with some major changes that need to be made to our core system in order to get things ready for that next level which I’ll address a bit more later.

This also gave rise to our forums (you are signed up… right?), which has had a great turnout of former Glitchen and new players excited to get in on the action.

MMOGames Editors Choice Award for February 2015

We won!  Thanks to our amazing community, we won MMOGames first ever Editors Choice Award voting, and had an interview (with yours truly) run because of it.  Check it out here.

 

Current Happenings

Architectural Issues

You may have seen our most recent blog post regarding some of the issues we’re working on, but I’ll summarize either way.  Basically, some of the features we’re taking advantage of in order to get our system working well in a distributed environment also make it perform insanely slowly.  While this kind of performance doesn’t hinder a very small user base much, if we were to increase the load on the servers, things wouldn’t go very well right now.

Some experimentation has been done in order to try and improve things without rewriting our entire infrastructure to avoid use of the problem features, which has had at least a little success, but we’re still working towards better solutions and closely monitoring the respective progress by the node.js/io.js teams (did I mention we’ve been experimenting with both, and are excited about the merging of the two projects back together?).

QA2

The QA2 process has started, which means our team is combing through every single level in the game and trying to make sure every barnacle is pointing the right direction, every vendor has a nice and consistent look, and a million other tiny details that these perfectionists are keeping a close eye on.  We’ve already rolled out one of the Groddle regions, and are slowly working through the rest.  I’ll get one of the team members to write something up for the blog soon.

Wrap-up

We’ve been making a good bit of progress on bug fixes while we’ve been trying to sort out the big issues.  We’ve also got a setup for an integrated vanity/wardrobe that we should be able to roll out relatively soon to the alpha testers and are trying to add more testers whenever possible; we’re currently up to 53 users, though there’s typically only a handful on simultaneously.

That’s all for now, folks!  While progress may have slowed down a bit due to outside obligations and our fun architectural issue, be certain that we are very much committed to seeing this through, so we’ll get it working one way or another.

-Kaiyon

A small peek into Ur

It’s been many months since we’ve been able to show off some basic gameplay, but we’d like to change that. We have a few videos planned for you all, so get ready! What I’d like to demonstrate to you today is how many higher-level things are happening in the background at the moment.

You’ll notice some weirdness which we will of course be attending to. Those poor street spirits will be dressed up properly very soon. If you missed Aroha’s tweet, we put a temporary room in the game for the locations we don’t have yet; this cut out a good number of errors so we can focus on the ones we need to fix. There’s some visual “noise” that’s from the god-client, like all those tooltips and things highlighting as I walked past them. (Or did that happen before? I forget!)

Anyway, without further ado:

A note on the achievements happening back to back: Glitch counted everything. I have been astounded looking through this code to see how much counting occurs. When we set up our player data for testing, by default we made them level 26 with some currants and iMG…the game just has a bit of difficulty parsing that with the fact that we didn’t earn them. Picking up a currant forces it to count, and it goes “yay, you have so much money!” and fires off all the relevant achievements.  Don’t worry, we’ll be starting from scratch when the time comes just like everyone else!

Playing Dress-Up

Here is a preview of our NEW concept for the Wardrobe and Vanity. The layout and functionality is entirely thanks to Joey!

For those that are curious, this interface is written using HTML and Javascript, but it’s calling upon the original Avatar Displayer SWF file found in the wardrobe. We’re all very excited about the Wardrobe and Vanity being more unified than it was previously – you can see how easily you can switch back and forth to customize your character’s entire appearance on the fly without needing to wait for each module to load independently. Enjoy!

Tag! You’re it!

Sirentist told you about the user’s side of “tagging” in her last post, and now I’d like to add something about the technology behind this “tagging” thing and why we chose that way. At the end of this post you’ll probably be able to tell what the (boring) technical reason to call it “tagging” was, but I like Sirentist’s idea way better!

Before anyone was able to yell “Tag! You’re it!” several things had to happen. And before we even had the idea to solve our problem this way, we tried something else (and failed) … but let me start at the beginning.

TinySpeck released most of the Glitch source code (client and server) under a CC license.1 The important word here is “most” — they did not release everything, especially not all the data we would need to get back Ur the way it was before the world ended. There’s a lot to say about the things we do or don’t have; Aroha has already told you about it and I bet there will be more posts on the subject. However, today I wanted to tell you about some of the things we had to do to get Ur back to the state it was.

As Sirentist said, everything in Ur had its own TSID, which is the unique key or ID of every item, every street, every player and so on. For each of those TSIDs, there was an XML-file that contained all the information related to that object. Among the assets TinySpeck released were the XML-files for (nearly) all locations (streets). Each of those XML-files contains information like the label, the TSID, references to that street’s geometry files, a list of players currently in that street, and so on. In addition, every location had a list of items contained in that street. An entry might look like this:

<objrefs id=”items”>
<objref tsid=”IA5HOD6RUSF3922″ label=”Fruit Tree”/>
<objref tsid=”IA5C9TB8OTS2N5S” label=”Shrine to Zille”/>
<objref tsid=”IA5CH4UBOTS2TL5″ label=”Street Spirit”/>
<objref tsid=”IA23I4QA23T2L15″ label=”Quoin”/>
</objrefs>

As you can see, the XML-file for a location contains only the TSIDs and the labels of the items. So not only are we missing the position of the item in the street, but we’re also missing all detailed information about the items. Things like what kind of Street Spirit? What did it look like? What type of quoin? When was the last time that Fruit Tree was watered? How many harvests are left? I think you get the idea.

Getting this level of detail was one part of the problem. We needed some of those values to initialize the items in the street. That part can (mostly) be done automatically. We could create the items in-game and use the result as a template for our new items. So far, so good. But how do we get the original positions of the items in the street back?

Idea #1: There has to be a way to do this automatically

Well, I’m sure there is, but it wasn’t as easy as it first seemed. The idea was to have screenshots of all streets in Ur and then use those to automatically find the position of, let’s say a Fruit Tree, in a street. Thanks to Mackenzie2, we had a complete and perfectly organized collection of full street snaps. We used python and the initial results looked really promising:

snap

Find The Fruit Tree!

It looked like 90% of the job was already done. However, as is typical, the remaining 10% turned out to be a problem. We soon ran into several complications:

  • There is not one Fruit Tree; Fruit Trees exist in 60 (again in words: sixty!) different states.
    Fruit Tree

    Fruit Tree

    While this is not a showstopper, it would have made our progress significantly slower. We would have had to check for all 60 versions every time. Besides that, it would have led to a lot of false positives.

  • In some cases the items are really difficult to find with the algorithms we tried, like this dirt pile here:

    Dirt Pile

    Brown Dirt Pile on brown background

  • The XML-files that we have for the locations are from an arbitrary point in time, pretty close to the end of the world. Let’s call it foo. The screenshots we have of those streets, meanwhile, are from a different arbitrary point in time. Let’s call it bar. Now between foo and bar (or bar and foo, for that matter) the world changed. People poisoned trees, for example, and what once was a Fruit Tree (on the snap) became a Bean Tree (in the XML-files). Or the other way around. Or nothing was replanted and there was only a patch left. Or, or, or. In other words, many streets had XML-files and screenshots that didn’t perfectly match.

Altogether, these reasons made us give up on this approach and try something else…

Idea #2: Tag! You’re it!

So instead, we needed a “semi-automatic” way to solve this problem. In the end, a human being would have to decide what item to place where, but we could at least try to make that process as simple and fast as possible. After all, we’re talking about more than 21000 items on about 1300 streets.

Using the above-mentioned snapshots of the streets, we set up the first version of the “tagging server.” A small python web server and some magic jQuery libraries (similar to those used on some photo tagging sites) are the core components. We know what items are expected on a given street from the XML, and those need to get converted to our target format (JSON). With that info, we generate the colored list of items you saw on Sirentist’s screenshots. That list is updated on the fly so the tagger always sees the current state, without having to reload the page every single time. For every tagged item, we get a JSON with x- and y-coordinates, width and height of the drawn box and the TSIDs of the street and the original item. Then we use the geometry file of the location to map these pieces of information to a position in the street. Finally we use the label to create a new instance of the item class of that TSID (like our Fruit Tree). Repeat that about 21000 times and you get all items back into Ur.

Remember? This is where we went before we had the Spice Route

Remember? This is where we went before we had the Spice Route

When we started to work on this, I thought it would take a long time to tag all those items, but I was definitely wrong. With the help of some very enthusiastic members of Project Eleven it was a matter of weeks, and not months, like I had expected, and it was done. Of course, this is only one of many steps to get Ur back the way it was. But it does feel good to walk through the streets again and see all the trees and quoins and dirt piles and peat bogs and some of the old inhabitants!

 

 

1 I would like to thank everyone at TinySpeck again. Without the sources, without the instance of Slack we have or without all the help current and former TinySpeckers have given us, we would be nowhere near where we are now.

2 Special thanks to Mackenzie (Jade)! Her knowledge and experience have been invaluable for us!

Nottis, anyone?

Screen Shot 2014-02-10 at 5.40.25 PM

Lotha Harte lives! No heart yet, but once we have those God pages sorted out we will be able to program that back. We do have scrape-able ice nubbins, which is exciting! Look at those wonky quoins though – I can’t wait for the next phase of our QA process to get started.

To answer a question posed in the comments of the last post, we are currently able to access all of Ur that existed on the world map. Instanced locations like Hell One, or the Subway are currently inaccessible. We’re working on it!

Empty Ur, no longer!

When we got our hands on this code and started reassembling the pieces, we were able to walk around in Ur fairly quickly. It was an amazing and emotional moment for all of us. We could only run the game locally, so there were no other people. What made it more lonely was that the world was totally empty! There were no rocks, trees or animals; no street spirits or shrines, or even quoins! The task of putting them back was more than a little staggering!

Upon investigation of the XML data included in the repository, it turned out that there were 21,457 items in Ur that existed all the time…that does not count anything that a user could place, like notes, food items or anything else that could be dropped.  To complicate things further, we knew WHAT belonged on the street, but we had no indication as to WHERE it should be placed. The only way to get these things back? We had to add them one at a time.

Thanks to our resident genius Scheijan, and a handful of people who enjoy (seemingly endless) mindless work, we have a system that allows us to “tag” an item based on full street snaps, which would place the item in the game in the approximate right spot with some scripting magic. Without the parallax effect, this is not a totally accurate process, but it does a good enough job for now! Here is an example of how items look when you can’t account for parallax:

Close, but not quite!

Close, but not quite!

You can see how the arc of quoins is squished – on the tagging page, it probably looked like it was spread out the correct way from the landing on the right to this bigger landing I’m standing on. You can also see how the tree is a little too far back to be accurate. But, it’s THERE!

This is what an unconfigured animal spawner looks like, along with a poor, mismatched street spirit:

Screen Shot 2014-02-03 at 5.14.25 PM

Signs of life…

All of these things will be fixed in what we are calling “Step 2”, which is going to be a fairly major QA process to configure all the spawners and street spirits, randomize the types of quoins that show up on each  street, along with moving the trees, rocks and quoins to their proper positions. I’m currently working on how I would like to tackle this, but some other technical wizardry must happen first. Each item in Ur had its own “God Page” which allowed the developers to configure every possible asset to each item. We don’t have the code for the God Pages from Tiny Speck, so we’re going to have to come up with our own. Scheijan and Aroha are debating the best way to handle it!

Finally, this is a visual summary of statistics that represent a few weeks’ work:

Screen Shot 2014-02-03 at 5.34.41 PM

I can’t believe how far we’ve come! We thought we’d done an amazing thing when we’d placed 1000 items. There are only about 8 of us doing a majority of the tagging! We intend to keep up the good work while the coders work their magic to get Ur back to the way it’s supposed to be!