Apple Spider (Casual arcade action)

#1

UPDATE: GAME IS NOW RELEASED ON GOOGLE PLAY!

Hi everyone! Apple Spider is my first release-worthy project in Defold, and it’s been a great experience so far.

The general idea: Spiders are taking over your apple orchard, so you need to fight them off. Throw apples to smash them and make Apple Spider (like apple cider… I know it’s a terrible pun, but I’m a dad :crazy_face:). Spiders appear on-screen in random spots. The speed of generation increases as you level-up. You have a few styles of attack (hand, package, and gatling gun), and some special items to help you (rain and bug spray).

I suppose it’s a casual arcade game? This evolved from me joking around with a clicker game concept, and gradually adding more complexity until it seemed fun.

I’ve spent many hours fine tuning the difficulty progression, and designing the scoring system to encourage some strategy. For example, there are bonuses if you do not waste any ammo.

Also trying quite hard to make the UI & overall experience feel semi-professional as well.

I’m likely going to target Android and Amazon first, then maybe try out Facebook Instant Games.

Gameplay clip:

What I’m liking about Defold (compared to LibGDX):

  • Development feels so much faster! The speed at which I can experiment feels so much higher. I attribute a lot of this to the message passing system and choice of a dynamic scripting language.
  • Integrated editor and tooling. Atlases, fonts, particle fx, are all way quicker to create & update.
  • Effortless performance.
  • Automatic asset loading.

Challenges so far with Defold:

  • Lua has taken some getting used to. I’m so used to C# and JS in my day job.
  • I’m starting to wish Amazon was considered a different native platform. I have to use a different advertising SDK for Amazon release, since many ad networks aren’t fully supported on Fire devices. I had success using the Enhance extension, and configuring it to use Amazon & Vungle ad networks. On the Play Store I was likely just going to use Unity ads to keep the bundle smaller. Anyone know of a simple way to handle this, besides maintaining an Amazon-specific git branch?
16 Likes

#2

Looking great and fun! The only thing that comes to my mind now is that the background is not in the art style of the rest and if you don’t want to change that, it could be good to at least blur it a little bit or tint it, so the rest of the game is in contrast :wink:

3 Likes

#3

I appreciate the feedback! :grinning:

The background is an interesting topic, actually. I apologize if I get long-winded here, but maybe someone wants to know how the sausage is made.

The first prototype that led to this game was a simple clicker, where you threw toilet paper at a photo of a crowd. I really like mixed media art, and contrasting cartoon graphics to a real photo felt right to me. Eventually, I added viruses that you threw the TP at, as if the hoarders thought they could stop the virus if they bought enough toilet paper! Of course that idea was banned by Google & Amazon for violating their “sensitive events” policies. Tech giants do not have a sense of humor…

Screenshot from TP Madness:

After those policy rejections, I pivoted the subject matter to squashing spiders since it might appeal to a larger audience. After few adult beverages with my wife, we landed on “Apple Spider”, and I loved it :laughing:

Keeping the spirit of the prototype’s art direction, I found a great apple orchard photo on Unsplash, and messed with the saturation & levels in GIMP to make it stand out a bit less.

One upside is that the photo background makes it harder to see some of the smaller spiders, so it adds a tiny bit of challenge. I worry that blurring it will change that, but I will definitely give it a try.

Long-term, it might be neat to replace that photo with more of a live background, with rustling leaves and other details. Maybe some day I’ll have the time and energy!

1 Like

#4

Nice work! To continue on the background topic, my concern would be that while visibility might be an added challenge, it risks being a challenge that doesn’t feel good or fair. I would liken it to intentionally adding a delay between clicking the mouse and the intended consequence of a click - it would make it harder to aim (or whatever the action is), but I think most would describe it as “poor usability” that just feels bad/wrong, rather than see it as a genuine design choice.

I think your idea about adding movement to the background (e.g. rustling leaves, like you say), would have the effect of short-circuiting our in-built movement detection system, and in my opinion would achieve your goal of having the spiders be difficult to detect in a way that feels legitimate to players.

3 Likes

#5

Great points on usability (and in effect, accessibility). I really appreciate all of this advice.

I’ll likely start prototyping some background changes in the coming days. In addition to the animation, it could be fun to add layers as well.

0 Likes

#6

I was able to spend a few hours on the game today, and prototype a new background/play area design.
Most of the time was spent drawing somes leaves in Inkscape. I enjoy art, but it sure is time consuming!

First I simply tried blurring the background and adjusting the “curves” to make the game objects stand out more. I’m not a big fan of how it turned out on its own, since it makes it too easy to see the spiders.

With blurred background:

The next iteration was to randomly scatter some leaves & apples around the edges of the screen. The z-index is also varied, so roughly 10-20% of the leaves with cover a spider if it crawls underneath. I’ll need to develop a more advanced algorithm to place the foliage, but I’m liking where this is going!

Prototype with leaves & apples around the edges:

1 Like

#7

Not sure if this is any better, but I’ve made some adjustments to the foliage placement algorithm. It’s very likely that I will end up spending way too much time on this. :laughing:

On init, some layers of leaves & apples are generated. Not sure if it’s super obvious in the screenshot, but the placements follow a curve along the edges, to frame the scene.

The top layer of leaves have a z-index greater than the spiders. This gives them small areas to hide as they move around.

Update: Constrained the leaf angles on top/bottom/left/right.

3 Likes

#8

Hey @SkaterDad did you ever release this game somewhere?

0 Likes

#9

@britzl Thanks for asking.

I think the game itself is now ready. I haven’t had as much time to work on it lately, but I have made a few tweaks and polished things here & there.

I see the new Defold beta was just released, so I’ll do another quick round of testing with the new display cutout setting. Hopefully I can release this week on Google Play, and then Amazon the following week.

Long-term, I do want the game to extend into the cutout area, but need to get the notch height to move my UI down. I made a native extension that worked great in isolation, and great on toy projects with other extensions, but then caused a runtime crash on my full game. (Cryptic error was “Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR)”. Will continue investigating and learning about JNI and C++. I was pretty pleased I was able to figure out how to return multiple values!

2 Likes

#10

I think the game is nearly ready for public release!

Many thanks to the Defold team for their quick fixes which made it possible.

In the past weeks, I’ve mostly been polishing, squashing bugs, and getting feedback from my friends.

I also changed the “Rewarded Video Ad”, so that you can skip to Level 10 with nearly the maximum possible points. Previously, I had given more special items (the rain and bug spray seen in the screenshots) to people for watching the ad, but this seemed unfair to everyone else. Skipping to Level 10 seemed like a more desirable reward to me, since those earlier levels are slower paced. If you want a high score, and want it fast, you get to jump right into the action now!

One subtle bug that I fixed tonight: I was using rendercam.shake(5,10), and rendercam.stop_shaking() to enhance the experience when using the gatling gun. One day I noticed that the gun was no longer centered on the screen (comparing to the UI buttons). I didn’t have any code which moved the gun’s “position.x”, so this was very confusing.

Eventually, I realized that when I stopped the camera shake before completion, the camera was no longer in it’s initial position. I can see why it’s coded that way, but I certainly wasn’t expecting this. Added the following line of code after stopping the shake, and all is well now.

rendercam.stop_shaking()
go.set_position(vmath.vector3(0,0,0), "camera")
2 Likes

#11

In typical indie game fashion, I’ve basically sat on my hands for 2 weeks… Releasing to the public is something I’m kind of dreading in an odd way. I had ambitions of making a trailer, and nicer marketing graphics for the stores, but I just don’t have the time/energy/motivation for that stuff anymore.

Tonight, I decided to just go for it. :grimacing:
apple_spider_releasing

Update: This might be the quickest review period Google has given me. The production release is already approved and rolled out!

Should I make a post in the Showcase forum? Don’t really want to spam my game everywhere, but I’ll post there if the Defold team would prefer.

5 Likes

#12

I think it’s nice to be able to follow along while a game is developed and also post release from a single forum thread like this. Keep posting here if you want to!

1 Like

#13

Since release, my wife has been playing the game quite a lot. I asked her how she likes the gameplay, and she said something like: “I don’t know, I just want to beat your high score!”. :rofl:

She did manage to beat my score, and also reach a higher level!

In marketing news, I still didn’t have any time or desire to make promotional materials, but decided to Tweet about it anyway. I’d really appreciate any follows/retweets/hearts!

I think my next move will be porting this to Amazon devices. From my past experiments, this will mean replacing the Unity ads extension with Enhance, which allows me to use Vungle and Amazon ad networks. The Fire devices don’t have Google Play services, so compatibility with most ad networks is non-existent.

Last time I was able to manage this by a git branch, but I may just completely copy the project and try to sync up any gameplay changes.

Has anyone seen if Amazon has an actively maintained service for leaderboards & achievements? GameCircle is gone.

2 Likes