The Daemon Engine - my final school project, and new personal project - is a game engine Typescript, running the latest ECMA script and built to run with with other frameworks to be deployed on the latest platforms and devices. In working on an engine that is using some of the latest libraries and platforms, being so cross compatible with a constantly updating community project is a difficult task. One requiring copious amounts of researching, templating and testing.
For the past 2 months I have been researching unstoppably on how Typescript works, how web bundlers package and compile code to different modules (what those are) and the list goes on and on (and on and on). It’s really quite the rabbit hole. The numerous amounts of technologies are astonishing, and each time I pickup where I left off, I look into one thing and find myself 10 links deep in a bigger mess to begin with.
Thus far, I have completed: a unit testing framework (for the components and systems built so far), a basic architecture to a majority of the system, a package bundler compiling ESNext scripts down to ES3 JavaScript, and a document creation system. While this isn’t much I am only 2 weeks into development.
Things have had their ups and downs, and as I continue development I find myself getting sidetracked easily to look into something else. One thing that has been my saving grace has been my methodology. My methodology is something I’ve labelled “Test Driven Staged Delivery,” and it’s just what you think. Essentially, its:
if that makes any sense. It has really kept me on track for the most part. For now development has been, well, slow. I find myself getting into writing unit tests, then writing code, and more code, and more code, etc. It get’s very messy as I keep working. I have to force myself to go back to writing unit tests - as hard as it is.
My though process in using a test driven strategy is so that I can reliably test my code to function how I think it should function right from the get go. It’s an… interesting way to develop code. As I said, development has been slow, and it’s partially to how my testing is going, but at the same time, what I write is working precisely how I know it should function. It’s been hard adjusting, but I could not recommend test driven development enough now.
So this has partially turned into a rant, but also as an update. Development is going; I should be able to setup a test rendering (or at least loading) of my engine in either Electron or Angular2 (I’m leaning more to Electron first, then to Angular2 - can’t decide yet). I’ve also got to get Travis-CI running for the main project, some readme, wiki and contributing files, and also implement and test developer files when downloading and using in another project. There is work to be done, and not much time left before my first sprint. I will continue to update as I go and when I can.
Spencer