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 Hewlett Packard Enterprise. Discover how HP Agile enterprise solutions can help you achieve high predictability and quality in your development processes by knowing the status of your projects at any point in time.

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 Hewlett Packard Enterprise. Learn more about driving business innovation by leveraging Agile quality lifecycle strategies.


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 }}