The pain of upgrading software
Tags: upgrade, godot, development, gamedev
Published: 2022-09-11 08:26:36

---
title: The pain of upgrading software
published: true
description: The real pain in upgrading any kind of dependency in software development.
tags: Upgrade, Godot, Development, GameDev
cover_image: https://2rdnmg1qbg403gumla1v9i2h-wpengine.netdna-ssl.com/wp-content/uploads/sites/3/2020/05/painScale-1150303237-770x533-1-650x428.jpg
# Use a ratio of 100:42 for best results.
---

Ok, I'll try to write this post in both [portuguese](#pt) and [english](#en).

### <a name="en"></a> English

Okay, I'm toying with this [little project](https://shinspiegel.itch.io/until-the-end-of-it) to make a simple little game, with some metroidvania elements (because of reaons) using the [Godot Engine](https://godotengine.org/) behind the scenes to learn [Game Design](https://en.wikipedia.org/wiki/Video_game_design) elements and of course, sharpen my knowledge on other platforms.

Like everyone, I'm all waiting for the long-awaited version 4 of the engine, still there is some alpha versions have been released recently that are stable enough to play with and learn what's next in the engine.

Not only that, I can also provide one or two collaborations on the [documentation](https://docs.godotengine.org/) to improve or even just make it a little clearer.

And like every software update, we have some pains, and with them comes bilateral thinking:

**On the one hand**, I can progress with the development of the game in the current version which is stable and ready for production (not that I care about that for a hobby project), I already have most of the elements I need ready to use, it's a matter of adding only the missing details (other enemies, level designing other areas...)

**On the other hand**, I know that there are some parts of the code that I made that are not good, some paradigms that I shouldn't have used, and of course, many improvements that I learned throughout this experiment. If I would start the project from scratch I will be much more able to do something better for my dev experience than I had when I started the project.

Now the problem,

Even if I had a button: "update version" and everything is updated and working perfectly, my accumulated errors will still carry the weight in development.

And since I have the opportunity to review the code (to update the GDScript version), I could in theory update my past mistakes and make it more fit for the future "Shin" not swearing to present "Shin" so much.

This is the pain of updating the software, as it's a hobby project, and it's going to affect maybe 3 people at most, that won't be a problem, doing everything from scratch.

But dealing with larger software, where it affects many people, that thought is clearly seen. As a result, I can see in the industry a lot of stuff being used from 10, 20 years ago, and nobody changes anything because updating will bring pain.

Anyway, this is a small rant, and to remind me that I will continue to develop the same game, but I will update to the new version of the engine.

Wish me luck with the crazy choice I'm making.

Ps.: And that way the game will never be officially finished, becoming another project for the drawer.

### <a name="pt"></a> Português

Certo, eu to brincando com esse [pequeno project](https://shinspiegel.itch.io/until-the-end-of-it) de fazer um joguinho simples, com alguns elementos de metroidvania (porque sim) usando o [Godot Engine](https://godotengine.org/) por trás dos panos para aprender elementos de [Game Design](https://en.wikipedia.org/wiki/Video_game_design) e claro, afiar meus conhecimentos em outras plataformas.

E como todos eu estou aguardando a tão esperada versão 4 da engine, a questão é que recentemente tem sido liberadas versões alpha que estão estáveis o bastante para brincar e aprender o que vem por aí na engine. 

Não apenas isso, também posso perceber uma ou outra colaboração que posso fazer na [documentação](https://docs.godotengine.org/) para aprimorar ou mesmo apenas deixar ela um pouco mais clara. 

E como toda atualização de software, temos algumas dores, e com elas venho o pensamento bilateral:

**De um lado**, eu tenho como progredir com o desenvolvimento do jogo na versão atual que é estável e pronta para produção (não que eu me importe com isso para um project de hobby), tenho já boa parte dos elementos que preciso prontos para uso, é uma questão de adicionar somente os detalhes que faltam (outros inimigos, fazer o level design de outras áreas...)

**Do outro lado**, eu sei que tem algumas partes do código que fiz que não está legal, alguns paradigmas que não deveria ter usado, e claro, muitas melhorias que eu aprendi ao longo desse experimento. Como sempre se eu começar o projeto do zero terei muito mais capacidade de fazer algo melhor para minha experiência de dev do que tinha quando comecei o projeto.

Agora o problema,

Mesmo que tivesse um botão: "atualize a versão" e tudo seja atualizado e funcionando perfeitamente, meus erros acumulados ainda terão o peso no desenvolvimento.

E como eu tenho a oportunidade de revisar o código (para autalizar a versão do GDScript), eu poderia em teoria atualizar meus erros do passado e deixar ele mais apto para o futuro "Shin" não xingar tanto o "Shin" do presente.

E esta é a dor de atualizar o software, como é um projeto de hobby, e vai afetar talvez 3 pessoas no máximo, isso não será um problema, fazer tudo do zero.

Mas quando se pensa em software maior, onde afeta muitas pessoas, esse pensamento claramente é visto. Resultado pelo qual consigo ver na indústria muita coisa sendo usada de 10, 20 anos atrás, e ninguém muda nada porque atualizar vai trazer dores.

De qualquer forma, esse é um pequeno desabafo, e para me lembrar que eu irei continuar desenvolvendo o mesmo jogo, mas irei atualizar para a versão nova da engine.

Me desejem sorte pela escolha maluca que estou tomando.

Ps.: E dessa forma o jogo nunca será oficialmente terminado, se tornando mais um projeto para a gaveta.

(() => ())()