Search This Blog

Wednesday, March 9, 2011

This Blog has moved

This blog has been moved to franzgameblog.com
The new version is dedicated to game development tips and related topics.
For fatjumper related news check out fatjumper.com

Tuesday, March 8, 2011

Still alive

This blog is still alive,  but after a bit of research on blogging I've decided to transition to using Wordpress,  and to do a few things to promote this blog to get more readers.

    Wordpress isn't for the faint of heart,  but it's right up my alley with my tech background.  Thank you,  blogger.com for making my first blog experiment easy and fun,  but it's time to move on.

   I hope to have the new blog up and running in a day or so.

-- fxl

Monday, February 28, 2011

End of part 1

After taking a look at the stats of this blog I realize that too few people are reading it.  Early on there were some hopeful signs and a steady increase in pageviews,  but recently we're down to a small trickle.  So it's time to rethink things.
I'm planning on splitting this blog into two separate blogs/websites, one about general game design topics and another one dedicated to fatjumper.  I'll be posting links to the new blogs here when they're up and running,  most likely sometime in March. Thank you for your continued interest and patience.

-- fxl

Saturday, February 26, 2011

Days of Yore, GDC 2011

Next week is GDC week.  That's the Game Developer's Conference in San Francisco.  This is a truly huge event with about 18,000 people in attendance in each of the past three years.  I went for the first time in San Jose about 20 years ago,  and 300 people attended then.

    Back in those days is was Chris Crawford's event,  having started in his living room.  It was called the CGDC  (computer game developer's conference).  Some years later the "computer" was dropped since most video game development was happening for non-computers like Gameboys and SNESes.  The weird thing is that the proper name should probably be VGDC (video game developer's conference)  but then again,  in a few years we might move on to holograms of direct brain manipulations,  so the GDC is ready if and/or when that happens.

   The good news is that Chris Crawford will again be at GDC this year.  Here's an excerpt from Chris's description:

  As part of the special lectures around the 25th GDC show, original CGDC founder and Balance Of Power creator Chris Crawford will present a session called 'In Days Of Yore', explaining how "the earliest days of computer games were times of technological swashbuckling, shoestring budgets, amateur designers, amateurish products, and wild experimentation. "


I disagree with that "amateurish" characterization of the products of that time.  We were as professional for the standards of those days. At the same time we were furiously advancing the state of the art,  hence the wild experimentation.  Fortunately the spirit of those Days of Yore is still alive and well 25 years later.

--fxl

Friday, February 25, 2011

2 Levels

It's a good idea to make more than one level before diving into making a level editor.  So here is the latest version with 2 levels:  www.fatjumper.com

Click on the link for Version 19.

You'd think the game would be farther along when we're at version 19 already,  but actually this is pretty typical.  It can take literally thousands of versions to go from a simple prototype to a released commercial product.

Yes,  I was able to get to the end of level 2.  It's not all that hard,  but you might need a few tries to do it.  My best score is 1266.

The scoring is still provisional and the score resets after playing a level,  which is very wrong,  but OK for now.

Hey,  it's Friday night, so what am I doing writing into this blog?  Time to get back to my real life (yes,  I have one).

-- fxl

Thursday, February 24, 2011

raining cake

No new release today,  just a screenshot from today's progress.

It's raining cake

Those are pieces of chocolate cake raining from the sky.  Kind of like that movie about meatballs.
Notice how our unnamed fat hero has gotten kind of fat from all that cake.

I also finally have a frame counter working (though you can't see it in this screenshot.  
Amazingly,  at 640x480 resolution I'm getting 2000 frames per second.  Even at 1080p
I'm getting 300 fps,  and that's on a 2.8 GHz quadcore PC with a $100 graphics card.

Looks like I'll have to make high-res models for the consoles and PC,  and low-res models for
the phones.  

I've put off testing on a 3GS iPhone long enough,  but that'll have to be done very soon so I can
get a feel for the touch controls and the framerate on that device.

Wednesday, February 23, 2011

Zooming

Well,  to do a level editor we need zooming.  And to do zooming it was necessary to change the background to something much bigger.  It was also time to put in some original sounds effects.  The result is version 18 which you can try out here:  www.fatjumper.com



Oh yes, I also started making the fatjumper website,  though for now it just shows the logo and a link to the latest version (and a link to the main company website).

On touch devices the zooming will be done using pinch controls,  on devices with keyboards it'll be a couple of keys,  and on consoles it'll be one of the joysticks (or a couple of buttons).

-- fxl
 

Tuesday, February 22, 2011

Brainstorm: level editing and gameplay mashup

What if we combined level editing and gameplay into a unified experience? This wouldn't
just be an in game editor but allowing editor commands while playing the game. For example if you can't get across the river you just use the editor to put in a bridge. Is the enemy too tough? Just edit the AI parameters to make it easier. While you're playing.

Of course the game would fall apart if you allowed the players unlimited access to the editor, but if access is limited somehow it could just work. Maybe we allow just N actions per level. There could be a points system where editing actions cost points.

I'm unsure if this is an original idea. These days it's common to think of something original only to find out later that it's been done.

The UI for level editors is always tricky, especially if we want players to use it, not just the pro level designers. I don't have a solution for this yet.

Multiplayer could be fun. Player one edits while player two plays the level simultaneously. This could work with N players. Even AI players! You're editing while AI players try to play the levels. Or, you're playing while an evil AI bot is editing the level. This could also work with bots that try to help you.

These ideas are so good that I hesitate to reveal them right now. And yet, that's the point of this blog, to not hold back, to show how ideas are formed and later turned into a game.

--fxl

Monday, February 21, 2011

One month already

  It's been a very interesting month,  and looking back on it,  it's been very much worth it.  I've learned that despite my good intentions it's pretty difficult for me to make interesting progress every day, rain or shine.  Still,  it's a good motivator to have this blog and I would recommend it to all you other developers out there.

  One of the things that needs to be done soon is building the fatjumper.com website to give more direct access to the new versions and to host some basic info about the project.

    I recently discovered that when I build a native PC version (i.e. and .exe) the animations are running much too fast.  This is a tech issue that I need to fix before I can release the .exe version (or an iPhone version for that matter).  Once the game reaches a decent level of playability I'll be releasing the Web, PC, Mac, and iPhone versions simultaneously,  and about every two weeks or so.

   Well,  that's enough for my President's day blog.  More tomorrow.

-- fxl


   

Saturday, February 19, 2011

Nostalgia

Today I played my old version of Tengen Ms. Pacman again for the first time in many years.  There was a contest at "Hot Toyz" at the New Park Mall in Newark, CA.  Thanks to Jeff Yonan who arranged the contest and invited me to watch.  I didn't participate because, well,  that would be cheating.

http://www.youtube.com/watch?v=3QKAS2TQ9tE

The above link shows some footage of the game.  The comments mention that a guy at Tengen did the game in four months without access to the source code.  Well,  that guy is me,  and while I didn't have access to the source code I did have an arcade machine in my cubicle wired up with a pause button.  I was able to do pixel perfect graphics and mazes by using that pause button a lot.

Amazingly (no pun intended) I just realized this afternoon that Pacman and Fat Jumper have similar themes,  sort of.  Maybe I'll put cherries, strawberries, apples, pears and bananas into Fat Jumper,  as a tribute.  Is it legal to put a banana into a game and make it worth 5000 points?  Well,  this is a non-issue anyhow because in Fat Jumper the food isn't going to be worth points anyway.  You'll want avoid the food!

I saw a few things in the game that I didn't remember putting in.  For example,  there's a "fruit" in there that's actually a badge from the never released Tengen Police Academy game. It's a star with the letters PA in the middle. Now that's some truly obscure trivia.  There's also some ads for Klax and Toobin',  two other Tengen NES games.   That's in-game promotion of other games way back in 1990.

-- fxl


Friday, February 18, 2011

Octopus and platform test

This is a test release.  You get to see an octopus and a new type of ledge.  The game pretty much plays the same.   Here is the link to version 17:  FatJumper 017

Thanks to Istvan Szalontai for making a great octopus making tutorial.  You can see it here:  http://vimeo.com/8515135

I've basically been teaching myself how to become a better modeller in Blender 2.5.  This is a whole lot of fun,  but working through some tutorials is currently slowing down development.   Once I learn how to do animation too I'll go back to developing the level editor.

I admit it,  I've also been playing Little Big Planet.  No,  I'm not ready for LBP2 yet.  Fat Jumper is going to borrow some concepts from the LBP planet in-game editor.  I'm currently leaning towards requiring a PC or iPad to do level editing,  rather than trying to make it work on a phone.  We'll see.  At the very least it's going to be much more pleasant editing levels on a large screen.

-- fxl

Thursday, February 17, 2011

Tool update: Blender 2.5x


Today's topic is Blender,  specifically moving from Blender 2.49,  which is what I have been using for about a year,  to the latest and greatest,  Blender 2.56 Beta.  All I can say is,  Wow.  Even though it's a beta,  2.5 Blender series is a big step in the right direction,  very stable, and well worth the trouble,  at least for me.

The first hurdle was that exporting to Unity 3 doesn't quite work right with Blender 2.56 Beta.  Unity has trouble with the automatic .blend importing,  so I have to manually export .fbx files instead.  Not a big deal,  but I hope it gets fixed with updates to either Blender or Unity.  I also needed to learn the hard way that you have to select your object before exporting it,  or it doesn't export.  Makes sense once you know it.

Guess what,  this issue sort of killed the whole day,  and all I got done is some new models that aren't in the game yet.  We'll see what tomorrow brings.  Maybe even a new release.

I'd like to give a big shout out to Super3boy AKA Super3 and his very helpful tutorials on Youtube and his website www.nystic.com.  It's very helpful to see his tutorials when learning Blender,  and,  in my case,  when upgrading to the 2.5 series.


-- fxl

Wednesday, February 16, 2011

Production Plans Continued

Here are more plans for the production of Fat Jumper


Platforms


    No,  I'm not talking about the platforms that the fat jumper is going to be jumping on.  It's the iPhones, and PCs and Macs out there.  It's good to know the list of target platforms before creating the art assets so we know what resolutions to use in our textures and what level of detail to use in the 3D models.

   Looks like this game should be playable on a low-end smartphones and 1080p consoles and PCs and everything in between.  The iPhone 3GS resolution is 480x320,  so that's the low end resolution.  1080p is 1920x1080,  but even higher resolutions are possible on high end PCs or Macs.  The controller is going to be two buttons only.

Marketing and Publishing
    
   Probably this will be a free game supported by advertising and in-app purchases.  This seems to be working very well for a number of games out there right now,  so that's the plan.  It'll be published by my very own (and very small) company,  Actual Entertainment.

Schedule


   Once huge advantage of being completely independent is that the schedule can be very flexible.  It's still pretty good to have one though!  So at the risk of looking foolish later,  here's my current schedule:

    level editor:   1 week
    animation and particle system:  1 week
    design, model and animate all game characters (about 10):  2 weeks.
    design, model and animate 3 worlds:  3 weeks
    level design of 21 levels (7 per world) :  3 weeks
    game scoring, title screen, credits, etc.:  1 week
    Testing:  2 weeks.
    Extras:  2 weeks

Total:  15 weeks.

Hmm,  I was hoping for 3 months ...

-- fxl


   


  


Tuesday, February 15, 2011

Starting Production

It's time to start production on Fat Jumper.  If this were a console game I'd be spending quite a bit more time on the prototype, but this game is going to be released as a real product in about three months.  No promises,  but that's the goal.

This is no ordinary production process,  because this blog is still going to document every day,  rain or shine.  There's going to be pressure to keep the game playable and, most importantly,  to make it fun.  There's still a ton of things to do.  The order doesn't matter quite as much as getting it all done.

I'll be sharing not just the game and the development process but also some of the tools.  I'll be soliciting help from you, the readers.  You'll be able to contribute by designing levels with a very powerful custom level editor.  You'll also have a hand in deciding what goes into the first product.  And of course you'll be able to play the game as it continues to evolve.  But, sadly,  the test game releases won't be happening every day anymore,  more likely once a week.

  Here's an overview of the components for this project:

level editor


    This is the heart of the game.  We'll be able to lay out the terrain,  movable platforms,  enemies,  and special items.  The editor will be released in this blog just as the game versions.  Don't know yet if it'll be in-game or a standalone program.

graphics


I'll continue to make the graphics myself,  but may solicit help from outside artists at some point.  I'll need to spend some additional time learning Blender and Unity.

audio


Need to decide on some audio tools.  Don't know yet if I want background music.  Probably yes.

world design, story, theme


We'll want to have a rudimentary storyline, some worlds,  and a theme for each world.

High score system

It's fun to have high scores and to put them into a global high score table.  A real problem with these is that people cheat by hacking the games.  This is difficult to prevent.  But a bigger problem is that it can be depressing to see so many people with better scores.  I'll be doing a "league" system to address this.  Players can join leagues and will have a league-wide high score table.  Leagues can put limits on how many people may join,  how experienced the players may be,  or geographical restrictions.  The leagues have to be self-policed so that cheaters can get tossed out by the other league players.  The full-blown system won't come on-line until we have enough players.

More tomorrow,

-- fxl

Monday, February 14, 2011

mmm donuts

Today I added donuts and cake.   If you run into the donut or the cake you get fatter.  When you're fatter you can't jump as high.  This all needs a bit of tweaking,  and the graphics are pretty bad,  but recognizable and playable,  which is what we're aiming for right now.

Here's the latest:  FatJumper 16

I also adjusted the camera up, tilted it down,  and zoomed it a little.  Eventually we'll want the camera to do some animation at the beginning and end of each level,  and track the player up and down,  not just sideways.

--  fxl

Sunday, February 13, 2011

Fatness

Today's version is an experiment in fatness.  Every time you jump you get skinnier,  and every time you collide with something you get fatter.  This is mainly a graphics test.

Here's the link:  FatJumper 15

If you stay on the platform that moves up and down you'll see Fat Jumper get to maximum fatness.

-- fxl

Saturday, February 12, 2011

Fat Jumper

Now that the very minimal website is live I can announce the new,  less temporary name.  Fat Jumper.  Here is the latest version with the new name:  Fat Jumper 14

Why the new name?  Because this one appears to be available.  A quick Google search didn't turn up any other video games or entertainment products with this name.  The name also fits the game and seems OK for the Apple Appstore.

One other new thing today is that our main character now leans forward when he accelerates.  I took the current speed factor (which ranges from 0 to 1)  and multiplied it by 10 degrees to get the angle.

Lastly, I made the Fat Jumper fatter by scaling his body  a little bit.  In the near future he's going to be varying his fatness dynamically.  When he's fatter he won't jump as high,  but will cause more damage when he hits stuff.  So how does he get fatter?  We'll need to put some food out there for him to eat (or avoid).  Donuts bad, celery good.  I might have to get permission to use some Burgertime assets. I wonder if Data East still exists?

As is the case with all questions (well, most of them) Google has the answer.  Data East went bankrupt but the assets are now owned by G-Mode.  Apparently Burgertime is alive and well.  I guess I'll have to contact G-Mode to find out if they're willing to allow this former Burgertime world record holder to put a Burgertime cameo appearance into Fat Jumper.  If not I'll have to make my own walking pickles.

-- fxl


Friday, February 11, 2011

Level Timer

The only thing new today is a level timer.  When you finish the level you get a bonus score depending on how quickly you finished the level.

Here's the link to the latest:  ActionJump 0.013

In the next day or two I'll be settling on the name for the game.  It won't be Action Jump.  Action Jump isn't a bad name,  but I found something I like even better.

-- fxl

Thursday, February 10, 2011

Jump levels

Today the controls got a bit more interesting,  there's some new placeholder sounds,  and the end of the level isn't totally abrupt anymore.

Here is the latest version:  ActionJump 0.012

There are now three levels of jumping.  The height of the jump depends on how long you hold down the spacebar.  If you just tap it our hero jumps a little,  if you hold it longer you get a medium jump,  and if you hold it for even longer you get maximum height.  It feels OK right now,  but this will possibly be adjusted in the future depending on how the character interacts with future game elements.

By getting some control over the jump height we'll be able to put in some challenges into the more difficult levels where the player has to use the correct height to get past some obstacles.

The two new sound effects are death sounds borrowed from a couple of classic arcade games from the early eighties.  Do you recognize them?  The first sound happens when you die against the first monkey.  The other one triggers when you die against one of the later monkeys.

Finally at the end of our one and only level there's a little celebration,  a little bit of waiting,  followed by starting the level over again.  I just had to put this in,  even though it's most certainly going to get replaced by something better.  These glue animations (they glue the game together)  are a lot of work,  and you might not even notice them as a player in the heat of battle.  You sure notice it though when they're missing like in our earlier versions.

-- fxl

P.S.  I'm giving up trying to predict what I'm going to do next.  Just read the next blog and you'll find out.  It felt like my past self was my boss, and a tough one to boot.  I almost fired myself yesterday,  and that would be embarrassing.  Besides,  it's a tough job market out there for fired classic arcade sidescroller programmers.

Wednesday, February 9, 2011

Invisible progress syndrome

It's time to take some time off and learn more about the tools that I'm using.  This can be quite time consuming,  so please bear with me as I might have several days of no visible progress.

It's a sad reality,  but a reality nonetheless.  Sometimes progress is invisible,  so that means there's no point in posting a new version of the game.

What kinds of invisible progress am I talking about?  Here's a list:

  1. learning stuff
  2. rewriting code to make it better
  3. writing new code but it doesn't work yet
  4. developing new graphics, sounds, etc. that aren't integrated into the game yet.
  5. Doing some experimentation that fails somehow.

This isn't a complete list,  but you get the idea.  Just because there's no new version it doesn't mean there's no progress.  Still,  it goes against the spirit of this project to have very much of this.

As I look at the invisible progress list,  only items 3 and 4 stand out as just plain bad.  To avoid 3,  code should be written to do small incremental, testable steps.  To avoid 4 simply stuff the new assets into the game someplace just to look at them or hear them.

Learning, or research,  are often necessary,  but it's preferable to not overdo it.  Finishing the project has to take higher priority.

Rewriting the code is often better than trying to fix it.  If the code has grown into a tangled mess it's best to toss it  and start over.

Experimentation will fail sometimes.  If it doesn't then you're not doing it right.

Now I really need get back to work,

-- fxl


  

Monday, February 7, 2011

Some design ideas for the near future

Well,  I don't have much time for this project today,  so I'll be writing down some ideas that occurred to me as I was playing the game.

The scoring is lame right now.  A time bonus at the end is a cheap way to add some extra challenge.  Probably the three star system could work.  For each level award 0,1,2 or 3 stars depending on how quickly the player got through the level.

A web implementation of a high score table would really help,  even during development.  This could become tricky since the game is constantly changing,  so the high score table would have to handle all the different versions.

The jump control could be more interesting if the jump height is a function of how quickly the player released the jump button.  I'll be adding this in the next version because it's easy to do.

We need a celebration animation for when the player finishes a level.

We need a way to tie different levels together.  We also need a few levels,  not just one.

The audio is pretty minimal right now.  I need to find some more sound effects to throw into the game.

It'll be time soon to decide on a theme and the real name of the game.


In just a few minutes I generated enough ideas to keep me busy for weeks trying to implement them all.  This is a very common situation with game development.  Ideas are cheap,  it's the implementation that counts.  Still,  I value ideas.  One good idea is often better than ten so-so ideas.

I'd better stop myself before I write down too many of these ideas and then have to do too much.

-- fxl


New Controls in ActionJump

It's time to switch to the new controls that I talked about at the beginning of the project.  So now, we just have accelerate to the right and jump.  Try it out the new controls here:  ActionJump 0.011

This makes the game more difficult,  but basically this is a design decision to keep the controls as simple as possible and workable on a phone.

-- fxl

Sunday, February 6, 2011

Tools

No,  I'm not talking about the screwdrivers and hammers in Gubble.  It's the software tools that game developers use.  Even early on during development it's important to select good off-the shelf tools and to decide on which custom tools to develop.

First,  a bit of history.  In the 80s most game developers used a compiler or assembler and the artists had a paint program.  Sound was often done using custom programming inside the game,  or maybe we had some special audio tools such as RPM (Rusty's Pokey Music System),  internal to Atari.  In RPM you typed in the notes and their duration,  like this:  C sharp, quarternote.  I spent many hours typing in notes from my piano sheet music collection.  Level editors were in their infancy,  or they didn't exist at all.  I invented a scripting language on top of FORTRAN to generate the ramps, elevators and other data patterns for the Crystal Castles levels.

In the 90's we saw the advent of real-time 3D and the 3D editors such as 3D Studio.  At my old company Bitmasters we used 3D Studio to prerender rocks for the SNES version of Rampart.  The first real breakthrough in this area was Donkey Kong Country for the SNES,  with great 3D animation,  all prerendered and stored in very expensive ROM memory.

For the original Gubble in 1996 we wrote a custom level editor integrated with the 3D geometry coming out of 3D Studio.  We used the editor to lay out the levels,  then fed them to 3D Studio for the real level rendering.

Now,  fifteen years later, we have a huge assortment of off-the shelf tools available for purchase,  and some very good things for free.  For ActionJump I selected Blender, Unity3D, Visual Studio C# Express and Gimp2.  They are all free,  which is truly great.  It even opens the possibility of letting customers in on the act.  We could,  for example,  allow users to write custom content using these tools and set up a way to distribute this content to the rest of the players.

Still,  there is something to be said for writing a custom level editor rather than just using Unity or Blender to lay out the levels.  This is the approach used by Halo with Forge and in Little Big Planet. So that's the plan for ActionJump as well.  Not only are we going to use the custom level editor to make our levels,  the level editor should be an integral part of the game so that anyone can use it to have fun making their own levels.

This also has an impact on this blog.  If we have a level editor available early on then the readers of this blog can make levels during development.  They would truly become a part of the team,  which is a scary prospect,  but a good scary.  This certainly takes me out of my comfort zone.

Next time we'll get back to working on the game itself.  It's not ready for a level editor just yet,  but it's good to know that it's coming,  and that it'll be integral to the game.


--  fxl





Saturday, February 5, 2011

Game Development when you're Old.

    Now that I've been over 50 for a while I might seem kind of old in comparison to those other game developers out there.  Today,  I thought I'd take a break from developing and give some unsolicited advice to you other old timers, you know who you are.  You might even be feeling old even though you're only 26.

   I started doing commercial game development at that age.  Even way back then most of the other programmers in our group were younger than me,  and if you were over 30 that was definitely over the hill.  Eight years later when I was in another group we called one of our coworkers "grandpa" just because he was the only one over 40.

   So how come I'm still at it almost thirty years later.  The answer is simple.  I love it.  Mainly,  I love playing games,  designing games and, almost as much, programming.  And I can't stress this enough,  I'm not too old for this.  Maybe when I'm 110,  but definitely not now nor anytime soon.

   By the way,  it's never too late to start.  It's much easier now to get started in game development compared to the early eighties.  The sheer volume of great introductory books is amazing.  And of course there's a ton of video tutorials on youtube and many specialized sites to help anyone to do this,  regardless of age.

    The most important thing,  other than loving it, is to have a reasonably open attitude towards change.  As we get older we have a tendency to latch on to the old and familiar ways while rejecting the new ways.  My old friend Rob calls this ossification.  So, in a nutshell,  avoid ossification.  Play some new games,  learn a new programming language or two,  get out of your comfort zone.

    And,  as a final thought for today,  fight agism wherever you might find it.  This kind of prejudice is just as ugly as racism or sexism. 

Friday, February 4, 2011

Death and Dying

Not much new today,  but every little step counts.  I added a death sequence.  When the player collides with a monkey head he spins and flies off the platform in a random direction.  I kind of needs more than that,  like a good screaming sound,  and a better start sequence.

These animations are still pretty simple,  and as the game progresses I plan to put in more elaborate and modern animations. During this prototype phase the purpose of the animations is to test out various aspects of the technology and to make the game timing feel adequate.  The theming and visual quality will have to be added at a later stage.

I made the monkeys red because they're enemies and red is just a better enemy color.

I somehow managed to wipe out all ramping,  so don't bother to play more than one wave.

No screenshot today,  just a link to the game:  ActionJump 010

Since this is Superbowl weekend it's time to take a break from cranking out a version every single day.  I did manage to do 10 days in a row,  which ain't bad.  Expect a new version on Monday.

-- fxl

Thursday, February 3, 2011

Attack of the Killer Monkey Heads

OK,  we finally have some enemies.  They're not exactly intimidating,  but at least we can't just run through the levels blindly anymore.


To play this version go to ActionJump 0.009

The player now has two colors,  and the monkey heads are textured,  and if you touch a monkey head you die.  Of course the real enemies are going to fit with the theme,  so they probably won't be monkey heads.  The green color implies that they're safe,  so next time I'll make them red and add some green stuff to pick up and get points for.

In keeping with the spirit of fixing the worst thing next,  it's really time to have a death animation for our player rather than just moving him to the start of the level.  Now that I know how to import textured objects from Blender I might work on the player graphics a bit and add running and jumping animations.

While we're working on the player,  we might want to revisit the controls.  The original idea was to have just two buttons,  but currently we're using three,  which really is one too many for a touchscreen.

Taking a step back,  this is basically a stream-of-consciousness blog where I simply write down what I'm thinking about when designing a new game.  It's also helping me to keep going every day, which can be tough sometimes when you're independent.

-- fxl



Wednesday, February 2, 2011

Monkey Business

Well, I got sidetracked a little bit,  having gotten tired of the main character being a sphere,  and that strange background texture.  So here's the new look:


And as usual,  here's the link to where you can try it out:  ActionJump 0.008

The green monkey head is a new enemy,  created with a few clicks in Blender. He doesn't do anything yet.  Maybe tomorrow he'll actually damage the player.   The main character is more recognizable as a character with accurate collision detection.  The new background is closer to what I have in mind for the background scenery.

All the the current assets (that's the graphics, 3D models and audio)  are placeholder and just barely good enough to be a solid guide for the future creation of the real assets.  It really helps to have a playable prototype so that the artists can just replace the placeholders with the final assets and immediately get the feedback on how it will look, sound and feel in the final product.

I once again increased the resolution,  this time to 960x640,  which coincidentally is the iPhone4 resolution.  It's tricky dealing with different resolutions and aspect ratios,  but it's usually best to create all your assets for your best target resolution as it is much easier to remove art details than to add them.  I'm planning to support resolutions ranging from 480x320 (phones) all the way up to 1920x1200.  Higher than that is still very uncommon,  but if at some future date we get 3840 x 2400 it'll be easy to support that as well,  mainly because we're using  a 3D engine rather than 2D.

Tomorrow: attack of the green monkey heads.

-- fxl
 



Tuesday, February 1, 2011

Boing

That was a lot of work for just adding a single sound effect.  Sorry to disappoint,  but that's the only change from the last version:

ActionJump 0.007

That sound effect was taken from Gubble as well.  I don't mind reusing that particular sound effect,  but in general it's good practice to redo everything when you make a new game.  Since we don't have a theme or story yet it's premature to do the sound and music,  but on the other hand we want to have some basic sound effects in there to make the game feel real.

I'm on the fence regarding background music.  My choices are

  • No background music
  • find some public domain music
  • license existing commercial background music
  • hire a composer to write custom music
That's quite an array of choices and it depends somewhat on the budget,  which currently is 0.  On the iPhone many very successful games have no background music,  but on the consoles it's mandatory to have background music,  especially on platform games.  We'll revisit this issue once the game is farther along.

Tomorrow I'll be adding some real enemies and make the game a bit more challenging.

--  fxl


Monday, January 31, 2011

Gears of Gubble

Yes,  I know,  this is supposed to be a brand new game,  but hey,  I had this gear model lying around left over from Gubble,  so it seemed like as good as anything to test Blender object importing in Action Jump:



Click here to try out the latest:  ActionJump 0.006

The game really hasn't changed any since version 005 except that there are some copies of a gear object in there now.  It took me a while to get collision detection working.  Turns out that the collider would throw the player off the ledge due to round-off errors,  so I had to apply the old sledge hammer:  Set the player z coordinate to 0 every frame (it's x for left right, y for up and down,  z for in and out).

The collision detection is still somewhat of a placeholder anyway,  so I'm not too concerned about the funkyness that allows you to go under the gears by just pushing.

It's pretty amazing that the gear model I'm using here is the exact 3D Studio model that was used in the original Gubble 15 years ago.  Back then we were using 3D Studio Max 1.0.  Some years ago I switched over to Blender because it's good and free,  and because it can import those old models.

Well,  that's it for today.  Who knows,  maybe we'll have sound tomorrow.

-- fxl



Sunday, January 30, 2011

My new boss: You

That's right,  you're my boss.  It's often said that the customers is the boss,  but for this project it's literally true.  

Today there's no new version of the game,  just some reflections about the first week.  The goal of the project is to develop a brand new game.  And the development process will be laid bare for everyone see,  as long as they have an internet connection.  And lest we forget, we want innovation, fun and excitement.

Back in the early eighties when I started with game development it was pretty easy to be innovative.  It was easy to think of things that hadn't been done before.  I'd know if it was new because I played all the major games,  and many of the minor games.  This is impossible today with thousands of new games getting released every year,  and that's only counting commercial releases on the consoles.  This is where you, my new boss, can help.  I'll be relying on you to warn me if my forthcoming innovation claims are valid.

So what happened during the first week?  I started with a blank slate and now we have a playable prototype.  It feels very early,  but many basic elements are there already.  It's not a real game yet and it's too early to tell if it's going to be fun.  There are no known major bugs,  and I've yet to see it crash.  The framerate is 1000/sec on my desktop PC with a cheap graphics card,  so there's no performance issues.

Was there some real innovation going on?  Well,  not so much in the game itself,  but this kind of blog is something I haven't seen before. It feels like a very new way of working,  and so far so good.  There's not that many readers yet,   but it's pretty early.  It should help to get the game farther along.

There's some real dangers with revealing the development process publicly.  The biggest problem is how to handle it of someone posts a game idea,  the game idea gets used in the game,  and then when the game is a big success they sue for royalties.  So far this isn't a problem because nobody posted any game ideas yet.  So to nip this problem in the bud,  here's my policy on this:  If you contribute a game idea and the idea ends up in any of the posted versions then your name will be listed in the credits.  I'll be crediting your real name or a handle if you prefer.   You also get one free copy of any future paid versions of  the game and all sequels.  You don't get any cash.  Sorry,  but I just can't see administering real royalties for this.  If you feel that you deserve royalties for your great idea, develop your own game,  but please don't post the idea on this blog.


Knowing that I have to release most every day,  and that a whole bunch of people will be looking at every released version encourages a very solid development style.  It's really necessary to fix any bugs immediately,  and to test the game before every release.


I'm really looking forward to next week.  Stay tuned for more new versions of ActionJump!

--  fxl











Saturday, January 29, 2011

Lives, Waves and Moving Platforms

One by one the basic elements of a classic platformer are getting thrown in there.  With apologies to Mario I've added a flagpole at the end,  sort of:


You can play it here:  ActionJump 0.005

Once you get to the end of the level the next wave starts immediately.  After about seven waves you can stop playing,  you've seen all there is to see.  You can now lose lives if you fall into the abyss,  and your score increases by 1000 every time you touch the flagpole.  At this point it's common for somebody to say "ship it",  sort of a joke about how the clueless marketing department wants to ship anything that looks like a game.

Well,  we started shipping four versions ago, in a way.  This prototype game is definitely playable now,  but there's a bunch of things missing such as sound (that's right,  we still don't have any sound),  enemies, or a main character, theme, story, I could go on and on.

On the technical front,  Unity3D is working out very well for this project.  It's time to create some real 3D objects using Blender.  So far I've been working exclusively inside the free version of Unity3D (version 3.1) with a little bit of image editing using Gimp2.  So next I'll be using Blender to make some game objects that are more interesting than cylinders, boxes and spheres.

-- fxl
  
    

Friday, January 28, 2011

Jump Bug

Just as I'm posting this I realize that there's a bug.  Only one?  No,  there's more than one...
It's Friday,  and well,  it's been a busy week.  Normally I'd fix the bugs before releasing,  but I'm out of time,  and the bugs are minor,  so why not.  There's going to be bugs during development,  despite my best intentions.

The most obvious change is that we now have a title screen.  Here is it:


Which brings us to the first bug.  The instructions fail to mention that we now have jumping too.  You can jump by pressing the space bar.  Click here to try it out:  ActionJump Version 0.004

The second bug is that the TM isn't lined up with the Game Title on the Title Screen.  This kind of pickyness is what separates the amateurs from the pros (insert cool smiley face graphics here).

Which brings us to the whole issue of Trademarks.  I'm not a lawyer,  so please do your own research on this rather than taking my word for it.  I now have a trademark for Action Jump, the video game.  How did I do that?  I released it to the public and used the "TM" letters to let everyone know that it's my trademark.  That's all there is to it, no expensive registration or legal fees required.  Of course I'm risking incurring the wrath of other companies who might think that I'm infringing on their trademark.  A quick Google search tells me that I'm probably OK.  I have yet to find another video game or software product with this name.  There is a company out there with that name and URL,  but they are in a different trademark category.

It's similar to Bentley Bear.  The Bentley car company would have a trademark infringement claim against Atari if it weren't for the fact that Bentley Bear isn't a car.  By the way,  Bentley Bear was originally called "Bear Braveheart" (my idea).  This was several years before the famous movie came out.   Atari decided that "Bear Braveheart" was politically incorrect (yes, really)  and thus the name change.

Am I going to work the weekend?  Yes.  I can't wait to make the game playable.

--  fxl







 

Thursday, January 27, 2011

Collisions

We now have some action in ActionJump.  The camera is following the player and there's some simple collision detection.  We're still not jumping, but the player is falling from one ledge to the next, and it's starting to look and feel like a game:


Here's the link to today's playable web version:  ActionJump Version 0.003

The collision detection between the player and the ledges doesn't quite work the way I want,  but it's a good start.  There's still no game structure,  such as scoring, winning,  title screen, etc.  so maybe it's time to put something like that in there.  As we work on the controls we'll want to tell the players out there how the controls work,  so a small intro screen that tells us how the controls work would be good.

If we're going to fall off ledges we need a lives system so the game doesn't just end when you fall off.

Using a rigid-body physics engine in a side scroller is probably overkill and could introduce performance problems on the phone versions,  so we might have to put in an efficient 2D physics engine eventually.

In case you're wondering what that weird background is doing in here,  it's what happened when I was playing around with the artistic effects in Gimp2.  It's just a single placeholder texture.

So next time we'll have better controls and a title screens with an explanation of the controls and a lives system.

-- fxl

Wednesday, January 26, 2011

Scrolling

Yes,  we now have ads interspersed with the blog postings, and on the right.  Do you like them,  are they evil, or do you just ignore them?  Let me know.  This is an experimental blog,  so your feedback is appreciated.

Meanwhile in ActionJump land,  we now have scrolling,  a blue background,  and a test brick texture for the ground:


You can try it here:  ActionJump Version 0.002

I also made it 800x600 so you can see the details better.

The controls are still the same,  left and right arrows move the player left and right. There's no collision detection yet.  I'd say we're still in hello world mode.  We should have something playable any day now,  really.

There's two ways to make games:  iteratively or design and implement.  I prefer the iterative method,  also called "extreme programming" or "agile programming",  which I've used every since my first software project in 1973.  It's pretty simple:  Design a small change,  implement, test,  and repeat.  That's all there is to it.  Testing is critical.  If you find any problems or bugs,  fix them right away before adding any new features.

The worst problem right now,  aside from the fact that it's not playable,  is that the camera isn't following the player.  So next time that'll be fixed, I hope.

-- fxl

Tuesday, January 25, 2011

Hello World for Action Jump

Well,  here it is.  A totally simple game,  with the wrong controls,  and no scoring or title page.  As promised,  here is a screenshot:



The yellow ball is our player placeholder graphics.  That weird texture below the player is a test to see if textures work. You can move the player left and right using the arrow keys on the keyboard,  which is not the real controls yet,  but hey,  it's version 0.001.

You can try it out at this link:

http://www.actionjumpgame.com/WebPlayer/WebPlayer.html

If you don't have the Unity Web player installed on your system you'll need to install it,  but it's quick, safe and easy.  This web version works on PC's and Macs, but you're out of luck on an iPad or iPhone since the Unity player is incompatible with those as of now (January 2011).

I had to call it something,  so I'm using "ActionJump" as the temporary name.  Most non-sequel video games start with some kind of placeholder name.  It's often not until the end of the project when name is finalized.  If you're lucky then you can keep the first name.  Just in case,  I did a quick check using Google and found that there are no famous video games using that name.  So far so good.  I kind of like this name,  but only time will tell if it's a good name for this game,  or even if I can legally use it.

Normally we don't need to think too much about the name this early,  but because I'm letting the public in on the development it's necessary to at least not call it Halo or MegaMan.  It's tempting to call it Gubble 3 and be done with it,  but this is not yet another sequel.

I'm using www.actionjumpgame.com as the host for ActionJump.  This is a new website,  and the only thing on the site is the ActionJump game.

My next goal is to get the game to a playable state with the controls like I described them yesterday.

-- fxl








  

Monday, January 24, 2011

How to start

When making a new game,  how do you start?

One common way is to come up with a basic idea using words.  Something like this:  An FPS  (that's a first person shooter for you newbies) where you're a robot exploring the caves of Venus.  OK,  that's a pretty uninspired idea,  but you didn't think I'd reveal one of my many truly revolutionary new ideas just to illustrate this point,  did you?

Another way is to interatively develop a prototype and see where it leads.  In our FPS example,  you could maybe just make a box and move it around some terrain and tunnels.  We're shooting other boxes and make it fun to play.  Then later on you add the theme, story, etc.,  and maybe turn the box into a robot.

We could also start by sketching some stuff on paper to see what develops.  We could draw something that looks like a robot in a cave,  shooting same space bats and other strange alien creatures.

For truly new stuff I prefer the prototype method.  There's no substitute for getting a feel for the controls early on.  For me the heart of most games is the feel of it.  If we can get the basic movement and actions nailed down right away the rest can be added fairly easily.  Changing the controls later is often difficult and has too many repercussions.

So, my first decision on this as yet unnamed project is to build a prototype first.

The next step is to select our tools.  Can't build a prototype without tools.  This one's easy.  I know Blender, Unity3D and Gimp,  and they're all free and amazingly good.  It's especially amazing how good they are for the price.  Did I say they're all free?  The only catch (as of early 2011) is that Unity3D is only free if your company had turnover of less than $100K last year.  Yes, I qualify for the free version.  Blender and Gimp are open source and completely free.  I don't know what audio tools to use yet,  but I'll use placeholder audio for the prototype,  so I won't need anything fancy just yet.

The last step for today's blog entry is getting started with same basic decisions about the game.  Let's tackle these one at a time:

Target Game Systems:

     Hmm.  That's a tough one.  This blog thing is putting a bit of a wrinkle into this decision. There's a plethora of systems to choose from. In Unity I have access to iPhone, Android, Web, PC and Mac, and the big three consoles.  For the prototype using Unity Web seems the best choice because that'll allow me to easily deploy the various versions for you blog readers.  After the prototype is working and good I'll decide on the target systems for the commercial versions.  Right now I'm leaning towards iPhone and Web for starters.

Game Genre:

     The first rule here is simple:  write what you play.  I've played a whole lot of video games in my life.  If I had to list the major genres, it would be:  Platformers,  FPS, RTS, classic arcade, music games, sports, racing, Zelda.  It's kind of weird that I'm putting Zelda into it's own genre,  but hey,  this is my list so I can do that.  Looking at that list the Platformer genre is the obvious choice for me.  I've never developed a platformer even though it's my favorite genre,  especially lately with the resurgence of Super Mario and Donkey Kong Country.  As a side note,  if you don't own a Wii,  buy one and then play Super Mario Galaxy 1 and 2, Super Mario Brothers Wii, and Donkey Kong Country Returns.  These are the giants on whose shoulders I'll be standing.  ("If I have seen a little further it is by standing on the shoulders of Giants" Sir Issac Newton.)

2d or 3D?:

     Goodbye 2D.  It's very strange.  My first game, Crystal Castles,  was an attempt to do a 3D game without 3D hardware.  Now it's almost 30 years later and I still haven't released a real-time 3D game.  The only 3D games I worked on haven't seen light of day.

     The older platformers were all 2D until Super Mario N64 showed us how to do them in 3D.  Lately there's been a trend towards doing the old 2D style platformer gameplay but using a 3D engine.  This is a good way to get great looking graphics, keep the controls simple, and avoiding nasty camera issues.

     So,  to answer the question in more detail, real-time 3D but using a 2D side scrolling look,  very similar to Donkey Kong Country Returns.

The Main Character:

   I'm a programmer.  My art is pretty good for a programmer,  but I'm no pro artist,  so I'm not going to do a cute furry animal or human.  I could do a robot or maybe a square,  but I'm looking for something more innovative.   I'm going to have to put in a placeholder character into the prototype and decide on the real character later.  Maybe I'll let the character evolve just like the rest of the game.  I'll start with some geometric shape like a sphere,  and squash it when it bounces.

The Controls:

  Left, right, jump.  That's the usual platformer minimal control scheme.  The problem is that on the iPhone we don't have any buttons,  and simulating three buttons is one or two too many.  Having just one button is too limiting,  so I'll see if I can do the whole game with two buttons:  Action and Jump.  The Action button could be anything from "speed up" to "open door" to "jump left".  The meaning of the action button can change from level to level.  I'm visualizing the player keeping his left hand on the left button and the right hand on the right button.  This works on all of the platforms,  which is a big plus.

The Camera:

   It basically follows the player,  and possibly zooms in and out depending on what the player needs to see to play a particular section of a level.  It can also zoom at the beginning and end of a level for effect.

Player Physics:

   The player moves from the start of the level towards the goal.  He jumps when the jump button is pressed.  He accelerates (up to a max speed)  when the Action Button is down,  and decelerates down to normal speed when the Action Button is up.

The Levels:

   The prototype will just have some plain ledges and kill areas.  If you touch a kill area you die.

Scoring, Lives, etc.

   This can wait for another day.

Now What?

   Time to get started and built the prototype.  Next time I'll have a screen shot from Version 0.001.

fxl

Sunday, January 23, 2011

Games are my life

Yep,  it's true.  I've been playing and creating games all my life.  There's some serious games,  like math and programming,  and games just for the enjoyment of participating,  like skiing and playing piano.  There's also coin-op games like pinball and classic video games like Centipede and Crystal Castles.   And then there's the crazy world of being a video game developer in 2011,  which is a game in itself.  As you can see,  I have a very broad interpretation of the word "game".

This is a free-form blog.  The only rule is that I have to write something game related in it every day.  I got inspired to do this by watching "Julie and Julia"  a very good chick-flick,  even for guys.  In this movie Julie starts a blog about cooking her way through Julia Child's famous French cookbook.  It's a mammoth undertaking to cook over 500 recipes  in 365 days.  I don't have such a well-defined goal yet,  but there is a goal.

I'm planning to develop a brand new video game from scratch,  so some of this blog will be about that.  It's truly from scratch and mostly a solo effort.  I'll be doing the art, music, sound effects,  and of course the design and the programming.  It's sort of like an author of a novel looking at a blank page.  It's very exciting to know that anything is possible.  There's no name,  no publisher,  no boss,  just the vague notion that it's going to be something new and fun.

fxl