Friday, January 31, 2014

Game Center Support in DragCore



     I wanted DragCore to be the first game where I implement things like achievements and leaderboards. These social features could greatly increase it's popularity and longevity. Achievements provide some incentive and reward for playing and the leaderboards can drive players to play more or introduce the game to friends. My future games will have achievements too. I even have plans for some way of implementing leaderboards in my upcoming RPG.

     I found plugins that totaled in cost at about $25, a steal when you consider Prime31 offers the plugins I require for $75 each. It's a good thing I did my research before purchasing that. The Unity asset store is really amazing during moments like this. Now I can easily implement Google Game Services for Android and Game Center for iOS courtesy of Plato Evolved and blaQkSheep.com.

Thursday, January 30, 2014

Finding Sounds for DragCore


     I need to start putting sounds into DragCore soon. In normal circumstances this would be done earlier, but I'm working alone on this project and I can't make music at all. I also don't have a good microphone for foley art or software for making sound effects/music that I can use to make audio files. It's faster to work this way. I just find public domain stuff and edit them for my needs in Audacity. For future games, I'll be teaming up with others (don't know who yet) for audio creation.

    I'm thinking about using a lot of things from TriGrid as a starting place. I know new sounds I'll need are beeps, a power down sound, and some celebratory tunes. For background music, I want to find some new public domain stuff. Just a track or two that fits the theme and I'll find a way to make it loop nicely.

Wednesday, January 29, 2014

3D Modeling: A Discipline of it's Own


     Having a friend of mine show me what he puts into his 3D modeling projects has shown me what I'll be in for once I start making 3D games. In my 3D modeling class we've used 3DS Max to create simple things like rooms, dressers, and furniture. Another friend warned me that just one modelling class would be nowhere near enough to teach me the basics of everything that goes into making interactive 3D objects for game worlds. I feel like I'd be in over my head with this stuff when I haven't even started on textures, animation, and collision detection yet!

     It seems to me that in order to master this art form I'd need lots of dedicated practice. I don't think I can do that. My plate is full already with all the things I'm balancing. If I ever get into using 3D assets I plan to hire dedicated people to do it. I finally completely understand why it takes a hundred people years to make a game. Right now I intend to learn the concepts and terminology in order to best direct such people. It's a good thing I have a grasp on 2D art and conveying ideas, because I think that will be how I best communicate and illustrate my intentions to a team.

Tuesday, January 28, 2014

DragCore Loading Screens


     DragCore tends to freeze for a second or two when switching scenes. I think it has to do with the objects being created on the spot. I want to try new ways to cover up the lag. I'm debating how they should be, a loading image obstructing the scene before the freeze happens, loading a nearly empty scene with  load image then use a global variable to decide the next scene to load, or having some "please wait" text or symbol pop up in a corner.

     I think this is something to play around with near the end once I get a feel for how long loading takes when all the game's assets are ready and working together. I also kind of want to figure out how loading bars work. I have no clue how the measure loading completeness. It might even be based on expected load time, which I think depends on RAM. It's a complex thing and I think I should hold off on that for now though. DragCore is behind schedule and I want to finish what I started first.

Monday, January 27, 2014

Planning Mach-Arena


     I am the designated project manager for my college group project. I was put in charge of making a development schedule and coming up with a unified system for us to work as a group to finish the game. As far as feasibility goes I already minimized features down to something my group of four can handle. The professor was pleased with the feasibility and has faith in our team being able to finish this project by the end of the semester.

     We're using Microsoft Project in class to maintain a schedule. Up to this point I've been using a checklist in Word and I've been experimenting with Smartsheet (a free online version of Microsoft Project). We have to decide who will be working on what and when they'll do it. Right now, we confirmed Ben and I handling most of the programming and I volunteered to make all the GUI assets and game placeholders. I set up a blank Unity project full of temporary game pieces for us to start with. I'm working with Ben to establish a coding standard so neither of us gets confused on how to script the game.

     The race is officially on! Our project is due in about 14 weeks. Development goes fast with four of us instead of just me so I'll post if anything noteworthy happens. Take a look at our pre-production checklist after the break!


Sunday, January 26, 2014

Enemies By Accident (DragCore Design)


    Much like Rockstar accidentally inventing reckless police car chases, I made a feature of my bugs. When trying to get enemy behaviors from the DragCore prototype to work I came across interesting patterns and decided to replace the old features with the happy accidents.

     Orange and green enemies were supposed to dart away when the grid gets close. Now, the green ones only move when the player touches the screen and the orange ones change directions to move toward the player's finger's last position. The way I transitioned from one idea to the other is too complex to explain and I don't really remember the back-and-forth that took place in my head.

   Basically, enemies in the new DragCore are better than they were in the prototype. They are more varied and interesting this time around whereas the old ones felt like clones. When the game is closer to release I'll make a post with details on how each enemy works.

Saturday, January 25, 2014

Status Report #22


     Disappointments as far as deadlines go. Getting the enemies in DragCore to work properly took a week longer than I expected. I ran into bugs with the spawning algorithm I made before and in the process of coding certain enemy behaviors I accidentally made new ones that I like even more. But More on that tomorrow. For today, have a status report.

Friday, January 24, 2014

DragCore's Unfinished GDD


     I never bothered to finish it because it's all in my head now. The final pages of the document because my dumping grounds for spur of the moment notes. Game Design Documents are the most important tools for keeping a team on track and working toward the same goal. It's good to practice writing them, but this is a project I'm doing alone. If I understand everything down to the byte I could just save myself the trouble of writing 20 more pages and just start development.

     Here is the link to DragCore's GDD. I wanted to post a completed one a month ago but I decided it was better to use my time actually making DragCore. What you find in there is pretty much everything about the game and some concept art. The programming sections are empty and the last pages full of random notes. I think I'll make future documents more general and organized.

Thursday, January 23, 2014

DragCore: Combo System


     DragCore is about getting a high score in a hectic game of kill everything on screen. Players goals are unlocking content on a macro scale, but from game-to-game players should be looking to get the highest score and climb leaderboards. In order for points to matter and make sense, I made up a combo system to go with the basic depleting points as enemies touch the Earth.


Wednesday, January 22, 2014

Gushing About: Godzilla - Destroy All Monsters Melee


     This game was my hidden gem. Nobody had heard of it when I brought it over to play. I had oh so much fun with this game. Countless hours of screaming with rage and roaring with excitement back in elementary school. Godzilla: Destroy All Monsters Melee was one of my first Gamecube games and it had multiplayer so others could play with me. With all the hype for the new movie (which I hope is really good) I think it's a good time to recall how I met the King of Monsters.

     Aside from the 1998 movie I barely remember (except for the toys) this was my introduction to Godzilla. The only giant lizard cooler than Charizard (or maybe just as cool). It was also one of those really hard games that I had to practice to get good at. Eventually I was wrecking all my friends in it and apparently developed severe stupidity because I traded it in to get Warioware: Smooth Moves a few years later. A decision I somewhat regret.

     Let's bask in memory lane and try to figure out why I would even do that.

Tuesday, January 21, 2014

DragCore: The Crystal System


    Players like progression. It's fun to watch bars fill up when you play. Having a sense of purpose makes a game more fun and addictive. It works because in your mind you aren't wasting time, you're working toward something. My favorite thing about Call of Duty multiplayer was leveling up and seeing the yellow text with "+2" or something on it. It's fun to grow and earn rewards. 

     I came up with something to put those values in DragCore. I call it the Crystal System. It's changed a few times as I've been trying to decide to use it as either an experience level or currency. I ultimately decided on experience level presented as currency. Read on to see an explanation of this madness.

Monday, January 20, 2014

DragCore: Spawning Enemies


     Making enemies pop out was a big pile of code in the old DragCore prototype. With the new one it has been simplified to a few lines of code thanks to the greatness of Unity. What used to be an array and tons of code to alter each of the 200 elements became a matter of instantiating up to 20 objects and have them reset themselves. See the code that makes it work below the break.

Sunday, January 19, 2014

First Week of School (Spring 2014)


     Things went about as well as I had hoped. It feels good to be back overall. Schoolwork is more tedious than difficult and I missed having people to talk to. I can play Smash Brothers with my roommates and see my girlfriend on a regular basis again. In terms of goofing off, I'm trying to get better at using Mewtwo in Smash Bros Melee for the school's upcoming BYOC.

     In terms of work, I'm get all my school business out of the way by 8, giving me my 4 hour minimum work time. I can finally feel DragCore coming together now that the core game loop is running and a little polished. My next big task is getting the Custom mode menu to work right and doing lots of playtests. I'm just glad that the hardest parts are behind me. I feel confident that this semester will turn out well and I think I'll be much better off when it's over.


Saturday, January 18, 2014

Status Report #21


     Home stretch baby! I want DragCore done and off my development plate and into playtesting by next Saturday! It's been fun, but I want people to start playing it now. All the pieces keep sliding into place and I know I'm so close to having it ready for extensive playtesting with my friends.

Friday, January 17, 2014

Working on Mach-Arena (The College Project Continues)


     With all the crazy busy things I've been up to I nearly forgot about Mach-Arena until Gaming & Simulation class started! I'll get to work with a team this semester and create a 3D Unity game for the first time. We'll also get to show it off at the big BYOC in May (hopefully) which could be tons of fun.

    This is classwork so development progress is pretty much necessary. Tuesday through Friday I have a video game class at 9:30am and I'll be posting when something particularly interesting happens. Right now things are getting settled and everyone is transitioning into school mode.

     I can't wait to see how everyone's games turn out this year. Last year's Game Maker projects were interesting but poor since none of us new what to do or how to work together. Things are looking a lot better this time though as we all learn from our mistakes.

Thursday, January 16, 2014

DragCore: How the Grid Works


    The electric grid in DragCore is how you attack enemies and kill them with intense electrical fury. You drag your finger across the screen to create a box. Enemies that touch it die instantly, or at least most of them. Some enemies are a bit trickier than that. Here is a look at how the attack grids work.

Wednesday, January 15, 2014

From Baby Steps to Passion Projects


     I've come a long way. My goal up to now has been to teach myself what it takes to start and finish a  game. One that works well, no game breaking glitches, fun and unique mechanics, appealing graphics and polish, and available on as many mobile devices as possible. I feel that with DragCore, I will finally succeed. I will have a great game out there to point to so I have proof that I'm capable of producing something when I start my ambitious projects.

    All games I make after this have a somewhat ridiculous scope, but they are passion projects I am willing to fight through. I've taken all the baby steps needed to get the skill to pull them off. Now it's a matter of taking this personal final exam (finishing DragCore) and start officially considering myself a competent game developer. One that knows what he's talking about and makes games to get hyped for.

   I have 4 finished games to my name now. I've learned so much about the process since high school and my determination has yet to falter. My next three games are on a much larger scale, likely taking more than half a year each compared to the 2-4 month projects I've been doing so far. Each on of those projects has taught me tons through all the mistakes, process experiments, and discovery of development tricks.

    I've made 3 arcade games, next I'll be doing an RPG, platformer, and another RPG respectively. It makes up for the total of my college career. After those, I'm cast into the "real world" where I have to make a tough decision. Do I give running an indie studio a try, or do I put those dreams aside? I'm depending on my next three titles to tilt my fate toward the former. Excitement is at an all time high as I'm just dying to get started on those games. I'll be done with DragCore by February. It's time for the home stretch!

Tuesday, January 14, 2014

Dragon's Flux RPG (1st Attempt at Dream Game)


     After a week or so of scribbling on note cards in class I finally started coding my dream game. This was back in high school of course and I had no idea what I was doing. At that point I had only just made a Pokemon fan game game where you could walk around a small overworld and play around with menus. I just dived right into this ready to learn along the way. I was also silly enough to think I could juggle two other projects alongside this one in case I got bored with it. Yeah. I was a dumb kid. Glad I'm doing things more carefully now.

Watch the video demo here.

Monday, January 13, 2014

Back to School (Spring 2014)


     Here we go. I'm ready for school. Game plan: finish DragCore, talk with the deans, finish this semester, complete summer school, skip fall semester, complete my next game, start making my platformer by fall, go back to school spring 2015.

    I'm kind of dreading my meeting with the dean now that the Alumni talked me out of it. It basically comes down to me having a strong passion and work ethic that other students don't have. No amount of curriculum changes will fix that, but I can at least try to talk my school into replacing some classes with open electives and marketing courses.

     I also have to consider starting a game development club when I return from my hiatus next spring. That's the best way I can see helping students get motivated to do portfolio work and help each other make games to get hands on experience. It's going to be a very busy year, so it's a good thing I'm ready for it.

Take a look at my class schedule if you're curious after the break.

Sunday, January 12, 2014

Dragon Ball Z Brawl


     This passion project came from my desire to make a fan RPG after being inspired by the Mane6 development team. It would have been a pony themed RPG but I didn't want to overload myself with just one fandom and get sick of it. So I thought of another thing I'm a fan of. I loved legacy of Goku which inspired my action RPG, but how about making a turn-based Dragon Ball Z game? I got started with this and had a blast.

Watch the video here or after the break.


Saturday, January 11, 2014

Status Report #20


     It's big number 20! I've been at this for 20 weeks now. The past always seems short in hindsight I suppose. This week has been crazy busy as I'm wrapping up DragCore, getting way too excited about the project I'm doing next, and getting ready for school on Monday.

Friday, January 10, 2014

Dragcore's Prototype


     I've been putting this off for a while now, but here is the video of gameplay from the original prototype of DragCore that I made in high school. It's amazing how different it is from the version I'm making now. Today I finished copying a bunch of the code and now I'm making things nicer for myself behind the scenes to help finish development.

Watch the video here or after the break.


Thursday, January 9, 2014

Big Change of Plans


     A big wave of conflicting feeling hit me a few days ago. It make me take a look at myself and realize what I am doing. Long story short, I'm making a practice RPG instead of the board game I had planned. I want to see what I am capable of at my current level. If I can produce an awesome RPG now, I know I can produce an outstanding one later. I want to make something simple, just to test out mechanics and get experience making that type of game. It gives me a chance to get a feel for some ideas I'm putting into my dream game. Most notably, the adaptive difficulty system I thought up.

Wednesday, January 8, 2014

Gushing About: Banjo-Tooie


     I'm talking about the sequel to Banjo Kazooie! Mostly because I didn't play the first one until 5 years later but whatever. Banjo-Tooie blew my mind and was a favorite game of mine, rivaling Smash Bros. in my little gamer heart. This game had it all. A huge world to explore, perfect controls, tons of secrets, memorable characters, amazing multiplayer, my favorite bosses, great humor, and unforgettable music that I still have on my iPod today.

    I freaking love Banjo-Tooie, and here's why...

Tuesday, January 7, 2014

DragCore Mechanics


     You may be a bit curious as to what DragCore gameplay is like, so I'll show what I wrote in the design document. These are based the mechanics that I had in the prototype I made in 11th grade. I altered them a bit to better fit a long lasting mobile game broken into small pieces rather than the endless arcade style game I originally planned. Some are subject to change as the final product starts to evolve, but it's basically what I'm going for.

Take a look at the stuff DragCore does.


Monday, January 6, 2014

DragCore's Challenge Menu


     The challenge menu for DragCore is basically the level select screen. It's where you pick a level, check how many crystals you have, see what rewards await you, and what each level will have you face. The image above is a screenshot of the challenge menu I'm currently testing. It's very close to final, but the real version will look move lively with moving enemies on the upper half of the screen and a few changes to the buttons on the bottom half.

I'll explain what everything does after the jump.


Sunday, January 5, 2014

Code Organization (DragCore)


     My code is much more organized this time around. I find that it helps to separate scripts into things as specific as possible. I made one for each game scene (there are five total) and one for each object that moves and animates itself. My old way was to have a giant GameControl script full of commands for different menus and modes. It was controlled my a mode variable stating which scene was active. It was a mess searching through that thing and I kept finding myself putting things in menus where they didn't belong.

     Now I'm using separate scripts, one attached to each game controller object in every scene. This way, the only functions a scene can access are ones that are relative. All without messing up things in other menus and realigning a bunch of curly braces every time I slip up. I also take care to keep my Update() method clean. I used to put hundreds of lines of alignment and setup code in there, making my games sluggish. Now I only setup once by calling a refresh method in the Unity Start() method and make changes when a button is pressed.

     Messy code leads to bugs that I hate with a passion and these practices keep me away from them, just a little more. It seems obvious to me now, but when I started out I never cared what the code looked like as long as the game worked. Now I'm practicing efficiency and dynamic systems which is what code really needs to be in the long run.

Saturday, January 4, 2014

Status Report #19


     Vacation week. Almost nothing got done for DragCore, but I re-energized myself, saw interesting things, and came up with an awesome new game idea to work on next. Here is this week's status report.

Friday, January 3, 2014

Don't Sprite Too Hard


     I'm getting better with managing file sizes. I used gigantic sprite sheets for Fish Feaster, taking up many times more memory than I needed to. It's important to keep in mind how you can use scripts to manipulate sprites in order to have variant sizes, change directions, or even alter colors and transparency. The few lines of code you'll need to do that will be much easier on the memory load than countless sprite files way larger than than need to be.

      In the end, your game will run more smoothly, take up less space on users' devices, and make you feel like a game developer who works smarter, not harder. Making so many sprites by hand was my biggest mistake with my first game, and I never made it again. Now I try to find more ways to mess with sprites through code and my future games will be better because of it.

Thursday, January 2, 2014

Bite-Sized RPG Gameplay


     Playing the new Zelda on 3DS had me thinking about ways to make a giant RPG adventure feel convenient through bite-sized play. I want to allow players to enjoy short playing sessions, but still be able to experience a giant quest when they have more time. I decided a good way to go about this is by having dungeons in the game separated by room. Each room is it's own big puzzle, and getting to the next room is equivalent to beating a level in a regular mobile game. Something fast and rewarding that saves on completion so you can put the phone away at a moment's notice.

     Pop-in, solve the next room, pop-out just as commercials end. Get on a train, explore the overworld for a bit, level up, get some money, close the game as you arrive at you stop. All without worrying about being too far from save points or losing your place in the middle of a big complex dungeon.

Wednesday, January 1, 2014

Spreading Out Gushing Posts


     Part of the reason why I started this website was to test things out. To try things I didn't understand and show what makes me a developer. This is one of those times where I learn a lesson about overloading myself. Writing the Gushing About posts takes a big chunk of time and energy. That's stuff that I need to make my games, which are delayed at this time. I want to spread these posts out a bit and start to do them every other week. This way, I don't have to worry about the posts seeming rushed and half-hearted and I get more development time. I'm thinking about just posting some game design advice in it's place instead. I tend to learn something new every week anyway. It would be a better use of time to share a quick tip then get back to work.

     What this really comes down to is time management. I'm working my butt off to get my games off the ground but there are only 24 hours in a day and I spend 8 of hose sleeping. I want my games finished but still want to maintain this site so it's an interesting place to be. So, Gushing About posts are now every other week and every Wednesday without one will have some game development advice in it's place.

So make sure to be here next week, because I'll be gushing about Banjo-Tooie.