Lunar Enigma

Latest Posts

It’s been over 2 years since the release of my first game, Lawnmower Challenge, and over a year since the sequel was actively being worked on. The sequel, which will feature a panda instead of a lawnmower, is nearly complete and has been in that state for a very long time. It’s finally time to push through the last 10% which means I need to find a talented programmer who can help.

So without further ado, here is the job posting in all its glory:

Classifieds Ad

I am looking for an experienced C# Unity programmer to help finish the last remaining features, crush any bugs, assist in polish, and help release to the Apple App Store. The original Lawnmower Challenge was selected for the PAX East Showcase in 2012 along with 5 other games which included Spell Tower (Zach Gage), Super Crate Box (Vlambeer), and Beans Quest (Kumobius). This second version addresses many of the issues of the first, adds a lot of fun features, and focuses more on player retention/acquisition and monetization.

I am open to paying a lump sum for the work or offering a percentage of rev-share (or a mix of the two). Ideally, I’m looking for someone who can help out with finishing the game for a portion of the rev-share that was agreed upon for the original programmer. However, knowing that rev-share is usually looked down upon, I wanted to offer prospective programmers a lump sum payment, although small, to show my commitment to the project. Basically, I want to tell you now that there is some risk involved with this project, if you are to take it on, but most of the game is already finished and the first version was featured at PAX.

If you are not interested in the project but might know of someone who might be, I would appreciate a referral. If you are interested, however, please send me a message at peterchoi@lunarenigma.com.

Basic Requirements

10-20 hours per week

Deep understanding of Unity3D (v3.5.7) and C#

Excellent communication habits

Experience with NGUI, Prime[31] SocialNetworking plug-in, and IAP a plus

What’s Left To Do?

Level packs (actual level design and level groupings) are organized and game objects are put in place in the scene.

Functionality that controls level selection does not currently exist.

Character needs to move to tile that user selects or if the tile is unavailable due to being locked, the character will instead move to the nearest space. When character is on a valid space, the buttons at the bottom will display information or become buttons depending on the context. One button context will allow the player to play the currently selected level. Two button contexts will display the price to unlock the gate in diamonds or stars. Another button context will show what level number it is.

This same screen will also contain a number that displays the player’s diamond, coin, and star count, in regular rotation. Tapping the count will force it to rotate to the next value (star, coin, or diamonds).

Level tiles will show one of five different art assets corresponding with how many stars have been earned if the level has previously been completed or a default art asset if it hasn’t yet been completed.

There are several dialog screens that will pop up depending on how the player interacts with the game (including the level select screen) and these menus will need to be linked appropriately.

Achievements

Achievement system does not currently exist and functionality needs to be coded.

Achievements such as mowing X grass tiles, taking X steps, growing X tiles of grass, earning X coins/stars, or getting into very specific conditions on a level are a couple examples of what will need to be added.

Tutorial system does not currently exist and functionality needs to be coded.

The tutorial is a set of the first levels the player can access. They will take the player through the basic mechanics by doing instead of showing/telling. Hints will appear on the screen to guide the player.

IAP and Item Store

The actual assets and their layout in the scene are about 50% completed.

The back end code for IAP and store are non-existent and need to be coded or a IAP plug-in needs to be integrated.

The system should be coded in such a way that allows the designer to add, remove, or edit items in the shop. Items need the ability to be put on sale for a certain time.

Some items will be a one-time purchase that do not expire. Others will be consumables that must be purchased again once they’ve been used up.

Game Center & Social Integration

Basic GC and SI will be needed.

Plugins can be implemented.

The game needs the ability to be able to connect with friends via GC. Players should be able to compete - # of coins earned, # of stars earned.

Twitter integration will allow the player to upload a screenshot of the completed level with stars/coin overlay with a short message and link to the game in the App Store. Should be configurable by designer.

Facebook integration will allow the player to announce certain achievements (such as unlocking new levels/level packs, unlocking new tile types, completing a level, earning X stars or coins). Each message will have an accompanying image and link to the App Store. Should be configurable by designer (see http://redd.it/2hybgw).

Metrics Tracking

Either gameanalytics, Amazon’s new mobile analytics program, or other analytics provider that the programmer suggests (low cost or free)

Loose Ends

There are plenty of miscellaneous loose ends, each of which do not warrant their own section but will nevertheless, need to be addressed and fixed.

Custom Player Levels

Not a confirmed feature but if the programmer desires to go the extra mile, the addition of this feature can be discussed in more detail.

This mode of the game allows players to create their own levels and share them with friends and the world.

Some loose ends include:

Update NGUI from 2.6.3 to 3.5.9 if needed. Some errors associated with the depreciation of UIDraggablePanel to UIScrollView pop up when updating. Updating NGUI is not absolutely necessary but if it makes it easier for the programmer, the option is available.

Next button on after-level screen popping menu system objects too many times and instead of loading the next level will go to the level select menu.

Activating lawnmower will cut grass tile that it resides but will not attach to the player until second activation. Has to do with a message activated action triggering twice.

Display how many consecutive undo actions a player has available over the undo button. The default number of consecutive undos should be accessible and easily changed by the designer. Additional undo actions that allow the player to go beyond the free default number are available for purchase in the shop. If a player purchases additional undos, the number should reflect the number they have available.

In-Game HUD needs to be slightly edited in arrangement. Some buttons will be removed and the in-game pause menu will be changed. Just switching out some assets and linking up the menu buttons.

‘My Profile’ page does not exist but needs to be added. Assets need to be arranged on screen (the designer will do this) and they need to be linked up with proper data. Random stats will be displayed on this page.

The ‘News’ page will show the user what has most recent changes were. Should also display advertisements of other games by the same studio. Best if it can be updated on the fly but if it’s too much, then we can simply update it when the app is updated through the App Store.

Retry is a free-to-play retro-styled one-button side-scrolling game developed by Rovio and is available for iOS and Android. The game seems to be heavily inspired by Flappy Bird in its styling, no-remorse difficulty, and controls. The goal of the game is to carefully control an airplane’s flight path from one hangar to another with the ultimate goal of getting to the final hangar in each stage. The tricky part is the difficulty of controlling the airplane without crashing into obstacles that litter the path. Holding the button will cause the plane to do loop-de-loops - tapping it just right will cause it to glide in a relatively straight line.

The most interesting thing about Retry is the way it utilizes habit formation to encourage (and perhaps trick) players to spending money on IAP.

Doing a loop-de-loop in Retry

Monetization

IAP are are very discrete in Retry - at least in the early stages, which is when you want to be careful to not scare off potential paying users. Coins are primarily used to use checkpoints that are scattered throughout each level. So technically, a player is never forced to put money into the game but activating the checkpoints does make it a lot easier to progress through the levels.

The checkpoints can also be activated by watching a short full-screen video advertisement. Many checkpoints can be unlocked this way without any monetary cost to the player. There is a limit however to the number of checkpoints a player can unlock for free via ads. The number is large enough for the player to develop a habit - which starts a cue, is followed by the player’s routine, and finally completed with a reward (all reinforced by a neurological desire to complete this loop). Retry discretely reinforces the player’s craving for the reward by giving them many opportunities to unlock checkpoints for free. After the player is hooked, free checkpoints via video ads become disabled and only the option to unlock via spending coins remains.

Coins are extremely limited as you only earn coins by collecting them in each level (non-renewable) and from cashing in completed achievements. Since it is so important to unlock checkpoints in higher, more difficult levels the need for coins only increases with each completed stage. On the other end of the spectrum (the first dozen levels), coins are abundant and checkpoints are unnecessary to complete levels.

In addition to unlocking checkpoints, players may utilize power-ups, which require special silver coins, to help complete the more difficult levels.

User Interface/Experience

The UI in Retry is very simple and typical of modern retro-styled pixel-art games; however, its simplicity allows users to easily and immediately distinguish different parts of the UI. Menu buttons are unified by the color yellow and are grouped up to the left edge of the screen. Most of the other buttons are also yellow - the exception being green play buttons.

Pause screen showing alignment of menu buttons

The pause/current-level button remains on the screen in the top left corner at all times - during play and when viewing any part of the menu system - which makes it easy for the player to find the menu.

Player Retention (via Achievements)

Achievement award redemption

Coins are awarded for all achievements but only if the player unlocks the achievement, visits the trophy menu, and clicks on the corresponding UI button - in contrast to traditional achievement systems that instantly reward the player as soon as the achievement condition is met. This simple design of forcing players to visit the trophy page increases the chances of getting them to browse the other achievement. Knowing that coins can be earned by completing achievements encourages players to seek those rewards and ultimately play the game longer. The achievements are designed in such a way that it mimicks a typical task-reward curve - that is, the first achievements are easy to obtain but as you unlocked more and more rewards, the achievement conditions become less trivial. This delayed reward system follows the difficulty curve of the game very well and only reinforces ‘good behavior’ (playing more) in players.

It’s nearly been a year since my last post, which happened to be about DIY on-the-cheap white-boards, but I’m back now with a desire to at least write one more post. I don’t know how long I’ll be keeping this new found desire to write going.

Post Content and Focal Point

A good majority of my posts to this blog will focus on iOS game analysis. Specifically, I will be analyzing free iOS games in the following categories:

In our oh so digital world it’s easy to collaborate and work on ideas online. There are a plethora of free useful web tools that offer a long list of features. But sometimes analog is just better and this is often true with white boarding new ideas.

White Board Options

Let’s face it. The cost of white boards are usually prohibitive to most indie developers. $30 for a 2’ x 3’ is not something to sneeze at - plus, 2x3 is tiny for all the ideas we will be thinking up. A ready-to-use melamine 8x4 white board with hangers in the back and marker rail can cost you $240 ($7.50 / sq ft) at your nearest office supply box store. So that’s definitely out of the question for me. Plus, I don’t like the restrictive nature of this type of board. If you want to double up on them the bevel will make it hard to use.

Another option is a paint specifically made to act like a white board surface. The most common one that I hear about is called IdeaPaint. This stuff is pretty cool. You literally (yes, I know this word no longer has any meaning) paint the stuff on a wall, let it dry for a couple days, and use it like a white board. If I had the money, I might invest in this and turn all my walls into white boards. However, the cost is still prohibitive at $225 per bucket which “covers 50 sq ft” ($4.50 / sq ft). So cheaper than buying a physical white board if you don’t count the painting supplies and primer which can cost around $30-40. Still too costly for me.

The third option is to purchase this awesome construction board called “Thrifty White” from your local hardware store. This board is 8x4 for a total of 32 sq ft and according to the website costs $13.38 ($0.42 / sq ft HOLY COW). The price must have increased because I remember spending less than $10 on all my supplies. This stuff is very similar to the material used in white boards and is extremely cheap in comparison. You’ll need to do some handy work to get it hung up though since the board is more than a couple pounds. A couple of screws and washers will do the trick though.

My Experience

Thrifty White isn’t exactly the same thing as white board but it’s damn close enough for me and at the price I paid, I’m extremely happy with it. The first thing you need to do is to find the location of the studs in your wall - you can do this with an inexpensive stud finder. If you don’t have one you can pick one up for $5-10 at a hardware store and you will probably use it in the future for another project anyways.

One thing to keep in mind is that these boards are not specifically made for this purpose and may be beat up a bit. Some may have scratches on the white surface and others may have fraying on the edges and corners. Look for a good piece that you’re happy with. If not, ask them to hold a couple clean ones as soon as the next shipment comes in.

Screw and washer

You may want 1 or 2 people to hold up the board on the wall while you secure the screws into the studs but I actually accomplished this by myself with no help by propping up some boxes to hold half the board while I held the other half. You’ll need a power screw driver with a drill bit to drill holes into the material first. If you don’t have drill bits or misplaced them, like I did last year, you can probably still force the screws through the thrifty board with little force - I did this and it worked perfectly for me. Make sure you get wood screws and washers that fit the screws. I used 8 screws to hold up the board in total.

Marker Residue

One issue with the board, and with nearly all white boards, is left over shadow residue from old marks. The photo really shows it but when looking at it in real life it’s really not as bad. Be sure to use your favorite glass cleaner to remove stubborn marks and you should be golden. Leaving marker on the surface for months on end may be more difficulty to remove but will come off after two wipes.

This time I would like to talk more about the tools behind Taia Arcana.

PlayMaker

First in the tools list is PlayMaker. I touched on this in the last post. We are using PlayMaker to setup a visual design platform to create bullet patterns. They can be complicated and a bit nested at times. But since it also allows for a more modular approach you just use the building blocks to create what you think is cool. Being able to see how its working really reduces the time it takes to get feedback on ideas.

Retiled

Next up is Retiled an in house tool parses files from Tiled to get them into Unity. It does more than just put textures on meshes and draw renderers. Tiled offers properties at many levels that provide ease of scripting in the editor or at runtime. This lets the artist/design quickly set properties to make in game scripting fire without worrying about how it works.

Tiled

Tiled deserves its own category. The power behind this tool is really amazing. It is a free open source project that can be found here.

Sprite Lamp

Last but not least is Sprite Lamp. This is a 2D lighting tool that just recently popped on the radar but proves to be an amazing asset. Sprite Lamp is running through a very impressive Kickstarter at this time. We are working closely with the developer to have the opportunity to use this product for Taia. Below you can see some early sample artwork after being run through Sprite Lamp. It should help set the mood. Enjoy!