Over a million developers have joined DZone.

Dev of the Week: Simon Jackson

DZone's Guide to

Dev of the Week: Simon Jackson

· Java Zone ·
Free Resource

Java-based (JDBC) data connectivity to SaaS, NoSQL, and Big Data. Download Now.

Every week here and in our newsletter, we feature a new developer/blogger from the  DZone community to catch up and find out what he or she is working on now and what's coming next. This week we're talking to Simon Jackson, indie game development enthusiast, community developer, and technical architect:

Thanks for talking to us! What have you been working on lately?

What haven't I been working on? While not burying myself with work I have my sleeves rolled up with several projects.  I've just finished one of two submissions to the Intel Perceptual Computing Challenge (which is about using a Kinect-like sensor for alternate ways to do computer interaction), both of my submissions being games. The first was to create lightning effects from your fingers on screen, the other is a racing game with a virtual air steering wheel.

On top of that I'm finishing some new samples to showcase the use of MonoGame (the community successor to XNA) so that there are some better, full-featured samples for all the platforms Monogamy works with.

Unity keeps popping its head in from time to time as I'm on the private betas and keep moving things along with testing and new developments.

Somehow other shiny things keep getting in the way and causing distracting, sometimes leading to new and interesting things (one such item created yet another sample for MonoGame) that usually end up as blog posts.

Your blog has a special focus on indie game development. If you were speaking with an experienced developer who wanted to get into making indie games, where would you recommend he or she start?

Now that is a loaded question and one I had to answer just the other day.  The answer almost always is “it depends," there are so many facets to game development and each have a different focus or path. If you want to roll your sleeves up and get dirty with code, then dig in with XNA/MonoGame, you will learn a lot about the fundamentals of game development (game loops, asset management, 3-D concepts and so on), which will put you in good stead as a game engineer. If you have no prior coding experience and want to learn, then pick up a good book or head over to Pluralsight first.

If you prefer the design side of things then Unity is a better fit; its component-based GUI development is fairly easy to pick up and master once you have the basics down. It won't help you if you want to get into AAA studios except as a game portfolio, but you'll need the real experience of coding to fit in.

For arty people, pick a tool such as Blender/Maya/3DS Max for 3-D modelling, Paintshop Pro for 2-D art and get stuck in practicing, practicing and practicing creating stuff.

In any case, build a small idea, craft it, revisit it and finish it. Then rinse and repeat. Build up a catalog of your work and even publish a few as you go.

If you start in this game (like a lot of us do) with big, grandiose ideas, then more often than not you will fail, get discouraged and most likely give up.

Are there any particular developer tools or resources you couldn't live without?

Far too many. I've picked up, hammered out and dropped far too many tools over the years, those that have stayed usually fit the best criteria for indie development, being free and well-supported.

For 3-D, Blender beats everything hands down (especially after this year's updates), for 2-D the water is a little muddier as it depends on what you're doing. I use Paint.net for touching up, Gimpy and Milkshake for crafting, and Sketchbook when all else fails. For audio there's nothing better than Audacity.

Generally you find that you need several tools to get the job done and you build a tool chain that suits your way of working.

Do you have a favorite open source project (or projects) that you've contributed to recently? 

Being a hearty community developer, I tend to favor open-source projects above all else, you always (usually) get in with a great crowd of passionate people. With commercial programs or betas you can contribute some but with stricter constraints.

With open-source projects, if there is something you don't like or something you want on top of what is always available, then you can just get stuck in and add your own mark.

The main projects I'm involved with are MonoGame and AdRotator (with Gergely Orosz), but almost everything I create, whether it's a sample or full project, end up on GitHub or CodePlex because I just like sharing, all the better if it helps get another rev out.

Do you follow any blogs or Twitter feeds that you would recommend to developers?

I'm a bit like Chuck Norris when it comes to Twitter, I follow just about everyone (provided they have something interesting to say or announce, it helps a lot with research and I generally retweet anything that is particularly interesting and/or useful. There is a lot of garbage but it’s quite easy to filter it out, so I think that if I am following someone then they are worth following. Specifically I'd call out the likes of the Nokia ambassadors/champions Lance McCarthy, Bill Reiss, TherealRiaz and Richard Dunbar, they have lots of interesting tips at the moment. The leaders of the UK usergroups like Mike Hole, Will Charles, Matt Lackey and Hermit Dave always share good stuff. Lastly you cannot go anywhere without listening to the likes of Ginny Caughy, Tom Warren (The Verge) and Mary J Foley (ZDNet). So many good people.  Just help out as much as you ask if not more and you will find lots of help.

As for other blogs, these days I check in on what's hot from time to time. I used to have a massive list of blogs tracked through FeedReader (I still have my backup somewhere), but it started to take too much time to sift through it. These days I find that if it is truly inspiring lots of people will be sharing it.

One last big shout I have to mention is Jerry Nixon, just for being a really stand up guy and evangelizing AdRotator.

Did you have a coding first love -- a particular program, gadget, game, or language that set you on the path to life as a developer?

I started out many years ago in game dev with C++, like many around my age did, that was until MDX came along and we had our first glimpse at game development with DirectX in a managed environment, that was until XNA came along.

XNA has been one of the biggest impacts in my dev life since it dragged me kicking and screaming into the game rev community, I can't say I've built and finished that many full games but I have created literally thousands of prototypes and shared a fair few of them, if I had stuck with C++ I doubt I would have done that, so XNA was my first real love. It is such a shame the road it has taken recently, but the dream will live on with MonoGame at least.

As for the days before game dev, I can't say I truly loved it, but I've seen, used and trashed most languages out there, and C# is my language of choice and I wait for its day of reckoning.

Anything else you'd like to mention?

Final word, hmm. If you have a passion explore it and don't be afraid of where that passion might take you, don't be afraid to assist others and share what you have learned. I take great pleasure in grabbing new things and taking them apart to see how they work, but I find it more appealing to then take others along with me on the road to see where it leads and just how far you can go with it.

My life's motto has always been "just in case" (always be prepared) and I truly believe that to err is human but to really mess things up you need a computer, a lawyer, a project manager, a salesman and a hairdresser, to get it fixed you need just one person who actually knows what they are talking about. :D

Thanks, Simon!

Check out Simon's blog and Twitter!

Connect any Java based application to your SaaS data.  Over 100+ Java-based data source connectors.


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}