Tag: gamedev

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 …

Old Vs New

In the 1980s and 1990s, text-based adventure games were commonplace. Many consoles back then were actually home computers, such as the Commodore 64, and programs were loaded via tape cassettes (a far cry from modern hard drives and solid state storage!). Games were developed by companies, but were also created and distributed via media such …

Img2Map (Game Engine Image Mapper)

I’ve created a small piece of software that maps-out an image’s RGBA values to a file. That file can then be read by a game engine and then be recreated- this allows it to be manipulated (I created it to support my RainEngine project but isn’t part of that assignment). It supports up to a …

Welcome to The RainEngine

For a university assignment on game systems I’ve chosen to do regular good ‘ol rain… with a twist. The assignment calls for creation of one of four systems (rain, sand, sound, text-based game) to be implemented in at least two game engines (I’m using one 2D and one 3D). In the 2D game engine, ASGE, …

Graphs, Graphs, and Data; an expansion of Wildfire

As you guys may know, I haven’t exactly been on the ball with updates to the Wildfire system, until now that is. I’ve been working on an update to the system that utilizes an external database system instead of SQLite, but the biggest part of the update is to recording of statistics. ‘Recording of statistics?’ I hear you say; …

Wildfire: 6 Month Review

The current instance of Wildfire has been running for 6 months now, so I thought I’d compile a small review of Wildfire so far… There are currently 248 registered users, with an average of 54.3 new users each month (up from <30 in January, February, and March) in the last three months. This statistic alone is impressive …

Thoughts on Game Design: Why use UDP for multiplayer?

It’s common knowledge in the games design industry that many online multiplayer games transfer data via UDP instead of TCP, but why? To answer this, we’ll have to dig deeper into how TCP & UDP work, and the specific scenarios that online gaming has to deal with. To start with, TCP is slower than UDP; this is …