We have finally uploaded a Alpha build for everyone to play. We hope you enjoy it!
The Vindictive Dev Team
Our game has certainly come a long way since our last video. This is in large part due to the IGM Kickstarter Event we participated in 2 weeks ago. The IGM Kickstarter was a competition hosted by RIT professor David Schwartz for RIT game development students. The event took place over the course of the weekend where teams focused solely on programming. Provided with free food, there were little distractions and subsequently plenty of progress. The team with the most progress and most impressive game at the end of the event would be the winner.
We are proud to say that we were picked as one of the two winners of the IGM Kickstarter! Our prize is a trip to RPI to showcase our game to companies and other schools on April 28th!
The last video in our blog was a demonstration of our A* pathfinding in action. Since then, our A* has progressed even further! Now threaded to increase efficiency when large numbers of units are calculating paths simultaneously, our A* code is an impressive piece of work. Using techniques from games such as Empire Earth and Age of Empires, we have implemented seamless pathfinding across large numbers of nodes. We are excited to see our game starting to take shape as a real RTS!
A wave of new features have been added as well! While going in depth about each one would take a very long time, here is a list to lay them all out:
- Combat has been fully implemented. Units from two different players will now interact fluidly with each other, forming battle lines and choosing the nearest unit to attack
- A brand new User Interface
- New units including Villagers, Legionnaires, and Skeletons
- Construction of buildings via Villagers
- Unit spawning via buildings
- Resources - Wood, Gold, and Stone
- Resource gathering
- New right click (go to location) animation made by Dan Townsend - our 3D modeler
We will post a new video soon to show you our game!
It has been a while since our last post and there are a bunch of new important topics to discuss throughout the next few posts.
First and foremost we would like to introduce our newest member Dan Townsend. Dan will be creating 3D assets with animations for the game such as multi-stage buildings, village resources, and even a new unit!
We are also busy preparing for Imagine RIT. Imagine RIT is an event Rochester Institute of Technology hosts allowing RIT faculty and students to show off projects worked on while at RIT. In order to get ready for this numerous features need to be added to the game.
Speaking of new features! In the following posts we will demonstrate and describe how we conquered our A* problems(threading/ multi-step pathfinding) and what new features we have implemented since we last posted.
Update on our A* progress.
This week we encountered numerous problems whilst developing our A* algorithm.
- Placing buildings on the terrain after units have found a path may result in units being blocked because their path does not update.
- If the units target is moving the unit needs to dynamically update the path to them as efficiently as possible.
- Units would cut the corner of a building which sometimes resulted in them being stuck.
- Nodes needed to be un-navigable based on the height of the node (Mountains, Water sources).
- When clicking to move units, the starting node and end node may not be navigable so a nearby navigable node needs to be found to replace it.
- When a large group is told to navigate a decent distance, the game lags until it is found.
- The basic version of A* isn’t sufficient enough to do what we need it to do. Buildings can be dropped while units are navigating so Dynamic A* or (D*) will be used to recalculate paths if this situation occurs.
- We are still debating solutions for this.
- Jake solved this problem by checking if adjacent nodes were walkable by determining if the unit should move diagonally or straight.
- When creating the nodes, we had it check the height of each node within a certain range determines whether it is navigable.
- Dijkstra’s will be used to find the nearest node that is navigable.
- The first unit in the group will notify other units within a arbitrary distance to follow that units path.
A* in combination with flocking behaviors. Units can successfully navigate around buildings (represented by sections of black spheres) to a position indicated. We are looking forward to expanding on this.
A blast from the past. Our game after about two weeks of working on it.
Justin and I have been working on implementing A* into our RTS. After researching the algorithm extensively, we went head first into coding.
After finishing our base implementation of A*, we found ourselves in need of a grid. Our map is 2000 by 2000 size, and if we were to make our tile size 1 by 1 (which would be most accurate for pathfinding), that would mean we would have 4 million tiles. Since creating that many objects would take forever, we knew the tile size would need to be more like 10 by 10 (40,000 tiles). Even 40,000 tiles would be too many though.
To reduce the tile count further, we needed help. We turned to Dan Townsend, a peer student at RIT, as an A* consultant. He had worked with A* before and was able to provide advice for optimizing our grid. His most valuable suggestion was to only spawn tiles in walkable areas of the map. This would significantly decrease the amount of tiles. Another idea Dan gave us was to spawn tiles dynamically as we did the algorithm, but we are still unsure if this would slow down run time too much to be viable.
We are now going to consult Professors Doubleday and Kurtz for ideas.
Hi, our names are Jake Green and Justin Smith and we are both 4th year Game Design & Development majors at Rochester Institute of Technology. During the fall quarter of 2011 we began developing a Real Time Strategy (RTS) game for a Simulations for Learning class taught by Professor Nancy Doubleday & Professor Steve Kurtz.
The main principal behind Simulations for Learning is that simple concepts could accomplish great things. With that in mind we combined rules from Craig Reynolds famous flocking behaviors taught to us by Professor Kurtz and our knowledge of Unity 3D to create an RTS over the course of 5 weeks.
Towards the end of the quarter we decided we wanted to continue working on the RTS next quarter. Later we presented the idea of continuing the game through an independent study. Excitingly both Professor Doubleday & Kurtz accepted to oversee the project and help us continue our work.
The purpose of this blog is to update everyone on the progress currently made this quarter and to graciously thank our Professors for making this possible.
Jake Green & Justin Smith