Development Schedule: Building a game in less than three weeks!

Yes! A full game! Okay… It will only be a playable prototype. But hey, you nearly cannot have a sensational headline without bending the truth today. Nonetheless I intend to do a lot of things in short time without knowing my tools well. But I have got a plan:

Time Plan Result
Week 1
Day 1 - Set up the camera
- Import a space craft from the asset store
- Make the player vehicle controllable
- Cameras for 3 levels set
- Free space craft imported
- Player can control vehicle view dependent with keys
- Mouse/touch input is not finished
Day 2 - Import enemies
- Create hostile movements by using mathematical functions
- Project floating-point movement to level resolution grid
- Mouse input finished
- Two free space vehicle imported as enemies
- Enemy spawning functionality implemented
- Hostile movements created using predefined way points, but not finished
- Resolution grid missing
Day 3 - Render entities to textures and display results
- Apply shaders to the sprites for "quality downgrade" to match retro style
- Scene is being drawn to a render texture
- Vehicles are placed on a grid
- "Retro" shader is absent
Week 2 – Research for modding options
Day 4 - Implement shooting and destruction system - Post-process shader program added
- Grid and render texture functions have been improved
- No projectile/destruction system introduced
Day 5 - Add environment (from asset store?) - Post-processing has been refined
- Weapon/Projectile system and simple destructions are included now
- Environmental visualization has not been addressed
Day 6 - Write "AI" scripts for enemy behaviour
- Integrate scoring system
- An environment was added
- Simple scoring system has been implemented
- Projection to 2D grid was refined
- First attempt to integrate spline movement
- Research for asset loading capabilities
Day 7 - Include sounds and music
- Refine shading system
- Spline movement between way points fully integrated
- Background music inserted
- Shoot and hit sound effects added
Day 8 - Build framework including menus - Movement of the environment added on
- Level abstraction and loading functionality assembled
Week 3 – Investigate releasing options
- Test, fix and improve
Day 9 - Level loading refined
- Colors mapped to Commodore 64 palette
Day 10 - Environmental shader for harder edges added
- Started to replace color palette constants by grading texture map
Day 11 - Finished to replace color palette constants by grading texture map
- Trying various combinations of environmental and post-process shader properties
Day 12 - Environment rendering for stage two simplified
- Directional alignment adapted to grid
- Indirect movement by mouse positioning introduced
Day 13 - Publish prototype - Vital energy for objects introduced
- Sounds can be played using an identifier
- Player is destructible and will respawn after some time
- NO DEMO HAS BEEN PUBLISHED!

I will amend and adjust items, when the right time has come.

The passion


If you read my last post, you may recognize that I went from a full time game developer to a software architect, who has professionally little to do with computer games. And I regret that very much. So I decided to take a break and defer my current projects for nearly three weeks. In that time I want to create and publish a new game prototype, which means that I am planning to develop a fully playable demo version as polished as possible in thirteen workdays. The result will be the foundation for improvements, advancements and experiments whenever I find time for it. But for now I am focusing the prototype and the time span is very short for a game, which should generate more fun than frustration. I am not practiced in small projects anymore so I have to be very disciplined to reach my self-defined goal. But even if my intention fails, I will have improved my skills and will have done some research for a current project of our studio.

The prototype

The idea for the game emerged about five years ago and although there is already a published game, which assembled the most innovative core feature in the meantime, it belongs to the RPG genre. My prototype will be a Shoot’em Up (or “shmup” for short) and I call it “Project: Evolution”. The player will control a aircraft (most likely a space ship) and has to fight against appearing waves of enemies. A very familiar representative is “Space Invaders” from 1978.
For my prototype I am aligning for a subsequent time but not for a single spot. In the first level you look from the top down to your ship and the scenery. That will change to a bird’s view in the second and side perspective in the third one. And that is not all, which is changing. Screen resolution, color depth, graphical complexity and even player control will increase from stage to stage. At first you may only see ships and stars, then some kind of blocky space station exterior and at last you will enter one displayed using fantastic parallax scrolling. Everything should look like 2D pixel art from “Zaxxon“, “R-Type” and other similar hits from more than two decades before.
As you might see the project is showcasing some of the evolution of the genre and that is the origin for the name. The concept is kind of similar to the earlier mentioned role-playing game named “Evoland“.

Free spaceship fighter
Free spaceship model by CgPitbull

The execution

Three years ago I started to develop the basic technology once before. It was written in XNA to be able the run the game on an Xbox 360, PC and maybe Windows Phone. But now XNA is dead and I favorite a more common opportunity called “Unity“. It became a famous game engine and I need a well established one to realize my tight time schedule whereas I must give up technical control, because the source code is not available to me and so a lot of work is done in a black box. In return I can rely on an optimized and tested base, which is working on nearly all important gaming platforms, and I save much time in not needing to develop fundamental technology.
Even though the prototype may only show two-dimensional graphics, every art source should exist as 3D model. I want to render those to textures and modify them using shaders with specific adjustments for every stage. That creates a distinctive design in the advancing look and saves me hours on pixelating sprites several times. Moreover it should make the game moddable in an easier way because I am already planning to support that in the demo, but it is the largest variable in my schedule. It should allow players to some kind of recreate their favorite Shoot’em Ups from the past or to build completely new ones. And there is another feature, which is only possible with three-dimensional base material, but I will not include it yet so that is something to tell you about in the future.

The insight

As you can realize I am not only trying to make the final game known, I also try to generate public awareness for the development by writing about it before it starts. And I will extend my efforts when it has begun by posting tweets, publishing screenshots, summarizing collected experience and maybe streaming the progressing results. Everybody, who is interested to be up to date, should have a look on my Twitter and my public Facebook account. Not everything will land on this blog but everything here will be linked on the social networks.
Why will I devote so much time for social interaction, when I could spend it for development instead? First and foremost I want to generate buzz for the release of course. I reckon that is very hard but maybe I will be in luck. Secondly I hope to get support from the community and I want to give some help back by making my information public available. And at last I would like that people are getting interested in modding the game as soon as the prototype is being released.

The release

I am planning the publish the prototype at the last day. Perhaps it only appears as a browser game on a site like “Kongregate” but I will also investigate in the options to bring it to the “Windows Store” or the “Windows Phone Store“. The reason for preferring Windows over Android and iOS is simply because my Unity license includes export options for “Windows (Phone) 8” but not for the other two. Still there are a lot of time consuming things to pay attention to to get released on an app marketplace. So I do not know if I am able to accomplish it in my short time frame.

The development will start on Wednesday, March 26th, 2014!