Miscellaneous 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… Hexterminate 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 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… Commercial 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. Commercial 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. Hexterminate 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… Load More Loading More… You’ve reached the end of the list
Miscellaneous 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…
Hexterminate 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 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…
Commercial 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.
Commercial 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.
Hexterminate 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…