Game Development Community

VineKing - by Pixel Vandals Inc. - DRAW! TAP! GATHER! A multitasking frenzy!

by Richard Skala · in iTorque 2D · 06/10/2011 (12:35 am) · 31 replies

After lots of hard work, VineKing by Pixel Vandals Inc. is now available on the App Store! Thank you to GarageGames and the Torque community!

Here's a bit about VineKing:


DRAW! TAP! GATHER!
The VineKing is a great multitasker! Are you?

Buy VineKing on the App store now!

pixelvandals.com/wp-content/uploads/2011/06/vine_king_lineup_01.png
You are the last VineKing! Your planet has been destroyed by a cataclysmic event! Use the power of the VineKing to bring life back to your planet!

Challenge yourself with the frantic and fun VineKing! DRAW! TAP! GATHER! That's what it's all about! Sounds simple, right? It is! The challenge comes in Multitasking! The unique gameplay takes the simplest of tasks and combines them to create an extremely fun and challenging experience! As the last VineKing, experience heart pumping action as you travel through over 30 increasingly more challenging levels in a journey to bring life back to the entire planet!


DRAW!
Draw lines to smash through the Lava Rock that has covered your planet so life can regrow and flourish!
pixelvandals.com/wp-content/uploads/2011/06/001_small.png

TAP!
Tap monsters to defeat them and protect the VineKing from danger!
pixelvandals.com/wp-content/uploads/2011/06/004_small.png

GATHER!
Gather seeds to help regrow the entire planet!
pixelvandals.com/wp-content/uploads/2011/06/002_small.png

FEATURES:

Fun, furious, and frantic gameplay!
Enjoy the rush of VineKing! Draw! Tap! Gather! A simple and frantic game! A quick pick up and play experience with a real challenge!

Over 30 increasingly more challenging levels.
At first it might be easy, but each level gets progressively more challenging! Each level is a hand crafted experience!

pixelvandals.com/wp-content/uploads/2011/06/map_small.png
Game Center Support.
Over 60 achievements to earn!

Simple upgrade system with 18 levels of character upgrades.
As you play, invest rewards to reach new heights of power!

pixelvandals.com/wp-content/uploads/2011/06/rpg_small.png
Beautiful hand-drawn graphics.
A mystical and magical world from the minds of the Pixel Vandals, this a true visual delight!

Unique Boss Levels!
Big bosses with big attitude! Can you stop them?

A Host of Enemies
Different enemy types with different abilities. Can you deal with them all?


"My world was once a place of lush green, a kingdom of life and beauty. But now it lies as only a dark shadow of its once glorious splendor. Shattered by the comet that came from the heavens, its molten core burst upon on the lands and twisted the planet into a place of soot and darkness.

With the power of the VineKings, I must rebuild our kingdom. I will set forth against this unknown darkness and prevail over whatever forces may oppose me. I will regrow all the lands, and they will give birth to a new generation of Vinelings and eventually a new VineKing to take my place. I will reclaim our planet!

I am the last VineKing. My journey begins here."

~the last VineKing

About the author

Founded in 2009, Pixel Vandals Inc. is focused on bringing fun, fresh, and new ideas to the iPhone. www.pixelvandals.com www.pixelvandals.com/vineking

Page«First 1 2 Next»
#21
07/12/2011 (12:08 pm)
@Pedro
1) I implemented that same fix you linked in your post for multitasking. When Apple updated to iOS 4.x, that change had to made, otherwise the app crashed as you saw. I currently use iTorque 1.4, so I don't know if they added that fix to more recent iTorque releases. Sorry I missed your post -- I would have recognized your issue as a backgrounding problem. I try to log into the Torque forums every few days to see if I can help anyone with things. The community has been kind to me, and I like to give back when possible.

2) I actually use neither. I avoid Objective-C (and TorqueScript) whenever I possibly can; in fact, the whole game is written almost entirely in C++. I used standard t2dSceneObject types for the interface. I chose those over the GUI objects because the GUI editor has a lot of problems (at least on a Mac) and information about them is sparse. The upside to using t2dStaticSprites and such was that I was already familiar with them, and therefore it was relatively easy to implement. The downside to using them was that they use world positions instead of screen positions. Also, if the game time is paused, any t2dSceneObject or any object derived from t2dSceneObject will not update movement or rotation (but will respond to mouse/touch events).

Thanks for the kind words about the game. All of us working on the game have worked professionally in the games industry for several years, including our primary artist. We spent a LOT of time tweaking and polishing the art, gameplay, and interface.

The line draw is intentionally simplistic for several reasons. First, it is simply a guideline for the brick attack. Many line draw games use lines like that. Also, we had performance considerations. We already had well over 100 objects on-screen in each level without the line draw, and the line draw is actually a bunch of rectangles with circles between them, so we didn't want those to be expensive.

@Rennie
The dragons never attack the player. They only attack the grass tiles. Since the objective is to grow all the grass tiles, there needed to be an obstacle to that.

#22
07/12/2011 (12:32 pm)
@Rennie

I meant iPad resolution in general (not having to press the 2x button); any game looks better that way.

Regarding Temple Racer the only thing was the art really; maybe it could use more objects interacting (but then you'll have to find good art). I also found that sometimes the response to a touch was slow (that is, the object took some time to move). [disclaimer] I am not a gamer, so maybe that's only my inexperience playing games(it's lots of fun doing games for me but not not so much playing them).
#23
07/12/2011 (12:46 pm)
@Pedro, no worries, fair enough.

@ Richard. Oh, I thought it was supposed to hit me, and when they kept missing I was like hmm. thats not right.

#24
07/12/2011 (12:57 pm)
@Richard

Quote:I avoid Objective-C (and TorqueScript) whenever I possibly can

I can certainly understand that. I only started learning Objective-C because of iTorque.. well, it's always a good thing to learn new skills :-)

Quote:in fact, the whole game is written almost entirely in C++. I used standard t2dSceneObject types for the interface

Yes, that is exactly how my game is made: basic logic in C++ and interface is t2dSceneObject types. All the movement is actually done in the C++ part, I just use the Torque part as a render front end (tile layer) and for user interaction (mouse, touch); so no Torque collisions here and things like that. Here's a screen shot of a prototype:

www.garagegames.com/community/forums/viewthread/126472

Each one of those buttons is a dedicated t2dStaticSprite instance that responds to mouse events (I implement OnMouseUp). That works very well, but I wonder how more complicated things like menus and pop-up dialogs will do. Something like the GUI for Angry Birds, that I think is very well made.


#25
08/07/2011 (7:34 pm)
@Richard

Quote:I used standard t2dSceneObject types for the interface.

I uploaded a new resource

Torque Minimal Template -- Part 5. Levels and sound

that uses t2dSceneObject types for the interface. This works great, but I have a question: how do you manage several levels?

In the resource I define 2 levels. For each I define its own t2dSceneGraph instance. This is fine regarding t2dSceneObject types like the buttons shown, that are level specific.

But the game logic itself is not level specific. I did a C++ object for a game I am doing, that at the moment is level specific, but right now I am wondering if this is the best approach. I could make the C++ object a global Torque object in script but I wanted to avoid this. Other option: subclass t2dSceneGraph.
#26
08/16/2011 (4:32 pm)
@Pedro
When I first started using Torque, I simply used t2dStaticSprites and such for the interface simply because it was easier (and the GUI editor on the Mac seems to have lots of problems). Using scene objects turned out to be a mistake -- the in-game interface and GUI that you see in every level is actually duplicated for every level, which obviously was a huge pain. I tried using persistent objects for it instead, but the game became really unstable after that, and I never quite figured out why. Since the game and all the levels were so far developed at one point, I just decided to bite the bullet and deal with having the interface objects duplicated.

Moving forward, I would most likely attempt to use the Torque2D GUI objects, but I haven't been able to figure out how to change the alpha values on those (for a full-screen fade box, for example).
#27
08/17/2011 (1:19 pm)
@Richard
One approach I use is multiple t2dscenewindows. In mainScreen.gui just create another window on top of sceneWindow. Set that scene window to use GuiModelessDialogProfile and you can put interface items there.

I also use GUI objects. It's very useful also but you take a small performance hit. As far as I know you cannot change alpha values for any GUI objects.

#28
08/17/2011 (1:57 pm)
@Richard
Thanks. For now I am happy with using only t2dSceneObjects; they are instantiated when each level loads and removed when each level ends;

I posted a thread with a complete example

Level load

I also thought initially of making the t2dSceneObjects global but I think that goes against the Torque engine design (where t2dSceneObjects are supposed to be controlled by each t2dSceneGraph). Maybe the reason of the game becoming unstable?

I don't need the GUI controls at all but one exception is

GuiMLTextCtrl

that is really handy for displaying text, since it has a HTML like syntax (ML).
#29
08/17/2011 (3:05 pm)
Game looks great. Any plans for an iPad version? We've had pretty decent sales with an iPad version.

Will download :) and rate!
#30
08/17/2011 (6:19 pm)
not sure if this what you're looking, but ...

Quote:void GuiMLTextCtrl::setAlpha ( float alphaVal )

docs.garagegames.com/torque-3d/reference/classGuiMLTextCtrl.html
#31
08/18/2011 (12:20 pm)
@Pedro
I didn't know there was a setAlpha function for GuiMLTextCtrl.

The odd thing is there's no setAlpha for GUIBitmapCtrl.

Useful link. Thanks
Page«First 1 2 Next»