iPhone Testing Methodology (and why I don’t cancel eBay orders straight away)

As a hobby I buy broken iPhones, fix them, and resell them for a profit. I don’t consider it a business and is purely a hobby that I do in my spare time. That said, I apply a strict testing methodology to every device I sell. Any anomalies are always listed in the listing, or …

Game Diagnostic Consoles

Game development consoles provide statistical information about what’s happening internally within the game and the engine itself (i.e. what assets are being loaded etc.), and some allow command input for various functionality- useful for modifying engine behaviour on-the-fly. I’ve made a start on one for one of my assignments, copying the same opacity (70%) and …

Networking: ENet & Timeout Values, and the importance of heartbeats

ENet supports setting the timeout value on the connection. The way it’s formatted (as a enetpp:client_connect_params() parameter) makes it look like it only applies to the connection process: client.connect(enetpp::client_connect_params() .set_channel_count(1) .set_server_host_name_and_port(address.c_str(), port) .set_timeout(static_cast<std::chrono::seconds>(3))); As I found out, that’s not true. It applies to all data Rx and Tx (receive and transmit) actions- that means that …

Networking Diagnosis with Wireshark

I’m still unfamiliar with ENet (I find it to be extremely limiting when compared to other networking libraries), so have yet to create a stable network connection with the server (the server receives the data but the client doesn’t seem to process any data sent from the server). Yesterday I didn’t even get that far- …

Ten years of Crysis Wars: an analysis

March 31st 2019 marks ten whole years since the last official update by Crytek to Crysis Wars, the lack of updates since then caused the game to die by mid-2014 (the GameSpy shutdown didn’t help with that either). It was claimed by Crytek that the reason why no more updates were released for the game …

3D Pathfinding: Thoughts

For one of my university assignments I’m working in a group to develop a racing game, taking inspiration from Mario Kart. I’ve come to realise that AI (specifically, staying in the centre of the track and/or getting the width of the track) is pretty important for a lot of stuff in the game: Items (red …

Wildfire 2: Branches

As said in my last post Wildfire 2 needs to support two university projects: The first, a digitization of a board game (in ASGE) The second, a mobile AR game being a cross between Tetris and Bejeweled (in Unity and Vuforia) The first project needs the server to be integrated into its codebase (with a …

Wildfire v2

I created Wildfire 2 (technically Wildfire 3, but Wildfire 2 was never completed) last week to act as a gameserver for a couple of uni projects. The Wildfire (and thus GSv2) protocol was never intended for this kind of use (actual as a communication layer for an actual gameserver) so Wildfire v2 will have several …

The problem with automatic sorting (std::map)

Do you want to store data in C++ that requires mapping that data to a string or other type of key? Is the order of that data important? Well then, don’t use std::map. “wha?” I hear you ask, well: std::map is an ordered data type What is meant by “ordered data type”? It means that …