Text

It’s been too long since I’ve made a proper update to my blog, I guess it’s cause I’m to bust working on games to actually update people on them, kind of. But yes my general progress with the projects I previously mentioned in this blog, as you would imagine from me, have all gone to hell and I haven’t even touched them for ages.

My current project on the other hand is City Tycoon (No i couldn’t think of a better name), which is a kind of Sim City meets Dwarf Fortress game. Anyway here’s a screenshot.  

City Tycoon

Text

When i first decided i wanted to program games, i thought all this talk about mathematics begin needed to be a pile of rubbish. O how foolish i was.

I was soon to discover that to make a camera move in the direction your facing isn’t exactly  y+=1. It requires quite a large amount of trigonometry and general mathematical knowledge. Although, it does feel really good when you finally manage to work out algorithms by your self, over the weekend i managed to make a missile fly towards the player facing in the direction it is travelling 

For those of you interested here is the maths:

For the movement:

directionX = targetX - positionX

directionY = targetY - positionY

hypotenuse = √((directionX^2)+(directionY^2))

directionX = directionX / hypotenuse

directionY = directionY / hypotenuse

For the rotation:

rotation = tan-1((positionX-targetX)/(positionY-targetY))

So yeah, i know it seems pretty newbie but i was quite proud i was able to work that all out by myself. Anyway gotta keep this post short because i’ve gotta go right now!

Text

So i started to do a little more work towards the 3D Minecraft project i mentioned  earlier and its coming along really nicely. I put off doing it for ages because i had an issue that i didn’t know the solution to, but i worked it out. You can see a video demonstration here https://www.youtube.com/watch?v=rHiE7p4ceL8

Here’s a brief explanation of how it works:

Each cube is stored in a cube class containing its x,y,z,width,height and depth characteristics and a Boolean stating whether it exists or not. Each chunk of the world is loaded with a 3 dimensional array of cubes with the dimensions 64*128*64. Now the tricky part: to generate the terrain i used the 3D simplex noise algorithm that can be found here http://webstaff.itn.liu.se/~stegu/simplexnoise/simplexnoise.pdf. The value returned by the noise function is between the range of -1 and 1, i treat this value as density, setting anything lower than 0 to air and anything higher to solid ground by simply changing the Boolean variable of whether the block exists or not. However i came across the issue that my worlds still seemed like a bunch of random blocks. The problem  was that the numbers i was parsing into the function were too big. To solve this instead of parsing the x,y and z coordinates of the cube into the function, i parsed the x,y and z coordinates of the cube divided by the number of cubes in the chunk. This worked, the issue before was that the noise was way to spread out and needed to be refined. Once you’ve done this you can play about with multiplying different levels of noise together for finer detail, however this is not shown in the video. Also to help maximize performance i state that any block that is surrounded on all six sides by another block, is not rendered  but still exists in the computer’s memory. After all this has been decided the terrain is then added to a Display List to further enhance the performance and then rendered

I would love to continue this post and talk about turning this weird formation of blobs into some decent looking terrain, but i don’t know how! I’ve been looking round some articles on the internet though and I will be sure to make a post on it when i work this out 

Text

I came back on this morning to check up on some things and realized i poster that 2D RPG post 5 DAYS AGO!!!!  It suddenly made me realize what slow progress i was acutally making on the game and should probably be giving you guys an update.

  • Added questing :D
  • Added equiping Items :D
  • You can now acutally kill mobs :D
  • Added a proper animation framework :D
  • And realised how screwed i am for when i have to draw out all the sprites :D

Yeah so that’s about it.

I haven’t really don’t allot on the other projects, i added trees to Minecraft 2D, but thats about it, still no progreess on Minecraft 3D, I ‘m thinking about instead of starting out with the more complex 3D perlin/simplex noise i may just begin with 2D perlin noise and see how i get on

Oh and quick tip before i go: If you ever get bored programming, download MCP and play about with the Minecraft source code. It’s really fun :D

Text

The 2D RPG i mentioned i was starting earlier is coming along really nicely. I’ve got a map editor setup, the basic framework for NPC’s and Mob’s ready to use and have just finished off the inventory system.

I came up with quite a clever idea for the inventory system so i thought id share it:

I decided against having an array of inventory slots and making it so that when you clicked on one it followed the mouse and when you clicked off it, it snapped to the nearest slot as that could get tricky. Instead i made it so that the inventory was an array of inventory slots, however, the mouse constantly had an invisible inventory slot following it so whenever you click on it the slot in the inventory is removed and placed into the one following the mouse giving it the effect that you are dragging it. It works the other way round when you put the item back down in a slot.

Anyway thats it or now, once if got the art looking a lot nicer i will upload screenshots.

Text

Im currently really stuck for ideas and dont really know what kind of game i want to make at the moment. So naturally, i decided to make a start on about 5 different projects to see which one i want to continue with the most, Currently on the list is:

  • Minecraft 3D
  • Minecraft 2D
  • Space game (mentioned earlier in blog)
  • 2D top down RPG
  • 3D graphics engine

I think i will definitely try to continue with all of these as far as i can go but i may end up just giving up on some things, because i can be very impatient at times

I will attempt to get screenshots of these games out ASAP when I’ve implemented all the basic features

Text

Yup that’s right i’m making a space game! Don’t really know where i want to go with it just yet but i’m sure ill think of something. Currently I’ve added the fully controllable space ship,random star generation and random planet generation. Start generation is a bit weird at the moment but i hope to get it fixed in due course

Anyway here’s a quick screenshot of the game as it is:

Space Game

Text

As i mentioned in my previous post i have a looot of game projects going on right now and to be honest i probably wont finished most of them. I currently have a 2D Minecraft style game with random terrain generation(Please note i’m only making it to learn, im not trying to copy Minecraft) , a 2D top down RPG kinda thing, and have recently started work on a 3D engine that i didn’t know what to call so its just the DazKins engine. You can see a tech demo here: http://www.youtube.com/watch?v=aarL_z9qSvg. I try to use a variety of languages and graphics API’s but eventually I always end up using Java and OpenGL since it is really quick and efficient and it just owns generally, i’m sure that’s a technical term.

I would really love to put out more vids and picks of my projects but i havent really got very far with either of them.

Text

Having a blog requires a great sense of- oh never mind. To be honest nobody will ever read this blog and i will probably spend most of my time talking to a blank internet wall of nothing. But that’s cool, cause at least i can pretend to have fans :).

So i your wondering who i even am then here’s a brief introduction:

Im David, i come from England and my favorite pastimes is writing video games, i suppose playing them is pretty cool to though. I currently have about 24 million projects, 23,999,997 of them are in the bin and i haven’t so much as looked at them for months.

One of the main challenges of programming is trying to actually know what to program, you can often get really far into a project and then suddenly realize what a bunch of crap you’ve just created.

So i suppose you’ll here a few things from me every now and again all about my general failings and face-palm moments in my game programming world of awesome

:D

Thanks you for reading Blank Internet Wall