t.r.o.o.p.s. (a.k.a. serum) is a sprite-based, real time strategy game written in java (modeled after warcraft 2). this was the final project in our advanced software engineering course (first semester, sophomore year). back then, t.r.o.o.p.s. was one of the first taste of 'real world', medium/large scale, team project that all of us had experienced. for 3-4 weeks, we each worked about 50-60 hours per week (in addition to other classes) to complete something that exceeded course requirements, remained true to the real time strategy genre, and was quite creative at the same time.
screen shot from a t.r.o.o.p.s. battle when this took place, and given the time-frame, the magnitude of the project was huge. the six of us spent the first 30 hours designing and resolving software, design, and in-game issues before writing a single line of code. we then divided up the project into loosely coupled components (movement engine, graphics and animation, game data format and loading, unit / building / resource managment, user interface, player a.i., and sprite/image design) and we each took responsibility for at least one component and it's full integration with the overall game. by the end, we had 30,000 + lines of reliable, debugged code spanning over 140 unique java objects - that all worked, together.
i was responsible for the graphics and animation programming, which included loading and animating the sprites, background, primitives, and texts on the screen, taking in to account various screen coordinate offsets and viewport positioning. in order maximize efficiency and useful functionalities, the graphics module organized, stored, retrieved, and cached images, as well as maintain map representation, along with multiple graphics buffers for backgrounds images and next-frames, and rendering the interactive mini-map of the entire world. finally, the graphics module needed to make all of its functionality available to the rest of the game engine through a flexible yet simple interface.
one of my early experiences with large-scale, team projects (there have been many since then) - and definitely one of the most valuable. there were amazing group dynamics between us and a true determination to achieve. we met the crazy deadline with a high-quality, unique, and creative product. (many thanks to prof. astranchan and prof. duvall!) |