Alex Grist’s Departure

A while ago Alex Grist wrote a blog post outlining his side of the story regarding his departure from Cloud Sixteen. Unfortunately Cloud Sixteen never got an official chance to respond, so I’m going to detail what happened here.

Since late 2004, early 2005, I have been working with Lua on GMod. For a good 6 years I released scripts for free to the community, and hosted plenty of communities to engage both sandbox and roleplaying playerbases with huge success.

Around 5-6 years ago I began working on a roleplaying script called Cider. It was heavily enjoyed by the light roleplay community and before I knew it my server was packed. I eventually released this for free to the community and began evolving it into something more serious; from playing it I had developed a taste for serious roleplay, and Taco’n'Banana inspired me heavily.

Through many iterations, and over many years, Cider went through various names in its transition to a framework: Cider, Cydar, Blueprint, (a few others), kuroScript, OpenAura, and Clockwork.

Clockwork was my greatest achievement. I had completely re-written the inventory and item system to support fully dynamic and persistent item types, it was awesome. I made a schema called Test Bed to demonstrate the new features Clockwork had to offer, and CW: Test Bed was hosted by Cloud Sixteen. People loved it!

As time went on and I continued to develop Clockwork in public beta, university began to take over a large portion of my life. I managed to keep working on Clockwork in my spare time on the back of OpenAura’s success. It was when GMod 13 was released that many things about Garry’s Mod changed. I simply didn’t have the week or so required to convert Clockwork to GMod 13′s new format, as university was getting particularly heavy on me.

I needed to hire somebody. Alex Grist was always good fun, me and him would banter with the authentication system in OpenAura and Clockwork, I would try to make it uncrackable and he would try to crack it – good fun! We’d even talk in Steam about this, and I held no grudge on him at all for what he was doing.

It was for this reason that I decided to hire him, and so I did. Alex was given the deal that he could take money for pre-orders for the duration of the time that he works on Clockwork, and he did. Alex Grist did a great job working on Clockwork in my absence, and I respect him greatly for the pressure he took on.

When Alex decided to leave Cloud Sixteen after I had refused to up the percentage of money he could take from regular (non pre-order) sales, I was a very disappointed; he was a valuable asset to me, but I just couldn’t give him more money at that time.

I wish Alex all the best. I hope in the future we could work together again, under different and renewed circumstances.

 

CyanogenMod vs MIUI

There’s hundreds (or at least tens) of custom Android ROMs out there, so many to choose from, so it can be a little daunting when trying to find one right for you. I’ve been using MIUI for a little over two years now and it has always suited my needs. There’s plenty of features I like about MIUI, but just to list a couple of the most important ones to me:

  • Has a very clean, customizable interface, with great theming capabilities.
  • Regularly updated, and has good support for older phones.
  • Private messaging system (you can access a hidden set of messages for specific contacts.)

A phone is something you’re looking at a lot, most of the time without even thinking about it: whether it’s just to check the time; to see what your friends are up to on Facebook, or whatever. So it’s important that it’s ergonomically and aesthetically pleasing.

I had my Samsung Galaxy S2 for a long time, it was my pride and joy, I customized it to no end. When it got stolen from me ~4 months ago I bought another one straight away, it wasn’t easy, but I managed to find somebody with one that was pretty much new. The reason I didn’t go for a newer model like the S3 or S4 is simply because I couldn’t justify the price, a bigger screen or the latest processor just didn’t appeal to me.

Over the past couple of weeks the battery has started to let me down, though, and I’ve found myself having to charge my phone way too often. The first thing I did was go and order a new extended battery on Amazon, but in the interim I wiped everything and downloaded CyanogenMod.

Why?

I remember using CyanogenMod in the early days way before I started using MIUI, and always found the interface to be ugly and unintuitive. When I switched to MIUI I found the interface to be sleek, and clean, and everything appeared to run faster and smoother. Here’s why I’ve decided to switch back to CyanogenMod:

  • No stable update has been released for SGS2 for at least 3 months, but the update that was released then is very stable and very fast.
  • CyanogenMod have expanded greatly since I first used the ROM years ago, the team is much wiser, and the development is far greater.
  • The community is great, the developers are friendly, and new features have since been added.
  • I find that CyanogenMod is always the first out of the two to release ROMs for the latest Android versions (KitKat, for example.)
  • You can hide applications from the drawer that don’t matter to you. This includes any stock applications you don’t like seeing.

Since switching I’ve found that my battery is going down at a much slower pace, but I was still heavily put-off by the interface design; that was until I found this:

Theme Chooser Themes

This is a great application that unlocks the true potential of CyanogenMod’s Theme Chooser, which is almost on par with MIUI’s theming system.

It allows you to download and install fully featured themes within the app, for practically no cost (unless you want to buy a premium theme, which always tend to a far greater magnitude of awesome.)

There are plenty of free themes to choose from, however I came across a premium theme called Simplex Blue Theme that I instantly fell in love with. It’s simple. It’s sleek. It’s all kinds of grey, and best of all it’s only £1.22. I’d spend double that on a coffee.

Well, that’s all folks.
 

Codekiddy and Open-source

I know I haven’t written a blog post in a while… so I’ve recently made an addition to my calender to try and write at least one a week, so here goes.

A few months ago I was browsing through some archived folders on my development machine and came across some old projects that I’ve worked on over the years. Unfortunately I don’t often get time to work on personal projects that much anymore, and struggle to get any work done on Clockwork, but I’d really like to start open-sourcing some of these projects.

When I say a few months ago, I actually mean about 7; time goes extremely fast when you’re trying to get on with life, most of the time I don’t even realize it.

Codekiddy

Codekiddy is a game engine I started making a few years ago for a course at University. It’s a nifty little engine written in C++, using a library called ClanLib. ClanLib isn’t so bad, it’s mostly cross-platform (although at this stage Codekiddy isn’t) and is really easy to use.

What’s cool about Codekiddy?

When I made Codekiddy (originally called Sidelined – a prototype game I was working on with a few friends before it all went downhill), I wanted it to be easy to mod. What better what to make something moddable than to implement Lua bindings, right?

  • Codekiddy uses Lua bindings for pretty much anything. It’s possible to create an entire game using the engine just from the bindings provided.
  • Codekiddy is pretty poorly documented (some text files in the project, I’d like to expand this documentation one day.)
  • LuaJIT is used to speed up Lua at run-time and works pretty well.
  • Includes a fully functional UI library written in Lua.
  • Loads content from an archived file, but content inside can be overriden by being placed in the distributed directory.
  • Includes a fully functional level editor with levels saved as JSON files (plus the ability to include a .lua script that runs specifically for that level.)
  • State system: MenuState, PlayState, etc.
  • Built-in Console (written in .lua, too, so fully customizable!)
  • Box2D physics, and entity management including base classes.
  • Built-in dynamic lighting system made by porting over box2dlights from Java to Lua.
  • Material system with material meta data in the form of custom .cmf files.

The only thing missing that I haven’t open-sourced yet is a fully working example game. I’ve actually made a couple, but I’m just trying to tidy one of them up to open-source as soon as I can.

And because I love Git so much, Codekiddy it’s freely available on GitHub. Contribute or fork as you please!

That’s all from me today, hopefully I’ll write another blog post next week, thanks guys.

 

Pickford Bros

Got my feedback from the Pickford Bros for my game Waka – a Pacman RPG.

Choosing to ignore certain pieces of feedback (our suggestion to change the floaty movement), while accepting others, is a very good skill for a designer to have. In the commercial world any game designer is going to be bombarded by knumbskull suggestions all the way through development, often from the client who is funding the development. It’s easy to knuckle under and follow every suggestion that’s given, but usually that results in terrible games (the people giving the suggestions aren’t usually game designers).

On the other hand stubbornly refusing to change anything, and being really precious about your design, can be a handicap. So, selectively choosing the feedback that you think improves the game and implementing it, but sticking to your guns when you disagree with other feedback, shows maturity, and is the best way to behave in the commercial world. It’s always a balancing act, but sometimes other people have ideas that improve your game, other times they are rubbish ideas that will spoil the game, and other times you just have to keep the client happy one way or another.

I can’t say much more about the game than I did last time. I think it’s great, and there was clear progress and improvement from the last version. It satisfies the brief perfectly, and is fun to play. My only criticism is that the combat mini-game could maybe do with a bit more variety, and was a little easy, although I did fail on Boxxy a couple of times – the exp penalty for failing battles was perfect!

Great work, and we look forward to seeing your games in the future.

 

Reddit Rambling

Sitting amidst the chilling strokes of dubstep, content, typing away how I’m feeling when I turn my head to the side; the window misted with a few drops of rain, and the shady hues of green and brown reflect an odd occurance in temperature. Ahh, England.

I’m becoming slightly concerned with the time I spend browsing Reddit and Facebook; I mean, I was always concerned, but now I’m concerned. For those that don’t know what Reddit is, good, stay away. For those that are, I know you share my pain. Some say that when they sleep, in the darkness, as they drift off into sub-concious territory; they dream of narwhals and bacon, amidst a moonlight feast.

I want to cut down on Reddit-ing, but what is the most efficient way of achieving this? I can’t just quit all together, for I have an undying thirst for knowledge; an infinite inquisition. There are steps involved, and I’ve planned them as such:

  • Spend less time on Reddit.
  • ?????
  • Profit.

It would just appear than the first one on that list is the hardest step.

 

A Rambling of Humanity

Money single handedly prevents progress. Do you care more about money, or do you care more about global warming? You care about money, because money affects how you live in the here and now, where as global warming is unlikely to affect you, but it could mean the end of humanity.

What alternatives are there to money? Trade? Tickets? Must there always be some intermediary, can humans never truly learn to share? The irony of being taught to share as a child, and as you grow up you begin to see how much of the world is a lie, false pretences; money.

An asteroid of 10km^2 would have the impact of 1000 Little Boy explosions, which is the power to damage 1000 cities, and burn Earth to the ground; blocking sunlight to this planet for millennia, and we’re 65 million years overdue for it. But knowing this simple truth, humanity cannot pull together to stride for human colonization of other planets; terraforming and atmosphere implantation. And why? Because money, that’s why.

 

Codebase – Doxy Generation

So I made a documentation generator for Clockwork. I already looked into existing ones, but they just weren’t practical for what I’m after, so I wrote my own. It scans the entire Clockwork project for specific tags within comment blocks, and then generates a JSON array of documented functions, hooks, libraries and classes.

I’m currently working on a website which uses the generated JSON array to provide a neat interface for viewing the Clockwork documentation. Users will be able to post both comments and examples for each object, and other users can upvote the best ones to the top of the page.

Here’s a quick example of how it works.

 

Linus the Git

Me and Alex Grist have been using Git as version control for Clockwork. I’ve never really collaborated with somebody else on a project before; I’ve always been a rather independent programmer, but Git has made development a breeze.

For those of you living under a rock, and are unfamiliar with it; Git is a fast, powerful, and easy to use distributed revision control system. It was created by the face behind the open-source Linux initiative, Linus Torvalds.

Once you’ve set up a Git repository for your project, the basic principle of Git is this:

  1. Programmer A edits a file from a local clone of the repository on his/her system.
  2. When Programmer A has finished implementing Feature A or fixing Bug A, they “Commit” to their changes; a note can be added describing what they’ve changed, added, or removed.
  3. It would be wise at this point for Programmer A to “Pull” any changes to the remote repository; any alterations made will be cleverly merged.
  4. When Programmer A so desires, he or she can then “Push” the changes to the remote repository.
  5. Programmer B will receive these changes when he or she makes a “Pull”.

There’s way more to it than that, but that’s the basic idea; Git is awesome and I much prefer it to Apache Subversion (SVN).

Linus Torvalds
Intelligence is the ability to avoid doing work, yet getting the work done.

 

Many Hands, Light Work

Cloud Sixteen is currently looking to hire and pay an experienced Lua scripter, to aid with the development of Clockwork schemas. The role will require good knowledge of utilizing frameworks; a good ability to follow a coding standard, and last but not least, any experience in OpenAura modification (this is a big plus!).

The hired coder would receive a 7.5% cut on any sale of a schema they have worked on, as well as a staff discount of 50%. You will be interviewed by Alex Grist and I, as this is a serious position.

If you think you have what it takes to be a part of our tight-knit team, drop me an e-mail.

 

Mobile Steam

So Valve released a closed-beta of Steam for Android and iOS this week, which I think everybody has been waiting for since forever. I always dreamed of being bugged 24/7 by idiots on Steam who think that I spend every waking minute of my life infront of a computer screen; which contrary to popular belief, I don’t.

In all seriousness though, I can’t wait until the open-beta. Once I remove about 80% of my Steam friends list, I will finally be able to chat with the Cloud Sixteen anywhere I go; this is handy because I’m always coming up with new ideas and inspiration when I’m out doing things.

I don’t have much else to say about it really, here’s a chunk of random code so I can test this CodeColorer I installed:

#include <iostream>

void main()
{
std::cout << "CodeColor rocks!" << std::endl;
return EXIT_SUCCESS;
}