One of the first things I did before even typing a single bit of code for the engine was to do some research on isometric engines created before and how they went about it. This wasn't limited to just the GameMaker software either, I looked through many different sources from programming it all in C++ to Unity. It's always good to absorb as much info as possible, just because it might not be the software or language you are using, doesn't mean there might not be a hidden tidbit you can use ;). After going over some of the most common methods I knew I really wanted a simple way to do it, not just for myself but for anyone else wanting to use the engine and you can't really get much simpler then the premise of the game being a top down map that is drawn in an isometric perspective. Here I'll explain how, in a tutorial style I handle the actual isometric coordinates in the engine.
Monday, February 24, 2014
Monday, February 17, 2014
Layering the World.
When I had first started working on the isometric engine, it was to honestly get it done and move on to the rest of the game. I did a few days of researching information and trying out a few things, I knew how I was going to do it, but I wanted to see other approaches and how easily I could get those to work. In the end it took me barely an hour to get the basics programmed in and going after 3 days of research.
At first the engine wasn't going to involve stacking tiles and instead you adjusted each tile's height and it got higher, dirt or whatever the block was made of would fill in as the tile was raised. This was working perfectly for my project I had very few hiccups with it and everything was going smoothly. I started to add in noise functions to generate terrain and that was working out so well to that I was surprised at my own progress when I thought for sure this was gonna take the longest out of making the game.
Given the actual coding and how simply it really was I decided then that it would be something cool to share with the GMC. Isometric games you really don't see often and if it helped get a few more in the WiP section that was fine by me . Thus the blog was started, a discussion topic on isometric engines GMC Topic was created and it went very complex real quick xD.
At first the engine wasn't going to involve stacking tiles and instead you adjusted each tile's height and it got higher, dirt or whatever the block was made of would fill in as the tile was raised. This was working perfectly for my project I had very few hiccups with it and everything was going smoothly. I started to add in noise functions to generate terrain and that was working out so well to that I was surprised at my own progress when I thought for sure this was gonna take the longest out of making the game.
Given the actual coding and how simply it really was I decided then that it would be something cool to share with the GMC. Isometric games you really don't see often and if it helped get a few more in the WiP section that was fine by me . Thus the blog was started, a discussion topic on isometric engines GMC Topic was created and it went very complex real quick xD.
Friday, February 14, 2014
Making the world go round.
The most important thing right now on developing the Isometric engine is getting all the kinks I can out of how tiles are handled, saved, read, and optimizing that code. The basics of tile data needs to be solid before I can really move on to other features as to not have as many unexpected issues later on. One of the features suggested to me was map rotation, it's very rarely do isometric games actually let you rotate the map to get a better angle / view at the current scene. For good reason to, it's not easy moving everything around and expecting it to not have any glitches or shortcomings.
After re-coding back in tile layers and getting most of the hiccups out of it I thought I would test the tile reading / saving of information by implementing map rotation. First I had to write a script that would cycle through the information and then rotate all of it either clock-wise or counter-clockwise when it was executed. The first few attempts saw a few of those unexpected glitches for how I had been using the data structure so I had to spend some time re configuring how tile data was saved. Once that was completed I ran the script a few more times and ..it worked! Tiles rotated correctly, stayed in orientation and updated there isometric depth perfectly. SO scratch that off the to-do list :D
Subscribe to:
Posts (Atom)