Click here to Skip to main content
Click here to Skip to main content

You're gonna go Ballastic!

By , 1 Dec 2012
 

Please note

This article is an entry in our AppInnovation Contest. Articles in this sub-section are not required to be full articles so care should be taken when voting.

Postmortem

This game, as submitted for the App Innovation Contest, is now available for download from the AppUp store: http://www.appup.com/app-details/ballastic. Note that this version was only approved for Ultrabook™ on Windows 8, so you are required to use this platform to find and download the app via AppUp. After the dust settles from this competition, an update will be released to provide greater hardware and software support, including Windows 7 and desktop computers. 

Given the limited development time frame, I am satisfied with the amount of progress I made to produce a polished game. However, some of the sensor features I had hoped to integrate were pushed back as the development platform I was using only gained beta support for many Ultrabook™ sensors in the final week of the competition. Even so, I did manage to integrate sensor support in a variety of ways.

Major Features  

  • Optional touch support for Ultrabook™  (mouse can be used as well)
  • Accelerometer support to alter the flow of the background visuals  
  • Light sensor support to give the game two different modes of play (day theme and night theme)
  • Local and online high score system for playing against global players and those at home
  • Unique visuals and background effects that are as relaxing as they are hypnotic
  • Six different collectibles and powerups with increasingly challenging gameplay
  • A grab-and-play game with simplistic yet addicting gameplay and creative physics

Finalized Screenshots

Below are some finalized screenshots of the game, as submitted to the AppUp store. This version of the game was developed exclusively for widescreen resolutions as included on the Ultrabook™, with the optimal resolution being 1600x900.  The game can still be played successfully on other screen resolutions, but non-widescreen formats will introduce letterboxing when played.

 

Introduction     

It starts simple enough. A small and buoyant ball is attached to a thin elastic string.  The objective? Carefully swing the ball around the screen while collecting a variety of loot.  The catch?  If you aren't especially careful, the ball will stretch a tad too far and the string will snap!  To make matters worse, the more goodies you collect, the larger and heavier the ball becomes, making it all that more difficult to keep the string from breaking. 

The farther you stretch the elastic to grab an item without it breaking, the more points you'll get. Rack up killer combos by collecting multiple items instantaneously.  Before long, you'll discover a variety of tricks to increase the longevity of the elastic while executing incredible stunts to get from point A to B quickly. Bounce the ball off the floor, rebound it off other items, do whatever it takes to stay alive!

Along your journey towards growing the biggest balls of all, you'll encounter plenty of power-ups and hazards.  Some items may increase the elastic strength or add more time to the clock, while others will spell certain doom if struck.  In addition, more balls will become attached to the elastic over time, creating a fresh set of challenges to keep all pieces of the elastic from snapping.  

Background   

Ballastic is a new game--currently being developed--as part of the App Innovation Contest to support some of the latest features that the Ultrabook has to offer. The underlying idea dates back to an early childhood game, which involved sticking a piece of nylon string to a bouncy ball and swinging it around the room to knock over targets without causing the ball to snap off. In addition, an obscure freeware game from the 1990s distributed by CANO-Lab brings inspiration to the core elements of this game.

Screenshots 

Development time has so far been devoted almost entirely towards gameplay over graphics.  A couple early screenshots are below, but none of the graphics or interface components are in any way final.

 

Hello AGK / FE (Ultrabook and Windows 8 Ready Toolkit)

Having just recently learned of this competition, with a substantially limited time to program and test the game, I knew my development options and resources were limited. Luckily, I had also closely followed Intel's Ultimate Coder Challenge over the past few months and, more specifically, read Lee Bamber's weekly blog updates with great interest.   

With AGK (and its web counterpart Freedom-Engine), a lot of the grunt work of game development is taken care of behind the scenes and wrapped in easy to understand BASIC functions.  Furthermore, apps developed using AGK can readily be exported to a variety of platforms, of which the Ultrabook and Windows 8 have recently been added.  This means that all of the hardware features of the new Ultrabook can be tapped into using a few simple functions, as summarized below:

Notification
 
NotificationCreate ( szDateTime, szMessage, szData )
NotificationReset ( )
GetNotification ( )
GetNotificationData ( )
GetNotificationType ( )
SetNotificationImage ( iImageIndex )
SetNotificationText ( pText )
 
Sensors
 
GetNFCExists ( )
GetGeolocationExists ( )
GetCompassExists( )
GetGyrometerExists( )
GetInclinometerExists ( )
GetLightSensorExists ( )
GetOrientationSensorExists ( )
 
NFC
 
GetRawNFCCount ( )
GetRawFirstNFCDevice ( )
GetRawNextNFCDevice( )
GetRawNFCName ( iIndex )
SendRawNFCData ( iIndex, pMessageText )
GetRawNFCDataState( iIndex )
GetRawNFCData ( iIndex )
 
Geolocation
 
GetRawGeoLatitude( )
GetRawGeoLongitude ( )
GetRawGeoCity ( )
GetRawGeoCountry( )
GetRawGeoPostalCode ( )
GetRawGeoState( )
 
Compass
 
GetRawCompassNorth ( iMagneticTrue )
 
Gyrometer
 
GetRawGyroVelocityX ( )
GetRawGyroVelocityY ( )
GetRawGyroVelocityZ ( )
 
Inclinometer
 
GetRawInclinoPitch ( )
GetRawInclinoRoll( )
GetRawInclinoYaw( )
 
LightSensor
 
GetRawLightLevel( )
 
OrientationSensor
 
GetRawOrientationX ( )
GetRawOrientationY ( )
GetRawOrientationZ ( )
GetRawOrientationW ( )  

I have been using TGC's game development products for more than 12 years when creating casual games and rapid prototypes.  One of my favorite features of AGK is that it includes Tier-1 (BASIC) and Tier-2 (Native) support. Those looking for more power and functionality than the standalone AGK BASIC language can provide are free to create AGK applications using Visual Studio, Xcode, Pascal, Eclipse and other environments and languages.  The core commands of AGK can readily be translated between Tier-1 and Tier 2.

// Tier 1
GetRawOrientationX()
 
// Tier 2
agk::GetRawOrientationX(); 

It is my intent to include a variety of Ultrabook features in this game including the use of orientation, inclinometer, gyrometer, and notification to some capacity. This along with social sharing features.  Of course, these features are still very new to me so it will be a learning process about Ultrabooks along the way. 

Stay tuned for updates...

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

linkedPIXEL
Web Developer
United States United States
Member
Although I am a Web developer by profession, I have long been enthused by game and app development. There is something extraordinarily rewarding about the prospect of your product entertaining millions around the world. After spending years developing an assortment of games and applications as a hobby to varying degrees of popularity, I took it one step further a couple years ago by establishing a formal side business and launching several commercial applications on iOS. I have also dabbled into the Smart TV market by releasing one of the few third party games for a certain line of plasma televisions and am always looking for the next big thing to develop on.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 3memberNitin_Jain12 Oct '12 - 2:15 
good but need to work more on it!!
QuestionWhich flavour?adminChris Maunder11 Oct '12 - 11:33 
Metro or desktop?
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

AnswerRe: Which flavour?memberlinkedPIXEL11 Oct '12 - 12:31 
This will be a Desktop app.
GeneralMy vote of 5memberDrABELL11 Oct '12 - 10:48 
I am giving 5* to this article: see the comments thread for details.
QuestionPlease clarify Ultrabook-specific use casesmemberDrABELL11 Oct '12 - 3:36 
Hi,
This app looks good and I would be glad to post my vote, but could you please clarify how your it utilizes Utrabook-specific features that you have mentioned? Some code snippets will help, or at least some basic class diagrams with description. Thanks.
Kind regards,
AB
AnswerRe: Please clarify Ultrabook-specific use casesmemberlinkedPIXEL11 Oct '12 - 9:04 
Hi, thank you for the comments. In particular, the player's main control will be tied closely to several different Ultrabook sensors and capabilities. I am still fleshing out the specifics, but below is a brief summary of the major points:
 
Touchscreen - The player will be in complete control of the elastic ropes in a very realistic manner. An "anchor" can be grabbed by touching it, and the finger's movement across the Ultrabook's surface will determine how much force is applied to the string and to the attached ball(s). The touchscreen interface will perfectly emulate the feeling of tying an elastic string around your finger and swinging a pendulum in mid-air.
 
Accelerometer - The raw accelerometer inputs will be read and processed to create added challenge. By tilting the device in a particular direction, the momentum and direction of the ball will change. This feature will compliment the touch interface and make the challenge much more interesting to complete. Alternatively, a mode will exist that will depend entirely on the accelerometer to navigate around the screen and collect items without breaking the elastic. Other reasons for using the accelerometer will relate to the background and collectible objects and how they transition around the screen.
 
Gyroscope & Inclinometer - These are closely related to the accelerometer in the functionality of this game and will again be used to affect the forces applied to the elastic object in different ways, depending on the game mode. I admit I am still not fully aware of the differences and features of these three sensor technologies, but will learn quickly.
 
Notifications - I have planned on incorporating this into an optional scoring system, which can alert users if someone tops their score in what an online high score system I will develop. This is in the early planning stages.
 
Currently I am working on perfecting the touch-based functionality to create compelling gameplay especially on a touchscreen. I will be researching and implementing the accelerometer/gyroscope next and hope to have a more solid explanation of such features soon.
GeneralRe: Please clarify Ultrabook-specific use casesmemberDrABELL11 Oct '12 - 10:44 
Hi,
Fair enough, thanks for your response. I am giving 5* to this article. Good luck with your future development.
Rgds,
AB
GeneralMy Vote of 5memberClark Kent12311 Oct '12 - 2:14 
I am curious to see where you take this.
 
Keep us informed!

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130516.1 | Last Updated 2 Dec 2012
Article Copyright 2012 by linkedPIXEL
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid