The Forest

Early access games can go be a hit-or-miss affair; you can sometimes get a great game early in it’s life and sometimes you can get a game that looks like it’s going to be great, but for some reason it just doesn’t . I enjoy it when these early access games have a vibrant community based around consistent game updates that keep giving the game new life, developers listen to feedback from the audience to feed new developments and features and everybody wins; Minecraft, Project Zomboid and Prison Architect spring to mind. On the other hand the game might hit snags during its development, the team might quit or the game might not turn out like you had hoped, fans of the games Town were upset when lack of sales forced the developer to quit, you can read the forum post here. An even worse scenario, they implement a pay-to-win scheme, ugh. Because of this I am cautious when it comes to early access games. Still, a while ago I took a punt on one called ‘The Forest’ and I’m really glad I did.

The Forest is a survival game where the player finds themselves waking up in the wreck of a plane crash in the middle of an island. You have to survive by building shelter, making fires, cooking, eating animals, crafting weapons etc etc. As you change the landscape in the forest by cutting down trees and the such, the local inhabitants take interest in what you are up to. These inhabitants, called Mutants by the online community, react differently to you depending on how you interact with them and how you go about living on the island. Building big bases will cause them to send large numbers out to your base at night, perhaps even send the dreaded tank ‘spider mutant’ to knock your walls down. Personally, I like to build lots of small bases and switch between them in an effort stay undetected, building the odd trap on their patrol routes to spice things up.

The menu screen has a big timer counting down to the next release of the game – always a good sign that there are constant updates. There is also a community of people playing and discussing the game at http://www.reddit.com/r/TheForest/

I’m really enjoying it, but as always with alpha games, you should check what the general census is before dropping your hard earned cash. Some interesting things about the game I’ve found on the web for anybody thinking of getting it:

The natives on this island are not your friends! (Source: Physical Cores)

 

 

Posted in Computer Games Tagged with: , , ,

The birth place of every pro wrestler (according to wikipedia)

A few days ago I mapped out the death places of Monarchs of England. I wanted to try the same technique on a bigger dataset and keeping on trend with some other stuff I’ve done with Reddit I decided to map the birthplace of every wrestler in Wikipedia.

This is a *rough* guide. It maps wrestlers birthplace to a random place somewhere in the city that Wikipedia says is their birthplace. If Wikpedia doesn’t think that the data is a city then the data is missing. This data is from a snapshot taken a few months ago. Also, Wikipedia has been known to be wrong,

Click a dot to see who was born there and you can drag the map and such. There are some other bits of info I should add and some bits I should remove, but for now this is it.

 

There were a few problems/differences

1)Google Fusion Tables doesn’t like it if you give it two lat+long values that are the same, I used this idea to get around that problem.

2)I changed my SPARQL query to only include citys

code:

 

 

Posted in Data Analytics

Zombie Neighbours

I feel torn when it comes to production companies working with up and coming talent making a splash on social media sites such as YouTube. It feels to me like there are all these really intelligent talented people doing interesting things, then these big YouTube networks come along, sign them up and suck out all their creativity. You are never quite sure what is going on behind the scenes, but it doesn’t feel right that most of the most viewed ‘YouTubers’ are signed with social media agencies such as Maker Studios, a subsidiary of the Walt Disney Company. Once signed the social media agency gives them cookie cutter templates for both videos and promotional material, helps them with production, gives them a few deadlines, promotes their work and then takes a cut of the profits. While I do think that production companies should be working with up and coming talent, I guess I’d just like to see them help the talent grow rather than try to own it.

An interesting collaboration that popped up in my feed today is between one of the ‘signed to a social media agency’ YouTubers Louna Maroun (Looplady11) and FremantleMedia Australia the producers of Neighbours. The pitch is this, Louna has created a few 5 minute neighbours shorts where Ramsey Street is taken over by zombies, current cast members of the show battle it out with past members who have risen from their graves. She has access to the sets and a few of the stars both past and present.

I think the whole idea of giving up and coming talent access to the same sets, actors and audiences that the big boys like FremantleMedia have is a great idea, and is exactly what distributors should be doing! I don’t know where Lourna’s social media agency ‘Boom Video’ sits in this arrangement but it would be interesting to find out. It’s a win-win situation, with Fremantle getting access to Lournas fanbase, getting media coverage and most importantly helping homegrown talent.

If you are interested here is episode 1:

Posted in Television Tagged with: , , ,

Where the English monarchs died

(according to Wikipedia)

This was a quick and dirty experiment to see how easy it is to auto generate an interactive map from Wikipedia/DBpedia. There are some caveats and things I still need to iron out.

These are people that Wikipedia has described as a Monarch of England, they must have a place of death listed in Wikipedia and that place of death must have longitude and latitude in http://www.georss.org/georss/

There are loads more things I would like to do to the map, but I was pleased at how quick you can map things from Wikipedia. I could perhaps add how they died. There also seems to be some encoding problems and the description boxes seem to cut off.

Remember this is completely automated from Wikipedia data. Data might not be completely correct; worrying about that is for part two as I just need the process in place for another project.

Click the dots for details.

The process was quite easy but there are some steps I could do with removing:

1) Write SPARQL query that looks like this:

2)Grab CSV based on SPARQL, use Open Refine to do some housekeeping

3)Upload to Google Fusiontables

Here is the script I wrote in R to generate the CSV:

 

Posted in Data Analytics Tagged with: , ,

Getting to grips with unit testing Cordova applications

I have really enjoyed using Cordova to build Android apps because I can knock things up quick and easy. I do have a problem though, sometimes I knock something up quickly and decide that I want to take it further, I then wish that I had thought harder at the start of the project about things such as how I am going to structure and test my code.

One of the problems I have with my latest project, Trivia Quizzes, is that it is a basically bits of code I have pulled out of other projects while getting to grips with Cordova. I quite like Trivia Quizzes and want to go on to expand on it a little; I’m thinking it would be a good base project to learn some new Cordova techniques, I’m thinking of extending it to include Google Play Services scoreboards and achievements. Before I’ed expand I decided to go back and restructure the project properly.

The restructuring was not an easy task. I would move things around in the project only for them to break. I would remove code I thought was redundant only to notice quite quickly that it wasn’t. Since I am writing my application in Javascript I would forget that some things that work on a desktop don’t work so well on a Mobile Phone and I quite often reintroduce bugs in to the code; I think that the programming gods call this a regression. After a bit of searching I found that the the way to fight these is to add little tests to your code to check that units of code still work despite you fiddling with stuff, these tests, believe it or not are called Unit Tests.

Unit Testing in Cordova
I have heard of Unit Testing before, in fact a whole ago I had read ‘The art of Unit Testing‘ by Roy Osherove. I just hadn’t really implemented many tests in to my code. My experiences with Cordova, especially my reorganisation of the Trivia Quizzes project has taught me a lesson.  I’m also hoping it will help with my debugging as I have to admit that debugging in Cordova is not going well for me.  While I have been reading up on debugging on a mobile device or simulator device it is difficult to synchronize breakpoints or retrieve stack traces. Since Cordova is basically HTML/CSS/Javascript it can be debugged in a desktop web browser, but I have found that things such as JavaScript Performance and the phone API availability are difficult things to emulate in the browser. There are a few projects that attempt to get around that, projects such as emulate and gapdebug but it is hard to know what to go with.

I’ve had a poke around different frameworks for unit testing and debugging in Javascript and have come up with a way forward. I am going to create a series of unit tests that I can access from within both the application and when debugging on the desktop. I’m not sure how I am going to write tests for Phone specific activities, like accessing parts of the Phone API, but I am going use unit testing as a way of evaluating the debugging tools.

Creating the testing infrastructure

As far as unit testing in Javascript goes, I like the sound of QUnit as it appears to be regularly updated and as part of the hugely popular JQuery suite has a large user base. JQuery also seems quite simple to set; I created a new folder in my project that with an HTML page, this included QUnits CSS/JS files and  two div’s with specific ID’s in the page. I also included the javascript file that I wanted to start creating tests for (functions.js) and an empty file I was going to plonk my tests in (tests.js):

Heading to that page now gives you a rundown of your tests:

Screen Shot 2014-10-13 at 10.54.16

With that the framework all you need to do is write the tests, QUnit documentation has some great examples. The first thing that went through my head when writing the Unit tests was ‘What exactly is a Unit?’. While it sounds like a silly question ut I found it a great place to start as it makes you think about how your code is structured. This is particularly useful for somebody like me who likes to knock up ideas with bits of code from previous projects I’ve been working on, projects where I may have structured my code slightly differently between them. My first test simply checks that a string is returned from one of my functions:

The key thing I’m taking from this at present isn’t that the Unit Tests check if my code works, but it is making me think about how my code is structured. I was hoping at this point to be writing more tests, but the exercise has made me think about restructuring my code again. I’m going to give it a go and I am hoping that it will be easier this time I have Qunit to help me.

 

Posted in Uncategorized

New LAK dataset

I’ve been informed by Davide Taibi that the LAK dataset has been updated, this update includes some paper text that I reported on, but also has lots more data. As described by Davide:

This version includes papers from:
- EDM conferences (2008-2014)
- LAK conferences (2011-2014, 2014 only abstract since we are waiting for ACM agreement)
- Journal of Learning Analytics (2014)
- Journal of Educational Data Mining (2009 – 2014)
- Lak data challenge (2013-2014)
- Special Issue of JETS on Learning Analytics (2012)

In total we have 697 papers, 1214 distinct authors and 365 institutions represented in the Dataset.

Moreover, we have added interlinks with Semantic Web Dog Food, DBLP and DBpedia. The number of interlinks will be improved furthermore.

Sounds great!

You can download the RDF and NT dumps here dataset here . If you want the data in R format, you are best downloading the RDF and converting it yourself, this is because the R format hosted on crunch uses an old LAK dump. It is really easy to convert to R using a script I checked in to the LACE project github. I made a video of the process, this was recorded with the old dataset, but I have tried it with the latest one and it works fine.

Posted in Data Analytics Tagged with: , ,

My first mobile app –built with Cordova

I’ve been contemplating getting started with mobile development for a while. On the one hand it feels like there is something very powerful about writing software for portable devices, on the other hand it just felt like there were too many barriers in the way. Cost was always major issue for me and because I am not in the business of writing Apps for a living I hate the idea of paying Apple £100 a year for the privilege of writing applications for a device which costs way more than it should in the first place. When the first Android devices started trickling out I don’t think there was anybody who doubted that it’s market share would soon leave iOS in the dust, I was excited and with the cost being so much lower I thought that I was going to start developing applications for it as soon as I could.

As soon as I got my hands on an Android phone I poked about the development kit… and came to the conclusion that I couldn’t be bothered. I thought it would be nice to knock something up for my phone, but I’ve always been the sort of person to knock out lots of personal projects quickly rather than have my head stuck in a project for 6 months. Despite already knowing my way around Eclipse, the learning curve just seemed to steep for somebody wanting to knock things out quickly. Plus, why should I learn how to do something for Android when it will be different for iOS/Windows Phone/Web?

It annoyed me somewhat that I couldn’t just do it with web technologies with some sort of special middleware that could somehow allow me to access the phones features that a regular native application would do and also allow me to get around some of the issues of hosting software on the web. Particularly since Google is clearly headed towards a world of HTML and Javascript applications/

This apparently annoyed a lot of people and it wasn’t long before a project surfaced that was basically that. Cordova is a set of APIs that allow developers to build phone applications and access the functions of the phone using html/css/javascript. I believe the original project was called PhoneGap but this has since been purchased by Adobe, the underlying functionality is still nice and safe in an Apache project, so you can develop using tjat with your soul in tact.

It’s taken me a few hours of throwing stuff together here and there to get a very basic application together. While it is not a very good application, I’m amazed that I can get something on to the Google play store in a few hours. Here are some thoughts:

It is not quite as simple as ‘make a website, stick it on your phone’. If like me, you have some web development experience but no mobile development experience then the hardest bit will be working out how to package up your application for the different platforms. I have only used Android which lets you self sign your applications making it not too hard, I suspect that publishing to iPhone will be harder as I think you’ll need to sign with a certificate you get from Apple (I’m guessing that’s what the £100 a year buys you). Adobe runs a service that will do the packaging for you, but it only seems to support certain plugins. I wrote some notes about the bits that tripped me up.

Plugin support is amazing. You will need a plugin for anything that is using your mobile phones features. Core functionality is provided by the Cordova project, but there are lots of plugins on Github that extend functionality future, although you will have to be careful they are up to date and the developer wants to continue with them.

You learn a lot about Android development, despite your app being written with web technologies.
I’ve had to go in and fix a few plugins or configuration problems which have helped me to understand the Android way of thinking.

It took me a while to work out how I wanted my configuration. You are using web technologies this is tied to bits of Java. Even though you may not be interested in the Java, the compiler will be, so do you use a Java IDE with web support, or forget the Java and pray the command line Cordova tools just work? At first I used Cordova at the command line mixed with a eclipse with web tools. I then decided to use Eclipse with the android development kit integrated with Cordova.

Most of all, it is fun and you can throw things up quickly. I’ve enjoyed using Unity too, but that is for another post.

My app is very much just a test case, but I like the fact that Cordova supports the idea of just creating ‘test cases’. The Android play store also seems to support the philosophy of letting people play without hassle since it only takes a few hours from submission of something before it appears on the play. I’m not charging for my app or in app purchases and Google seem to be lighter on those kind of apps.

If you are interested, the app currently lives here and is very much in beta.

Posted in Mobile Development

Unexpected Creativity

In gaming circles a ‘shit crayon’ is a term used when a user creates something amazing despite the barriers that have been put in front of them. The term was coined by popular game developer and writer Ian Bogost and draws from the concept of the magic crayon by Chaim Gingold in his thesis. You may have heard of the idea that a magic crayon, a tool that boosts creativity in such a way that the produced artifact would not be possible without the tool. But Bogost suggests that sometimes people create barriers that also boost creativity but are not magic crayons.

‘..like the despots who confined Soyinka until he shit poetry onto toilet paper, because he had to do or else go mad in isolation.’

I’m not sure that the story about Wole Soyinka is entirely true, but you get the gist. In gaming circles a discussion about magic vs shit crayons is a discussion around the barriers that a user has found themselves up against. A Magic Crayon is a game that creates barriers or has a ruleset that boosts creativity in some way, a shit crayon is a game that creates barriers or rules that makes life hell for the player, but sometimes they create anyway because it is a game to them.

No developer wants to be accused of handing out the shit crayons. In gaming circles it is somewhat of a joke to do something creative in an awful environment, to draw something brilliant out of the shit crayons. The gamers are not a daft bunch, they know when they have been handed a magic crayon and when they have been handed a shit one, while the art of being creative with a shit crayon may be praised the tool itself is not. The creativity of anything made with a shit crayon is seen as something of a joke, ‘they did it because they could do it, despite the tool. The message to the developer is then mixed, ‘are people using my games to be creative because I am enabling them or because they are mocking me?’.

I think education often hands out the shit crayons. There has been a lot of discussions in the department about learning outcomes this week. I’m not sure where I stand on learning outcomes at the moment, and I am saving it for another post after I have had a chance to think things through. They do sound a lot like the shit crayons to me. When I was teaching at my institution I felt like the confused games developer, the feedback that I was getting back from the students was hard to decipher, are they being creative with shit crayons to spite me or because of the incentive of the piece of paper they need at the end. It would be nice to think they were being creative because of magic. Just how can we tell which crayons we are handing out?

Posted in Technology

The audit of every thought and word

I recently read this great post on Sheila MacNeill’s Blog, one of the many reasons I thought it was a great post being that it was so open and honest. My favourite posts give an insight in to what was going on in the person’s head as their fingers hit the keyboard. Sheila explains that her feelings on the subject made her to write an article in a certain vein, but she couldn’t, the subject of the post interweaved with her own feelings about commenting on the subject.

I told her via twitter that I enjoyed the post because I thought it was honest, which made it an enjoyable read for me. I followed up by saying that I thought an open practitioner is not somebody who just posts stuff online so people can read it, but can really open up about how they feel about a subject and their position in reporting on it.

At the same time as I was tweeting Sheila, Scottish comedian Rob Florence tweeted something:

This Tweet, I guess, was about the recent Kanye West news article, whatever people may think of Kanye West I think the point that Rob is making is still a good one. An open practitioner is expected to put work and thoughts in places where they can be critiqued. Thinking about this and Rob’s Tweet made me feel kind of bad for my suggestion that we may only be called open practitioners if we aim to be honest. While I think that there is something to be said for being honest in your blog post it feels a bit hypocritical of me to type that while I sit here with a folder of half written blog posts on TOR and Tails. Do I go back and delete the Tweet? How honest is that? In a thread on Reddit around the idea of TOR and Tails I recently commented that there are things you may want to hide from your computer usage that do not make you a bad person for wanting to hide.

An age where we are encouraged to pump out consistent honesty through 160 characters is quite a scary one. As Rob points out, how would we survive if all these thoughts and feelings get analysed, sometimes to the extent that they become BBC headlines. The hot topics for me at the moment are honesty and privacy. Honestly, I feel really torn between them.

Posted in Uncategorized

Age of Strategy Android

On booting up Age of Strategy the first thing that you will notice is the sheer amount of content. From the menu you have access to lots of content, the core of which is a series of campaigns, these are a collections of maps that are linked together with a short text story. There are loads of campaigns to play through, most are fictional battles but some are based on historical events. It seems that some of the campaigns are fan built and that this content is added to the game regularly; I was intrigued by the ‘History of Hungary’ section that seems to be filling up with battles based around the Hungarian empire. Perhaps the developer is Hungarian or there is an Hungarian fan of the game submitting content, whatever the case it is interesting that this level of detail is what the developer is aiming for.

Aside from campaigns you can play one off maps or a random game. One off maps are maps that have been designed by fans. Some are pretty cool ideas, for example one is a battle on a chess board, while some are more are serious battles that will make you think about every move. Random mode is like a skirmish game where you can battle a number of AI’s. I like to unbalance things and set up or match in 2v2v1 with an AI on my team or 2v2v1 on my own. You can also play multiplayer online, but I haven’t had a chance to jump in a game yet.

On a first play it seems comparable to Advance Wars, you have units that you move around a battlefield and bases that you can capture to produce more units. There are also worker units that can build different buildings such as attack towers or barracks. It has been a long time since I’ve played AW but there seems to be a wider range of units and buildings in Age of Strategy. The AI is simplistic but seems to be under constant tinkering by the developer. I enjoy the simplicity of the AI because I like strategy games where the human has an upper hand simply because they can work out what the AI will do. Those who find it too easy might want to join a multiplayer game or make the game harder by giving the AI an advantage like setting the game as 2 vs 1.

The length of a game can be quick or long depending on the size of the map and the number of players. On a large map with a lot of players it can start to take a long time for the CPU to take it’s turn, but fortunately there is a ‘skip’ button that hides the animation. Still, on very large maps it started to take a few minutes to wait for every team to have their go.

Unlike many indie strategy games the game never feels too difficult to progress, campaign maps get harder but never feel frustrating. There is also an option to skip a level at the cost of a gem. Gems are the games upgrade system but this is not Candy Crush style robbery and you do not have to buy gems to put yourself on par with other players. Gems are unlocked by completing campaign missions in a certain amount of turns. There are plenty of gems to get very easily and a good reward system to keep you playing. Unlike most Android games multiplayer games can turn the ability to use gems off so that nobody has an advantage. If you do decide you do want to buy gems then there is no official system in place to pay through the Android store, instead he will give out a decent amount of gems to anybody who promotes the game on Twitter and the such. There is a donate button if you feel like you want to give some money back.

This massive battle on a world map was on a 2v2v1 game. It was taking a few minutes for the computer to have it's turn but was really fun.

This massive battle on a world map was on a 2v2v1 game. It was taking a few minutes for the computer to have it’s turn but was really fun. My team mate is fighting the yellows on the African continent. I am building towers and a bridge from Asia downwards to attack the greens (out of the screenshot).

The game is self-described as having ‘limited graphics’, but if graphics are your thing then you properly won’t be looking for a turn-based strategy on Android. Personally I think they are more than adequate, images of units make it quite obvious what they are supposed, a man on a horse with a bow looks suitably different than the man on a horse without a bow. I presume that keeping the graphics ‘limited’ also means that the download is smaller. The only gripe I have is that sometimes it is hard to tell which team a unit is on, this might be because the units were quite small on my phone and some units such as the knight were hard to tell what team they belonged to. You can click a unit to find out if you can move it or not though and on a larger tablet it might be more obvious. I had no other problems playing it on a phone, you can zoom in and out and it never had a problem working out what I was pressing. It did seem to make my battery run flat quite a bit faster, but still much less than any of the top graphic heavy games on the store.

Age of Strategy is a game that represents what I hoped the play store would become about. An independent title by somebody who clearly cares about the game they are making. The game doesn’t feel finished, not because there is content missing or bugs but because the developer seems to constantly tweaking and updating, it feels more like the game is forever growing. The ‘Gems’ system does not affect the gameplay one in any negative sense and is simply a way to give back to the developer for his time if you so wish. There is a forum where you can give feedback and it is taken on board and discussed. It is upsetting to think this is what the store could be about, we need more of this and less ‘pay to win’ EA style games.

This is currently my favourite game on the Android Play Store, I’m starting to lurk about the forum and see what is up and coming next. I’ve recorded a video of myself playing it which you can see below. The game engine works very well and I wonder if it could be used as the basis for a Civilization style game, something which I think hasn’t been done well on the market place.

Posted in Computer Games Tagged with: ,