Wednesday, December 21, 2011

Oh Boy, It's been a long time!

I was REALLY busy with College but now that I'm on a break I got the chance to get back to work on Little Wizard for a while.

So let's talk about what I want to talk about. Remember the last entry? about my TODO list??? well I've changed it a bit. You see, I've been thinking and noticed that to get the feeling I wanted from a shoot-em-up I need way bigger spaces, like... HUGE SPACES, not just some freaking corridors. So, I'm not saying I'll throw away the level I made but..... I won't be using it for a while.... *sadface*.........

Aaaaaanyways.... ENEMIES! I want to talk about enemies. Remember they where in the TODO list? well, I decided I'm going to work on them now.... and I just did! yay! So here's what I managed to do:
  • Health and Mana Bar!!!! Well not such a big deal, but it makes a game look more like a game so much that it's ridiculous! And to be honest I love it <3.
  • Mob spawner: I love this thingy, it'll just spawn enemies till you die or just get tired. But that's not the point of it, I just wanted to make one but obviously its objective will be... spawning monsters... reasonably.
  • New Enemy! DemonSlime! OMG! it sounds amazing!!!!.... not so exciting I know... It is a pretty basic enemy, it just moves towards the player and hits them when in melee range.
  • New Enemy! Orbiter! (Oh God I'm just so good at naming... well not really, I just named it after the special feature it has: Orbiting around the player). It's a funny fact how I got it to Orbit around the player, I was playing around with the Sine function to make it move like... well... the Sine function. And then one thing led to another and BOOM the enemy is now orbiting around the player, wich is not something you can accidentally do... but I apparently did haha!  I'm using the DemonSlime's sprite as a placeholder for the time being.
These are the Orbiters, with the DemonSlime's sprite orbiting around the player.


Well thats it for now, I hope I can go a bit faster now that I have more time and hopefully I'll be able to write a few more entries :).
Thanks for reading!

Wednesday, October 12, 2011

TODO list complete

Well as the title says, the TODO list I talked about is now done:


  • The crosshair works now.
  • I updated the map editor to have a lot more of functionalities and now there's a lot more of feedback concerning the state of the editing tools, changed a bit of the map's format to include information about the player and enemies located on that map, soon I will add more information on this map format to store special tiles like doors and chests.
  • Updated to XNA 4.0 and now the drawing problems are magically gone!
  • Created a "first level", right now I wouldn't say it's going to be used on the game once I finish it, but I tried to make it for that purpose so lets see how it goes. Heres a screenshot of a draft I made on photoshop to give me an overall look of how the map would look like.

              These are only the walls obviously but I made this to see if the dungeon looked good and I think it kinda does.




Now my new TODO list will include:


  • Improve the enemies (make them smarter when moving and shooting): I will have to implement a BFS ( breadth-first search) algorithm to be able to do this and I'm not quite sure about how hard will this be but I hope it doesn't get too tricky, I think the worst passed when I fixed all the collision bugs and stuff and I hope I'm right.
  • Make special tiles like doors: these will lead to other maps obviously but since they do not behave like other tiles I will have to make another line on the map file to store where these doors are and where do they lead. 
  • Make chests and usable items on the map: I like this part because the items are obviously and extremely important part of the dungeon-crawlers, so I'll start working on them soon.
  • Modify the collision box for the player and enemies: Right now all the collidable objects in the game use a collision box determined by the very sprite they display, meaning that if there's a 15x15px block, it will use that 15x15 box to collide. I wanna change that because I want the player and enemies to only ocupy 1 tile and not 2, so it's easier for them to move and that will help me get a better top-down feeling.
  • Change the weapon system: I think that my actual weapon system (the code that handles how the weapons are defined and work) is a bit inefficient and complicaded so I wanna change it to something more flexible that will allow me to handle weapons better.
  • Add more enemies: YES! I do wanna add more enemies, specially because I have some ideas about different behaviours that I think will add a lot of fun to the game.
  • Show a GUI: I do wanna get this one done, this will include a hotkey bar that will show the selected weapon or "spell", HP bar, Mana Bar and an Energy bar, just to keep it simple for now because you know... the player needs to know if he's about to get killed or not right?


Well that would be all for now... oh wait! SCREENSHOT TIME!!!!!







Sunday, October 9, 2011

Bullets working 100%!

I know I was supossed to deal with the TODO list I wrote before but I started testing a bit the bullets because previously I had noted a weird bug, but now the problem is completely solved and here you can see 4 enemies (remember that first try to make a wizard? well that's how it looked, anyways I'm just using that sprite as a placeholder for the time being) that are standing still shooting those fireballs at the player, and the numbers you see on the screen are damage dealt to the player/enemy.
Everything is running smoothly and there are no signs of any invisible devil's wall so I consider this a success YAY!

What I'm aiming for

I promised it would be soon! so, you may be wondering exactly what kind of gameplay I'm aiming for, I talked about it a bit before but didn't really explained what I had in mind.

First I wanted a game that looked like Tibia, but that view angle seemed to be just too complicated for someone like me who was starting to work with pixel art so I decided I would pick another game as reference, and I chose The Legend of Zelda: Four Swords (why? because I have that game and I love it, besides, Zelda games are just awesome).

 So with that reference I now have some kind of guide for the art, but what about the gameplay? From the the looks of the only screenshot I've posted of my game so far it looks like a common dungeon-crawler top-down game, and it is in part, but I wanted the gameplay to be something fun and fast so I thought about merging that slow paced dungeon-crawler game with something like Geometry Wars.
Of course I'm not actually aiming to get the same "what-the-hell-is-going-on-i-don't-even-know-what-i'm-doing" feel of this game (wich I do like a lot) but I do want to get a gameplay very similar.

This is what I'm aiming for as I said before so let's see how it looks when it's done :)

So far so good

Well after a fierce coding battle and hardcore bug tracing (yeah i'm so badass... not) the invisible fence of the death was defeated and now everyone can walk touching walls! YIKES! Also the fireballs are now officially behaving like they should and they are damaging the enemies! Wohooo!!! everything is starting to look better and i'm extremely happy about that.


There is one more thing I added to the game and honestly it was easier than i thought it would be at first: a moving camera. Yeah it shouldn't be something so hard to do, at first I was thinking of the most inefficient and slow way to do it, wich was moving each and every object according to an offset calculated by the player's position and the actual screen position.... this IS TERRIBLY SLOW because I would have needed to move each object from one cell of the Grid to another each time the game updated 1 frame of the game (and there should be at least 60 frames per second for the game to move smoothly) so this was clearly not the best idea and so i kind of dropped it, gave up, and decided to keep simple screen-sized maps and navigate through them using some kind of doors.... That was my idea until today (well it's now 3 am but it's not tomorrow until you wake up!) when i suddenly thought about it again and asked myself "what if I didnt have to actually move the objects? what if I just draw them where i want them to be seen?" (If you thought about this at the beginning then you are smarter than me hahaha, but sometimes we just complicate things too much don't we?) So i started coding what i had in mind about drawing the sprites where i wanted them to be, and it was done pretty quickly and it works great! What the code does is calculate the offset I talked about before, and then on the section of the code that takes care of the drawing i just added this "offset vector" (because it involves the X and Y axis) to move the sprites that are near the player to the screen, even when they are actually never moving.


So...  let's see, I'm gonna share with you my TODO list for the near future:

  • Fix the annoying crosshair: With the new camera thingy added I now have to deal with how am I going to aim to a place outside the screen when I'm not actually moving and the mouse only works within the screen limits... I'm sure this is not big deal but today i just didn't want to do it... was kind of lazy....
  • Update the Map-Editor: Again! thanks to the new camera I have to update the Map-Editor so I can... you know... edit... the whole map not just the part visible on the screen. I'm also wondering what would be a good map size to begin with... but I'll decide it later, there are no restrictions to this anymore since I broke free from the screen's evil you-cant-use-bigger-maps spell so I could even vary it depending on the circumstances.
  • XNA 4.0: I started using XNA when it was on the 3.1 version, I stayed with it until now because I wasn't really making progress with the game... but now I am and now there's another reason to go from 3.1 to 4.0 for me: remember the screenshot from the last entry? well, look at the wizard for a sec, noted something strange? yes, there's this weird shine behind him .... that's not supossed to be there and I found 2 ways to correct it, one for 3.1 and one for 4.0 and for the sake of moving on im going for the 4.0 option, besides, it seems to be better for what im trying to do.
  • A Real First Level: So!!!! by this point I should have everything I need to make a real First Level! wohoooo so exciting! Anyways, with the editor finished I will start thinking about some simple desing for this first level so it can be fun and exciting right at the beginning, I'm aiming at this because I learned at the Global GameJam that a game should be fun or interesting within the first 5 minutes of gameplay, so I think I'm gonna look for some tutorials on levels design and when I get something I'm  happy with I'll post it.



That's all for now, soon I'll talk a bit about what kind of gameplay I'm aiming for, but now I'm going to sleep, good night!

Tuesday, October 4, 2011

First entry!

So... first entry... awesome!
I'll start by saying that some time ago i started making a game using XNA and C#.... well by that time it was more of an experiment, to gain knowledge about stuff such as collision detection and things like that. So what i decided was that if i wanted to learn how to make games i should be able to make one by myself, at least just one (2D obviously, better start with small stuff).

Side Note: This is not my first encounter with games tho, i made my first game at the Global Game Jam 2011, here's the link if you want to take a look.

So, after some time (and after i learned a bunch of things at one of my signatures) i decided i would totally do it, so i started making (well, we could say "finishing" because there was just a tiny bit of the engine itself made, but since i changed it so much lets say i just made a new one, ok?) the engine that my new little game would use. I read a lot of stuff on the internet about what were the best methods to manage collisions and i ended up using a "grid" to store and update every object that would collide because i liked the idea of having the whole screen split into little "areas" so that not every object is checking for a collision with every object, maybe i did something a bit too complicated for the level of experience i had making games but... i've always liked crazy programming stuff so why not?!

Just so you know this was not so long ago, in fact i "finished" the engine this summer (im saying "finished" because there are some bugs that should be corrected at some point... like... soon) and it works quite well for me, maybe it's not one of those popular 2D engines that are used everywhere, but it's something i made by myself which is what i wanted.

So i finished the engine! now what? i had to make the actual game!.... finally! and to be honest i was kind of confused at first, i didn't really know what i wanted to do! (that was completely my fault, originally i wanted to make a platformer game but i was having so much trouble with the engine stuff that i decided to change it to a top-down, i didn't like this, but since im such a perfectionist i would have taken A LOT of time making something that shouldn't have taken me so long) Then i decided to make it a top-down game, i like those, they are fun and kind of old school which is something i like, and i had to start with the sprites because i wanted to give my game a bit of life and because eventually i would have done it anyways.

Sprites! i had absolutely no idea about how to make them! i mean... i knew how to make them but what i wanted was sprites with pixel art style (remember? old school == i like). I started following this tutorial Pixel Art Tutorial (its awesome i just loved it, both the info and the way it was written, i seriously recommend it if you need to know about pixel art) and then i learned how to do pixel art! well.... a bit of it, not that i'm super good or anything, but i can draw a couple of understandable things.

So i drew and drew and drew! i was drawing (surprised?) things that actually looked like what they should look like! I ran quickly (metaphorically speaking obviously) and started placing the sprites everywhere to make it look like an actual dungeon (i was working with simple bricks and floor tiles so i could do something playable with simple stuff) but then i had this problem... i was using this plain text format to store the map, and it was starting to be a pain to modify it by hand when a little voice whispered in my head "make a map editor for your gaameeee~"... so.... why not? I gotta say i love programming and i love knowing the crazy stuff i usually write! because i did made a map editor! awesome right?! well maybe it's not that awesome but i do think it is! SO!!!! with the map editor done i managed to make a decent dungeon, at least for testing.

What problem comes now? umm... i kind of based my walls and stuff on the perspective used on Tibia (it's an MMORPG game, if you don't know it you should google it, it's awesome) and i realized.... with my drawing skills it was going to be so freaking hard to make a character with the same perspective, move it, make it turn to all 4 sides, attack.... you get the point, i wasn't going to spend that time and possible frustration on that when i could just use an easier perspective to keep things simple, which is a MUST when making games (at least i think it is). So i started using a top-down perspective for my sprites which is what i should have done from the beginning (but you learn from the mistakes right? i did!).

New sprites! finally a character to use! (after the second try that is, i tried to make a wizard at first and ended up with a fat farmhand with a blue shirt, but then i tried a second time and got a much much better result) and here it is! (finally a picture!)
Kind of cute don't you think?... well i do!

So finally we are in the present, remember those little bugs on my engine that i would deal with later? well now is "later", i seriously have to fix them because its a pain not being able to walk vertically touching a wall without stopping every few tiles because of some sort of invisible fence of the death. Leaving the fence of the death aside, this is the last screenshot i've taken of the progress of the game which i called LittleWizard, first of all i don't think i'm a pro or anything, right now i consider myself pretty newbie at this, but i like the idea of sharing my experiences even if they are just the beginning of game development or a game developer, i don't care how you see it... hope you enjoyed reading this ;) (i would've liked to put some other pictures but strangely i can't find the ones i took before this one, sorry =/)