The past few days have been total hell for my Internship project. The two programmers on the team that I had tasked with completing their sub-parts of the Social Miner project did not deliver on time, nor was what they had created up to the project sponsor's specifications.
We were told on Wednesday that we had until Friday to complete the two remaining portions of the project or we would all fail the course. This alone is about 2/3s of the overall project… so we all looked around at each other for a bit after hearing our instructor say this, then he walked away after clearly stating, "Get it done."The student team lead asked me how much we had done and what we still needed to do and I roughly gave her an estimate of about 200 hours worth of programming if I did it alone. That's straight, no breaks, no sleep. She pointed at me and the other two programmers and said, "Well you'd better go stock up on caffeine."We went to QT across the street, bought 4 Full Throttles each and got to work. I called up the artists and the designers and asked them to match up all of the content they gave us with each of the layout portions and give them a label. Since this project was in ActionScript 2, used those labels to create an identical XML document tag for each of the levels.Custom XML parser in, documents done, so work began. I was furious with the other two programmers and their lack of completion, so I brought up what they completed, selected everything, and pressed the Delete key with them watching. They both said, "Duh uh uh! What are you doing?!" I looked at them both with a straight face and said, "Starting from scratch. Now here's how you do it…"The layout design given to us by the artists were all done in Adobe Illustrator. Being that the images are vector graphics and managed by the same company that made Adobe Flash, you can simply copy and paste the entire layout into Flash and work with them there, preserving text formatting as well as component placement. This makes converting the document into something we can dynamically change later by switching all text boxes to Dynamic, giving them a name, and then recording what we had named them on a piece of scratch paper for later implementation. At this point, in 30 or so seconds, we were farther along than they had gotten in 3 weeks. Since I had finished the XML parser for the levels already, I gave them the task of filling in the XML data into the sheets with the new tags while I worked on formatting and user interaction. At the recommendation and example given to me by the other programmer, I threw some buttons with mouse overlays and events behind the text that can change and interfaced them with the Widget tool. (A game feature, not a standard Flash tool.) Turned out a whole lot better than I thought that would.From there, we spent the next 10 hours finishing up and polishing the level. It was an excellent design and implemented exactly to the specifications of the sponsors and team lead. It was now Thursday morning, about 5 AM and we were all pretty tired, so I gave the team a 6 hour sleep break because it would be a long night Thursday well into Friday morning to finish the other page.After some sleep, it only took us 10 hours to finish the remaining page, much easier now that we knew how to make something just like it. What surprises me the most about the project is how in the last two days, the best content for the game was made and implemented… if only we had done that same amount of work for the whole 15 weeks we had for the project, it could have turned out so much better than it did.The team stayed up the whole night until after our presentation with the sponsor and instructor and they were both shocked as well as impressed that we pulled it off. I don't think anyone could have guess that we could trim that amount of sizable work into such a short time frame, and we even got to sleep for a bit!We were dismissed to pass out and when I came to, it was noon Saturday. Finished with the semester at last!If you read my previous blog, you'd notice the substantial difference in the grades I had with the grades I finished the semester with! :DAbove: Final Semester GradesBattlefield AI - ZioSo I wrote a boss AI for one of my most favorite boss characters of all time: Zio, from Phantasy Star IV.Above: Original Phantasy Star IV (4) Images of ZioJust like in the original game, Zio enters the fight with a short cut-scene as well as some dialog and immediately summons Dark Force using the Nightmare spell. Once summoned, Dark Force will cast Supreme Black Wave at a random unit on the opposing side. (since Zio and his Dark Force are on their own team, that means everyone else) Supreme Black Wave hits hard enough to one shot everyone except for a Druid in Bear form with all survival cooldowns popped, but I've only seen this happen once, and immediately followed, was struck by Zio's own Black Wave ability. In turn, killing the bear even with heals incoming. I lol'd.Zio has five abilities: (1) Black Wave, (2) Corrsion, (3) Hewn, (4) Magic Barrier, and (5) Nightmare. His initial health and damage also scale for the number of enemy units present at the time of his spawn.Black Wave has a relatively short cast time and blasts a target for 100 - 180 damage. (This will one shot a caster or priest that do not have absorption effects up.) Corrsion is a massive, short cast time AoE ability that corrodes all units within 30 yards and deals 60-80 damage to each of them. Mechanical units are disabled if within range of the attack. Corrsion is really "Corrosion", but to stay true to the game, was kept as "Corrsion" as that's how it was spelled in the game. Hewn is a massive, long cast time AoE ability that deals wind damage to all units within 30 yards does 60-80 damage to each of them. If used directly before a Corrsion spell, will literally wipe out most Caster and Healer units that have not received heals or an absorption effect yet.Magic Barrier puts up a bubble of absorption that absorbs up to 1% of Zio's maximum health every 20 seconds. Considering his health scales with the number of units, the fight gets progressively more difficult as more and more of the team dies to Zio's onslaught of attacks.Nightmare summons the presence of Zio's god, Dark Force. The summon effect ends once all units are destroyed. Dark Force must then be re-summoned should another unit be created or come into range.Above: 129 Alliance AI Members fighting against the (Empowered) Dark Prophet Zio AI implementation
That sucks, and I always feel that way when I do much more work a few days before something huge is due when I had weeks to do it :P
Hey I remember that game :DYeah, I'll probably eventually make a game using the AI, but this is more for my own enjoyment. I hate telling stories, but love watching my creations beat the shit out of themselves and each other.
Phantasy Star VI? I thought they only made four. Great series though.
A game using this AI would be interesting. I'd like to see this in action too, with 129 allied AI characters. xDWhoops, it's IV, not VI. I'm so bad with roman numerals.
Okay, it's decided. I'm starting the actual game project for this now using all that I've learned in the past 10 years. No more builders, no more helpers, this one is going to be legit and awesome!
AI is awesome. But the only thing i built was from more than 2 years ago, and works, but sucks how they get stuck on stuff lol.