• Home
  • About
    • Biography
    • Contact Info
  • Projects
    • 2D Map Editor
    • Dodge and Destroy
    • Intruder's Run
    • Procedural Terrain
    • Jim Bob's Jam
Nickpdevelop.net

Development Blog

New year! Ludumdare experience .. and more 01/04/2012 at 00:25

Hello, and happy new year! Got busy and didn’t get to updating on things such as Ludumdare. First I guess I will talk about what happened on my first attempt at doing a game for Ludumdare.

First off I just want to say that I didn’t manage to finish a game for Ludumdare :(. However I learned A LOT which is a huge positive. When the theme was announced I honestly could not think of an idea for a game. I had a few but I didn’t like them so I continued to brainstorm for awhile. After hours of brainstorming I finally came up with an idea: stranded alone on an island and trying to find parts to your boat to then leave. I was going to have the player have to go through a few dungeons found on the island in order to find items to progress through each dungeon as well as items to repair your boat! I was thinking about the old NES classic Star Tropics for this game as sort of inspiration. So after coming up with the idea I quickly went to work on some art for the character, and setting up a game loop as well as animation code running. All of that actually didn’t take too long, and then I went to bed.

I ended up sleeping in unfortunatly as well as having to do some things around the house the next day. When I got to work I made my biggest mistake, which was not pre-planning how to work in all the systems. I ended up spending A LOT of time, too much time, playing with how to design my levels etc. I ended up turning a image editing program into my level editor, using the first 2 bytes as the (x, y) co-ordinate for the corresponding tile in a tileset, and the next byte for starting location and other data. This didn’t end up working very well and made editing the level a huge pain as all the colors from 0x000000 – 0x0000FF) are all just shades of blue and if I made a mistake on a pixel it would wouldn’t obviously wouldn’t work right. I managed to save time by randomly generating a lot of the tiles on the map(grass, beach/water), however the ammount of time it took to edit the levels is what I believe lead to my demise. It also didn’t help that the main island level was HUGE. But again, that led to the next problem, I started making my level and after spending a ridiculous time on it I realized, oh crap I forgot to set aside a byte for solid(collidable) tiles .. having to redo the entire map and changing one byte in the data for tiles I wished to be collidable would have been annoying(now that I think about it I could have just made a program to do that >_<). I ended up doing a quick fix by creating another image file that was basically just contained the solid areas. I didn't like this solution at all and it caused me to back out of the competition as I was just under a day left and had none of the gameplay systems done and still had to do more levels//art for enemies etc. So what did I learn? When making a game in 48 hours, should first plan out the systems before creating the content. Also sticking to smaller levels/simpler to design in scope. I also learned tho that I can do A LOT in the limited time-frame, because to be honest if I had another day or two I could have probably completed the game. Also I did get slightly better at doing pixel art(yay!). Another thing I learned is I need a better brain storming methods for ideas .. I really couldn't come up with a fun idea for a short game based on this theme. I have so much respect for those who completed their games. I ended up watching Notch's(creator of minecraft) stream, and got completely inspired by him. I probably learned a lot more just ironically I can't think of the specific things at the moment LOL. To look at what I did manage to accomplish you can check it out by clicking here(requires Java).

Ludumdare also inspired me to go back to my Map Editor project and finally fix the way files are saved//loaded, and the actual library//format of the Tile system. I am almost done that and I believe I made the file format more effecient, I just gotta add in a few more things and get the editor to work with it. Then I should be able to write a few quick libraries in C++/java for loading Map data on those platforms. The new format will also make adding tools such as changing tile to be solid//collidable//spawn point etc. to the editor and to the Map much easier, making it much more flexible tool.

Another update is I am currently helping a local business setup a website for advertising thier location etc! Yay finally some work! Although it really shouldn’t take more then a week. Hopefully the new year brings me a job as I really need some income right now >


Quicky update.. Ludumdare? 12/14/2011 at 23:44

Just a quick update, haven’t done this for awhile. Probably unless something comes up I am going to submit an entry to this weekends Ludumdare if I can get something completed in time. Deciding to go with with plain java and embed the game into an applet for better exposure so I have been busy learning the graphics parts of the java API. In fact other then when I was messing around with Android earlier this year, this could possibly be my first java program in literally 2 years! Kind of exciting, while I do not enjoy java that much(hence 2 years of just coding in C/C++/C#), I am pretty excited about the experience, and have been thoroughly enjoying picking up the Java API again. I’ve gotten a hang of doing basic graphics things//implementing a 2D camera of sorts, there are just a few minor things I need to look into and I should be ready for Ludumdare xD. Pretty motivated for the contest as well just to see how much I can get done in such a short period, which I feel like is a lot depending on the theme(if I can figure out a gameplay idea!) but we’ll see :).

But besides this weekends Ludumdare I feel like addressing something. I have been struggling with depression again(as much as I hate admitting it), which has been affecting my motivation a lot recently. But there is good news!

The good news is I’ve been working with it and finding if I force myself to code I feel much better. Have been looking into my map editor, and have an idea to fix the file format to something that I can more easily make multi-platform. So after Ludumdare, I am probably going to work towards getting that done, and releasing the code on the website. As well then focusing on adding features into the editor itself. With the release I want to include both the C# and C++ library, as well as an XNA Content Pipeline extension for easier use when making XNA projects. Also after my experience with Ludumdare its always possible I create a Java loader for it as well so the next Ludumdare things might go a lot faster if I decide to enter.

I love Game Design, but I love Programming much much more, and I can’t imagine doing anything else <3. Figuring out challenging problems, and building something out of nothing, and making people happy is what I live for, there is no greater feeling, and Programming lets me do this. I may not have a job currently but as long as I can still program I will be happy. And I am confident I will find some kind of employment, even with the poor economic outlook, and poor location I am currently stuck with, as I most definitely have the skills/confidence to be great.


Skyrim happened, possible new project? 11/20/2011 at 00:47

Just an update. While doing the edits to the code for Dodge and Destroy that I mentioned earlier, I quickly found out I would pretty much have to re-do the entire project again in order to achieve better cache performance. Now that said, I did update the code base, making it much easier to modify, and understand, also fixed a few functions that I felt were doing too much. I kept it with the OOP approach basically due to the above discovery, but just made it much more presentable. Should be uploaded tomorrow after I go over it one last time .. reason why it is late is probably due to Skyrim T_T(amazing game). I also think I have learned as much as I can from the project, which has been a lot considering how many times I have changed the entire code base, and it drastically improved my C++ skills from when I originally wrote it over a year ago. So might be the last update for it … unless I decide to write a DOD version.

Now after playing a lot of Skyrim, the game is phenomenal in my opinion. It also sparked an idea for a fast game project I may start doing, that could probably be easily ported to different mobile platforms. Basically a simple first person dungeon//castle raider, with simple graphics, where the objective is to find treasure, and escape the castle/dungeon with a key to the next. I want to do simple raycasting, with 3D levels/2D sprites for enemies/objects(Wolfinstien 3D style .. sort of) for the project to hopefully be able to develop puzzles/levels quicker rather than messing around with a 3D editor to create levels. I am still though in the process of researching whether or not this would be the easiest way to design the game. I mean it would be much easier to use something like Unity3D, and not write my own rendering code, however I enjoy writing my own rendering code more, even if its not what I am best at ><. But I am still looking into it as a possibility, like I said I am in the process of doing a bit of research before I get into coding. I thought this would be a fun and different kind of project than I have done in the past, as well as not huge in scope compared to the XNA game I have been working on.


Quest for cache coherency, and need for work! 11/09/2011 at 03:33

Hope I spelled that right haha.

While looking over the changes I mentioned I have planned in my previous blog post, and after reading several programming articles I have discovered a way to make Dodge and Destroy’s data much more decoupled, and much more cache coherent, and overall easier to read and understand. I honestly don’t know how I didn’t see this new solution way earlier when I was working a lot more on redesigning the code to that project.

My new solution will remove at the least, three classes, and the need for inheritance when dealing with enemies. All that will be needed is the enemy class, which will have less data associated with it then it does now, and will be the same size no matter what enemy type. One of the major drawbacks of using inheritance is that updating enemy objects is in most cases random in the sense that you do not know right away whether it is a “Red” or “Green” enemy without the lookup in the vtable. My new solution will just require the enemy class, who’s data can be stored sequentially in an array or vector, which theoretically will reduce cache misses, and improve performance.

These changes, along with the change to how projectiles are managed and owned by the player class, will clean up and decouple a lot of the code. I am still looking for the best solution to decouple the projectile code but that should come pretty quickly as I get into the code much more. Hopefully this will be done in a day or two, and maybe I can let this project be, and finally be happy with the code.

After doing so however, I feel as if I need a new game to work on thats small in scope. My XNA game’s scope is too large just to hack at it for awhile and finish, so I want to work on a smaller project while I am chipping away on my XNA game. Only problem is right now I don’t have many idea’s for a small arcadey game ><. I really want to work on an Android title and get it on thier app store .. again my problem is the emulator and being able to judge performance/gameplay problems from it. Ultimately that is the platform I want to work on though when it comes to a smaller project. I can probably write the code in a native C++ openGL way, and then transfer it over to the android api whenever I can either get an android device or figure out how to get the emulator to perform well enough. But maybe I'll find a programming job soon, and be able to focus on that. Anyway I just need more work to do >


Much needed update: Dodge tech design issues, and XNA game! 11/07/2011 at 23:24

Hello! Haven’t updated for awhile, starting to get over some the anxiety which has stopped me from updating things in the last month. Good news is I graduated yay!, but my degree still hasn’t arrived in the mail (couldn’t afford to go to graduation). Now thats over I want to talk about some technical design flaws I have picked out of Dodge and Destroy which I am going to address, as well as an update on my XNA game, and other things.

First I want to talk about Dodge and Destroy and some big flaws I have picked out in the design. Some objects such as the player object just do too much. The player object encapsulates and manages projectiles which it should definitely not; just makes no sense. There are also some unnecessary data held by all the game objects that I have found that I am going to take out. Currently objects such as the Player object, and SpawnController object contain and manage the sprites for drawing the player and enemy, and it should definitely not work this way. All of these issues cause memory fragmentation, and cache locality issues when updating the game.

What I am planning on doing is containing graphics components(sprites) into its own vector or array outside of the classes they are currently contained in. Along with this removing unnecessary data, and by doing this it should improve performance. It is these little flaws in the program that have bothered me for awhile and I am just going to fix them this week. I have decided against using a quad-tree like structure for collision calculations in this game, while it may reduce the number of calculations I think for this title it the overhead may not be worth it; however I am going to do a little work to confirm if this is the case.

Now the update on my XNA game. I have created the component//entity system to handle objects in the game, and thats about it for work I have completed on it :(. I have also been going over the level generation code, and I think I can cut out a significant amount of vertices, which should dramatically improve rendering performance of the environment. Right now its not terrible, but not where I would like it to be. I would also like to smooth out the edges along the cliffs to make it less “boxy”. I just have to go through the algorithm that generates the model and modify it. My progress on this title isn’t going as quick as I’d like, but things have been pretty hetic lately :(.

Anyway that’s about it for updates right now. I never expected a job search to last this long, but I understand it is a very competitive environment, especially in these times. Still confident something will come up though, been trying to find other non-programming jobs also in the mean time but ironically that’s not working out well either :/.


« Previous Page —
— Next Page »