Thursday, December 27, 2012

3D-ing it...

Learned a bunch about 3D "stuff" over the holiday break. Worked on a few test ships and space stations, nailed down the process which is like this:

Blender -> revise object name, export DAE -> PVRGeoPODGUI -> export POD -> PVRShaman -> revise/update material and save.

Sounds like a lot but it really isn't and the Isgl3dPODImporter works like magic, even importing children(1)(2)

Now that I see how easy it is to load and manage POD files it is time to work on tracking memory usage to determine a nominal setting.

I'm also adding to my development process several managers:
Isgl3dSceneManager <- to manage loading, transitioning and unloading (actually views)
SAShipManager <- I'll get this going pretty quick since it will make loading POD's super easy and fast. I'll use a plist to define not only 3d model properties like mesh name, scale and orientation / rotation but also base object (ship or other) properties like mass, crew, cargo, etc

Update: I'm monitoring in-app memory usage to learn about duplicating meshes and it looks pretty solid. Even though my iPad Simulator shows my memory at 82MB, on the actual iPad it's only 18, with like 8 objects including the space station, shield and background space sphere.

Obligatory screenshot (or it didn't happen!) ;-)

(1) Had one space station that was made up from 4 objects in Blender which I revised and made them children of the main_object.
(2) Update: I also tested the POD Exporter that you can install in Blender, and, well... I had mixed to poor results. While Blender did write out the POD file it also opened up the PVRGeoPODGUI app with the POD loaded. After this I ended up chasing my tail with scaling problems. I'll take some more time to document which process is more reliable.

Sunday, December 23, 2012

Comment: Failure Rate

I've spent that last few weeks searching and researching space games and one conclusion is that there seems to be a pretty high failure rate.

Many times when I would happen upon an unknown (to me) space game it almost always was a defunct or disbanded project from two to several years ago.

I mention this because we have to be keenly aware and stay focused...

Design: Phase 3

We held another brainstorming session where we actually played the game (on index cards) and answered several more design questions.

"Skyport Alpha will not be just another space shooter"

Also moved a couple of items to v2.0(1)


Flight / Space travel:
  • Fuel - powers engine for normal space flight
  • Power cells - power jump drive / gate
Starter Packs for starting a new game:
  • Trader pack
  • Mercenary pack
  • Explorer pack

(1) This is very helpful to stay on-track and limit the number of "OWTBC" (Oh wouldn't That Be Cool) features that often derail projects.

Friday, December 21, 2012

Design: 2D vs 3D

One early decision we made was to go with a 3D game design. It ultimately won because one of our main objectives will be Explore and let's face it, flying around in a 2D game isn't very Engaging.

With 3D selected, the next choice is game engine. While there is a cocos3d that leverages the awesome cocos2d framework, I disqualified it due to some of its limitations. Surprisingly there are quite a few to chose from:

  • Unity (free & $1500)
  • Sio2 Interactive (-annual fee, yuk)
  • Ogre
  • Panda3D (not iOS?)
  • iSGL3D (open source and awesome) <- winner!


We'll be blogging about our creation and development of our new, next-generation space trader here.

We've made some decisions:

  • 3D environment
  • Trading and Exploring
  • It will NOT be just another space shooter!
We are still super early in development and what's so very cool is we are starting with a completely blank page!

Yup, here it is:

So... almost anything is possible!

We held our second brainstorming - design meeting yesterday; here's a photo from phase one (yikes, what a mess!):

And phase two here:

Looking much better....

Well that's all for now... stay tuned. I'm going to try for weekly updates.

PS: What is a ETE game???
Explore, Trade and Evolve