Tuesday, May 20, 2014

Pre-Alpha V0022 Release!

     So I recently posted that the pathfinding was still going to take some time. Turns out I was wrong, a few minutes after making the post I was able to work out the bugs and get pathfinding working! There are some known bugs (the game will crash if you barricade yourself into a mountain), but it is now playable. Version 0022 can be downloaded here: Download!

Pathfinding Part II

Update on Pathfinding Progress:
     I have been working on the A* path finding algorithm for some time now. It is a fairly complex addition to the game, if not the most complex (Diamond Square, used for map generation, does give it a run for its money). Given the complexity, there are many pieces of code that need to be added and even more bugs that need to be ironed out. Unfortunately, this means that I still am not able to release the next update. Work is ongoing, and I have made considerable progress, considering I'm learning this algorithm as I go.
     The actual pathfinding code itself is up and running, and it is generating some adequate, if not always the most efficient, paths. Currently, I am working on getting the NPCs to follow that path. To do this, the previous movement code needs to be torn apart and reassembled, which is why it is taking so long. I will provide a link to download the next version as soon as I have a playable release.

Changelog:
     In other news, I have created a changelog in an effort to better document my progress on Colonist. I have made it public, so you can follow the day-by-day progress on the game. You should be able to find the link to the changelog on the right hand side of the blog.

Monday, May 12, 2014

Pathfinding!

     Hello everyone. So it has been a few days since I released Colonist out into the world, and I've already gotten some helpful (and thankfully positive) feedback. Over the weekend I implemented some changes based on recommendations I received, as follows:

  • Improved spawning mechanics
    • Fixed a problem where occasionally the player would spawn close to stone, making it difficult to move
    • Implemented code to ensure that Biots would no longer spawn inside of stone. There has been a vast improvement, although every now and then they do still manage to spawn in stone.
  • Items can now be picked up by holding E, as opposed to having to press it every time
  • Upon player death, the game will reset back to the main screen after a short time
     I was working on fixing some issues with movement, when I realized that it wasn't a problem that could be simply fixed. The movement system in the game as it was now was always intended to be a placeholder for a more effective (and more complex) system. I've decided to implement that system now, rather than later, so that I can flesh it out properly as the game increases in complexity. 
     I've chosen to utilize A* pathfinding in Colonist. I'm about halfway through with writing it at the time of this writing, at least so far as I can tell. However, seeing as this is a relatively large addition, I expect it to take quite a large amount of time. If all goes well, you can expect the next update by next week.

     In other news, I've decided to keep an online change log to document progress on a feature-by-feature basis. I'm not sure how to go about this yet, but I will be making a post soon explaining it. If anyone has any suggestions, let me know!

I appreciate any feedback I get, so feel free to leave comments, and if you enjoy the game, tell your friends! Thanks

Friday, May 9, 2014

Introduction to Colonist

     Hello everyone. I'm creating this blog to document my progress as an independent game designer, beginning with my first attempt at a full game, currently under the working title of "Colonist". Colonist is a 2D top-down role-playing and adventure game set far in the future. At this time, Colonist has been under sporadic work since February 2014, so under three months. I am currently a senior in high school, and have only been able to work on the game in my rare moments of free time.


    Colonist Pre_Alpha version 16 can be downloaded from my MediaFire here. As of Pre_Alpha version 16, current features include:
  •  procedural terrain generation with the Diamond Square Algorithm 
    • The only terrain so far is grass, light grass, and stone blocks
  • Mining of the stone blocks
  • Items 
    • Entities have an inventory capacity of 4 items, although the player can have a theoretically infinite amount of stackable items such as ammunition and stones
    • Eventually the player will be limited by the weight of the items, and more types of items will be able to be carried with an equipped backpack.
    • Current implemented items include:
      • Kinetic Pistol and SMG
      • Ammunition
      • Pickaxe
      • Stone Pieces
  • NPCs with incredibly simple AI. They represent a robotic race (known as Biots) whose current goal is just to hunt down the player. 
    • The Biots will follow the player, shooting at him with pistols when they get within range.
    • They are somewhat capable of avoiding running into blocks.
    • The Biots spawn in waves of increasing number around the player.
Immediate goals for improvement are, in order of intended completion, as follows:
  • Improve general movement and navigation. Right now it is difficult for the player, and nearly impossible for the AI, to traverse 1 block wide tunnels. I will need to improve how collision detection works.
  • Improve the AI
    • I plan on implementing a proper pathfinding algorithm so that they will be able to navigate caves.
    • A common problem with the NPCs at present is that they tend to get hung up on the corners of blocks. I need to find some way of mitigating this.
    • Once I am able to get the NPCs navigating properly, I will try to get them to work together. The long term goal is to have proper factions, with large groups of AI working as if in an RTS game, or in many ways as one would expect an actual colony of people to work together. This is, of course, a long way off.
  • Get some proper art and animations
    • I'm not the best artist, as is quite evident. For the present, I intend to hone my skills somewhat. My main concern is the actual entities and blocks/tiles. They could do with a lot of work.
Beyond this, I have many broad ranging goals, which I will continue to discuss in future posts. As an avid gamer from a young age, I have always been quite interested in games. For a long time I have been interested in designing my own games. In November of 2013 I finally took the first step, and began learning Java through online tutorials. From then until the start of my work on Colonist, I spent a large amount of time coding simple games and improving my coding ability. I also discovered LibGdx, a game engine designed to work in Eclipse. The whole experience has been a great learning process, and I am excited to finally understand enough programming to work on Colonist from my own knowledge, without needing to Google everything. I intend to continue working on Colonist for the foreseeable future. I'm making a game that I find fun to play, and I hope you will too.