Introducing U.F.O. GX

U.F.O. GX

I am participating in a gamejam for the first time ever and U.F.O. GX is my entry.

About the game

The game has a single player and a multiplayer mode, the latter is endless while the former is a versus match.

1 Player: Avoid crashing into asteroids and comets for as long as you can, the game will gradually get faster over time. With practice you can master the game even at its maximum speed. Collecting a battery will make you temporarily invincible.

2 Players: The objective is the exact oposite, you have to crash into as many asteroids as possible before time runs out. The player with the highest amount of destroyed asteroids wins.

The single player mode can be played on mobile browsers using a touch screen.

About the development

I spent exactly 7 days to design, develop and playtest this game.

I have to admit it was a fun experience but at the same time I kept thinking “will I get this done in time?”, because like I said I have never participated in a gamejam before so the short time to do a game from start to finish made me extremely anxious.

Foundations

Since this is a gamejam specifically for a game that will be included on the “No internet” page of Opera GX, I had three major things in mind when designing it.

  1. Gameplay - It can not be too complex on its controls or rules.
  2. Portability - It has to be playable on both desktop and mobile version of the browser.
  3. Visuals - It has to feel as part of Opera GX’s design language.

1. Gameplay

Initially I was thinking of making a game that would only require one button to play, but working with just one input is quite difficult, so I quickly changed my mind and decided to include two: left and right. So it would still be easy to pick and play using only the mouse pointer or touch screen.

With the controls set, making the rules of the game was pretty easy: There are five columns you can place the UFO, only one of them has no asteroid at a time so the UFO can keep moving up, crashing into an asteroid is game over, the more you play the faster the UFO gets.

To put some variety I’ve included comets as a second type of obstacle, they are pretty fast and will start to appear once you reach 30% of the game’s maximum speed (it always starts at 25%).

Tip: Comets will never spawn in your trajectory. So if you hear one coming before it appears on screen you should think carefully before changing your own trajectory, especially when the game is at high speeds.

I have included battery power up solely for the purpose of giving a feeling of satisfaction every time you collect it, but it also allows you to take a break for a few seconds. ☕

One thing you should note is that your speed does not affect your score, even if you collect a battery. Why I did this? Because I didn’t want the score to fluctuate due to a random number generator, so it doesn’t feel unfair.

As for the multiplayer, I originally wanted to do something similar to the single player mode, but I started to realize some problems:

  • It would be the same as just duplicating the window for both players to play the exact same game, which I personally think would be lazy and redundant.
  • If I included both players on the screen at the same time following the same rules it wouldn’t work well:
    • What if one player overlaps the other every time they move? That would be annoying.
    • What if one player pushes the other player to different path when they intersect each other? That would be frustrating because one would be forced to lose even if they are playing well.

For the last point there was a very simple solution, I could make only 3 asteroids appear on the screen instead of 4. So even if one player chose an empty path the other would still have an option. But then again, in my opinion this would just feel lazy and it wouldn’t be much different than opening two windows running the exact same game.

So I decided to try a different approach, which was to reverse the rules, which ended up working way better than the other things I tried using this concept. The only downside is that the final multiplayer isn’t an endless mode, but it does have a RNG to make each match different from the previous one. Also, I kept the idea of players pushing each other every time they intersect their path as it perfectly fits the rules of this mode.

2. Portability

The main justification to make a game that require as little inputs as possible is portability.

As an example, Chrome Dino can be very easily ported to almost anything due to its simple controls, so much so that it is also playable on Google Chrome mobile.

And as you know, Opera GX is not a desktop browser only, it is also available on mobile devices. So that was something essential in the designing of the game, an example of this is the game being in portrait mode, so it can be easily played with one hand. ✌📱

3. Visuals

For the third point it comes to the visuals, I chose colors similar to those used in Opera GX’s design language.

Default Palette

Another thing about the visuals is the art style, I could have drawn all graphics in wireframes, something like those arcades that used vector graphics.

But the main reason I have not done this is accessibility, on small screens it would be it too difficult to see the important elements, and as I said I’ve not designed this game exclusively for the desktop version of the browser.

Wireframes also would make it more difficult to design a friendly looking character.

Trivia: I have included nine color palettes in the game, which three of them are inspired by the original GameBoy, GameBoy Pocket and GameBoy Light. 🌚


Have not played it yet? Then play it now 👇

Comments

Introducing gdProject

UniMaker DX source code is now public!

Customization Guide | UniMaker