Posted: 2019-10-26 14:28:13 | Posted by iDev | idevgames.co.uk
So for more then 2 years now I have thought about rebuilding this website. Not because I dislike how it works or what it looks like, actually those are the things i'm very happy about, but because the underlying code we run on is bespoke. This entire system is something I've built from the ground up and it didn't grow from a well structured and thought out code base. It grew from a code base that I started more then 10 years ago, at a learning stage. For the most part it's a mess and has become an impossible task to maintain and build onto. Which is why for most of this year, I've not added anything new.
Although secretly this year I started rebuilding the site again and then started to mention it on twitter. I don't like to talk about things until they are official and there's no going back. In reality there was no going back at least 3 months ago but none the less I've waited until now and now I am at the point of almost releasing it.
For the most part with this site, the front end is using modern technologies but the server side code isn't. So I have rebuilt the site in what has become one of the most popular PHP frameworks of recent years, Laravel. The advantages is that PHP frameworks are designed to split all your code out into logical and neat sections. The coding principle is known as MVC but the idea behind this is that your server side coding is split out from the markup, styling and script. Using object oriented programming to pass data to the markup.
Currently all our logic is entangled with the markup, making it difficult to work with so this is a huge advantage for making future changes. It also makes it far easier to expand too. One of the biggest advantages though is the security. It is all handled by the framework, as some of you will know I had to learn a lot about security during the development of this site. The rebuild should hopefully have us prepared for the future.
I'm using version control (git) and modern methods of deploying the website, this time. Due to the way things are set up now some things didn't work on my local set up so I had to develop them straight onto the site (Which is not good), something that I can't do now that we are more popular. Also Laravel gets updated and it should be possible to upgrade the site to keep it up to date, we should in theory be ready for anything in the future moving forward. With minimal code changes to stay up to date, rather then an entire rebuild.
Hopefully you should see an almost identical build of what we have currently. I know, not very exciting but it has been a huge job to nearly get back to this stage. Things should feel smoother, faster and just all round far more solid but it shouldn't look or work any differently then it does now. Except for a few minor changes. Which has actually been a lot harder then building something new.
I had built certain ways of doing things because I wanted things to work like that and so with Laravel there's whole packages for login systems etc but they will work in a certain way, so I had to build my own ways that work like they do currently. Totally worth it but it didn't make life easy. I do plan on making design tweaks etc but I don't want to do anything until we have an exact clone of what we have now.
Then I will start thinking about changes and additional features to work on. Once we have gone live with the rebuild.
Well, I wouldn't like to say for sure at this point, as it's not finished and it'll be ready when it's ready. That being said, the bulk of the site has been finished. At this point I'm missing some functionality and some under the hood stuff but all the pages exist while the best part of the functionality is there and working. I'm planning to start a private beta very soon.
The private beta is purely for testing and bug finding. I've rebuilt the site and there are bound to be bugs. Also we have already been through an alpha then beta phase in the early days. I don't want to go back to that again. So the private beta testing will hopefully not go on for too long. I just want to release the site at the stage it is currently like nothing had ever happened. Despite the fact this has been immensely difficult. Building a site of this size once, was enough, but here I am at that same point again.
The idea of the private beta is simply to test from a blank database. So if we have some major bug we don't end up wiping out our main database or something.
If you want to get involved with the private beta and test it out, which I would really appreciate! Then please send me a direct message on twitter @HTML5Arcade! I am planning on starting the beta before everything is finished and run it until everything is ready. So please let me know as soon as possible.
Thanks,
-iDev