In 2018 and 2020, I created two games for the #7DFPS game jam. The objective was to create a first-person game in 7 days. For 7DFPS 2018 I created Tank Commando 3D (a stealth-based first person shooter), and for 7DFPS 2020 I created SKYBRAWL (an arcade flight sim).
Today I'm releasing the source code for both of these games:
Given the time constraints these games were created under, I'm pretty happy with the code for both of these! Tank Commando 3D was creating using an advanced version of the engine I created for my previous game Redirection, while SKYBRAWL was my first major project using Unity. I learned a lot creating these games, and I'd definitely re-use some of this code for future projects.
This excerpt was originally published in A Programming Textbook that You can Play and Learn with Minecraft: Using Lua Language and ComputerCraft, a Japanese language textbook about ComputerCraft written by hevohevo and published by Sotechsha. I originally wrote the introduction in English, and it was translated into Japanese by the publisher. For the first time ever, here is the introduction in it's original English form:
I first discovered Minecraft in 2009. Like most people, I was enthralled exploring its infinite worlds and endless caverns, discovering its treasure and secrets, and using what I found to build elaborate bases and castles. But as a computer programmer, I was fascinated by one feature in particular: Redstone circuits. With Redstone, I could not only build structures that looked great: I could make them do things too. But I wanted more control.
Inspired by the simple 8-bit microcomputers that taught countless children to code in the 1980s, I set out developing a Minecraft Mod which would add a simple programmable Computer block to Minecraft, which I would use to control Redstone circuits more easily. Like the BASIC language used on microcomputers, I chose a simple scripting language, Lua, so that anyone could learn to program the computers.
I released ComputerCraft version 1.0 on December 24th, 2011, and it immediately struck a chord with the then-nascent Minecraft modding community. Players around the world quickly began using my computers to create games, play music and to automate their virtual homes and factories.
I added new blocks inspired by the computers I grew up with: Floppy Disk Drives, so players could share programs between computers; Wireless Modems, so computers could communicate with one another, and Monitors, so computers could be used to create interactive displays in the world.
The biggest addition, and the feature that made the mod famous, was Turtles. Inspired by the Turtle robots in Logo, an educational programming language developed by MIT in the 1960s to teach robotics, my Turtles were programmable computers which could move around and interact with the Minecraft world. Suddenly, computers could be used to build houses, farm crops, chop down trees and mine for diamonds. Minecraft players would never need to leave their virtual homes again!
Today, millions of Minecrafters have downloaded ComputerCraft and discovered the joy of programming using my Computers and Turtles. It's been used in schools all over the world, from Europe to Australia, North America to Japan. I frequently receive e-mail from fans who've taught themselves to code using the Mod, and I've met many of them in person at the annual Minecon conventions!
In this book, you'll learn from hevohevo how to program using ComputerCraft, and I hope you too will discover how fun and powerful programming can be. Even though I don't speak Japanese, I've been a fan of hevohevo's blog for many years, and I'm excited that more people will get to learn from him in this book. Who knows, you may even discover a hidden talent and become a professional computer programmer!
Daniel Ratcliffe is a video game developer from England and the creator of ComputerCraft. He enjoys Minecraft, programming, and cats. You can follow him online at www.twitter.com/DanTwoHundred.
The book can be purchased from Amazon Japan, here.
As part of the process of moving all of my sites to the same server, I decided to give this blog/portfolio website a bit of a facelift. Wordpress is gone (It always seemed a bit heavyweight for my needs, and the constant security updates it required were a concern). Instead: the new site is purely static HTML, generated offline.
In order to accomplish this without having to learn a bunch of new web-tech, I wrote a simple text processing system using Lua, inspired by how PHP let's you mix code and markup in the same file. I've shared the code on GitHub if anyone else wants to use it: LHP.
After 4 years, Redirection (the puzzle game I developed and released on Steam in 2016) is now open source! Here's a link to the complete source code on GitHub:
https://github.com/dan200/Redirection
This release is inspired by id Software's historic practice of open sourcing their games a few years after release (a practice they sadly no longer follow), and the vibrant community of ports and mods that followed in their wake.
Like those releases, this code release still requires a retail copy of Redirection to run (currently on sale!), and is licensed under the GPL so that any changes people make stay available for the community. I'm excited to see what people do with it!
Last week I once again participated in #7DFPS, the game jam that challenges you to produce a complete, first-person game in one week. As I’m now working on a first person shooter in my dayjob, I decided to create a different kind of first-person game this time: an arcade flight simulator.
Like Tank Commando 3D I opted for a distinctive 1-bit art style to keep the art workload down, but unlike that game, I decided to build this game in Unity instead of using my homegrown engine. The result is a fast, frantic, arcadey dogfighting sim that’s surprisingly addictive! Something I’m particularly happy with that I wasn’t able to add last time is the sound design, especially the lovely Doppler flyby effects that came built-in with Unity!
You can play SKYBRAWL (and see some video and screenshots) in your browser, at itch.io:
Good news, robot fans: My 2016 puzzle game, Redirection, is now available for Android! It features the full campaign from the PC version, with an all-new control scheme optimised for touchscreen devices. Click on the logo below to check out the game on Google Play:
In addition to this release, the PC and Mac versions of Redirection on Steam and itch.io have been permanently reduced in price by 50%, so there's no better time to go and rescue some Robots!
Last weekend I took part in #7DFPS, the game jam that challenges you to produce a complete, first-person game in one week. First person shooters have always been my favourite genre of game, but I’ve never had a chance to program one, so this was a real delight for me.
To keep the workload manageable, I opted to build a stealth game about sneaking around and blowing up tanks, with a 1-bit art style inspired by Battlezone and Return of the Obra Dinn. These choices meant I didn’t need to create any textures or character animations, which allowed me to focus my time on movement, gunplay, AI and level design. The result is a surprisingly addictive and replayable shooter with a very distinct design!
You can download Tank Commando 3D (and see some video and screenshots), for free, from itch.io:
When I was a younger, before I discovered programming, I was really into level design. Specifically: I was really into designing Half-Life levels. Over the years I made dozens of small maps, but the only ones I released were three popular maps for the Sven Co-op mod. All three were included in official releases of the mod, and remained so for many years.
However: time passed, and in later versions the maps were removed to make way for newer levels. So, in the interest of preserving these files, I’ve decided today to re-release them in one handy archive: Click here to download it!
All the maps require to run is a copy of Half-Life (Update: I’ve now been informed you don’t even need Half-Life! Though you really should own the best PC game ever made) and the free Sven Co-op mod. Both of these are available on Steam, and there’s step-by-step installation instructions inside the zip file.
Working on these maps was some of the most fun I've ever had working on games, and it inspired me to seek out a career in the industry. If you enjoy playing them just 1% as much as I did making them back in the day, then they'll be well worth your time. If you try the maps and have any feedback or thoughts, or just want to reminisce about early-2000s modding, I'd love to hear from you!
As promised in my last post, ComputerCraft (the popular Minecraft mod I’ve been working on since 2011) is now open source! Here’s a link to the complete source code on GitHub:
https://github.com/dan200/ComputerCraft
With the source code available, people other than myself can now work on updates, fix bugs, and add new features. I’ll still be reviewing pull requests and making releases, so this could mean ComputerCraft is updated more regularly and with more features than it has been in years. I’m looking forward to seeing what people come up with!
Hello everyone! It’s been a while since I launched this blog, so it’s time for a life update! (This an elongated version of a series of posts I made on Twitter last month)
A month ago I started work at Frontier Developments, working as a Senior Programmer on a very exciting unannounced project. After three years as a full-time Indie, scraping by financially and making everything by myself, it’s nice to be part of a team making something big again.
Obviously, with a full-time job, I now have less free time to devote to my own projects, so here’s how I’ll be splitting my time between them:
Firstly: I’m currently putting the finishing touches on a new version of Redirection for Android and iOS. At the time of writing, it’s almost complete, and I should be able to announce a release date soon. The game works really nicely with touch controls and a lot of people have requested a mobile version, so I’m hoping it does well!
Alongside Redirection, I’m also devoting more time to my next, still-untitled game. I’ve teased this a bit on twitter over the last year or so, but the only thing concrete I’m ready to say at the moment is that this is the spiritual successor to ComputerCraft you’ve all been waiting for.
As for ComputerCraft itself: with less free time, something had to go, so after five years working on the mod alone, I’ve decided to hand development over to the community. Working on ComputerCraft has been an incredible life-changing experience, but five years is a long time to devote to one thing, and it’s time to hang up the pickaxe. The complete source code will be posted on GitHub soon.
Finally: I’d like to thank everyone who supported me and my work during the 3 years I worked as an indie developer. It’s easy to look at returning to employment after being your own boss as “giving up”, but I don’t see it that way at all: I’m really proud of the projects I worked on, and that hasn’t changed just because they didn’t prove successful financially. I would still recommend to any game developer interested in making their own games to give it a try if they have the means: it teaches you so much about your craft, and there’s no feeling like seeing a game you made sitting on your Steam list and knowing players are enjoying it. If I had the chance, I’d do it again for sure, though I might not release a puzzle game into a crowded market this time!
Welcome to my new portfolio website! I’ve been meaning to set one of these up for a while, and now that Redirection is released I’ve finally had the time to do so!
The primary purpose of this website is to provide a central place to showcase my portfolio of games and mods I’ve worked on over the years. I also intend to use it to post longer articles and announcements that aren’t appropriate for computercraft.info and would get lost on twitter.
The other reason for setting up this site is that I’m currently on the lookout for freelance work. So if you have a project that you think I’d be a good fit for, check out my portfolio and get in touch!