GDD Update

Click the button above to see the revised GDD for Flappy-vaders.

The modifications this time round are mostly oversights which got missed off the first time round. One which I hadn’t thought of, and one which I simply forgot to include (D’oh!)

For those interested, the modified/addition sections are as follows.

3.5 Player Death

The game ends when the player dies.

The player will die if the player character collides with any of the obstacles or enemy or gets shot down.

The player will also die if the ships y position gets too low on the screen.

3.7 Daily Bonus

To encourage player retention the game should include a daily bonus system.  The more days played consecutively, the larger the reward. 

Rewards can be either in game currency or powerups.

Powerup rewards cost in the store determines there value here.

The actual type/style of the daily bonus will be determined later.

Game Progress Update #3

Update #3

Hello and welcome to the third Dev with Dave Game Progress Update. I’ve been busy building on the prototype systems which had been developed previously.

Zones

I have added a second subset of zone data to better demonstrate the random selection of zone subsets. I also included a length value into the zone data so that zones can vary in length and still flow seamlessly from one to the next.

Player Death

Adding the hitboxes to the sprites was fairly simple in AGK, as was checking the collisions. I opted for the more complex polygon shape (Polygon will create a close fitting convex polygon around the visible pixels of a sprite) as I am only checking for collisions with a handful of sprites and it will mean more exact collision detection.

I also added a simple particle based explosion to the player ship which plays when there is a collision. The image used for the particles is one taken from an asset pack I purchased years ago and is simply a placeholder again for the time being.

Game States

Another system I’ve added as a prototype in this update is a system for handling game states which was necessary to allow the transition from Playing the game to the player crashing and the game over message being shown.

This system works by having two variables to track the GameMode (Things like Initialisation, Showing Menu, Playing Game, etc) and Loop Mode (Which breaks the game mode down into sections, e.g. Pre-Game, Game, Post-Game stuff). This way I simply have to update a variable to switch from running one bit of code, to the next.

User Interface

I have added a script for the UI stuff, and added a simple text only Game over message to display when the player has crashed.

I’ll be developing the UI further at a later point in development.

GDD Updates

There are a few changes which need making to the GDD this week.

I had omitted the fact the the player dies if they crash into the bottom of the screen (in section 3.5 Player Death), and there are a couple of new additions as well.

I’ll try and make these changes over the weekend and get the revised Flappy-vaders GDD uploaded on Monday.

In the next update

And thats all for this time. Over the next two weeks I will be carrying on with getting some more prototype systems in place for the other zones.

I will also spend some time creating graphics to replace the placeholders that I am using currently.

Creating a game idea

The how/why of Flappy-vaders

The last thing I need to cover with regards to planning, is the how/why behind the idea of “Flappy-vaders”. Starting next week, the topic of conversation will be shifting to Programming.

In this post I’ll talk a little about the thought process behind the idea of Flappy-vaders.

Genre

The two biggest constraints for Flappy-vaders were time, and that I’d be writing it using a ridiculously low spec PC. Due to these factors I had already decided to create a simple casual style mobile game.

Again, for the sake of development time, I decided to take some already successful concepts from other games and combine them in a (fairly) unique way.

I decided to take the game mechanic from “Flappybird”, as it’s fairly simple, as well as being quite well known and fun/addictive to play.

I also decided to expand on this idea by adding elements from other games, such as the “zones” which you see in games like Jet Pack Joyride etc.

Now don’t get me wrong, I’m not simply copying Flappybird. This is going to be an original game in it’s own right, and I am 100% not encouraging people to create the utterly rubbish “asset flip” style games which are nothing more than a simple online tutorial which has been followed and the graphics replaced.

Visual Style

One of the things which makes games stand out at the store and in videos online is the visual style. I’d already decided to create a 2D game due to the hardware. I can’t imagine how the Linx tablet would run Blender, lol!

My initial inspiration for the graphical theme of Flappy-vaders was the menu screen for Fallout Shelter by Bethesda.

I loved the old style scan lines and the darkened edges of the screen, reminiscent of old CRT TVs. I imagined I could produce an effect similar to that of an 80’s era TV with a border and a scanlines overlay.

My next thought was about the type of games I’d have been playing on such a TV. Now in the 80s I had a ZX Spectrum, which had only 8 colours (well, 16 if you count brightness). I thought that palette would be a bit limiting, so I looked at other similar age devices before settling on the Sega Master System.

The Sega Master System has 256 available colours which should be more suitable for this project.

Monetisation

The last thing to do was decide on how the game will be monetised. Since it will be a casual mobile game, it will be free to download but include adverts. The player will be able to remove the ads by paying a small one off fee.

Another popular way of monetising mobile games is through the purchase of in game currency. This can be used to buy power-ups and upgrade the ship. Since I was planning on having power-ups and upgrades in the game, this seemed like a logical strategy to follow.

Conclusion

Overall it took me about a fortnight of thinking, researching and jotting down ideas. And then maybe as long again to refine them and be ready to create the GDD.

Unleash the Trello!

For those of you who don’t know, Trello is a collaboration tool that organizes your projects into boards. In one glance, Trello tells you what’s being worked on, who’s working on what, and where something is in a process.

It’s available from https://www.trello.com and is free to use (although paid options are available)

I’ll be using Trello to manage the Flappyvaders project in conjunction with the GDD I shared last week. There is a link to the Flappyvaders Trello Board further down this page.

I usually set my Trello up as shown above, and here’s a quick explanation as to how it works.

The first column is for reference, or any notes relating to the project.

Next is the “Known bugs/issues” column, this is explained a bit further down.

The “Things to do” column contains cards which are ready to be taken ownership of and moved to the “In progress” column.

Each card in the “In Progress” column should have an owner. To take ownership of the card, you add your name as member, which adds your initials to the corner so you and other team members can see who is actioning that card. Once all tasks on a card are complete it is moved into the “Under review” column.

The “Under review” column contains cards which have been completed and are ready to be reviewed/evaluated by the project manager. During review any bugs or suggestions can be added to the card before its returned to the “Things to do” column.

If there is no further changes necessary then the card can be moved to the “Completed” column.

If an issue is discovered relating to a completed card, then the card can be moved to the “Known bugs/issues” column, as well as creating a sub card relating to the issue directly. If the issue does not relate to a completed card, then just add a card to the “Known bugs/issues” column to explain the issue.

Click the button below to view the Flappyvaders Trello Board in action for yourself.

If you have any questions about planning a project, creating a design document, managing a project with Trello, or anything else, then please feel free to ask it on our forum.

Game Progress Update #1

Welcome to the first Dev with Dave Game Progress Update!

So, the development of Flappy-vaders has begun, The first phase of which is prototyping.

Prototyping

I consider prototyping to be an important stage of development as it gives you chance to test ideas and adjust them where necessary. Start by coding the bare minimum necessary to test the idea with, play around with it and then once it feels right, you can expand on it. After all, you don’t want to spend 3 months creating a game only to discover that it’s not actually fun to play.

With Flappy-vaders the prototyping gave a quick and convenient method to determine the ideal values to use for the gravity, thrust upward, scroll speed, etc.

Parallax Background

The first system I built was the parallax background system.

First I created the two ground sprites using Paint .Net, and copied them into the project media folder. Both images are 192px wide, the nearer image is 32px tall, and the back image is 42px tall.

Next I created a backgrounds script in AGK Studio to put all the variables, constants and functions relating to the parallax background.

Originally I was planning to use two sprites for each layer, with the sprites jumping back to position to replace the other as the scroll by.

However, because we are using 16:9 as the aspect for the background area, if you played the game on a device with a wider display then a gap appears on the right hand edge of the screen as the sprite doesn’t wrap round in time.

Instead, I decided to use 3 sprites, as shown below, which gives a comfortable buffer for playing the game on phones with really wide screens.

The idea is simple, the sprites move towards the left, and as soon as the first sprite passes the left hand screen edge, it jumps to the third tiles starting position. This repeats indefinitely.

I used a technique called “Timer Based Movement” or “Delta-Time” to ensure that the background scrolls at the specified speed regardless of how fast the device is that is running it. This is basically calculating how far the sprite should have moved in the time it takes to update the display.

I then repeated the process for a second layer and added a variable to store the difference in speed between the layers.

Player Movement

The next script I added to the project was the Player Movement script.

Player movement in this game is quite simple. The ship will accelerate downwards at a constant acceleration until the player taps the screen. This gives the ship a sudden upward velocity. This is then acted on by the constant downward acceleration.

This isn’t necessarily the way actual physics works, but it’s how Flappy bird did it, lol 🙂

As with the parallax background sprites, the player sprite uses timer based movement.

In the next update

That’s all for this progress update.

I’ll be prototyping the zones next, as well as adding collision to the players ship.

You’ll be able to see how I get on in the next progress update!

See you then 🙂

Flappyvaders Game Design Document

It’s taken a few days longer than expected, but I am finally sharing the GDD for Flappy Vaders! Simply click on the link below to read it.

This is the plan I will be following over the next few months as I build Flappy Vaders.

I’m midway through creating the Trello board for this project currently. I’ll share a link later so you guys can get a feel for how I’m using Trello for project management.

If you have any questions about planning a project, then please ask them on the “Dev with Dave” Forums.

Introduction to the game

Ok, before we get too far into this, I think I’d better give you an idea of what the game I’m making entails. I’m sorry if it gets a bit boring, the first revision of this post read like I’d just copied and pasted the actual design document, so I hope I managed to add some personality to it this time.

With the limitations imposed by both the low end hardware being used for this project I have decided that I am going to create a simple game for mobile devices. I hope this doesn’t put too many of you off 😉

I’ll be combining Flappy Bird game mechanics with an endless level filled with randomly chosen “zones” to progress through, each zone having it’s own obstacles.

There will be coins to collect which allow you to unlock and boost power ups as well as buying a selection of different ships each with their own unique specs and design.

To monetize the game there will be the option to acquire coins from watching rewarded ads and through buying them for real world money. There will also be the option to remove adverts by paying a small fee.

A Sega Master System Console – Image by Evan-Amos – Own work, Public Domain, More…

There will also be the chance to win coins or power ups with a daily reward system.

Graphically I am aiming for a retro style. I’ll be using the limited palette from a Sega Master System, as well as a scanline overlay and rounded edges to give the impression of playing on an old cathode ray TV. The graphics are based on a resolution of 144 x 108 also so they appear lo-resolution. (This is 1/10th the size of a regular 16:9 HD display, only in 4:3)

I’d also like to use a parallax background, particle effects and animations to add a bit more pizazz to the graphical side of things.

Music and sound effects will also be suitably retro based, and either downloaded from stock resources on line or from asset packs I already own.

And that sums it up nicely I think? If there’s any detail I’ve missed off then leave a message in the comments 🙂

I’ll share the actual design plan that I’ll be following soon, as well as a post about how important I think having a decent plan to follow is in a project like this.