To explore the tech world, though mostly focusing on iOS, Django, and Drupal development Sometimes it isn’t the perfect that gets in the way of the good, but the revolutionary gets in the way of the evolutionary.

Eradicate Week 2: Panning, Pinch Zoom, Stock Images and Stubbed Layers

I wish I could say I spent the whole week working on this project, but past contact was extended, and I worked on my other non-game project, the Dog Park Finder. We are updating the logo branding and adding thousands more dog friendly locations with new filters and map icons. But this is a dev diary about our Outbreak project (view all posts here). Also visit Skejo Studios to see all we are doing.

For this update, instead of working on a ton of under the hood methods, I hours I did spend on I used on some UI elements. Or more precisely, stubbing out the UI.

Below is one of out UI sketches we made. Partially we were just brainstorming on what a player would need to, prioritizing frequent interaction and highlighting them above less frequent actions. Though we in no way consider the sketch as perfect, we wanted to get something on paper, and then get it in rough for into the game. This way we are getting closer to a fully playable demo, as well as interactive with device and testing user and action flow.

Book Review: Learning Cocos2D

When I was making the transition into iOS development from Internet engineering, I grabbed two 500 page iPhone app development books, read and worked the examples over a Christmas vacation, coded nights and weekends for three months and produced an app that Apple highlighted as New and Noteworthy, the Dog Park Finder. So, now when I decided to make the leap from iOS development to iOS game development 18 months later, I wanted to grab a great intro book and go from there.

First I had to determine the tools I would use, and landed upon Cocos2D (this isn't a game platform review, so I am not going into the pros/cons of Cocos2D or other platforms, that is a different post). Following that decision, I grabbed Learning Cocos2D by Rod Strougo and Ray Wenderlich. The other obvious choice was Learn iPhone and iPad Cocos2D Game Development. Honestly, I came across Learning Cocos2D first, which is why I bought it.

Learning Cocos2D is a great book to use as an on-ramp to the Cocos2D platform, as well a giving good best practice insight into general game development, and design pattern to follow. If are a long term game developer, well versed in texture map optimization, OpenGL programming or physics modeling, then you probably should just read the Cocos2D API documentation. But if not, Learning Cocos2D is a hands on book for getting up to speed quickly (if you are altogether new to Objective-C and iOS development, the a read through an basic iPhone programming book before working through this book).

The book uses working example of building a Space Viking game (free at the app store). Through the examples you will be shown how to make a splash screen, menu pages (including credits and options pages), how to move and animate sprites, spawn enemies, scroll the landscape, create gravity puzzles and joy ride in a mine cart across an alien landscape. Among other things. All the while, Rod and Ray skillful introduce support tools and mix in programming best practices for optimizing memory and speed up the game.

Like many of books of this nature, all the sample code viewed in the book, is also available for download. It is a great help see and interact with an entire XCode project when a concept is eluding you. Also, the authors have given full permission to use the code in any manner to help accelerate your projects.

The book's 17 chapters are broken into five sections. Instead of highlights and review each chapter's content, I will do so at the section level.

The four chapters in the 'Getting Started' section give a steps the reader from a installing Cocos2D into XCode, to simple 'Hello World' program, to making your first game scene with a hero, a villain, some animations and basic collision detection. These chapters define the basic Cocos2D vocabulary of scenes, layers and sprites, along with batching sprites for performance, definition animation sequences in plists instead of in the code, and spells out some of the workflow and time saving API calls for handling sprite movements and scene updates.

The next short section involves chapters 5 and 6 where some decent amount of computer science concepts of class hierarchy, interfaces and other concepts are written along side instructions about sprite and layer affects, generating text labels, and other font usage. The authors also help guide you to a quick debugging layer for better testing of your games.

'From Level to Game', is the third section of the book. Chapter 7 deals with Cocos2D's menu items, which can be used to create dynamic menus, directing to new scenes for viewing credits, as well as creating options for defining game settings. Chapter 8 is dedicated to all things audio. Including different tools for importing sound and asynchronous loading of sound/music for a better user experience. Lastly Chapter 9 deals with larger levels than one screen can hold. Both scrolling, and parallax scrolling are covered as well as the efficient way to create and reuse time maps.

The most cerebral of sections, is 'Physics Engines' sections. I spent a little less time working the examples of the Physics chapters 10 through 13, but Rod and Ray extensively introduce both the Box2D and Chipmunk Physics engines. Starting a bit easy with gravity, mass and simple collisions to setting up a fully actuated Viking to throw and rag-doll around, these chapters lay a solid foundations for you to explore physics in the Cocos2D world on your own.

Lastly, a ragtag section is used to wrap up the basic particle system in Cocos, while giving pointers for toll in creating your own particle effects. A chapter is also dedicated to Game Center integration, including login/sign up, creating leader boards, setting achievements, and how to save updates when an Internet connection is not available. Besides the conclusion, the last chapter deals with general performance tips, debugging and profiling guides and some quick tips to loading your sprites faster.

Too sum up, Learning Cocos2D is not just a book on how to use Cocos2D, but really a how-to guide to making your first iOS Cocos2D game with good technical architecture, with many best practices and how-to's thrown in. At over 500 pages, it isn't a quick read, but I would recommend it to anyone looking for good book for iOS Cocos2D development

Before signing off, I thought I should also introduce myself, as this is my first post for iDevBlogADay.com. My name is Greg Holsclaw, and I am the founder of Skejo Studios, a new iOS shop. We have already produced two apps for ourselves (one is the Dog Park Finderwith over 200K downloads), and two more for clients. Since completing a BS in computational mathematics, I have been creating websites and backend engineering for 7 years, and creating iOS apps for the last two years.

My hobbies sites and weekend work has blossomed enough that I recently was able to resign my engineering lead role at a successful internet startup to create Skejo Studios, and there is no looking back. Look for more posts at www.tech-wanderings.com concerning the intersection of Drupal (a web CMS) and iOS apps, as well as development diaries for the games we are developing. Until next time. -Greg

Eradicate Week 1: Starting the Project

Today, I am kicking off the development diary for the project that inspired Skejo Studios to get started. We may have a second project in parallel (to fill any down time this project might have), but most of our energy will spent on this project.

I plan on making weekly project updates, at least on any week that I spend work on a particular project. This first update reflects about two weeks of elapsed time, but less than a week's worth of dedicated time. To set expectations, some updates will be technical in nature, where others might focus more on the design, UI or business side of things.

Currently, the in-house name is Outbreak, but that is of course subject to change at any point right up to launch. We are aiming to create an iPad evolution of a table top strategy game concept. A co-operative type game where there are two to four players who are trying to beat back four regional outbreaks. Most likely we will play a zombie theme for these outbreaks, but for now we are just working on the game mechanics. This project is being built on the Cocos2d game platform.

Leverage Existing Tools

From my years in industry, I know that re-inventing the wheel, just so I can say it is my wheel is a huge form of waste.

Flying Solo Again

It has been a bit since a blog post has rolled out, but I have had my head down finishing some fun Drupal projects. But I intend that to change for a couple reasons.

Going iOS native, Skejo Studios coming

With Drupal being my main technology for the last 5 years, I have been working on numerous iPhone projects for 18 months. During the last 4 months, I have been contemplating a career move. T2Media has been a great company for me, as well as giving me some financial options I didn't have a few years ago.

So I decided to resign my position a lead architect (yeah, crazy given the current economic climate) and start up my own iOS studio. I have enough internal projects lined up to keep me busy for a while, with design and artistic freelancers helping me out as needed.

I imagine that I will be making many more entries now that a steady paycheck isn't in the mix. I will still be making Drupal post now and again, but I will also start writing posts concerning my iOS development, mostly around some game ideas I have been popping around in my head.

Check back for more posts coming soon. Mostly on Cocos2d for iOS, http://www.cocos2d-iphone.org, as that is the framework I will be using going forward.

Book Review: Drupal 7 First Look

Last month I received a ditigal copy of Drupal 7 First Look, by Packt Publishing. I have been waiting for the official release of Drupal 7 to come out before posting the my review and now is the time. The subtitle is Learn the new features of Drupal 7, how they work and how they will impact you, so I will be reviewing the book in that light. Tackling a new version of Drupal in 256 pages is a tall order, so let's see how it all unfolds. This book isn't exactly for Drupal newcomersas as some prior Drupal knowledge is assumed, but if you are completely new you can get by nicely.

Briefly, the author, Mark Noble, owner and operator of Turning Leaf Tech, has been working with Drupal for a couple years. He is also the author of Drupal 6 Site Builder Solutions, and runs http://drupalbyexample.com.

The book broken into seven chapters, progressing from what is new in Drupal, installation/upgrade, initial site building and administration. The last three chapters dive more deeply into the APIs for theme developers, the database layer and for developers.

Chapter 1 goes through a decent list of changes from Drupal 6 to Drupal 7. If you aren't familiar with Drupal this will help you get up to speed about where Drupal came form and where it is going. Chapter 2 hits on the basics of installing Drupal 7 or upgrading from Drupal 6. Many screen shots are include to speed you through the process. If you are familiar the install profile ideas, Mark places some code to show how you can create and use an new install profile. Handy for anyone install numerous sites that need a generic starting place.

Things really pick up in Chapters 3 and 4 as Mark expounds how to create content and new content types. WIth CCK now Fields in core, the Field API is introduces along with images, taxonomies and commenting. CHapter 4 focuses on non-content administration of users management, sites settings, module selection, search, reports and other items.

From Chapter 5 onwards the book takes a more technical bent as more code examples and API code definitions appear. CH5 focuses on new and change theming items including template files, new JavaScript abilities, CSS and Theme API changes.

Chapter 6 hits on the major database update the Drupal 7 introduces. The code samples are great, detailing how to call and step through the results of a database query.

Chapter 7 ends a bit abruptly, as does the whole book after covering the many change and new API hooks available for developers to use. Considering this isn't a cookbook or dive deeply into development I have to say that if you need a crash course is what Drupal 7 can do out of the box and a quick primer on how to drive a Drupal 7 site, this book does fine.

Drupal 7 First might be compared to Foundation Drupal 7 by Apress, though I have read the Apress book yet. If you need more core API and module development insight, try grabbing Drupal 7 Module Development by Packt or Pro Drupal 7 Development by Apress.

A Drupaler's Command Central

It is the new year and I decided I needed to clean off my desk, and since it looked so clean, I snapped a quick picture. I currently am working from home as the company I work for has gone virtual, which is why I have this setup in the first place.


(click for full image)

Items:
*Lenovo T61 ThinkPad 15.4" 1680x1050 screen (company provided w/ docking station)
*24" Dell Monitor 1920x1200 screen (company provided)
*Apple Macbook 14" 1280x800\
*Microsoft Ergonomic Keyboard
*Logitech Thumbscroll mouse
*TrendNet KVM (allows the 24" monitor, keyboard and mouse to be shared by the Thinkpad and MacBook)
*iPad (hard to see, used for Drupal powered iOS app testing, other stuff)
*iPhone 4 (taking the picture)
*iPhone 3 (not pictured, keeping for backward compatibility of iOS apps)
*Brother Printer/Fax/Scanner w/ Drum ink (b/w only but uses less ink long term)
*Whiteboard and PostIts used to keep different projects and priorities in front of me.

The laptop screen is where I keep my mail program and other readable items that I might need as I code.

The main 24" monitor is where the main coding and testing happens.

Hidden behind my Komodo IDE window, is a FF Browser with Drupal Planet. There are a ton of Drupal 7 released announcements right now, in case you missed that.

Other items of interest:
*I am a hockey fan in San Jose, CA, thus the Sharks poster.
*The nearly ever present coffee mug is actually missing.
*Hidden under the laptop stand are snacks and TicTacs.
*Super cheap speakers don't give any bass.

Drupal.org builds a new home

If you haven't seen it yet (ie you are reading Drupal Planet through a feed reader), then head over to Drupal.org check out the new home for the Drupal project.

I am really digging the new personal dashboard that pull together projects, issues, commits, comments and groups all in one place.

Great work to the Design implementers (also a way to check out the new groups.drupal.org look. Much applause to all.

Drupal Userpoints and the big Boys

In the last two weeks I have come across three different venture backed groups that are trying to help sites 'Gamify' their member interactions.

Syndicate content