Crysis Remastered: Crytek & Sloppiness

Oh Crytek, you’ve been sloppy, very sloppy indeed.Let me ask you a question: was the decision to effectively dump Crysis’s original code into CryEngine 5’s shoes and leaving it at that a point of laziness, were you or were you not simply trying to cash in on the DLSS hype? The answer to both of …

Crysis Remastered: A Mod Developer’s Review

Crysis Remastered dropped yesterday, and as a mod developer for Crysis (going way back to 2011!) I had to take a peek at the internals- in fact, I was more interested in the internals than the remastered version of the game itself (which by the way, is a major disappointment as certain game mechanics are …

Epic Games & App Store Fees

It’s been in every gamer’s mind: the current spat between Epic Games & the Apple/Google Play stores. If you haven’t heard, Epic disagrees that they should give a 30% share of each IAP to the Apple App Store and Google Play, so they pushed out an update that offers “Epic Direct Payments” which gives gamers …

Wildfire 1.6 (or 2.0?)

I’m currently working on a major update to my Wildfire game multiplayer system, specifically fixing the mess I created four years ago when I wasn’t an advanced C# programmer. The system needed to be updated anyway due to updates required for system libraries such as MySQL (the system currently uses Connector v5, when the latest …

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 …