Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

[DevLog] O+

A topic by m.zadz created Jan 06, 2018 Views: 588 Replies: 16
Viewing posts 1 to 14
Submitted (1 edit)

[NOTE: I orignally had the idea of naming this game MO+ but changed it to O+]

Game Synopsis

Test your skill, memory and reflexes to the limit with over 40+ levels and unlock the truth about O+ (originally called MO+ but changed my mind) --> A puzzle game based on simple programming language concepts.

As you progress through the puzzles, you will unlock data that reveals the memories of people in a time of chaos and corruption.

Game Mechanics

MO+ is a puzzle game that takes place in an unconventional virtual development environment where you code by combining containers that are bouncing within the screen. When certain containers collide with each other - something will happen. For example, the screen will turn upside-down etc...

About Me.

Hi, I'm Mo Zhaddul Alam and I'm a 26 year old hobbyist game developer. I always had an interest in coding and, through Unity and C#, I've learned a lot about coding and game development in the past 2 years. I haven't shipped nor finished a game properly but through this GameJam I hope to do so.

So Far...

I've finished some coding and made half-a-prototype with some very basic vector art. I've made a plan of the story- begin-mid and end. I plan to upload images soon so that you have  better idea of my game.


Interesting! I'm not totally sure what the gameplay involves, but it sounds unique.


Thanks aliengeometries. I plan to upload some images/GIFs of my game to give everyone a better idea of the gameplay. I cant think of words to describe it better lol.

Submitted (1 edit)

Update #1 - Early Days

Good Morning/Afternoon/Evening (depending on where you are) fellow GameDevs. I thought i'd give an update of what I've done so far.

I have created some simple assets to be used in my game. I have also made a simple prototype where I can test out the gameplay mechanics.

Meet the Functions:

Meet the Variables

Some screenshots of the work so far:

Mul() {5} produces more containers:

Rot(10) {5} rotates the screen by 50 degrees clockwise:

ViewPos() {F} inverts the screen.

Timer(){5} pauses everything in place for 5 seconds and Destroy() {F} destroys itself as well as F container.

Each level will contain a mixture of function containers and variable containers. The aim of the level is to clear the field of containers, then you can progress to the next level.

However, you will be unable to progress if you combine a function container with another function container or an incompatible variable container. In such cases an error message will appear onscreen and you would have to restart. An example for an incompatible combination would be Timer() {F} or Mul(){F}.

In terms of the function-variable combinations - I am more or less finished with most of the ones listed above. One or two will need more time like MinMze() {T} which is supposed to minimize the in-game application.

If you have any ideas of functions and/or variables that you think would be a good gameplay mechanic, let me know and i will try to implement it in this game. If you have any questions regarding this soon-to-be-made game, I'll be happy to answer :).

Thanks for reading and Happy Game-making!

Submitted (3 edits)

Update #2 UI stuff

I've changed the background style a bit. I have also been working on the main menus and UI. I've made a rough outlines of the menus in the game:

  1. Title Screen
  2. Introductory Menu - A menu before entering the main menu to enable some settings like background color etc..
  3. Main menu - Includes the levels or "modules" of the game
  4. Data Menu - where you can access data that has been unlocked whilst playing the game

My goals are as follows:

  1. Create the Menus
  2. Create the Levels
  3. Create unlockable data

Submitted (1 edit)

Update #4 #3 Working UI and Tutorial

Hi guys. Hope you guys are enjoying the jam as much as I am. Had the full day off today so managed to get a few things done. There was a few bugs here and there but thankfully, I managed to fix them. So far I have....

  • Made a level progression system in script
  • Finished the main menu
  • Created UI elements
  • Created a Tutorial Level

Main Menu

Tutorial Level Screenshot (click for video link)

You probably notice that the font in the main menu on the buttons is different from the one in tutorial. I will change this later on. All artwork was created using InkScape. Next up, I will make some Levels (which is the fun part) and then concentrate on the data menu and title screen. Thank you for reading.

I didn't get it from the initial description, but now that I've seen it in action this looks like it could be a really cool mashup of genres, especially in a puzzle game where you can change up the goals on a per-level basis to reward deep understanding of all the functions and what they do.


Thanks! I had the idea of level specific goals. That was one of the first thing I thought of. It's going to be tight to see whether I can implement this as I am assuming it will be a lot of scripting. At the moment the goal for each level is the same - Get rid of all the blocks on the screen.


Update #4: Levels and Functions

I made yet more UI stuff. To facilitate progression from one level to another I made a mock-up of some pop-up messages. One to say you've completed the level (module) - the other to say that you haven't or did something wrong.

In addition to this I made roughly 5 levels which gives you an idea of what each function does. It'll take less then 5 minutes to get through this levels. I've made 5 more levels which are more challenging and can take an 30 secs to 3 minute to complete. So that is 10 in total.

I've also updated the lists of functions and what they do. Note that the ones I have crossed out have been abandoned I felt that they didn't do much in terms of gameplay:

  • VIEWPOS() : When combines with F (false), inverts the screen. With T, reverts back no normal screen position.
  • TIMER() : combines with a number and freezes time for that many seconds.
  • TIME(): makes everything fast by a factor of the number it collides with.
  • MONO() : when combined with T, turns the screen black and white.
  • SIZEDWN(): Combines with a number and reduces the size of all containers by a factor of that number.
  • SIZEUP(): Direct opposite of SIZEDWN()
  • PHYSICS(): Increases gravity in-game when combined with T. Reduces it with F.
  • VIEWX and VIEWY: Moves screen in x and y position.
  • DESTROY(): Destroys itself as well as the other variable it makes contact with.
  • STORE(): Destroys the other variable it makes contact with.
  • MUL() : can combine with a number and produce multiples of that number. For example MUL() 9 will produce nine ones.
  • ROT(10) : Rotates everything by the (collided number X 10) degrees clockwise.
  • MINMZE(): Can combine with T, to minimize the panel that it occupies.
  • RES(): when combined with a number, it pixelates the screen. The lower the number the more pixels. <-- NEW
  • EXIT()

I've always found handling Unity UI/GUI, Unity events and combining the two most difficult and this was really important to progress from one level to the next.

Thankfully, with the help of Unity documentations and one or two tutorials I've managed to make something work. Through this process I have developed and understanding and appreciation of events through Unity as well as C#. So its been a huge update for the game!

Thanks for reading.


whoa i agree with the other comment--it's actually pretty cool seeing how you're combining diff mechanics in this puzzle game and it definitely helped me to see the gif in action. i really like the framing of this as a programming language--it's kind of campy and really fun and i think presents a lot of interesting potential.

as a quick note i wanted to mention: the bright green bgs/sprites are a little harsh to look at for more than a few minutes--maybe even inverting this w/ black bg/green text might be easier on the eyes? (and even look pretty cool: like code or something) as a prototype, visuals aren't the most important, but i think it'd be worth experimenting with different colors.


Thanks! I agree with you with the backgrounds. Rest assured, that is something I am working on. Any feedback is valuable.


Update #5 Levels, Levels and more Levels

I have been making levels mainly. Other than that I've created a simple countdown timer prior to each level starting. I've also changed the color theme to something more simple and (hopefully) easier on the eyes. I done a little playtesting - My niece said it was better than all green screen :). I've also created a way to adjust the screen brightness.


Update #6 - A few Changes

The main change I made is to the Title. I am going to call this game O+ rather than MO+.

I have a working prototype available, with over 40 levels. 

The UI is done. unpolished but done.

I've honored the theme of the Jam and implemented and wrote a story by the theme of memories. The story is about a fictional past where an unknown entity has corrupted all the major computers in the world. Project Phoenix, which is a team created by the government, is investigating the cause and trying to stop this epidemic.

The only thing I need to do is add audio to my game. That's it hopefully.

I'm excited and can't wait to play all the submitted games.

Submitted (1 edit)

Update # 7 - Final Update (Hopefully)

Last time I said i'd just finish off with adding audio but I got a bit carried away. I'm enjoying making this jam too much so I added a few things more:

  • End-level boss fight (no screenshots - don't want to give too much away)
  • bouncing sound effects + other sfx.
  • Settings menu
  • Playground mode - to familiarize yourself with what all the functions can do. This possibly can be extended to a level editor in the future post-jam.
  • Minor infrequent elements of horror. My niece didn't get scared though when she was playing the game :( 
  • Dynamic saving after level completion. Dynamic loading on application startup - using JSON. However, I feel like i need to check on  different computer to see if this works 100%.
  • Title screen animations
  • Thumbnail to display on
  • Fixed several bugs.

Building the game was difficult and Unity was not allowing me to deploy the game as a standalone application. Thankfully, the community and discord helped a lot during the whole process. Thanks guys!!

The game will be published soon, after I've done one final quick overview checks for bugs of the build. This will, by no means, be a finished product. I will be expecting bugs and I may intend to keep polishing this game post-jam.

I will regard this as my first ever game that I've built. There will be more to come.


Submitted (1 edit)

QUICK NOTE: on my finished game page for O+, it says that the three game can  run on Windows, Linux and Mac. This is incorrect and, at the moment it runs on Windows only.

I will try to upload a Linux and Mac version soon.

Submitted (1 edit)

Update #8

Ive made Linux and Mac versions of the game. I've also fixed a few bugs/errors (I may add more to this list in the coming hours):

  • The slider in the settings menu is intractable now
  • You can press enter on the keyboard, when you are on the console, rather than pressing the button named "enter".
  • Some "module" buttons on some levels were not working. That's now fixed.
  • The exit button on the repository is now visible and you can press "ESC" to go back to main menu. You can also press escape from the Playground scene to go back to the main menu.
  • There were some errors where both the "winner" and "loser" pop-up messages become visible. This is fixed now.
  • The game does not pause at the end of the levels now. 
  • All UI elements now fit on the screen and gets scaled according to the size of the window.

Currently known bugs:

  • The game doesn't save your resolution settings. Possibly something to do with the script.
  • The resolution drop-down has multiple options of the same resolution.
  • Some buttons are missing in Playground mode.

Post-jam goals:

  • Creating a refresh button
  • Further polishing the UI
  • Adding voice-overs
  • Creating more levels (dependent on user feedback)
  • Creating a level editor/maker.
Submitted (1 edit)

I've added a small tweak to the game. There is a restart button on every level, so that you don't need to go back to the menu to restart a level. I've uploaded the new builds as version 1.3.

I intend to continue development postjam. I will be migrating my devlog here and follow me on:

I will also post major updates on facebook:

+ unity connect:

This jam was a great experience for me from start to finish. The community is amazing and kept me motivated. A special thanks organizers and admins who organized this jam. Now, time to try out the entries.