New project announcement (about time, right?)

After putting the MUD rewrite on hold, I decided to pursue a different project I had tossed around previously. I am going to use the data I extracted from all of the MUD data to build out an arena-style game. Rather than build out an entire MUD, I will build out a small subset like the classes, some weapons, some spells, some skills, some mobs, etc.

I draw a lot of inspiration from really old arena games from the BBS days and more current ones such as Hero Siege and the countless other tower defense games out right now. However, I opted to focus more on the player as the central target rather than a tower defense scenario. I remember back in the day I played an arena game where you started with basically nothing and were forced to fight to gain money to buy weapons and equipment if you wanted to survive. This was all ascii graphics, so not exactly glamorous. But the concept was fun… face increasingly difficult enemies in an arena. In my interpretation, the player doesn’t get to just face one enemy at a time, but multiple enemies vying for his/her death in a closed battle location. I can have fun with this… so this is what I am making.

The opposite of good news…

One of the developers that was to be at the core of the Alsherok project is unable to devote the time necessary to focus on the project. What this means is that I am placing the project on hold based on project size, complexity, and available resources. The work I have completed getting the flat files parsed out and into a database is not completely wasted as I learned a good deal about both the process of parsing non-standard flat files and the flexibility of Postgres. This project will stay on my list, and I still plan on tackling it. Unfortunately that will happen slightly further down the road.

Finished parsing! Whew…

I finished the bulk of the flat-file parsing, at least the ones that matter at this stage. I made the process repeatable and as generic as I could in a short time. I am not entirely happy with the code as it stands, but it works for what I needed, and I think I can release it as open source here shortly after I clean up some testing portions.

I have some internal things to sort out. I will have an update out by the end of the week.

Didn’t quite hit my deadline

So I imposed my own deadline to finish parsing by the end of April and I didn’t quite hit it, but I improved the parsing speed and efficiency a significant amount. The remaining files will be trivial now. I have to work hard to keep myself out of the refactoring loop 😉

The next steps for the data will involve 3rd parties so I can go back to focusing on logic, and I can get back into feeling like I am actually creating something.

Oh what a flexible database

So apparently I’ve been doing way too much work with my flat file parsing of the Alsherok files. I forgot a very key component of my database of choice, PostgreSQL: ability to act as a non-relational database such as MongoDB while retaining the power of an RDBMS! I know, that last sentence is kinda geeky. Essentially, I just needed to grab the section I wanted, turn it into JSON, and shove it directly into the database. After that, I can call the data back out using a hybrid of traditional SQL such as:

Which brings back the fields

as expected.

I can even ensure uniqueness by adding a unique index on a particular branch of the JSON:

This provides a unique entry and fast searching because.. you know.. indexes and stuff.

Needless to say, I felt the need to refactor the other flat files I’ve finished and make them all spit out JSON instead of complex table structures 😉 Thankfully that went much faster than writing them originally. I may actually meet my end of the month deadline after all.