N.B: To play Project Dandelion as I intended, please press the full screen button in the bottom right corner of the plug in. Controls are just left and right keys to control the Dandelion seed left and right on the screen, trying to keep it going as long as possible. 

I started working on Project Dandelion in the summer of 2013, when I was travelling America visiting states like North Carolina, California and Arizona. I had big dreams of this being the kind of game Apple would promote and advertise on their iPhone adverts to truly show off what the iPhone was capable of. My ambitions for my first project were certainly large, and that may be why I haven’t came back to it recently.

This page is an accumulation of everything I done to make what can be played above, and what I hope to achieve in the future. Project Dandelion is a work in progress, something I hope to return to one day after working on some other projects. It’s ambitious, a little too ambitious for my development skills at this moment in time, but I hope what I write about, and my ideas for what I want this game to become, can be seen in the gameplay above. It’s technically a fully working game, if not a little basic and without challenge.

Where the Idea came from:

Dandelion came to me whilst I was out walking my dog, the autumn that I finished Uni and had to return home from Brighton due to financial difficulties and my hard time finding a job down there. Leaves were falling from trees, along with leaves we brits like to call “Helicopter plants” due to their ability to fall to the floor whilst spinning violently to try and get as far away as possible from their source, proliferating their species as far as the wind will take them. That’s when it hit me, why not make a game, based on a seed of some sort trying to fly as far as possible.

The idea greatly intrigued me. I spent the next few weeks drawing up sketches of what I believed the start of the game should look like (the main menu), and went about planning the type of game I wanted to make. In my mind, I had a game similar to Temple Run, but instead of a basic, cartoony maze, you’d have a gorgeous, fully illuminated and shadows galore field ahead of you, with each strand of grass flowing in the wind.

FUCK THE TABLESSSS
In this early diagram, drawn when I was in NC, I tried to guess how I would randomly generate the world, ensuring that the A columns were just static trees that didn’t have to be too detailed, and the B sections being where the player would have to avoid obstacles.

Programming techniques:

Being my first game I had made and programmed since university 2 years ago, my ambitions for Dandelion were probably more than my actual skills. This isn’t necessarily a bad thing, and can actually push developers forward to excel and learn more in order to meet those ambitions.

I started off slow, watching PushyPixels tutorials on youtube and watching/reading quite a lot of programming techniques across the web whilst in California. I made a game or two using their tutorials, and felt quite confident about the task in front of me.

Dandelion started by altering the PushyPixels tutorial on how to make a star fox rail shooter. This gave me the core gameplay of a character being controlled and pushing forward through a endlessly generated world. This entailed basic programming where I assigned the movement of the player to two variables that could be controlled by either an accelerometer, or a keyboard.

The terrain is randomly generated, with my current build having two types of lands to chose from: one with tree’s, and one without. I admit it’s crude, but at the time it allowed me to make a game that lasted forever. This could be refined in future to ensure that each terrain is aware of it’s surroundings, making smoother transitions with more realistic scenery blending into each other (E.g. a river could be generated half way through the terrain, allowing for a more immersive and realistic scene(.

I made the code which makes the dandelion move left or right sit within a boolean called movement. This allowed me to turn movement off when the player reached the edge of the screen, and also allowed me more control over the player from when the pause button was pressed.

FUCK THE CODEEEE
Being my first full game attempt, I kind of put all my code into one script. There were other scripts, don’t get me wrong, but the main game play mechanics, from detecting collision to making main menus, all came from my one shipMovement script. This was foolish in hindsight, but we make mistakes to learn from.

Graphics:

I was certainly ambitious in what I had in mind for the graphical aspect of the game. I haven’t touched 3D modelling since I was in my second year of Uni (read: 4 years ago), and even then it was only for 2 subjects, so I was definitely rusty. What you can play at the top of the screen comprises of a days worth of work on the dandelion itself, followed by me paying for art assets from the Unity store.

I wanted to have the grass rendered, and all swaying in the wind. I thought the game would have looked better with it, but couldn’t figure out how to render it without having terrible frame rates. I started researching using splines and animating it all manually, but the sheer quantity of how much grass would be on screen at once, and in the distance, put me off this path rather quickly.

I tried to use the Unity engine’s built in terrain generator to make my land, and therefore automatically cover the ground with animated grass that swayed in the wind. But eventually, I came across problems using terrain as my land, in both collision detection, and it’s rendering limitations. Grass would only render up to 500f in front of the player, yet the player could see easily over 3000f, which meant it was obvious that grass was chopping into the screen, causing a terrible effect. I decided to postpone the prettiness of the game, and work on just getting it working as a game that you could play from start to finish rather than concentrating on the graphics.

FUCK THE GRAPHICSSS
The Main Menu of Project Dandelion is closer to my graphical ambitions than the main game. This was mainly due to performance. I could have made the main game have the same grass and lush trees, but moving it all over great distances caused both graphical glitches and huge framerate drops. If I ever went back and tried to make Project Dandelion again, I’d make the graphical aspect the first priority, ensuring it matched my vision many years ago.

In hindsight, I could have changed the angle at which the camera looked at the player, ensuring that the grass rendering distance was never a problem as it couldn’t be seen, and ensuring that it gave more emersion to the dandelions sense of size and scale of the world before it.

Gameplay:

My main ambition for Project Dandelion was always to have a fun, casual experience that could be played on an iPhone, using it’s natural control scheme (tilting the device) and making a gorgeous game that would show off the potential of the portable smartphone market.

The basic premise of the game is to get a dandelion seed as far as possible by moving it left and right, avoiding obstacles as you go, and getting more height by going into wind turbines that will extend how long the dandelion seed is in the air. Staying in the air constantly gets points, until you finally hit the floor, causing your score to be submitted to try and compete with your friends. I eventually wanted to incorporate collecting pollen as you progressed as a means to increase the players end score, allowing scenarios where a player may choose to miss a wind turbine to get a bit extra score (a risk/reward scenario).

The idea at the start was to allow the player to control the dandelion seed anywhere on the screen, on both X and Y axis, but after some experimentation, I realised this resulted in glitches in the game and allowed the player to avoid their inevitable death to the point that the camera glitched through the world. If I’d have programmed the camera to stay at a specific height, it’d have caused confusion for how close to the ground the dandelion really was, meaning players wouldn’t be able to judge how much longer they had until they died. It was the correct gameplay choice to only allow the players to control the Dandelion on the X axis alone, resulting in a more relaxed and easier control system.

The player constantly moves to the ground at a fixed rate, meaning that they have to keep themselves afloat by means of passing into wind tunnels. These wind columns would be dispersed in a way that allowed the player to choose whether they wanted to risk missing one in order to grab pollen.

Obstacles were meant to be made (some, like a bee and a tree trunk have already been made) but were never put into the game before I grew bored and started working on my next idea. These obstacles would range from static obstacles (a tree trunk), to dynamic ones (e.g. a bird flying across the screen, or a bee coming towards the player).

FUCK THE OBSTACLESSS
Here I started to jot down what types of obstacles and wind turbines I could create to give variety to the game. Each different dynamic obstacle (such as the bird and the bee), would have different AI patterns, from swopping down across the screen to just buzzing in on the player. These all may be implemented in future, but for now, they are absent from the playable game.

Sound:

I cannot give myself any credit for the sound found in Project Dandelion. I wanted a relaxed, gentle, atmospheric song that would continue on and become ambient music the more a player continued to play Project Dandelion. Whilst browsing Reddit one day, I happened across a post from a man advertising his music to r/indiegaming, saying he would allow anyone to use a selection of songs royalty free. I jumped at the chance to find music for my game, so browsed through his wares, and happened upon two tracks that was made using a spanish guitar, the perfect instrument in my opinion for a game which is meant to be relaxing.

I was meant to add sound effects to the game for when you done anything, from managing to get into a whirlwind, to hitting the ground. None of this became a reality as I couldn’t seem to find any good way of making a wind sound effect, or even find any online. I wish I’d have found one before I grew tired of working on Project Dandelion, but for now, it’s pretty boring apart from the music constantly playing.

Challenges:

Some of the biggest challenges in making Project Dandelion have been making the code and all the elements of the scene line up. I had to ensure that the time between each wind turbine instantiating was sufficient enough to allow the player to keep afloat, whilst keeping it far enough that there was enough danger if you missed one. This took a lot of time and refinement, to which I feel it is now set up just right.

Motivation has been a big problem as well. Constantly coming up against walls where my knowledge on game development practices just aren’t enough to correctly implement an idea is both frustrating and infuriated. Any Developer who can push through these times deserve admiration, as it takes a special person who can continue after failing and being hit down time and time again. It’s one of the reasons I’ve moved onto other projects for the meantime, so I can still work on game development, but not on the same game.

If I ever get around to finishing Project Dandelion and sell it as a commercial product, I’ll certainly have the problem of being likened to another game that uses similar art assets: That Game Company’s Flower. I can thankfully say that the control scheme is completely different, but this won’t stop the similarities from coming out.

The Future:

For now, I’m working on a new dual avoiding game, similar to Super Hexagon, but with a bit of Brothers mixed in. It’s teaching me new techniques in programming (like ray casting and properly structured coding practices) that I can bring back around to Dandelion when I find the time and willpower to crack back on with it.

I will come back to Dandelion in the future, but only when my skills are adequate enough to bring life to the concept I cherish.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.