Let me start with the second question, to provide some background first.
4. Serge what did you use to program, draw the graphics and make the levels for in your shmups?
For ClayGun approximately 80% of graphics is prerendered.
3DS MAX was used to model and render gfx and Combustion for some post-processing. We didn't choose this software, but this is what was used by the GC artist we were working with. Note that these programs are quite expensive for an individual working on a personal project.
Some graphics/anims were drawn on paper, scanned in and colored in Photoshop. This is not a good way to create in-game artwork, but we didn't have anyone capable of good pixel-art back then.
XIIZeal is a port of XIIStag, an arcade game running on PS1-like hardware (but more powerful). We did all the work to do with porting it to PocketPC - graphics code, sound code, controls, tweaks/changes to gameplay etc.
XIIStag/XIIZeal in-game graphics are almost all pre-rendered, software used is Lightwave 3D, Adobe Illustrator and Photoshop.
ClayGun core is written in C, C++ and some ARM Assembly language (ARM processors are used in most PocketPCs, phones etc.).
However, most of the gameplay code is written in a custom scripting language.
XIIZeal is 99.9% pure C, with a bit of C++ to talk to some external libs on PocketPC.
Both games use big bitmaps for backgrounds, not tiles. For ClayGun there are two bg layers, with some control codes built into the data - i.e. where to loop, where to stop. Background animations are sprites, and controlled by the scripting language.
For XIIZeal background anims were programmed in C, i.e. there are several bitmaps moved/animated by a special task in the program code.
You only really need a level editor if you're using tiled backgrounds (see ProMotion below).
Both GlayGun and XIIZeal use a system of triggers assigned to particular scroll positions, these triggers either call a script function (ClayGun) or create a new enemy task (XIIZeal) etc.
In XII-Stag/XIIZeal these are just some data arrays in code, in ClayGun level triggers contain a bit more info, and this data is stored in XML files for editing, these files are then compiled to binary format for run-time.
ClayGun uses custom gfx format, XIIZeal stores its gfx in Playstation TIM format.
In both projects there are number of helper tools, shell scripts for particular tasks etc.
Graphics conversion utils for ClayGun were written in Java, script compiler and level triggers tool were both programmed in C#. There are some custom tools to edit hitboxes, for XIIZeal some gfx tools related to its origins on PS-like hardware etc.
Screen output in both games is done via direct access to video hardware on PocketPC. Original XII-Stag uses Playstation/G-NET drawing API, the port emulates these libs, basically providing the same interface, but with my own implementation that works with video hardware directly. All actual drawing/rasterization is done in software, there is an OpenGL:ES implementation for XIIZeal but it's not fully working and unreleased (yet).
3. Serge, how long do you think a medium sized shump would take to create in C++. (I'll be working on it probably 4+ hours a day 5-7 days a week).
It depends, really.
I assume we're talking about "the first 90% of work" here.
Something that looks and plays like a shmup I think is possible to put together in several months, if working in such mode (and if you know exactly what to do on the programming side of things). And this assumes you have all the artwork you need.
To get it to playable state much more time is needed, most development time is spent in the "testing, changing, re-testing, making more changes" cycle.
It's also quite difficult to maintain motivation when working alone.
Both ClayGun and XIIZeal were side-projects for me, for ClayGun I wrote the graphics and anim core, scripting, most of the tools, designed the gameplay system and also did some of the graphics and music, and it took perhaps 2-3 months of my time.
However, afterwards 2 programmers and 2 artists were working on it for approx. a year, building actual game on that foundation, then another programmer was added and 6 more months spent on the gameplay, then some more months etc. All in all, I think it took more than 2 years (and was quite expensive).
Same with XII-Stag/XIIZeal, for the original game there was 1 programmer working on it full-time, with 3-4 artists working part-time mostly and it took approx. 2 years as well. A chunk of code came from the previous projects by the original developer, but most time was spent on the gameplay anyway. Porting took several months, internal testing several more months etc.
To summarize, to make a playable shmup quickly you need a group of experienced people ("group" and "experience" are keywords here), or be prepared to spend several years on it.
But it is possible to program a prototype-level shmup in several months, if you have some graphics to work with.
How do you plan to make graphics for your project? That is, do you plan to do it yourself or find someone to make it for you (maybe find someone on this forum)?
If I understand correctly you don't have experience with drawing, pixel-art or 3D gfx?
However, even if your goal is to become a game programmer, I think that knowing how to use gfx creation software will be really helpful.
Anyway, here are some notes about free and inexpensive software available, just in case:
Pro Motion is quite good for pixel art:
http://www.cosmigo.com/promotion/index.php and it's also inexpensive. I think it's the best choice if you want to make tiled backgrounds.
GIMP (
http://gimp.org) is free and can be used instead of Photoshop to some extent.
Blender (
http://www.blender.org) is a complete and free 3D package, and, at least "on paper", it looks very capable. I'm not familiar with it (I myself am using Lightwave and XSI for 3D graphics), but sure enough it can be used to model and pre-render animated sprites for enemy ships and the like (e.g. explosions).
Really, if you're adventurous then try learning how to use a 3D package. Will be really helpful in the future since you're interested in game development, and there is a real chance that you can create something passable after a couple of months of intensive training (i.e. the chance is much more real than becoming good at pixel-art in that time).