Over a million developers have joined DZone.
Platinum Partner

Iterative Software Development, Part 1

· Agile Zone

The Agile Zone is brought to you in partnership with DZone Software. Build your own privately managed community, like Stack Overflow, for your team with AnswerHub, a DZone Software product. 

Originally authored by Andrew Wagner

With this blog post, I'm officially kicking off a new long-running screencast series! Yay! I really am excited about this, but first let me give a big shout-out to Near Infinity, which is a great place to work. Awesome benefits, smart and talented people, and very interesting work.

So, what's this screencast series going to be about? The main theme is iterative software development - I'll be building a 2D game library iteratively, one feature per screencast. I won't be teaching Java syntax, but I will be teaching you how to keep your code organized and flexible so that you can go whatever direction you need to.

I'll be using an architecture called "Component, Entity, System" for this project. There's lots of great information out there about this, but I'll go ahead and define the terms here for convenience:

  • Component - A chunk of related data, such as a point (with an x and y value). Little-to-no logic
  • Entity - An ID list of components. Little-to-nothing else, including logic.
  • System - Logic (finally!) that acts on a set of entities.

That's enough of an intro for now. You can find the github repository here. Please email me feedback; I will be happy to take it into account. I'm hoping to release a video or two each week, so tell me what you want to see! Here's the first video:



The Agile Zone is brought to you in partnership with DZone Software. Capture, organize, and share your team’s knowledge with AnswerHub, a DZone Software product. Designed for developer teams, by developers.

Topics:

Published at DZone with permission of Scott Leberknight , DZone MVB .

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}