Introducing the BlockAttack Project

Disclaimer: I'm not a game programmer. I have always had an interest in game programming, even before I knew how to program, but I've never fully pursued that interest beyond a couple college projects.

I'm a business software / information systems developer. At least that's what I've been working on for the past 22 years.

This blog series is my attempt to learn more about game programming by implementing a clone of one of the simplest and most well known video games, Tetris. I'll be using plain vanilla Javascript because the modern web browser is one of the most accessible programming environments and it provides graphics capabilities via the Canvas API.

In order to learn the fundamentals of game programming, I'll be writing this game from scratch and implementing my own "engine" components as needed. Alternatively, I could use an existing game engine like Phaser or PixiJS but that wouldn't be as much fun, interesting, or challenging. Ultimately, I just wouldn't learn as much. So I'll stick with the custom-built engine.

I'll call the game BlockAttack so that I have a generic non-trademarked name to use to refer to my specific implementation of a Tetris-style game.

The first several posts will probably involve setting up the core systems that I need. For example:

  • Animation
  • Handling Input
  • The Game Loop
  • Managing Processes & Events
  • Managing Game State(s)

Once these core systems are in place, I'll be able to move on to implementing the specifics of the BlockAttack game rules and gameplay mechanics. It's very likely that this will result in an iterative process of building gameplay and updating the core systems to support the gameplay needs.

When the game (and blog series) is complete, I might even extract the reusable parts into a primitive game engine, but we'll see if I get that far.

The project source code will be highlighted and explained in each blog post as I discuss each aspect of the game implementation and the full source code will always be available on GitHub.

BlockAttack GitHub Repository

My current plan is to post to this blog series at least once a week. If I have more time, I may be able to do two posts a week.

In the next post I will work on building a basic animation system using the Canvas API.

Thanks for reading :)

Lorem Ipsum Test Post

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut volutpat porta odio, at egestas metus aliquam eget. Phasellus auctor scelerisque erat. Pellentesque sodales nibh velit, venenatis laoreet felis euismod eu. Proin scelerisque mauris nec urna posuere, quis eleifend tortor volutpat. Donec dignissim ac purus quis maximus. Curabitur vitae ipsum et enim euismod scelerisque nec a est. Mauris quis viverra purus. Aenean consequat, dolor in tristique pharetra, lectus odio ultricies nisl, non accumsan leo dolor id tellus. Sed aliquam sit amet ligula sed faucibus.

In eu purus sem. Suspendisse potenti. Praesent placerat nisl dictum, imperdiet massa in, porttitor turpis. Phasellus id nulla quis erat mattis sodales eget a dui. Nunc sed ligula eros. Aenean bibendum lorem quis elit vehicula, sit amet blandit nisi lobortis. Ut eget magna consectetur, suscipit purus sit amet, lobortis est. Praesent vitae enim et mauris tempor ullamcorper. Interdum et malesuada fames ac ante ipsum primis in faucibus. Maecenas rutrum, nulla ut varius blandit, tortor nulla scelerisque neque, et fermentum lectus eros at nibh. Proin tempor enim sit amet erat consectetur, vel facilisis tellus mattis. Donec malesuada cursus quam eu mollis. Aliquam eu orci dapibus, rhoncus lorem ut, vestibulum nisl. Donec mattis ipsum at dui facilisis, eget tincidunt leo porta. Morbi auctor luctus congue. Pellentesque id diam ex.

In eget vestibulum lacus. In id efficitur ante. In pulvinar eros urna, vel porta sem aliquam sit amet. Vivamus id enim eu massa lacinia ullamcorper vel a eros. Praesent elementum dolor purus, ut laoreet tellus aliquet nec. In faucibus justo nec massa porta sollicitudin. Quisque accumsan felis arcu, id cursus augue varius nec. Proin ut laoreet turpis. Donec vel mattis nulla. Donec sodales erat a imperdiet fermentum. Ut tincidunt ac magna sit amet viverra.

Hello, World!

Welcome to my new website. This is my first blog post.