Dealing with legacy software systems is simply a reality for most developers.
It is a rare occasion when a profit-centre project is rationally, completely and deliberately designed from scratch by someone who has experience in software architecture. The vast majority of the time, the core projects that make value in an organization grow organically - starting out as a quick hack to solve a problem and growing in scope and importance as it starts to save or bring in money.
This is true for game projects as much as any other software. And it applies to Elden.
The industry's response to this trend is to embrace change and agility -- using planning approaches that are lighter weight and iterate towards an efficient solution by doing evaluations at every stage. When these two approaches clash, however, things can get nasty.
A common approach to having a large and old code base with lots of bugs and awkwardly written workarounds is to try and clear it and start from scratch. This is incredibly common, but among veteran developers it is a poorly regarded approach. It reliably results in regressions and in many cases perpetuates the very cycle it purports to solve.
The most effective way to handle this kind of transition that I've found does not use any gimmicks or fancy new organizational concepts. It is a simple and direct application of classic, old-fashioned object-oriented programming techniques. This is something that almost gets taken for granted nowadays -- OOP is such a given that very few people would profess to specialize in it. Yet this kind of transition seems to be virtually unheard of in most real-world environments.
The core concept here is to do incremental replacements of functionality using small, individual, well-thought-out modules. Rather than rewriting the codebase from scratch, you simply duplicate its functionality, a page of code at a time. Unity is fantastic for this, as it allows you to instantiate and duplicate modular components with very little effort.
In the case of game development, and Elden specifically, this means taking the large, ungainly components (primarily the player and enemy controllers) and incrementally replacing individual functions of them with smaller modules. It is 100% possible to replace the entire codebase with a faster, more stable, neater, tidier, better-factored and better-documented version -- without breaking intermediary builds or causing any other short-term pain.
In this month's preview we are having a look at the starting zone from Elden, Elden's house is the point all journeys will begin, but where will they end?
We have been quite busy these past four weeks, we have implemented a new Damage system shared between the player and AI, along with implementing the first boss in game with around half of its final functionality to mention just a few.
We also attended our second LAN-Slide, LAN-Slide is a 24 hour public LAN event ran four times a year, We hosted Jamingtons along side the event and made our submission amongst all the cheering gamers playing CSGO and Overwatch, which was quite the change of working environment but quite a fun night.
for those who dont know Jamingtons a public game jam we hosted on itch. We had over 40 people join the event and 14 games submitted! The winners and link to full page can be found in the link above.
Along with showing Elden at LAN-Slide we also had a booth at CON-Quest the following weekend, not the largest event but the crowd was lovely and gave some great feedback, I'm always taken aback when watching people playing and enjoying our game, when your working on a project day in day out. i don't know if there much more rewarding then seeing other enjoy your game.
Come Join the discussion on the Onerat™ Games Community discord.
Figured may as well start putting some text in these posts.
For those who don't know we are Onerat Games, a newly formed studio from Melbourne, Australia, currenly consisting of a team of SAE Qantm Graduates. Recently we have been developing a new art pipeline for our current project Elden with the help of Powerhoof (Creators of Crawl), the lighting shader (seen above), and the 1st boss you'll be likely to encounter.
Development has been going quite smoothly and we are looking to do a second public testing period soon (limited places available), if you are interested come have a chat on our discord (https://discord.gg/dJDjuRH).
Along with all this we are also hosting a public Game Jam, Jammingtons
Prizes for the top 3 awards ($50 USD to the 1st place submission).
We are very thankful to have you reading our blog and will be doubling the amount of content in the coming weeks.
Onerat Director & CEO, Dylan J. Walker.