Development Blog
Haven’t made an update for awhile been busy with job applications, appointments, and other things.
During this time I had gotten the Android emulator to finally work properly on my PC, and also have access to a device. This is extremely good news as I may be able to actually develop and release games for that market. Which I have been thinking about a lot, and actually have came back to an old idea that may work well on a mobile platform. Not sure when or if I will be working on this but it is definitely an idea/plan that I am looking into.
This idea comes from my 2.5D Unreal Mod Coins that I made a long time ago, except doing it in full 2D, with maybe some perspective I haven’t gotten the graphics details figured out. I feel like it is a good concept for a mobile game because level design is simple, the gameplay mechanics are incredbly simple (run, jump, dodge), and it is overall fun high speed coin collecting fun!
With my editor nearly done, developing levels for this platformer will be incredibly stream-lined, and will drastically increase development time. Also if the game is any kind of success creating new levels and releasing a level pack will be pretty easy. The only development decision I am trying to make right now is whether or not to develop it fully in native code. The plus side to developing it in native code is that it can be optimized much better, and it can be also used to port over to other platforms such as iOS. The downside of it however is that development time will (more…)
So although I didn’t plan on updating Dodge and Destroy anymore, the one thing that really bothered me about the project was how the AI was spawned, and how every game would end up with the same patterns. I decided to solve this problem really quickly by allowing the SpawnController object to self adjust what types of AI to spawn!
I do this simply by polling statistics from the player every level to adjust the AI in the next level. The AI types that I have in the game basically fulfilled the purpose of either forcing the player to move around(Green AI agents), or constricting their movement(Blue AI agents), while the Red Agents did some of both. So I basically decided, “lets keep track of how mobile the player is and spawn agents accordingly!”. (more…)
While I was working on the java support for the map files generated from my map editor application I found something major that I overlooked, resource/file structure. Right now the editor saves the external path for resources(tilesets) used instead of a relative path to the map file itself. This is ok for the most part on PC platforms(WELL not entirely ok, but workable), however when it comes to pushing a project to the web, or mobile device this sort of breaks everything as the paths will be screwed up entirely. So basically I need to fix the way resources are handled with map files.
My first solution I came up with is to make it work somewhat similar to the way Eclipse handles projects. Upon launching the editor, select a working directory, and a resource directory. When adding a Tileset, you can still select from a external directory and it will move the resource to an resource directory, or place the file in the resource directory itself. Allow the user to add as many resource directories as they want for that workspace directory as they want. The map file will be saved in the directory which you are working on should you choose to save, and all paths will be relative to the directory which the map file is saved. This way for instance if you are developing an Android app, you can make the working directory in your resource folder and when loading the map everything will be relative to that source.
The other solution I came up with would be to keep everything the same now but when the map is saved create a resource directory relative to the map path, and copy the resources into that folder.
There are probably other ways and better ways to do this but so far these are the solutions I am thinking of. Can’t wait to get all of this done so I can start working on some games >< oh well, learning experience.
Well from my last update about my map editor I managed to add a few more features and updated the video for the editor in the projects section. I mainly added collision editing and a fill tool for quicker editing, also I managed to get double buffering working on the map so it doesn’t flicker when being edited. The one thing I need to fix about the fill tool is that it is recursive and if the map is large enough it could cause overflow errors in certain situations. There are a few more features I want to add to the editor before posting it on the the site, but overall I am happy with where this is going.
The other thing I am working on is the java library for reading these maps. I want to get this done for the next Ludum Dare! So far the only issue I ran into is that the DataInputReader in java reads files in Big-Endian format, where as the map files I discovered are being saved in Little-Endian(didn’t realize this at first but glad I found out quickly). So far so good, I just gotta finish writing my own input reader and it should be done for the most part. I have also worked on an XNA Content Pipeline extension for my map files, and so far so good. I am almost done, just need to test it some more and work out a few kinks.
Once I finish most of the above work I think I am going to go back to the concept for the game I came up with during the previous Ludum Dare, tweaking it, and working to get a full game done. I really want to make a game similar to one of my favourite games from the NES days, Star Tropics. I love that style of gameplay and adveture, so with my new map editing tool creating a game like that will be most satisfying!
Also another update. So far the web design I have been doing for a local business has been pretty successful! My client loved the work I did! I am thinking about doing a re-design of this web page, and making it a bit more fancier maybe, oh and also UP TO DATE mark-up. One of the things I absolutely hate about my current page is the mark-up is freakin ugly. I also need a banner graphic I feel, the site right now just seems so plain :/.
That’s about it for now, hopefully in the next update I will have much more done on the editor, and the libaries//extensions for it. I love programming so freakin much <3!! Peace.
Just quick update .. finally got around to finishing the update to the map editor this weekend and man I am happy about it!
Not only did I not have to change much code at all in the editor to work with the new data I used in the updated Library, but the file size of the outputted maps are SIGNIFICANTLY smaller. With the new data structure in place the file size dropped on my test maps from 227KB to 143 bytes, which is approximately 1625.5 times smaller! Pretty happy with the results although they COULD be improved as this is without compression.
These huge improvements are not much of a surprise though, as the new structures use significantly less data for the same amount of utility if not more utility as I will be able to add custom data features to the editor now without increasing the file size. One of the drawbacks to the new system are that maps can have less Tilesets, and a size limit to 256 x 256 tiles per tileset. However it is still more then enough for normal use, and can be increased if need be(doing so would increase the file size though). The method I used .NET’s serialization attribute to make classes serializable and used more objects, so it is not much surprise that there is a huge performance increase. The old method was also a lot more clumsy to take care off, and work with while the new version is fairly clean and uses as much data as needed opposed to having extra data that was not needed.
Now that I got the editor fully functioning with the new data structures I am going to create a small little “proof of concept” using XNA, as well add a few more features to the editor(collision tool and then maybe custom data tool). Pretty happy with the tool, and it should make creating games for contests such as Ludumdare MUCH MUCH easier//faster. The only thing I am not 100% happy about is how some of the objects in the editor itself interact with each other, I need to look into a design pattern to fix this because to be honest the code I wrote to make a couple things work in the editor is just REALLY sloppy//quick fix and not elegant at all :/. Will fix tho!
Anyway, I am happy 🙂 peace!