Skip to main content

Open Source

Posts about open-source projects

The cover of "Analysis of the Luanti ContentDB AI scrapper DDoS attack"

Analysis of the Luanti ContentDB AI scrapper DDoS attack

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

From the 3rd to the 5th of April, ContentDB was hit by a Distributed Denial of Service (DDoS) attack, where it received over 5 million requests from 2,200 IP addresses. This blog post shares statistics on the attack and a reflection on how this can be prevented in the future.

Read more of "Analysis of the Luanti ContentDB AI scrapper DDoS attack"

The cover of "OpenTTD and the Transport Tycoon re-release"

OpenTTD and the Transport Tycoon re-release

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Transport Tycoon Deluxe (TTD) has re-released on Steam and GOG after being abandonware for 25 years. Whilst it’s great that you can now legally buy the game, OpenTTD is no longer available for free on Steam. I can only see this as a cash grab by an investment holding company.

Read more of "OpenTTD and the Transport Tycoon re-release"

The cover of "OpenTTD must-change settings that should be default already"

OpenTTD must-change settings that should be default already

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

OpenTTD is a game where you build a transportation empire with road vehicles, trains, boats, and planes. It’s an open-source remake of a game called Transport Tycoon by Chris Sawyer, released in 1994. I have been playing it for many years; I have no idea how many hours I’ve sunk into it.

There are a few setting changes that I consider essential. It’s bizarre to me that these aren’t the defaults - I guess OpenTTD is trying to keep close to the original 1994 game. I like to focus on passenger and mail services, and therefore consider these essential.

Read more of "OpenTTD must-change settings that should be default already"

The cover of "How can we own our identity on the Fediverse?"

How can we own our identity on the Fediverse?

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

The Fediverse is a decentralised social media network. This includes Mastodon, which is where a majority of the users are, but it is not the only option. I have been using Mastodon for seven years. I made my home on Fosstodon, an instance focused on free and open source software.

Last month, it came to light that Fosstodon had a far-right moderator and some other instances defederated with Fosstodon over this. I don’t want to get into the specifics of this situation; whilst it is an important topic, it isn’t something I have any desire or qualification to discuss. I’ll leave this to other people. However, having to move instances did raise some thoughts about the federation model and owning your identity and data.

Read more of "How can we own our identity on the Fediverse?"

The cover of "Ten years of Capture The Flag"

Ten years of Capture The Flag

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Ten years ago today, I uploaded the first version of Capture The Flag. Capture The Flag is a multiplayer game where two teams of players battle to claim the other team’s flag whilst defending their own. Capture The Flag is played in a destructible voxel environment, allowing players to build defences and place traps.

Capture The Flag started life as a persistent kingdoms game but quickly pivoted to a match-based team game. It was developed iteratively, taking into account player feedback. I hosted a server for the game for many years and a community formed around it. In 2021, I handed over the reins to CTF to very capable hands; it remains Minetest’s most popular server to this day.

This article covers the history of CTF, the lessons I learned, and the changes I made along the way.

Read more of "Ten years of Capture The Flag"

The cover of "Conquer: a deep-dive into my Luanti mod jam entry"

Conquer: a deep-dive into my Luanti mod jam entry

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

In 2020, the Minetest Discord community ran a mod-making competition with “combat” as the theme. Participants had one week to create a mod with all the code written within the time, but pre-existing art was allowed. I made a Real-Time Strategy (RTS) minigame called Conquer; it received first place.

In this article, I will discuss some of the interesting challenges that Conquer needed to solve. I believe that Conquer is a great example to learn from as it demonstrates best practices for Minetest modding; it is well-structured and unit-tested.

Read more of "Conquer: a deep-dive into my Luanti mod jam entry"

The cover of "Bing (and DuckDuckGo) shadow banned my website"

Bing (and DuckDuckGo) shadow banned my website

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Bing has now unbanned my blog. My site is still penalised/low in the results, but at least it's appearing now. See the bottom of this article for their response.

My domain was shadow banned by Bing and DuckDuckGo last year, and I don’t know why. Since then, my root domain (rubenwardy.com) has been unbanned but my blog remains banned. The event also negatively impacted the search placement of my root domain; another site that reuploaded some of my content is appearing as the first result when searching for it.

Read more of "Bing (and DuckDuckGo) shadow banned my website"

The cover of "Large spike in Minetest traffic caused by YouTube video"

Large spike in Minetest traffic caused by YouTube video

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Last month, ContentDB received a large spike in traffic. ContentDB is the website I created that allows you to install mods/games/texture packs from within Minetest’s main menu. On Saturday 5th, Bobicraft, a Spanish-language Youtube channel with 5M subscribers, posted a video about Minetest. At the time of writing, it has reached 1.3 million views and is now the most-watched Minetest video.

In this article, I will show the data about this increase in traffic. As the tools that I use to monitor ContentDB are ephemeral, this will keep the data around for future reference.

Read more of "Large spike in Minetest traffic caused by YouTube video"

The cover of "Luanti (Minetest) on Steam Deck: usage and review"

Luanti (Minetest) on Steam Deck: usage and review

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

A few months ago, my Steam Deck arrived. So, obviously, one of the first things I did was play Luanti. Whilst Luanti isn’t available on Steam yet, it is available on Flatpak and so can be installed from desktop mode.

Luanti plays very well on the Steam Deck, it performs great and Steam Input makes setting up controls easy. The Deck is an open console, so there’s full support for modding and you can cross-play with other platforms.

In this article, I will explain how to set up Luanti on the deck, and review the controls, performance, and experience. I’ve already written my thoughts about the Deck in another article, and recommend checking that out.

Read more of "Luanti (Minetest) on Steam Deck: usage and review"

The cover of "Minetest Mods: my first Android app"

Minetest Mods: my first Android app

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

In 2016, I created an app to install mods for Minetest’s Android port. It was my first Android app; it taught me a great deal about Android development and also helped me get my first programming job.

Minetest is an open-source game engine with millions of downloads and thousands of weekly players. The project has a very active modding community, with many games available to play. Before I created the app, users had to manually install content by unzipping their files into a directory; this was a poor user experience, especially on Android, so I created the app to make this easier.

Minetest now has ContentDB, a platform I created to browse and install mods and games within Minetest. Because of this, the app is now obsolete and is no longer available for download. That doesn’t mean this app is fully gone - the lessons I learned live on in ContentDB.

Read more of "Minetest Mods: my first Android app"

The cover of "ChatGPT: An AI that can write Minetest mods... kinda"

ChatGPT: An AI that can write Minetest mods... kinda

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

This article was written at a time when LLM AIs were brand new. As such, this post is very outdated and does not represent my current opinions.

OpenAI’s GPT-3 is a powerful new Artificial Intelligence model that uses deep learning to produce human-like text. It was trained on a large body of text, with sources including websites, Wikipedia, and books. It doesn’t just understand natural language, it can also work with programming languages.

This topic is especially relevant with the recent introduction of GitHub Copilot. Copilot is an “AI pair programmer” for your IDE that suggests code and entire new functions. It’s based on same technology as GPT-3, but with a model derived from GPT-3 and optimised for code called Codex. This article will use GPT-3 and Codex, as I wasn’t able to get GitHub Copilot, but the results will be identical.

In this article, I will ask GPT-3 to write Minetest code and explore how much it knows about modding, creating simple and advanced Minetest mods. I will finish by using it to convert Minecraft mods to Minetest.

Read more of "ChatGPT: An AI that can write Minetest mods... kinda"

The cover of "Developing ContentDB"

Developing ContentDB

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

In 2018, I had the opportunity to create a web app for University coursework, as a solo project. I chose to create a package repository for Luanti, an open-source project I help maintain.

Luanti (formerly Minetest) is an open-source game engine with millions of downloads and thousands of weekly players. The project has a very active modding community, and many available games to run. There was one big issue - you had to manually install mods and games by unzipping their files into a directory. This was a very poor user experience.

Read more of "Developing ContentDB"

The cover of "Tin Mining - Ludum Dare 48 post-mortem"

Tin Mining - Ludum Dare 48 post-mortem

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

In April 2021, I participated in my first game jam, Ludum Dare 48. Ludum Dare is a popular online game jam; this event received over 3800 submissions. The theme was “Deeper and Deeper,” and I created a game where you manage a tin mine.

The year is 1790, and the Cornish tin industry is booming. You are a businessperson who has just secured investment to build a mine. The area is known to be rich in tin, which is in high demand.

Rather than controlling your workers directly, you drag out plans for tiles to be mined and built. The workers will mine tunnels and build where ordered. They will carry mined resources to the surface to be sold.

Read more of "Tin Mining - Ludum Dare 48 post-mortem"

The cover of "A Comparison of SFML GUI Libraries: TGUI vs SFGUI vs ImGui"

A Comparison of SFML GUI Libraries: TGUI vs SFGUI vs ImGui

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

SFML is an excellent library that can be used to create 2D games and similar applications in C++. It’s an abstraction over OpenGL and various system APIs, presenting a consistent and easy-to-use interface.

Providing a Graphical User Interface (GUI / UI) API is out of scope for SFML. GUIs are complicated, and there’s no single good way to implement them. The S in SFML stands for Simple but GUI code rarely is.

There are many different options to choose from when making GUIs. This article is an in-depth comparison of the options for making GUIs in SFML, discussing their pros and cons.

Read more of "A Comparison of SFML GUI Libraries: TGUI vs SFGUI vs ImGui"

The cover of "Minetest at Freenode Live 2017"

Minetest at Freenode Live 2017

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Shara and I exhibited on behalf of Minetest at Freenode #Live. Our stall had a computer where visitors could play Minetest. We talked about it and handed out leaflets.

If you’d like to support Minetest, then please get involved and consider donating:

Read more of "Minetest at Freenode Live 2017"

Lichess Widgets

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Just a short post this time - I have created some widgets for the chess website Lichess. I was quite surprised that these did not exist yet, in any form. Luckily Lichess exposes an API to use. You can have a look at them by clicking the link below.

Read more of "Lichess Widgets"

The cover of "Lichess"

Lichess

Andrew Ward

rubenwardy

rubenwardy's profile picture, the letter R

Hi, I'm Andrew Ward. I'm a software developer, an open source maintainer, and a graduate from the University of Bristol. I’m a core developer for Luanti, an open source voxel game engine.

Lichess is an online chess game and community. It is free and open source, ad-free and subscription-free. You can play against your friends, random strangers and the computer. You can create teams to compete in tournaments. There are tournaments going on all the time.

Read more of "Lichess"