Knighthood – 2012 7DRLC [Failed]

Well, I’m calling it. I cannot call half a finished product a success, and that’s part of the challenge to this event.

Unfortunately it seems like I made some very fatal errors during this event, and I would like to just take a few minutes and talk about them. I am seeing some beautiful roguelikes popping up this year, and I am proud to say I have already tried some of them!

Meanwhile, my project.

Let’s start from Day 1. I chose Python with Pygame. I rejected libtcod and decided I would build a graphical engine from scratch. Mistake 1. 900 lines later, at the end of day 1, I was stuck in one source file. Wouldn’t make the switch to consolidate functions. Mistake 2.

The effect of both of these mistakes soon took a toll on me as Day 2 started coming along. I started creating more classes, variables, functions. I decided taking advantage of Python’s objects and classes would be too much to figure out. Mistake 3. I simply used classes as a way to store array containers and name them. I soon had 5 different identifier object arrays. This…Was madness. Mistake 4. Imagine having the IDs of objects in one array, the positional IDs of these objects for another array stored in an array, and then the ID of the locations of these objects (for dynamic loading purposes) in yet another array, requiring searching for object IDs, which were retrieved from another ID. Sound like a headache? It was a nightmare. And this was only Day 2.

Day 3 and 4. About 10 lines worth of progress. All those arrays I was talking about? They were all jumbled up. I took a break and implemented line of sight with my buggy graphical engine. At least I got something done.

Mistake 5. On Day 5, I was extremely frustrated with my array setup. I decided to restart my python file. What did I get out of it? About half of the engine I had previously. That was Day 5, a waste of time trying to improve the engine.

Mistake 6. Day 6…So instead of going back to my content-developed engine (It had a pretty good amount of content by now, since I ignored the graphical glitches for awhile), I decided to instead start a Game Maker version of it instead. I thought to myself, “Well, I know I can get the graphical stuff out of the way with this program and get right into the engines in a matter of hours”. So I hacked through it only to find that Day 7, the last day to work on this was right around the corner.

And things hit me pretty bad today. Mistake 7. Rushing a program is probably the worst thing you can do. All the engines were done. Maybe 2 of them were working. The first half of today required debugging and fixing things. Still have to implement skills, abilities, and not to mention all of the content, which this newer engine had none at the moment.

I caved. I knew if I wanted to develop something in 7 days I had to start correct right from the get-go. Restarting two times is not an option for this kind of challenge, unless you want to really stress yourself out and push yourself to the limits with time.

My 7DRLC 3-parter time was broken down into this:
87 hours – Python Original Engine
13 hours – Python Bug-Fix Attempt Engine
14 hours – Game Maker Engine (No content)
114 hours…I don’t feel like I did 114 hours worth of work.

I understand failure is unavoidable sometimes, and considering this is only my second year in the challenge, attempts at bigger goals lead to bigger challenges. I was not prepared for them.

But the most important thing I got out of this, was that I now know what I have to work on. What I have to learn, things I have to spend time experimenting on, and coming up with a game plan. My final mistake, Mistake 8: Have your ideas layed out. Ask yourself, “How will I implement this one? If it currently seems impossible, can I find some resource to help me with that? Should I consider another language, external resources?”

Truthfully, I am glad that I experienced this failure, it is part of the learning process and part of what makes this challenge fun. Next year, 2013…I’ll be ready for you.

As for everyone else who has already finished, congratulations, I salute you all for releasing a finished product! We all put a lot of time and effort into these and the results are just splendid. As for others still working out the last few bits to their game, good luck and hope to see you all next year.

This was a very good learning experience, and I got a lot more out of it than my successful little (Read, VERY little) successful entry from last year.

Knighthood – Day 5

Well, as we all have noticed, the close of the 7DRLC event is coming real soon, and that means we have to start bringing out those debuggers and hunting down the last few bugs in our games.

Over the past two days since my Day 2 post I have managed to fix up mostly backbone parts of the program. I finally got dynamic tile generation done. Basically, depending on where you are, only certain parts of the dungeon will load, keeping the game’s speed relatively high.

Implemented line of sight using line tests, and also managed to work on some of the level creation. Screenshots below demonstrate these.

 

I told myself that I would program for 40 hours straight. During this session (Which is still going on at the moment), I decided to extend it to 48 hours. So I will be going 48 straight hours. I am closing in on the 18th hour as I write this. Got some nasty little graphical bugs that will tease me for the next two or three hours but I’ll get them. Still have some things to do gameplay wise. Creature and player abilities and skills, hidden areas, mini bosses, the castle area, and most of the other dungeon areas. But at least most of the game has been ironed out.

Anyone who is interested in seeing how the game is doing right now, or just wants to give a shout out and support can stop by http://justin.tv/sigonasr2 where I have been broadcasting the whole event.

I have been watching these games everyone has been putting together, and they look absolutely gorgeous this year. Cannot wait to play all of them, including my own which is looking decently promising. (Beats the stuffing out of my 2011 entry for sure.)

Total Programming Time: 61 Hours

Knighthood Day 2

Well, today was day 2 of development for my 7DRLC entry Knighthood.

My previous post was all about getting the basics out of the way, which I successfully did. However, under the rock solid code I had no plans about optimization and management of my game objects. This posed a large problem due to how my roguelike would play.

To start things off, my roguelike is based on the idea of one centralized “hub” which is an octagon shape and 7 themed dungeons to explore. I drew up a rough idea of this in paint:

I decided my roguelike would have no floors or staircases, but long continuous areas. Which would be fine if it were not for the fact that these areas would go on for up to 100 stages. Each “stage” is grouped as a 20×20 chunk of land where obstacles and mobs will generate of course. The farther you go in, the tougher things get and the more challenging but rewarding things will be. Getting items from one area may benefit you in other areas.

When I came up with this idea, I was thinking Megaman games in a sense. You can choose any area to start in, and then you have to get by without certain items in order to obtain things to help you later on. I found this to be a neat idea to build my roguelike off of. The main castle (The big black box on the top) is your ultimate goal. However, going into there at the beginning of the game without any experience will lead to a very quick death.

Anyways, today I programmed the backbone of my game, so nothing really new in terms of graphics or interfaces. If you want to see how it looks now, I once again lead you to my previous post.

Today was just 5 and a half hours due to my work schedule, but tomorrow is 15 hours of development, followed by more work, sleep, 6 more hours of programming, large amount of sleep, and then my monstrous 39 hour session in which I will hopefully get the prototype of the game finished and begin polishing. I saw many of you 7DRLC challengers’ posts and would like to wish you all luck too.

-Joshua Sigona

Knighthood – Day 1

Today, with the support of viewers watching me throughout the day during my broadcasting of me programming, I got a handful of features loaded into the game already. Compared to last year, Knighthood far exceeds my previous game, which is good news. I expected my second 7DRLC run to be much better, and so far it has been.

I guess the best way to show progress is to show some screenshots of that progress. Here is what I have so far.

Total Programming Time: 26 Hours

I can’t thank the people who have been watching and supporting me from the sidelines enough for sitting through programming sessions like these. If anyone’s interested in seeing further progress later on, feel free to stop by my streaming channel at any time during the event. http://justin.tv/sigonasr2

You may be wondering what the game is actually about, but I will not reveal that until I bring out the storyline in Day 2 or 3. Tomorrow is map generator, equipment and items. I will also be doing a 39 hour programming session from Wednesday to Thursday, so hopefully I can get the complete game finished by then and just spend time bug testing and polishing.

So far, I have gone much farther than my submission from last year. Good luck to everyone else, and I cannot wait to see what everyone else has done.

Free-Like Receives an Update

While I had my friends and a few other cohorts play my new rogue-like adventure, I was getting bothered by the fact that I skimmed over some features and left some big game elements out. I know my game for the 7DRL is supposed to be done, well, on the 7th day, but I just could not resist updating this darn thing with two key features and one minor update:

Saving / Loading Files using the FAT system on the Nintendo DS so DS users can save and play again.

-Restart the Game without Hard Resetting.

-Getting Stuck at “Loading … Bestiary” screen now fixed!

Download the new updates at http://sigonasr2.servegame.org/freelike

I have updated Free-Like with these two features. They do not impact the actual game play at all, so I think I will be fine in not considering this a 9DRL, they are just enhancements to make the game more user-friendly. I am sure this will be acceptable, right?

You can save your game at any time by choosing “Save Game” in the Options Menu when you press Start. You can Load your game at the title screen by pressing Select instead of Start. (The title screen tells you this too.)

When you die, you can simply press Start to begin a new game. The game will run through some functions to reset the whole game, and then you can start playing again. Note that this game does not let you save scum, so you will not be able to ever get your character back if you die, which is a good thing. (Or unless you back the file on your computer, which would be cheating of course.)

Emulator Players: You still cannot save by means of the FAT system. That is only for Nintendo DS flash cartridge players. You can still use the save and loading state features just fine and continue your game.

Enjoy! And I will not be updating this game anymore, because well, it doesn’t need updating, I am satisfied with the game play, I just really needed to add in those key little features to make the game experience better for the player.

Free-Like Finalities

So as you may well know, I finished Free-Like yesterday (Well, today) at midnight and thus am glad to say the game is officially done! Overall Time: March 5th 12:00AM – March 12th 12:00AM. I worked for 60/168 hours of 7DRL, 30 less hours than I originally planned.

Since then I created a webpage for it at http://sigonasr2.servegame.org/freelike/ and took care of posting it to rec.games.roguelike.announce and updating the wiki at RogueBasin.

Overall, I did a pretty nice job for my first time in 7DRL. I have never tackled some of the challenges that are required to make one of these before, so it was nice to finally be able to think code through in a very limited amount of time. I loved this challenge and will definitely be doing it again next year!

Free-Like

The game requires you to defeat Tropicass, a dictator across the land who does not play games when it comes to battles. You must find him and destroy him in order to end his reign of chaos throughout the country.

You start out with nothing, but soon find yourself defeating basic Fire Heads and collecting various items and equipment! This game has lots to explore and decipher, while at the same time very simple at its core.

The controls are as follows:

A is used for climbing up/down ladders and making selections in the menus.
B is used for picking up items off the ground along with returning to a previous screen in the menus.
Start is used for pulling up the inventory/cast skill menus. You can equip and use items in the inventory and cast skills in the cast skill menu. You can press Start again to leave the menu at any given time.

While I will not reveal to much about gameplay elements, as that is for you to figure out, here are two I will mention:
-Skills have to be researched through experience and other means in order to identify them in the first place. While you may feel the effects of skills, you may not necessarily sense them or have visible sight of them until you master that element.
-You have 6 various equipment slots. Head, Arms, Body, Weapon, Ring, and Feet are all the different equipment types. You may use one of each type of armor to create a cumulative Defense with them.

Features

-Large “Free-Like” Dungeons to explore.
-Various Items to find and learn about.
-Equipment Combinations, find the best combination!
-Skills that you must first learn in order to sense them and utilize them.
-Enemies from the easily skirmished to the godly untouchable beasts.
-Simple Gameplay.

Wishfuls

If I had more time, this is what I would have added.

-Saving/Loading feature. Right now, emulators have to save state, and DS users can only sleep their DS and resume later. No current way to save and load appropriately.
-More Detailed explanations, more descriptions, more bestiary of course. Expanding the game is always a wish.
-Gods. I never ended up adding spirits that affected the game over time, would have been nice.
-Music. Pretty quiet this game here…
-Better management of gameplay elements. (In other words, cleaner programming.)
-FOV

Overall, for the time I had, and for doing 7DRL for the very first time, I think I did an awesome job!

You can go to http://sigonasr2.servegame.org/freelike/ and download the game to start playing!

Free-Like: The End

After intensive work tonight, the game is finally complete! Though a little sketchy and rough in some areas, the roguelike is sure to entertain the people that want an easy to get into game and still have fun.

The game is mostly based on luck and how you want to develop your character. Though the game may look easy at first, do not be fooled by the difficulty as it increases exponentially!

I will not explain much more, here are three screenshots from the game itself! What a great week this has been for my first time participating in 7DRL! I definitely learned a lot from it and will hopefully do better in the future!

I developed this roguelike with the devkitARM toolchain using PALib for functionality. The game can be run on any kind of DS emulator including the following:

Desmume (Windows + Mac): http://desmume.org/download/

NO$GBA(Windows): http://www.nogba.com/no$gba-download.htm

iDeaS(Windows+Linux): http://ideasemu.biz/downloads.htm

The game can be found here for now:

http://sigonasr2.servegame.org/uploader/multi-file-uploader/uploads/Free-Like.nds

And finally, the source code can found here for now:

http://sigonasr2.servegame.org/uploader/multi-file-uploader/uploads/Free-Like_(6).zip

I am in a rush due to lack of sleep, but I will now rest well and will make a website and post some more detailed info in google groups and such tomorrow. Thanks to all for the feedback as I developed it, it was a fun first year of 7DRL and I hope to do it again next year with something even better!