Rant — Roadmap, Dogfooding and NPM

This isn’t a real article for today, so I’ll just call it a rant. Lot’s has been going on for me (as most likely for many of you too during those trying times) and I wanted to post a small update, ping my small group of trusting followers and send out a life sign.

Photo by Daniel von Appen on Unsplash, slightly edited

Some of you might know, from chats and updates on discord, that I’m currently on a small break to take care of my daughter. Due to covid-19, closed daycare and all, I reduced my working hours, adjusted my work schedules and spent my free time at home with her and my wife so there was not as much time left for programming. On the other hand, I got to spend way more time with my family due to working from home so I’ve got that at least going for me.

But… with her in the kindergarten now I can slowly return to more regular updates in my channel, punctual tutorials here on medium.com and more other content too. Right now I’m working on new packages on NPM and reviving my own little game prototype project (a fun factory-style puzzle game I started last year) with a few major changes. To give you a quick peek on what’s to come, here’s a short run down.

Roadmap

Spoiler:
All but the actual game code will be open source and available on my GitHub account as well as npm with every minor release I complete and publish. Why? Because free and open source is way better and no need to greedily sit on a pile of useful stuff that might help others. YAY!

New Base Project
(prototyping kit and tutorial playground)

  • clean minimalistic setup
  • Typescript for more stable typing
  • UnitTesting to monitor changes for stability
  • out-sourcing more complex but reusable code

this leads to the second big change…

New Game Tools Library Project
(utility package)

  • gonna be used by my other game and regular projects
  • will contain reusable logic components (for calculations, processes and stuff, the game loop, the data store, drag&drop functionality)
  • will allow me to make a clear separation between game logic and functionality

Update the UI Library Project
(ui package)

  • more reusability
  • will contain typical UI objects such as boxes, popup modals, buttons, text elements, toggles etc. etc.

Update the Asset Library Project
(asset package)

  • guess what… yeah, more reusability
  • will contain simple graphics for UI elements to be used for rapid prototyping
  • assets will be separated in themed sets (generic, quirky, basic, old school, pixels, fantasy, sci-fi)

Dogfooding

Eating your own dog food (as explained by wikipedia)
Eating your own dog food or dogfooding is the practice of an organisation (or individual) using its own product. This can be a way for an organisation to test its products in real-world usage. Hence dogfooding can act as quality control, and eventually a kind of testimonial advertising. Once in the market, dogfooding demonstrates confidence in the developers’ own products.

I’m really looking forward to this project as I will be able to showcase how splitting up your game into logic/mechanics as well as the actual UI components and such can make your game easier to scale, easier to read (the code) and even more important, fun to write. It also reduces the number of tests you have to write because everything that comes from an npm package should already be tested and this means you can fully concentrate on your own stuff and don’t need to worry about basic buttons, tabs, sliders, modals and such.

NPM

I’ll add an article on NPM soon’ish that shows how easy it can be to put your code out there for the rest of the world to consume and use. It’s not rocket science and everyone can do it.

This means that the sub projects I mentioned above will be available on npm and can be used in any project. I’ll make sure that the licenses are set accordingly. The asset project might include a few more limited assets based on what I end up including. I’m no artist so I will rely on free stuff from other creative people and hence their respective licenses for reuse, sharing and commercial application.

If you want to join us on the discord, feel free to drop in and say hi.

I’m a Web / App Developer & father 👨‍👩‍👧 doing freelance and part-time agency work since 2003, 💻 building stuff on the side 🕹 and attending conferences 🎟