This week I’ve gotten a few really cool things done.
First, I finished the test level, the one I included last week that was all 1’s and 0’s at the time. Now it is full of sprites and looks nice
Second, I’ve added a rainbow effect, as seen in the gif below
The effect is controlled manually right now by pressing space, but in the final game can be used for some cool effects such as leveling up, and opens the options for more screen effects in a similar style.
The third, and most significant, feature implemented is enemies, which use A* pathfinding. A* pathfinding is a popular algorithm to get the best path to a point, while avoid obstacles. In the animated gif above, you can see the yellow ‘a’ navigating around the green patch (which are solid blocks that nothing can walk on), this is possible only with a complex pathfinding algorithm.
Right now the enemy will stop following the player if the path to get to them takes too long to process. I may or may not continue to use this, depending on how reliable it is to act the way I want it to.
The next few features on the to-do list are a mixture of very fun and very scary things, so it should be an interesting time either way!
Read MoreWhat is Project Monolith?
Monolith is a 2D role playing game with an ASCII graphic style (it uses letters . Development began on January 1, 2016. It is being written in a Java in a custom engine. Project Monolith is just the projects name, the final name has no been decided.
Why ASCII?
“Excel by from your limitations” is a simple rule I like to use. What I like to do is challenge myself by putting limitations in place to be creative and innovative. For this project, I have decided that the only sprites I could use are basic keyboard characters.
There are only 94 sprites I will use to create the entire game, one for every key you can type on a basic keyboard.
The engine I made for it can accomplish much more than being tile-based and ASCII. I am making the game more complex because one of the top priorities for me is to make this game look as beautiful as possible even though it uses low pixel sprites and ASCII art.
What is done so far?
Most of the basic engine is in place. This includes basic rendering, loading levels, basic player movement, and a framework for entities and mobs (term short for ‘mobile’, such as an enemy). Right now I am working on making a test level, and making sure that reading the level files is working.
The player (represented by the yellow @ symbol) can travel on all brown spots, which right now are represented with a 0 for testing purposes, but in the future will be designed to use any character sprite.
Each level right now reads from 3 files, a text file for what each tile’s symbol should be, another text file for which tiles are solid or not, and an image file to color each tile. Once mobs are finished, each level will use another file for mob spawns.
The way I have gone about making Monolith so far is not what you would expect. Each tile is actually black and white, but then when it gets rendered, it replaces the color with whatever color it should be. Also, if you take a close look at the earlier screenshot, you will see that each tile is not a solid color, but instead is various shades of a color. I call these ‘blemishes’, and they are generated randomly to make the world seem a bit dirtier than a if each tile was its own clean color. The rendering of the game is probably it’s most unique feature so far, since the rest of what is done so far is fairly common practice if not a bit inefficient. Currently I am running the game at an average 800 frames per second, with my computer not being very powerful, as it is over 5 years old. I hope to achieve a high frame rate on any computer, since the graphics and processing power needed is not much at all compared to many other programs or games, as you might assume.
What is the game going to be?
Honestly, I don’t know. The project could go in so many directions, I can’t really give an estimate of the final product, if it is ever finished. But the fact that I don’t know the end motivates me, in a way, to work even harder on the game.
I am not sure how often I will update this development blog, but they probably will be released any time something notable is finish, or possible on a regular schedule.
Read More