This is the first blog entry that I have posted from the train on my way home from work. They finally have wi-fi, unfortunately time and bandwidth is extremely limited so I'm going to have to make this quick.
Finally, a screenshot! Huzzah. This is a rough version of the Shizuoka Prefecture (based on heightmap data sourced via Google Earth, I might do a tutorial for how I did this as I've seen tutorials for UDK, train sim etc but not one that's Unity specific) which is the setting for the first three levels of the game. The mountain you can see in the background is Mt Fuji.
Other than that, I've been extremely slack. Things are progressing but very slowly, I'm only about 15% of the way through my second draft of the shareware story script (the first draft took two weeks to do, in total. I'm already five weeks into "development" on this version). I am a lot happer with what I've been writing for the second draft but I still find it cheesy crap - though I shouldn't really care about that at this stage anyway, polish can come later. Now that I've posted one screenshot, I should probably continue posting them for the rest of development, which will definitely help me progress on the core game.
Not sure how much time or bandwidth I have left so I had better leave it here. Stay tuned.
Still no real screenshot to show yet. Just been pottering away in R&D mode. The first three missions of the game are set in Japan's Shizuoka Prefecture, so I'm working towards implementing a simplified, scaled down (maybe 1/4 scale or less) but still somewhat recognisable version of that in Unity. (The reasons why I chose Shizuoka are two fold, one is because of the view of Mount Fuji, and the second - which I only found out after I had already made up my mind on Shizuoka - is that it's entirely appriopriate to have giant robots there because of this)
I think I'm growing more and more fond of Unity the more I use it. I really like the "convention over configuration" principle that Unity has (assuming you want to do something the most common way but making it as easy as possible to customise), especially on the enormously flexible and configurable Game Objects. Thinking about it further, Unity's Game Objects are actually kind of analogous to Drupal's Nodes.
Been dwelling on how to implement turning in Battlesuit. While most First Person Shooters only limit the player's maximum rotation speed by how fast he can physically move the mouse, I'd like to have different limits on rotation speed per mech so it feels more authentic and the lighter mechs handle more distinctly to the larger ones. The current idea that I've been thinking about is kind of a hybrid of the traditional PC FPS controls and the Wii FPS controls. The player will rotate towards where they've placed their cursor on screen, which will be dragged back towards the center (ie, the player will always be aiming at what is under the cursor). I also think it'd be cool to aim and fire at something you're not directly facing (which is neat on Wii FPS games, even if overall the controls are more frustrating). This should also add some tactical depth as you can't just spin on a dime if there's an enemy behind you. Any thoughts or suggestions?
I haven't had a lot of time for the project, partially due to my Toshiba Laptop (that had just marked the milestone of being my tool for four consecutive Global Game Jams) finally packinging it in couple of days ago. I guess I can't complain, the laptop wasn't ridiculously expensive for the performance it had and it lasted me a fair amount of time. Still, I'm much happer with my new laptop. Everything is vastly better - Performance, Battery Life, Weight, Construction, Windows 7 (I never upgraded the Toshiba past Vista). The only downside is a marginal downgrade in the amount of screen real-estate. Despite having a 2GB Graphics card, 15.6 inch screen, 4GB RAM, i7 processor and 750gb HDD it was also pretty inexpensive - cheaper than even the most bare basic Mac laptop at approx $1,200 NZ. Cheers PB Tech.
My team is coming together very slowly. I wrote a basic draft pitch for the game that I have used to approach potential team members with, which is:
Emi Muharu, a sixteen year old Japanese High School Student, has no idea that she is about to be thrust into the front line of a war she thought had been over for forty years.
The year is 1987 and the Mars-based remnants of the Third Reich are in conflict with the Space Navies of NATO and the Warsaw Pact. Bolstered by superior technology and a seemingly endless supply of German war hero clones, the Axis forces have gained the upper hand. Their leader is Adolf III, the reckless teenaged clone of the notorious dictator with malicious designs on Earth.
The weapon of choice for both sides is the Battlesuit, a 30-foot tall bipedal tank equally capable of land and space combat. The Battlesuit was invented by the kindly yet deviant "Professor" Muharu, formerly of the Axis forces but now the captain of the anti-Fascist privateer space vessel Shinano.
The Professor's squadron of elite Battlesuit pilots - the headstrong Karen McDonnell, the philosophical Kaya Mori and the carefree Catgirl Android Neko - are a constant menace to the Axis forces. At the beginning of the story, the Third Reich attempts to kidnap the Professor's granddaughter, setting in motion a series of events that lead to Emi becoming the Shinano's fourth Battlesuit pilot.
- A fresh gameplay experience that combines relentless First Person Shooter action with tactical planning and precision timing
- A darkly comic storyline that pays homage to the Giant Robot Genre of Anime, and spanning over two hundred pages of script
- Twelve different playable Mechs, each with unique characteristics
- 36 intense missions in three episodes (including a 12 mission free-to-play shareware episode)
- Online co-operative and competition modes
I know the pitch is ridiculous, but it's the game I'm going to make, damn it! Fortunately so far no one has been put off yet!
Well, that's it for today. Stay tuned for next weeks post. Same Battlesuit time, same Battlesuit channel.
I haven't embedded in the post as the thumbnail shot is particularly violent, but you can go to the video here.
I know it's only been a day since my last post, but I really need to stick to the habit of my weekly posts on the project.
Unity was one of my main options for Battlesuit's engine, and after playing with it at the Global Game Jam I can safely say that it's now going to be my main toolkit for developing the project. I now know Unity well enough that continuing development in Blitz3D would be largely pointless (not that the Blitz version was very developed). My next step will be to try and port Blow Stuff Up to Unity, which may form the core of the Battlesuit engine (I may actually leave the core gameplay of BSU in there as an "Arcade mode" of sorts).
That's not to say that I am completely free of misgivings. The Pro licence is expensive and I'm pretty sure I'm going to want what Pro offers when I get around to tweaking the game (especially to get shadows). I still have UDK in mind, so I might take a second look at that later down the track if I get frustrated with Unity.
There's fortunately another long weekend this weekend (Monday was a day off work because of Auckland Anniversary weekend, and next weekend is Waitangi Day) so I might be able to get something cool done in that time. I'm thinking of making a marathon effort to get the second draft of the shareware script done, for instance.
That's all I have to say for now. Maybe screenshot next week!
Overall my experience at the Global Game Jam this year was a mixed bag. I left having programmed the worst game I'd done in a long time, fortunately though the experience didn't come without learning Unity and some other valuable lessons. So, here are my thoughts on the event.
Clockwise from left. Simon (Environment art/texture art), Yeefoong (Character art/texture), Phil (Project Lead, also did Art), Billy (Character Art), Baldy man (Programmer).
As you can see from the make up of the team, it was strong artistically (and some of the 3D graphics in the resulting game were absolutely top notch) but not as strong from a programming point of view. The game's flaws largely come from my side.
Lesson Learned #1: The core programmer should be fluent in the toolset of choice
I had never used Unity before the weekend (apart from one or two of the most bare basic tutorials) and since Phil announced the project was going to use Unity I leaped at the chance to get some hands on experience that may yet pay off with the Battlesuit project.
Unfortunately, even though I'm fairly strong at C#, and Phil was able to give me invaluable assistance with starting out Unity, I think the project suffered because I wasn't familiar with Unity's nuances. Physics in particular was a nightmare. If I was to do it again (and I might still do this), I'd ditch Unity's built in Physics and make a serious attempt at creating the right feel from my own heavily "faked" physics. It also took me far too long to implement simple things such as animation because I had to learn all of that as I went.
It wasn't the intention for me to be the sole coder right from the start, we certainly would have taken more programming help if we could have gotten it. Unfortunately we couldn't get any other programmers to join the team.
There were three people who contributed to the code base for Noah More Heroes last year, and I was the only one who had used Blitz3D before. That arrangement actually worked out pretty well, the other two programmers turned in some good code after I gave them some basic mentoring, and overall it saved me a lot of time that I put to use with the core game. I think that arrangement would have worked well here, I might have been useful as an 'apprentice' working on the less important parts of the code base if an experienced Unity developer focused on the core code.
Lesson Learned #2: Focus on what's fun
It was about 1am on Sunday morning when I realised the original version of the game just wasn't working. The original game was kind of a race between the players along platforms in an infinitely long Kitchen, eating food to gain weight so that they could push others around easily. Noah (yes, I have a friend named Noah, though that had nothing to do with the naming of last year's entry!) convinced me to implement a mode focused on the 'Sumo' element of the game, so I decided to ditch what I'd already done and retool the entire game around that idea before the rest of the team came back in the morning!
Thinking about it further, the original version of the game entirely wasn't without merit. Jumping between platforms was kind of fun and there's no reason why I couldn't have implemented some moving platforms around the kitchen top.
Lesson Learned #3: You can't cheat sleep
This was a lesson I already knew but chose to ignore. It was stupid of me, but I slept a lot less at this game jam than I had at previous ones. To tackle difficult problems you really need to have maximum mental performance, and you certainly don't have it if you haven't had a full night's sleep.
Lesson Learned #4: Work on an idea you love
I loved the idea of 'Noah More Heroes'. I think the whole team did. This lead to a great working atmosphere where we spent the whole weekend laughing as we frantically worked on the game. It wasn't entirely stress free but, even if I do say so myself, I think the merit of the original idea is evident in the final game.
I can't say I fell in love with the concept of Eat Or Die, even though I contributed to it. I think I really struggled conceptualising what was fun about the idea (both in gameplay and in theme) which might be evident in what I coded. Not being enthusied by it also didn't help with my motivation.
There was an idea that I really loved, largely inspired by an idea Noah pitched. I'm actually still really tempted to sit down and make it sometime, if Noah would be interested. The concept I had in mind was a top down 2D one or two player game that was kind of a mix of GTA 1, Bomberman, Cludeo and Jones in the Fast lane. It perhaps was in the same wacky vein as Noah More Heroes. I would have done that game, except for the opportunity to learn Unity (something I definitely do not regret about the weekend) and my mistaken impression that Noah had dropped the idea to work on a completely different game.
It also perhaps wouldn't have been that hard to program, which leads me to..
Lesson Learned #5: Don't do 3D unless you really have to
Thinking back about all of the game jams that I've been part of, the games that had the most merit were largely ones that were strictly 2D, and even the great 3D games were ones where the gameplay constrained to two dimensions. The original idea for Eat or Die was gameplay 2D in 3D, I took it down the fully 3D route which may have been a stupid idea in hindsight.
Well, that's it. Time to start thinking about Battlesuit again.
So, the game is done. You can play it here if you'd like:
Controls are Cursor Keys and Left Ctrl for Player one, WASD and F for Player two, joysticks for player three and four. Press enter to restart the game if you die.
The objective of the game is to stay alive on the counter top for as long as possible while you come under attack by hordes of enemies. Don't get pushed to the floor, fed to the waste disposal unit in the sink or burned alive on the Elements.
This is kind of my "Hello World" of Unity development, and largely for that reason the game is well below my usual standards. Still, the opportunity to learn Unity is one that I'm extremely grateful for, so in the long run it'll be great that I ended up on a team where I could be mentored into the world of Unity. Once I've recovered, I'll think about posting my thoughts on this years event.
Just another quick note. 17 hours to go until upload time. I'm tempted to stay awake until it's done. The game is called "Eat or Die" and is about tiny people who compete or co-operate to stay alive fighting over food in an endless kitchen. Just decided to stop wasting time with Unity's physics engine, I definitely can't get the feel right with that so I'm going to have to fake it.
Joshua has already finished his entry, despite missing half of the first night due to a Dresden Dolls Ninja Concert. It's a game where you participate in an insult match with a computer AI, using actual (and surprisingly accurate) voice recognition. It really is just as awesome as it sounds.
I didn't end up working with any of the Noah More Heroes team again. Shame, but the ones that came by have all gone on to other teams.
Okay, better get my ass back into it.
Edit: Okay, frankly the game is not working, I've been talked into completely re-tooling it using the strengths of the current prototype. Stay tuned.
This is going to be a really quick note. Brainstorming etc is done, teams have been formed. Game is going to be in Unity, so I'm definitely jumping in the deep end (fortunately the team has an experienced Unity guru to mentor me into it, and I'm experienced in C# so at least the raw code side of things shouldn't be an issue). We're currently talking about what 'diversifiers' to add into the game. We've got a fairly solid idea for the game, but I can imagine the design is going to change wildly as we experiment and run into time and other constraints. Stay tuned.
After years of hard work and several major athestic changes, Cobra Blade has finally released his Mac exclusive wrestling game, Powerslam! (Which also marks the first time a game I assisted with gets a commercial release - a good omen, I think)
Stoked to see he's finally got it out the door, and I can't wait to see what he comes up with next.
Time for another rambling post.
I don't really have much new to report, but for the sake of keeping momentum, I'm going to write a blog post anyway.
Still no screenshot to show. I've started a basic prototype in Blitz3D but it's still extremely rudimentary at the moment so it isn't really worth showing. So, yeah, not much progress but at least it's a start. To be honest I'm not actually sure if I can be bothered doing much more on the prototype, knowing I'm almost certainly going to throw the lot of it away when I switch engines. I might just spend the next while researching alternative platforms instead.
I've been dwelling on AI a bit. A good AI is going to be essential to immersion in the game. In my previous blog post, I mentioned how bland AI in Shogo was a real immersion killer for me, so I do want to have challenging, realistic feeling enemies. Fortunately path finding and cover isn't going to be much of an issue as most of the missions will be on open terrain or in space. The core mechanic I have in mind with the AI is some sort of 'initiative' meter where enemies with high initiative will charge into battle, medium initiative will attack or snipe from a distance, and low initiative will retreat or try to regroup. The value of the initiative meter depends on certain pre-configured elements such as pilot personality and mecha type (Lighter melee-type mechas will want to stay close to the battle, whereas heavier sniper-type mechas will want to stay as far away as possible), but will also dynamically change depending on the the tide of the battle.
Asides from feeling at least semi-realistic, I want the AI to be a decent challenge. Most first person shooters seem to let you breeze through dozens of enemies in mere seconds, but I want each and every kill in Battlesuit to feel like it was earned. I intend to have two simultaneous enemies to be a threat, four to be a menace and six to be a grueling challenge (again, like in Wing Commander). Fortunately you'll always have one or more wingmen to help you out of a tricky spot.
Currently, the official team is just me (although, as I mentioned earlier, Anthony's done some great concept sketches). I certainly don't want it to remain a solo project though - my skills in virtually everything bar programming are lackluster (and even then, my programming's not exceptional!) so I'm keen to put together a small, dedicated team with a shared vision. But I'd rather wait until I've got some basic design documents plus the second draft of my episode 1 script out before pitching the project to potential team mates.
That said, if you're interested in the project at all, even just as a playtester, let me know and I'll keep you in mind.