About the Project:
Almost two years ago I started a personal project called Barroom Billiards, which was intended to be a Billiards Putt-Putt cross over type game inspired by the NES game Lunar Pool. Unfortunately for various reasons I was unable to push that project past the initial gameplay prototyping phase; Whether this was due to time constraints, or because I lost interest, I can’t really recall. It was probably a bit of both.
But after I earlier this year committed to, and finished, a full remake/interpretation of the NES block breaking game Arkanoid, I felt good about fully completing a project, so I decided to revisit that old project. With one difference though, instead of finishing my old project Barroom Billiards, I decided to rather convert it into my own interpretation and remake of Lunar Pool on the NES.
Project Objectives:
Once I made up my mind about converting my old project into this remake I set out the following goals I wanted to achieve:
1 – With some exceptions remake the game in its entirety. With how much I enjoyed finishing the remake of Arkanoid this was my top priority.
2 – Set a fixed time frame to complete the project in. Starting the second week in March I set myself a 10 week deadline to finish the project.
3 – Get some sort of familiarity with the MetaSounds system. (Up until this point in time I had only used sound cues.)
4 – Learn how to create a modular kit to easily produce the various stage layouts. (I have mostly worked with made-to-purpose meshes for the 3d projects I worked on, and wanted to familiarize myself with creating modular kits for game development application)
5 – Do not try and make an accurate physics simulator, instead try and match how the balls moved and collided on the default settings in the original game.
6 – There is no need to make the ‘friction’ user settable like in the original, only focus on the default settings.
7 – Only focus on the Single Player mode from the original game. Leave figuring out AI behaviour for a versus CPU mode in a future game remake.
8 – This game project can not be released for distribution, not for sale, nor for free. And can only be a personal hobby, educational, and portfolio project.
Production Overview :
Even though my initial intentions were to convert my existing project from a few years ago into this remake project, in reality I am happy to say that, that didn’t go to plan. After I took one look at the blueprint spaghetti monsters I scripted 21 months ago, I realized how much I learned over that time and decided to start the project over from scratch. (With the exception of migrating over some meshes and materials)
To my surprise, recreating the gameplay mechanics from scratch took a lot quicker than what I expected. It only took me a weekend to redo all of the work done prior, and because I completely reworked how the blueprints functioned, I was able to fix/solve a lot of the bugs I experienced when attempting to make Barroom Billiards. On top of that, the reworked system also gave me a lot more flexibility and scalability in how the levels worked. The blueprints were very ridged before, for instance, I could not alter the amount of balls in play per level. However, the reworked scripting meant all that was flexible.
At this point in the project I felt optimistic about the project, and even entertained thoughts that I might be able to finish before the 10 week deadline I set for myself. Sadly, that did not last. Firstly I failed to account for all of the long weekends and public holidays that would occur between the middle of April and May, and how that would disrupt my day job. And secondly, I had a spike in new projects coming through for my day job from clients. With my regular day job as my priority, It did mean that I had ended up about 2-3 weeks behind on where I would have liked to have been with this remake at the end of this period.
I must admit that this did affect my attitude towards the project negatively. Thankfully I have a very supportive wife that was able to keep my spirits up, and working towards completion. With an adjusted deadline. Even though I was able to keep going, the slight feeling of unhappiness towards the project never fully went away. I assume this was possibly because of the project’s past baggage being brought forward on top of being behind schedule.
One thing I was satisfied with was the implementation of the in-level UI. I interpreted the graphics from the original Lunar Pool to represent some sort of 80’s physical console, and wanted to create a similar set-up. I did redesign the layout a bit, adjusted it for wide screens, and split the power meter to be at the bottom of the screen so that I could centre everything nicely. I thought the use of the old calculator font and the blinking lights worked out well. Though I do think the main menu could probably have been done better.
The creation of a modular kit I could use in Blender to quickly snap together the table layouts worked out better than what I expected. But, as the production of the stages went on, I found myself always having to add more pieces to the kit here and there. Which led me to believe that ‘no modular kit would ever truly be complete’.
I did not reproduce all 60 of the stages in the original game though. As I realized the original game only had 30 stage layouts duplicated with alternative ball placements. This felt like cheap padding, So I chose not to do that.
As for the physics: I think I was able to match the arcade like, almost frictionless, feel of the original game. With predictable, consistent, and reproducible results when running at a steady 60fps. However, when I look back at the longplay footage, I have come to realize that it does look a bit floaty. But, I think this could easily be fixed by always having the balls point their numbers up towards the camera like in the original Lunar Pool.
I did manage to get some familiarity with MetaSounds, and I like how I could easily have interaction between my blueprints and it. I was able to have all of the ambience, level start and end sounds, ball lost sounds, and more be controlled and triggered in one MetaSound actor. I will really use this more in the future. The ball collision sounds were still using the legacy SoundCue system though, where I could easily just have the movement speed drive the volume on play at impact.
In Conclusion:
In the end, I did not enjoy the entire process of this remake as much as the Arkanoid remake I recently finished. I assume that is due to the longer history with the core project concept. But, what I did enjoy a lot was completing my second full project in its entirety. I am also satisfied that I did achieve the learning outcomes from the project that I wanted. Especially learning to work through some discomfort in a project without abandoning it, and continuing my new found work culture of working towards a goal.
I must admit, it does feel good to finish something that I abandoned in the past, knowing that I can return, convert, and then complete it. Now it is time to pick a new project!
Here is a link to the full playthrough I did of the project:
I did also make a short trailer for this project a week ago: