Micro Arcade Development

Early Developments

20th – 26th Janurary, 2020

The first week was mostly focused on getting everything setup ready to go for the project, this included getting important documents started, researching solutions to potential problems that may come up during the project and beginning to prototype some of the core features of the software product part of the project.

I started this week by completing the project proposal, a formal document that is required before the project can be officially started. This document summarised what the project was about, some of the aims and objectives and a basic risk assessment to start things off.

On the Wednesday I had the 2nd part of the FMP presentation, this went into more detail about what is next for the projects and how we should be conducting our weekly workflow. They recommend 33 hours a week on the project, which makes sense as it is a double unit. I decided to dedicate Monday, Tuesday, Thursday 9-5 & Saturday 11-7 to the project, making up 32 hours consistently. Then making up the remaining hours each week either on Wednesday afternoons, Friday mornings or on the evenings on the dedicated days.

Later in the week I focused on designing the games for the cabinet. I decided upon a simple 2-layer verses pinball game to be the retro game, it’ll be high score based with lives and bonuses for outlasting your opponent. The modern game is going to be a co-op bullet hell game with 3 parts and a final boss.

Lastly, I worked on the menu system and prototyping the first game. I hope to have the first game feature complete by week 3 and have it tested and ready to go by week 4/5. The menu system is fully setup and works as intended, it is not polished at the moment but that will be worked out as the games get developed.

A Few Weeks Later…

1st – 9th February, 2020

So, this weekend the cabinet got its last piece, the perspex screen. However, there is still a little more to do, as I made a mistake. There has also been a lot of work on the software project since my last post so here is where we are at currently. The main menu has had a lot of work, with a selection of canvases running the system. This is by far one of the biggest parts of the project as it controls all of the settings and game access etc. Below just shows the hierarchy as it currently is along with how the menu system looks right now.

There is still a lot to do on the menu system as the game settings, credits reel & joystick sensitivity needs sorting along with the artwork and sound. This will be worked on periodically while I work on the main games.

Pinball Progress

There has been a lot of work on the code side of things, getting the main systems sorted for the game. Currently I’ve got the following completed:

  • Player Flipper Controls
  • Ball Spawning & Movement
  • Bumper
  • Game Scoring
  • Game Types
  • Game Win States
  • Game Over Screen

Considering I took most of the last week off to take part in a game jam, I feel I did quite well on getting the main mechanics coded. Speaking of game jams…

Game jam???

I took part in the CGFX 2020 game jam last week (Feb 3rd – 7th). I made a game called Displace, where you take photos with a camera to get rid of obstacles and rob the bank. There wasn’t much of a game to show really, due to how much I could do in one week, but the concept is there, and it won the award for most potential which I’m pretty happy with. An extra thing the game does is it saves the photos you take in the game so you can view them afterwards, including the ones the enemies took of you. You can see the game and give it a try by downloading it from it’s itch.io page linked below.
https://carter-games.itch.io/displace

More Cabinet Construction

So, this brings us to this weekend. Where I got the last bit for the cabinet, that being the light strip perspex. But there is a little problem here! This been the fact that it is not quite tall enough for the gap. So, it’s time to get inventive. I have a few ideas to solve this problem:

  • White electrical tape layered up either in front of the Perspex or on the same line as it
  • Modelling wood, cut to size and put on the bottom edge to fill the gap
  • Some kind of corking, not sure if it this idea would work though
  • Get a new bit of perspex, rather not do this though.

I’ve also got a bit more cable management done, having the power strip attached to the back of the monitor mount and a hole in the back board for the power cable to go out of so the box can be closed off and just have a power cord coming out the back.

Last Prgress Update

9th March, 2020

Game Menu

This has had a lot of work and still has a fair bit to go, but a lot of the ground work is there. The script that controls this is by far the biggest script of the entire software product, currently being 585 lines long. There are still a fair few features missing from the menu; currently the game selection is being re-worked to accommodate more than two options & the game settings need implementing entirely. This is work I plan to do before classes on Fridays from now on as I’d like to get it done before April as the last month will be super busy with post production, deadlines & running.

Progress Report

So, on the 2nd of March I had my first graded assessment, this being the progress report. This report had been worked on for the last few months through ungraded mini-reports designed to help make this report easier. 

Ultimate Pinball

So, the first game was planned to be completed by the end of February. Well that didn’t fully happen….Not to say it wasn’t complete, but there were a few missing mechanics that need adding and the game could use some tweaking/polish. But due to the tight schedule and scope of Operation: Starshine (the 2nd game) I had to focus on making that game for March so I can still deliver the two games. Speaking of…

Operation: Starshine

While only 9 days into development progress is good for the new game. Currently all the ships the player can choose to have their stats setup on start, can shoot both their weapons and move around the scene. The movement still needs locking so the players can’t escape the camera and shields need to be added as well as some basic artwork and stages. So basically, a lot to do still 😊.

Cabinet Paint Job

The last major progress has been the cabinet itself. As of today, I’ve got an extra £60 which I can put towards the cabinet. I’m planning on producing some artwork this coming weekend to be printed on to vinyl, giving the cabinet some much needed colour. Other than that, I have painted the sides, back and top black to give the cabinet a two-tone colour effect.

What will run the cabinet? Raspberry Pi?

With the cabinet already mostly done. I had to figure out what on earth was going to power it. Now that isn’t exactly a hard question as pretty much any computer can run the cabinet, it’s not exactly demanding kit for modern day computer hardware. However, I don’t exactly have a spare computer from the last five years lying around so It was time to get creative…

Raspberry Pi?

I remembered that I had an old Raspberry Pi from back when I did computing in school. While it felt like a long shot, I gave it a try. It worked, but one thing struck out instantly, it was terribly slow! Doing a little digging, turns out I had an original 2012 model B. The latest Raspberry Pi was the model 4 B which was close to being a full desktop. So naturally I ordered one of those. A few days later I had the 4 B working with the cabinet. But that wasn’t the last hurdle…

Trial & Error

While the Pi worked, it wasn’t able to run the builds from Unity natively. This was a big problem, as the builds needed to run on the cabinet. So, back to google I went, after some digging, I found several solutions which had varying chances of success. The first method I tried was using Quora, a poorly documented tool that would be able to run x86 applications. However, this seemed to either not work or I mucked up somewhere with the install. Considering everything I was doing was command line, there wasn’t much if any feedback the whether or not I was doing it right. So, I decided to leave that option there and try another one…The next one being WINE, which was a package that could actually be install from the package manager and was made to run windows programs on Linux. One large and seeming undocumented problem, it only runs certain windows applications, you can’t run your own. At least I wasn’t able to find a way to do it, next solution… The last method I researched involved making universal platform builds in Unity and doing some command line to get them to run on Linux. I decided to not even both with this method purely based on the forum discussions alone. It was a big no! Those who tried it and got it working only got around 5 frames per second, on a blank project. Now there were other solutions that may have worked, a good example is Exagear, which seemed promising, but based on the previous attempt I decided to leave the Pi there as performance would seemingly be a big problem with it.

Conclusion

So, what is running the cabinet? Well, my current laptop, an old HP 15-inch notebook from 2013/14 makes a good fit for the role. It can run unity games fine, can run a monitor without needing its screen raised, has all the right ports etc. So that is what I’m going with. By far it’s not an ideal solution as means there is some extra setup for the cabinet that requires the back panel to be removed every time, I want to run it. But it should work for the project. I’m sure if I keep the cabinet after University, I’ll find the time to put a compact PC into the cabinet to complete it.