• About
  • My tweets
  • Archives
  • Categories
  •   Lean startups and the indie gamedev

    13/07/13 - 19:05

    Making games is my hobby, dare I say, my obsession. However, like a lot of other indie gamedevs, I have a full time job. By day I work for a digital marketing agency. Recently, the company has started to adopt a set of principles referred to as ‘The Lean Startup’ – linkie to website here : http://theleanstartup.com/. I’m going to try and avoid using lots of buzzwords in this blog post as articles about Lean Startups seem often to have way more buzzwords than content :)

    One of the central concepts of a lean startup is the Minimal Viable Product ( MVP ). ‘What is an MVP?’ I hear you cry. Well, simply stated : it’s the least amount of work you can do to get a product ‘out there’. By ‘out there’ I’m referring to getting friends, family, strangers, clients actually using your product and providing you with feedback on it. The general approach is basically a feedback loop – get feedback on the MVP, change the MVP to incorporate the feedback as cheaply ( time or resource wise ) as you can, release a new version of your MVP, get feedback on it, etc; etc;

    Think about it very much as step 2 in the underpants gnome great money making scheme.

    What I found really interesting about the concept of an MVP is its a methodology I use all the time without ever having thought about it – what do you get when you mix up indie gamedev with an MVP? You get a game prototype. Suddenly all those hours spent cutting out bits of paper and pestering people to play a paper version of game before starting coding made sense. Sending out desperate cries of ‘play my game! tell me what you think’ on social media wasn’t just me being devoid of social interaction – it was a viable business technique!

    I read every single bit of feedback I get related to my games like a starving man. I make a point of replying to as many as I can. ( Of course, not everyone gets a reply – ‘Your game gave me cancer it was so bad’, really doesn’t deserver a reply ). And, more importantly, I implement a LOT of the feedback I get, and along comes another version of the game.

    I’m now going to talk a little about how I used the idea of an MVP to build Wastelands.

    Wastelands, my most recent #1GaM entry, was built as an MVP. Initially when I was approached by a co-worker with the idea of building Wastelands, the phrasing of the goal was ‘a dopewars clone, set in a zombie apocalypse scenario, where you sell drugs to your real life friends, who can die in the game’. My first thought was yuck, zombies. As much as I love the zombie apocalypse scenario I think it is become more and more clichéd. My second thought was, this is a really awesome idea minus the zombies so I wrote a little story about aliens. We refined this somewhat between us and got down to deciding how to turn this idea into an MVP. So, the major hook is having your friends in the game. But whats the best way to go about that?

    There are so many ways of getting your friends into a game these days, its almost indecent its not used more to bring interesting NPC’s into your game. Twitter, facebook et al all provides ways of pulling this data down. But working with with those techs is time consuming. We are thinking MVP. What is the laziest way of having this tech in the game without resorting to the full twitter/facebook implementation? ( ‘laziest way’ will probably be frowned upon by practitioners of the lean startup, but it’s exactly how I think of it :) ).

    It’s simple – the first MVP released was shown to co-workers inside the company. So with this limited audience, we found a global set of friends for the entire company – the board of directors. No need to worry about a facebook or twitter integration, no need to worry about any sort of online/offline integration. Simply an array containing the name of each director, along with an image.

    The feedback was good – the concept was interesting, though immediately we had to deal with the idea of a public release – the board of directors where all very good internally – but would mean nothing to anyone else. So we evolved the MVP and the next version of the game contained some text boxes at the start of the game that allowed you to put a friends name in, and select a sex – this allowed us to populate the world with your friends, along with a not very specific image of them. You can guess the next bit of feedback we got from the tests.

    ‘We want to see our friends instead of random NPC faces !’ they cried. Still with another MVP in mind, we looked for another lazy way to achieve this. The idea came pretty quickly. By adding an email address box next to each friend box, we could query gravtar and pull an image of a friend to place it in the Wastelands world.

    This was just one example of feedback and implementation inside the Wastelands MVP. There were many other things that came to light – resulting in a game which wasn’t exactly like our first vision, but one which had been developed hand in hand with players, with us able to drop and add features dependent on actual feedback. We had something viable that people enjoyed playing.


     

    lamentconfig  
    Share

      Wastelands Beta

    12/06/13 - 19:24

    Introducing : Wastelands Beta

    A relatively simple Drugwars clone with an additional twist – your friends depend on you keeping them alive! Try and make money and keep your friends alive in an alien apocalypse scenario. This was written for last months #1GAM, but I’ve only just had time to do a write up because of personal matters :( The idea was first brought to me by my boss, who knows my passion for coding games. After several discussions, we had a story and some mechanics in place, and I went away to play with impact.js to produce a working prototype.

    After several internal iterations, Wastelands: Beta was born!

    How to play

    Story
    Day 1 – An asteroid crashes in rural Russia. Scientists go to investigate the impact site – expecting to be able to investigate the remains of the asteroid but instead just find a massive crater and no asteroid fragments. The impact crater seems to confirm that something massive hit the Earth – the scientists are at a loss and begin to examine the impact site in greater detail.

    Day 3 – After frenzied activity, the scientists discover two strange things. Firstly there appears to be small ( almost microscopic ) pools of some form of organic matter located in and around the impact site. Assuming these are some form of residue from the crash, the scientists call in biology experts to help identify the organic matter. The second thing is that the number of these pools seem to be increasing, as if they were coming up from the ground.

    Day 5 – Police are called to a small mining village near the impact site. On arrival the police make one of the most shocking discoveries in modern history – someone has slaughtered everyone in the village. The village has been ransacked – fires are still burning, and the streets and homes are full of gore. Bodies have been eviscerated, limbs are missing and there is not one living thing left in the village.

    Day 7 – Many of the scientists who involved with the initial investigation of the crash site have become deathly ill – blood tests show that their blood streams are swarming with complex and strange looking microorganisms.

    Day 10 – Another village, this time further away from the impact site has had its population annihilated in a similar fashion to the first village. Realizing it must be related to the impact site, the army cordons off a huge area around the impact site. Evacuating several nearby residences inside this zone, martial law is introduced. The scientists, now very aware the impact site is present a biological hazard implement Level 4 Hazmat containment along with the army assisting them. No one is allowed within 50 miles of the impact site without a biohazard suit and armed escort.

    Day 14 – Just after midnight, one of the army garrisons on the edge of the quarantined zone are attacked by groups of monstrous creatures, with three distinct types – one of which is employed as a shock creature, damaging and killing troops, another type which seems to hold back, and coat the ground with goo, a strange fog around it and the final type of creature seeming to be constructed from random body parts from the initial victims of the village massacres. The garrison is quickly overwhelmed by the sheer numbers of creatures attacking it. Several thousand creatures escape the quarantine zone before a series of carpet bombing raids are called in, destroying the remaining monstrous forces – reinforcements from other garrisons plugging the hole in the quarantine zone.

    Day 20 – The contamination levels near the impact site reach levels even dangerous for hazmat suits, so remote controlled drones perform a fly-by of the impact site taking photos and collecting air samples. The photographs reveal that the ground all around the impact site is now coated in a thick organic substance, and several spore/mushroom like structures have appeared, as if they have been grown from the organic carpet. The air samples reveal an even more shocking discovery – the very air around the impact is full of alien spores and what appear to be heavily mutated airborne human viruses.

    Day 23 – “The Red Day” – many small towns and villages far outside of the quarantine zone are attacked by hordes of the creatures causing a death-toll at the end of the day in the hundreds of thousands. No event in modern history has been so full of bloodshed – so many lives lost in a single day. Social media websites fill up with information, hastily typed accounts, pictures and videos of these terrifying creatures and the slaughter they brought down on these unprepared victims. Army reserves are called in from all over the country – airstrikes are authorised on friendly civilian buildings for the first time in history.

    Day 28 – The armed forces are unable to contain the problem any more and all over the country more of these spore like buildings are being spotted, more attacks are taking place. The organic carpet spreading out like a cancerous growth. Towns and cities fortify themselves, creating walls and barricades around themselves, establishing martial law. The very air all over the country is now swarming with dangerous microorganisms. Every unprotected breath filling peoples lungs with unknown contaminants.

    Day 41 – Your adventure begins …. you estimate you have 30 days to create a new safe haven for your friends before the aliens overrun the current safe zones. Taking out a small loan to buy an APC you start to round up supplies and to keep your friends healthy before the end comes.

    Controls

    Mouse only :) Click on the red blocks on the map to move between safe zones, use the buy and sell buttons to buy and sell, and watch the prices! Every town produces and consumes different items, the key is to identify which and make as much profit as possible. You can upgrade the storage on your APC. Certain safe zones have your friends in them – they will give you hints as to what is needed in each safe zone. The more friends you save, the higher the score. It is VERY possible to get a negative score :)

    It is completely safe to use your friends e-mail addresses on the page – check the source :) I’ve left it unencrypted so you can double check I’m not harvesting anything – the email addresses just call gravatar to see if there is a picture to personalize your game.

    If you have some performance issues – click on the static image at the bottom of the right hand side of the page, it will turn off the noise filter which should improve things greatly. Likewise, the speaker turns on and off the sound.

    Notes

    I will write more about this game in a following post – but Wastelands : Beta is essential a very simple and quick version of the game. Dependant on feedback its a game I really want to expand greatly upon this.

    The game can be found here : www.greenslimegames.com/games/html5/wastelands_beta/. You will need a modern browser to play it. If you find any bugs feel free to let me know! My #1GaM profile is : http://www.onegameamonth.com/BeeBug_Nic feel free to leave some fan mail <3 ... or not :)


    The first person to tweet translate of what any of the number stations are saying will become an NPC in the next version of the game :) Though if your name is ‘HairyMonkeyScrotum’ I may choose to change your name :)


     

    lamentconfig  
    Share

      Mine Your Step – Autopsy

    28/03/13 - 18:33

    Wow. I have to say, I had no idea about how popular Mine Your Step would be. After an initial review on IndieGaming.com my Google analytics went crazy. That story then got picked up on RockPaperShotgun and PCGamer. I can easily say that my web server has never seen so much traffic. The more amazing thing was the number of tweets and emails I had about the game. It was a very simple idea, but people really seem to dig it. It is really satisfying as an indie gamedev to see people playing your game, even more so when they take the time to actually give you feedback. And so for everyone who tweeted me and e-mailed me about it – thank you :-) .

    One of the most interesting parts of the feedback was about ‘The Sergeant’ – which ( as far as I was concerned ) was just a simple text output element. Though it was just text ( I had debated having audio of me shouting the hint, but I really don’t sound like a military person ) people associated a personality with a simple line of white writing – something I found fairly interesting :) Also, I was very impressed at how quickly the levels became solved. The first levels were completed by the time the second review – so I spent a busy night writing a few more additional levels. Thankfully these are actually pure evil, and no one has managed to complete them yet :)

    So after having a rather random success story with one of my games, what do I do next? I’m debating a sequel to be honest – though this may be milking it :) I’d really love a multiplayer environment – to actually see all your fellow cadets running around the battlefield, randomly exploding. I’d like to keep it in html5 – as I think the fact it required no plug-ins helped it somewhat. I’ve played around with a unity first person prototype, lots of fog, random explosions – and it made the game, well, pretty dark and scary to be honest. The explosions where simulated but random – the idea being that though you wouldn’t see anyone else walking around the battle field, you would hear and see explosions of other players in real-time. Creepy.

    One idea that came up pretty consistently was checkpoints – I agree they would help especially with the more complicated levels. Also checkpoints would give me a chance to be evil with level design :) ( ‘oh you set your checkpoint to that place? shame it is a dead end :-) hehehe’ ).

    One other thing that people said they enjoyed about Mine Your Step was the way that everyone was working toward a common goal. I’ve had a few ideas now which play on this idea. I think random strangers working together to achieve a goal is pretty damn cool idea. So if I don’t produce Mine Your Step 2 for my April #1GAM it will probably be working with this idea of players trying to defeat me.

    The game itself was pretty easy to write. I think about two days worth of work went into it – the most complicated bit was the level design ( as I found a decent tileset, but my art skills are poor ) and of course the client/server interaction – which I hadn’t done with html5 before, but it was pretty simple. The last minute addition of the music I think really helped the atmosphere of the game – though after checking out my bandwidth use, I had to quickly compress it from a 7 meg mp3 into a 2 meg mp3 :-) The player sprite was built with the most excellent charas-project.net. I modified the sprite that came out of that by making his helmet much bigger to give him a more toony look. For people who have asked how the client/server bit was done, it is fairly easy – on death a message is sent to a php script which stores the x, y, level and player name in a MySQL db. On level load another PHP script is called which contains JSON encoded data containing all the death x, y locations on a level for the past 24 hours. And that is pretty much it. If anyone is truly interested in how this is done, more than happy to do a tutorial about it :-)

    Well, I guess that is it for now :-) thanks for reading!

     

    lamentconfig  
    Share

      Setting up node.js on appfog – a quick tutorial

    25/03/13 - 19:09

    I’ve been playing around with node.js and loving it so far. I wanted to find a third party host for it, as my current host won’t let me play with it without it getting expensive quickly. So after some googling around, I decided to give AppFog a go. It’s free and from my limited exposure to it so far, does the job pretty well. I ran into a few stumbling blocks as I went, so decided to put a mini-tutorial together to explain how to get node.js running.

    Firstly, you need to sign up to an account. No credit/debit card details needed. Once signed in, you need to go here : https://console.appfog.com/apps/new. Simple enough. To get an instance running, simply select node.js from the first menu :

    Then select where you want it hosted, followed by giving the app a name :

    Once done, click on Create App, and you are re-directed to something similar to this screen :

    Congratulations! You have just created a node.js instance. Now, with a process as simple as that, why on earth do I need to write a tutorial? Well, I spent some time sorting out the environment to properly edit this instance, so this is the ‘meat’ of the tutorial.

    Firstly, you need to install ruby. http://rubyforge.org/frs/download.php/76804/rubyinstaller-2.0.0-p0.exe should run fine. Install it, and then from the Ruby 2.0.0-pl folder, select start Command Prompt with Ruby.


    cd\
    cd\Ruby200
    mkdir src
    gem update --system
    gem install af
    af login
    cd src
    af pull slimetutorial
    cd slimetutorial
    dir

    This basically creates a /src/ directory within your ruby install and sets everything up nicely. AppFog tutorial suggest an af update – but if you have nothing created already, it just deletes the instance – d’oh! Presuming the above works you should see something very similar to this :

    That file is your node.js file. Open it up in your environment, and lets change the code slightly :


    var http = require('http');
    http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('Many happy slime monsters from AppFog.com !');
    }).listen(process.env.VMC_APP_PORT || 1337, null);

    Silly I know :) but anyway, you have this file now saved, how do you deploy it ?

    Simply run an update :


    af update slimetutorial

    If everything went ok, it should look like this :

    This handles stopping the node.js instance, staging it, then re-starting the server. Assuming no errors of course :) Things may look slightly different if your server is started/stopped – visit your control panel and click on the Visit Live Site button. Congratulations, you can now start playing to your hearts content with node.js – for free ! :)



     

    lamentconfig  
    Share

      Mine your step – dynamically generated heatmaps

    7/03/13 - 18:54

    With the massive amount of attention Mine your steps is getting, I thought I’d quickly throw together some ( ugly ) heatmaps of all the deaths. These are generated by php using gdlib to build the pictures. Click on them to get a bigger version. Hit refresh either on this page, or on the graphic, and it will update with the latest info :)

    Level 1 :

    Level 2:



    Level 3:



    Level 4:



    Level 5:



    Level 6:



    Level 7:



    Level 8:



    Level 9:



    Level 10:



    Level 11:



    Level 12:



    And to see all the heatmaps in one place – click here!


     

    lamentconfig  
    Share