Giter Club home page Giter Club logo

citystrike's People

Contributors

callumw avatar

Watchers

 avatar  avatar

citystrike's Issues

App Icon

We need an app icon!!

I quite like the idea of having a minimalist one, but that might give the wrong message about the app as that's not what the art in the game looks like.

I made a sketch of icon:
IMG_2381

  • research other game app icons
  • get list of sizes we need
  • decide on an editing software
  • make templates for making app icons

shield mechanic

The user should be able to use a shield to protect the city for a short time. This should have a cool down.

Explosion particles

Currently we’re just using the default particle image. We should change this to look more like an explosion

Unit Pathfinding

A core part of the game will be unit pathfinding to a target.

Apple's GameplayKit provides some pathfinding tools

  • Investigate Apple GameplayKit Pathfinding (see comment below)
  • Create a testing scene/mini-game (mini-game: you place stuff between the unit and a goal then press a button to start it path finding)
  • Can user control/provide hints to pathfinding (way points?)
  • Unit Placeholder asset
  • Goal Placeholder Asset
  • Pathfinding Button Graphic

Pause Screen

During Playback we should be able to pause and resume the game.

  • Throw up a new UI on button press
  • How can we pause the screen mid game? Does SceneKit provide this or do we need to fake it up?
  • Create pause button sprite/art
  • Create Resume button art
  • Create return to main menu?

Game Over Scene

When the player eventually loses the game, we should display a game over message and show their score.

Advancing Levels

The player should be able to 'win' maps, and then progress to the next city.

This is probably dependent on #40

  • define parameters which control level difficulty
  • how can we procedurally increase these across levels in a standardised way?
  • how can we change between game levels (and pass data between them? Or can we just stay in the same scene and re-gen our city?)

Place building

Another key component of the game will be building placement.

We'll need to divide the world into a grid which will aid in placement.

Of course, we'll need to use taps to move the cursor and rotation.

We'll also need some sort of hint to indicate where the placement will occur. For the moment we can use something simple (or can we use a 'ghost' version of the model, i.e. can we set opacity on a node?).

  • Grid System (divide world into sections)
  • Snap to Grid
  • Placement editing mode (user should enter a placement editing mode where they can move and rotate building before confirming)

Bird Flocks

It would be pretty cool if we could have flocks of birds flying across the screen. During the missile launch they would hide, but at the start of the game, before the action begins they could fly around the city. Or fly out of the city when the sirens sound.

Multi-missile power up

Perhaps if the player does something special (like destroy a special enemy) they can get a power up which allows them to fire a missile from all solos at once?

Plane Mechanic

Description

To give the game some more complexity, the scene should be split into separate planes. On each plane we have buildings to protect and missile silos to launch missiles from as well as enemy missiles to destroy.

Along the top of the screen there should be a mini-map view of each plane (which shows buildings and incoming/outgoing missiles in arcade style) which are also selectable to switch between the planes.

There should also be a world view which zooms out and shows a kinda birds-eye view of everything.

Tasks

Plane Switching

  • Plane Control Architecture
  • Camera Movement
  • Move Audio Listener
  • Plane Template (can we create a template scene for placing target plane & cameras?)
  • Plane specific UI hints

Plane Mini-maps

  • Plane Switch Buttons
  • Updating Button Texture
  • Selected Button Hint

General

  • Reimplement game over

Notebook

Planes
Plane Selection UI
World View

Enemy Jammer Plane

An enemy jammer plan should fly around the city (from plane to plane, circling around off screen) which can be shot down to access special abilities such as the rail gun mechanic #57

Better Scene View

Currently the scene view is quite close up boring.

The city should be farther away and larger to give a greater sense of scale. I also think that the missile silos should be in front of the city, to give the player a better feeling that they are firing missiles at the enemy.

  • plan out city view with a hand made scene (i.e. manually placing assets) to play around with it
  • define areas for the procedural engine to target. (i.e. and area where it can place buildings)

This will likely be dependent on #39, perhaps they should be worked on at the same time.

Rail Gun Mechanic

It would be cool if the player could earn a rail gun power up/upgrade which could be enabled on a plane to automatically take down incoming missiles for a period of time.

App Limited to 30FPS

Sometimes the app gets limited to 30FPS even though it spends most of the time idle. I think this is because early one we can't render a frame fast enough so it limits it down. For the time being I have limited the app to 30FPS

Missile Launch Animation

When the user fires a missile, it should have a cool animation where it launches up and then orients towards the target, like this:

IMG_2380

Game Centre Integration

It would be cool if we could integrate with the Game Centre, but what would this provide? What do we need to do?

We should find out and evaluate how/if we want to do this.

Splash Screen

There should be a splash screen prior to the Main Menu which shows the company logo

Improve Thrust Physics

Currently we apple a force to the missile to make it move, however, this force seems to be cancelled/changed when the missile collides with another missile. Preferably, the missile would act as if it had a thruster powering it,

Sirens

During attack, the city should emit siren noises. Similar to the missile warnings that sound during the iron dome attacks

Destroy Enemy Missiles

The player should be able to destroy enemy missiles. I think a good way for this to be done, is to place a collidable, but invisible sphere when a player missile explodes. This sphere then expands over a period of time and if it collides with an enemy missile, the enemy missile explodes.

It would be really cool if we allowed chain reactions too, I.e. the same thing happens when enemy missiles explodes too, therefore, you could end up chain exploding loads of missiles!

Releasable Art Assets

Currently we have a lot of placeholder art and UI in the app. We should work on getting all of that into a releasable state. It doesn't have to final or perfect, just something good.

  • Missile model
  • Silo model
  • Houses/Buildings (we should have more than one to provide some variation
  • Sky box
  • Explosion Particles
  • Smoke Trail
  • Explosion Sound
  • Thruster Sound

App Store Page

An app needs a store page, which in turn needs stuff like a description, videos, and screenshots.

  • Research what makes a successful App Store page
  • game screen shots
  • game videos
  • description

Camera Control

Need to add camera panning and zoom control.

I suspect we could do this by keeping a camera target node along the floor. Then, we apply the rotation, movement to that (although zoom will need to move camera away from target).

  • Pan Camera
  • Zoom

Release Checklist

Before release there are certain tasks/checks that need to be done. They will be compiled here.

  • Test on different sized screens
  • How to promote game
  • play through test
  • verify only require assets are bundled with app
  • Company Logo is on the main menu
  • Version is correct (and present in main menu screen)

Background Music

All arcade games need background music.

  • Find software to make music
  • research how to make game music
  • how to make it 'scale' up with the difficulty of levels

Explosion Placeholder

When the Missiles collide with something a placeholder sound & effect should play

Add hint where users has sent a missile

When the user clicks to fire a missile we should place some sort of hint so they know where they are firing.

  • add red dot on UI overlay when users clicks and remove when missile explodes
  • design target graphic to be placed
  • load and place graphic when user taps
  • Add animation to hint
  • fix multiple explosion bug

Lag on first Audio Play

When playing audio, the game lags on the first instance of playing an audio file, but works find for future instances.

Initially I fixed this by playing the audio files at the start of the game at 0 volume. We should perhaps formally do this for all audio. Perhaps with an audio loading class, which goes and plays each audio file?

That or perhaps work out why the SCNAudioSource.load() function doesn't seem to work properly.

Main Menu/Title Screen

When the app is launched it should show a main menu screen first.

  • Workout how to transition between scenes
  • Transition on tap to main game scene
  • Add Play Button & Title Text
  • Add Background Art
  • Design Menu
  • Find out how to make a button in SpriteKit
  • Discover what sizes of art is necessary for sprites
  • Create Play Button Art
  • Create Placeholder Title art

Make Missile Silos Selectable

The user should be able to select the missile silo they want to fire from, rather than the game selecting it randomly.

Procedural Generated Cities

To add a little bit more replay-ability the cities should be procedurally generated. This should be within the constraints that as the player progresses through levels, the difficulty should progress.

  • make a couple different building models (just basic ones)
  • Can we procedurally generate buildings?
  • Generate city layout plan
  • plan out how to target buildings (and destroy buildings?)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.