Visual Portfolio, Posts & Image Gallery for WordPress

Watcher – an introduction

Date November 6, 2018
Views 216 Views
Reading Time 3 Mins Read
This is hardly news: people like to connect stuff to the Internet. The ones I’ve always found the most interesting are IP cameras, which people knowingly or unknowingly have left publicly accessible. For more than 10 years many of these could be found via well-targeted Google queries and nowadays Shodan will do some of the heavy lifting. However, I’ve always wanted to write a program which would automate this search and present the results in an usable way: present a map of Earth, lay down all the cameras and then be able to click on them and begin streaming. There were three important considerations when deciding on how this program would be made: It must run locally rather than being an online service. Needs to run on both Windows and Linux. Must not require elevated privileges to run. Underlying technology C++17 This is being written in C++, more specifically the C++17 variant. This lets me write code which can be (mostly) shared between Windows and Linux, without requiring too many platform-specific implementations. SDL Using SDL provides the basic window creation, OpenGL backed rendering and input handling, without having to deal with the OS implementations. SDL_image A support library for SDL, SDL_image is capable of loading image files. Since I wanted to have a map of Earth, having to store everything as BMPs (supported by the base SDL) would mean a pretty large download. SDL_image allows me to load other image formats, such as PNG or JPG, with a minimum amount of extra code. sqlite3 Given that Watcher needs to scan the internet to find accessible cameras, this information has to go somewhere. To keep the required set up needed in order to be able to run the program, I’ve settled on sqlite3 as a database backend as it just stores…

Replacing Havok with Bullet

Date October 2, 2018
Views 176 Views
Reading Time 4 Mins Read
The issue Most people involved in games development have likely heard of Havok Physics: a middleware solution which provides collision detection. HEXTERMINATE used Havok for a long time, as it was free for Windows even in commercial projects, as long as they didn’t sell over a certain threshold. However, the hobbyist version has stopped being distributed years ago and this caused some issues: more modern versions of Visual Studio weren’t supported (anything past VS2012) and most importantly, could the game still be shipped with it? An open-source approach The alternative chosen was to use the open-source library Bullet: Conceptually similar: most of what HEXTERMINATE uses could be done in Bullet without massive refactoring. Functionally equivalent: there were no holes in the feature list, everything I needed was present. Permissive licence: the ZLIB licence puts essentially no restrictions on the game. Source code available: I could republish the library binaries myself, getting me up and running in VS2017 quickly. Linux support: although not something I have spent time on, Havok was the last library holding off multi-platform support. Making it all work Getting the basics up and running was fairly straightforward. What ended up taking up most of the time was that many places in the game’s code were using Havok’s maths library rather than GLM, which required some head scratching and debugging to make sure that it was all working. Most of it was fine, but swapped order of operations caught me off-guard a couple of times. When a battle goes wrong, it can go really wrong. In the end it was actually the smaller things that took the longest: getting callbacks with the required information for when two ships collide was non-trivial, as I needed information about which two modules were colliding, not just the parent “ships”. The other…

HEXTERMINATE!

Date January 29, 2017
Views 143 Views
Reading Time < 1 Min Read
  Finally, the game that I have been working on during my spare time is ready for Steam Greenlight’s process! HEXTERMINATE is a space shooter written for PC, putting the player in the role of an Imperial Captain as part of a campaign to conquer the galaxy. Onwards to cutting the trailer and getting the game on Steam, then…

Goodbye, Guerrilla Cambridge

Date January 12, 2017
Views 183 Views
Reading Time < 1 Min Read
So today I’ve heard that my old studio, Guerrilla Cambridge, has been shut down by Sony. These news bring me great sadness, as that studio was my home for nearly 8 years and there was a real sense of family there – most of the people in the studio had been there for many years, through thick and thin and all the weirdness of creating games for a living. At Frontier Developments we’ll do what we can to help and I know that everyone in that has just been made redundant won’t find it difficult to get a new job, for they are extremely talented and a pleasure to work with. It has been a good run, Guerrilla Cambridge. You will be greatly missed.

RIGS released!

Date October 12, 2016
Views 174 Views
Reading Time < 1 Min Read
Finally, it is here! RIGS, a PlayStation 4 title exclusive for the Morpheus headset, has been released. Working on this game was an amazing experience, having to create a game in parallel with the hardware being developed (and being told “Don’t drop it, there’s only four of those in the world”). In addition to the performance challenges (the game needed to run at a rock-solid 60FPS to make the best use of Morpheus’ reprojection technology), there were a number of areas where we just had to drop the traditional way of doing it as it doesn’t translate well in VR, such as HUDs having to be embedded in the cockpit or making sure that cutscenes never rotated the player.

September development highlights

Date September 28, 2015
Views 170 Views
Reading Time 2 Mins Read
It has been a busy month in HEXTERMINATE’s universe. I’ve assembled a short trailer to showcase the game, backed as usual by =kontinue’s great sound track! Be sure to check it out. But lets take a look at the game’s development itself. Sound effects A game can’t be complete without sound effects, even if it is a space game and have to ignore little things like physics going “you’re aware there’s no sound in space, right?” Hogwash. Most of the sound effects are now in place, making use of FMOD’s positional audio which made it easy to implement automatic panning and volume rolloff based on distance. Overall I’m quite pleased with it and it makes battles sound far, far more alive. I’ve also written a small post on the the implementation gotchas that might be of use to other developers. Balancing pass Balancing a game’s is almost always tricky and HEXTERMINATE is no exception to this. The variety of factions, the kinds of ships they use and the large amount of modules that can be used make the task of balancing everything properly a fairly time consuming one. Overall the pace of the game has been slowed down as ships were exploding too quickly, which made it both difficult for the player to manage to pull successful, higher-risk raids into hostile sectors and fairly frustrating to try and keep a fleet’s losses manageable. Additionally, most ships of the Ascent and Iriani factions have been redesigned and made more specialised. The Iriani in particular remain, as before, terrifying: attacking their territory is not for the weak of heart or for those afraid of losing ships in the process. Of course that over the campaign you’ll have to conquer their homeworld but hey, no one said that the life of an Imperial captain was an easy one. Loading…
Work in progress
To top