Final release and App Store!

I just released the final version of my second game.

After a few months of coding and going crazy with some bits of Android, and iPhone and just not sleeping much some days
i just finally have the release of Absolute Defense in the AppStore.

I am so excited :D… I need a big favour from you.

I need you to download the game, and vote it, since downloads and votes are really important at this first stage.
I will buy you a beer whenever i see you around.

The game is in two flavours.

iOS - Iphone/Ipad
http://itunes.apple.com/us/app/absolute-defense/id469791688

Android
https://market.android.com/details?id=com.estudio256.absolutedefense

You will be in the credits for the next one!

I have to cleanup some bits and remove some personal stuff from the code but I plan to release all the code
for the community to just complain about my coding![](.

Thanks to Walzer for his amazing help)

Congratulations!

Awesome stuff.

Could you maybe tell us how did you do the fake 3d? :slight_smile:

By the way - the lite version of your other game requests to click an ad to continue. I’m quite sure that’s against the rules and you’ll pay a penalty if they find out. Maybe try something like airpush instead.

The 3D effect is quite simple really. I have the Parallax layers divided by distance, so I just rotate the
sprite 90 degrees to provide like a depth, you can see a bit of the
code:

// Depth

if (m_iLayer<3) { 
                float fZ;
                switch(m_iLayer) {
                        case 0: fZ=3.5; break;
                        case 1: fZ=4.0; break;
                        case 2: fZ=5.0; break;
                }
                setVertexZ(-m_winSize.width/fZ);
 };

void Game_Object::draw()
{

if (Game_Map::m_bUse3D) {

        if (m_b3DEffect && m_pMapTile && m_iLayer!=0) {

                if (m_pMapTile->b3dUp) {
                        glPushMatrix(); 
                        glRotatef(-90,1.0f,0.0f,0.0f);
                        CCSprite::draw();               
                        glPopMatrix();
                }

                if (m_pMapTile->b3dRight) {
                        glPushMatrix(); 
                        glRotatef(90,0.0f,1.0f,0.0f);                   
                        CCSprite::draw();               
                        glPopMatrix();                  
                }
        }
}

CCSprite::draw();

//Render the normal flat sprite

I also make darker the sides a bit to make it more 3d like.

You can see that sprites rendered like this provide only 2 sides so if
you look at them in the wrong direction it will look wrong.

It is not exactly like that since some walls can end into a void which
is fine, but when i design the platform or level i just rotate the
sprite in the most appealing position.

I could rotate over the pivot and have 4 sides but i have a 2G and i
dont think it is going to improve that much the look and i think it is
good enough.

I have a resources library which contains information about the
sprites and the particles on it

<sf id="82" image="sinstar_bug2" enemy="1" damage="40" energy="40"> <launcher timer="1200" /> <weapon type="follow" name="aquapin" /> </sf> <sf id="99" image="joyamarilla" name="improve_firepower" improve="4" interface="1" energy="140"> <anim end="explosion_organic" steps="10" speed="100" order_z="1" fx_idle="editor/improve2.plist" snd_end="improve" /> </sf> <sf id="130" image="hl_concrete7"> <factory enemy="bacon_1" max_screen="5" min_time="5" num_spawns="1" variance="10" /> <anim end="explosion_organic" steps="10" speed="100" order_z="1" fx_idle="editor/improve2.plist" snd_end="improve" /> </sf>

And the levels are created with a description like this:
<node surface_id="191" x="159" y="-55" z="6" layer="0" scale="1.380000" tint_r="220" tint_g="220" tint_b="220" />
<node surface_id="121" x="1083" y="-225" z="-7" layer="0" scale="2.257001" mirror_y="1" b3dUp="1" b3dRt="1" />

Which specifies the rotation and if it has to display an UP or RIGHT
rotation.

When i started building the game engine i looked at how these guys
built their map editor and i based my first editor on their file format:

http://gametuto.com/in-game-c-map-editor-tutorial-with-indielib-engine-that-dosent-use-tiles-but-pieced-images-like-in-braid-or-aquaria-games/