Thursday, November 8, 2012
Saturday, September 15, 2012
Map editor overhauled
I rewrote the map editor so it uses openGL instead of swing; it is so snappy and sleek now! Fortunately, the conversion was made easy with code that I copied from my game class. I am currently working on a system to load all image assets with giant spritesheets instead of individual images for each one... what was I thinking-right? Rendering, loading, and adding new assets are all faster with giant sheets. Sheets also allow for more customization. Item icons are all stored in a gigantic sheet, and items created in the asset editor have a parameter for the index of an icon on the sheet. Yeah! Tell me that's not awesome.
Friday, September 14, 2012
Dynamic terrain blending
Up until now, I have been using realistic textures for ground terrain. In my opinion, that looked terrible and was almost impossible to blend correctly. Fortunately, I found open-license terrain sheets at opengameart.com and I am making an algorithm to blend the tiles correctly. The less realistic terrain makes the game look much softer and better, in my opinion.
T
his is one of my favorite tilesets, and you can find more tilesets with this format quite easily: http://opengameart.org/content/lpc-farming-tilesets-magic-animations-and-ui-elements With these tilesets, my blending algorithm is actually quite simple right now. In OpenGL, one of the fastest ways to load and draw images is to use large power-of-2 sprite sheets and map subimages off of that sheet into areas on the display screen.
I decided to use two terrain layers to help with blending. My lower terrain layer will always blend using grass behind. My secondary terrain layer is on top, and each blending tile will blend with whatever terrain tile is below it, in the lower terrain layer. Here is an example of how this new tile set looks!
his is one of my favorite tilesets, and you can find more tilesets with this format quite easily: http://opengameart.org/content/lpc-farming-tilesets-magic-animations-and-ui-elements With these tilesets, my blending algorithm is actually quite simple right now. In OpenGL, one of the fastest ways to load and draw images is to use large power-of-2 sprite sheets and map subimages off of that sheet into areas on the display screen.
I decided to use two terrain layers to help with blending. My lower terrain layer will always blend using grass behind. My secondary terrain layer is on top, and each blending tile will blend with whatever terrain tile is below it, in the lower terrain layer. Here is an example of how this new tile set looks!
Thursday, September 13, 2012
I have completely overhauled the main menus so they are a lot nicer and smoother. I also just threw in the code to allow the host to put items into chests and into units. The host can also remove items at will. Now, the item system is pretty much completed, and I really want to redo the terrain textures since they look terrible and my code to handle the terrain texture is terrible.
Friday, September 7, 2012
IndieDB
I have posted Baneforge on IndieDB with a new Devlog!
Check it out at http://www.indiedb.com/games/baneforge
Check it out at http://www.indiedb.com/games/baneforge
Wednesday, August 29, 2012
Blazing Fast FPS
I finally improved the FPS to hover around 60 on my laptop whether I am the host or the client! As it turns out, the dynamically rendered minimap was killing the fps (10,000 quads drawn per frame, each one colored and blended individually) and so was the dynamic lighting engine for the host (pixels around the cursor were lit up every frame so the cursor was an active light source each frame.)
Now, the minimap is static and is pre-rendered once before the game begins. Also, I threw the cursor-being-a-light-source idea out the window, and all units just radiate light for the host.
I also implemented a basic tile-blending layer which draws intermediate tiles in between different tilesets. This look is much easier on the eyes, and even allows for very thin paths and rivers!
Now, I want to add in more interesting abilities and objects. I plan on including computer terminals that can be hacked to disable electronics. (The host would manually decide if the hack was successful and would disable the objects themselves.)
Now, the minimap is static and is pre-rendered once before the game begins. Also, I threw the cursor-being-a-light-source idea out the window, and all units just radiate light for the host.
I also implemented a basic tile-blending layer which draws intermediate tiles in between different tilesets. This look is much easier on the eyes, and even allows for very thin paths and rivers!
Now, I want to add in more interesting abilities and objects. I plan on including computer terminals that can be hacked to disable electronics. (The host would manually decide if the hack was successful and would disable the objects themselves.)
Friday, August 24, 2012
Efficiency
I have added in more objects and NPCs. Now, I need to improve DM interaction with some of the objects and improve the way that NPCs are controlled. Ideally, they will be controlled exactly as a hero is controlled.
Besides this, I realized that my FPS is extremely low (~10 fps for a 2D game in OpenGL.) I have mapped all of the terrain textures on a single sheet, and now it runs at about 25 fps. While this is a solid improvement, it really should be 60. I have noticed that removing the code for drawing the other objects barely increases framerate, and it is the menu/GUI code that is causing the huge fps hit. This is especially strange because most of the code is not being drawn at all... What in the world is going on?
Besides this, I realized that my FPS is extremely low (~10 fps for a 2D game in OpenGL.) I have mapped all of the terrain textures on a single sheet, and now it runs at about 25 fps. While this is a solid improvement, it really should be 60. I have noticed that removing the code for drawing the other objects barely increases framerate, and it is the menu/GUI code that is causing the huge fps hit. This is especially strange because most of the code is not being drawn at all... What in the world is going on?
Subscribe to:
Posts (Atom)