December 30, 2012

Minecraft

Since I seem to spend lots of time playing Minecraft I have been thinking about what exactly I want to do for modding.

The first thing that comes to mind is waiting for the first revisions of the Modding API. The reason for this is I don't want to have to keep fixing on going changes to Minecraft and keep things simple. I like the concept of their modding API and will be working with Mojang on their Jira site to offer what I can to the development of it. It also means I can give feedback directly to the developers, now that is pretty damn rare for most development companies.

Lets start with the basics, what do I want to create. I have spent significant time 'researching', which is basically playing the game, and thinking about what I could easily add to the game to give it some more spice. Of course most of this depends on how much power I get from the Modding API, but I'll outline some basics.

1. I want to add a few basic cooking recipes. Like Apple Pie, Meat Pie, Sugar Cookie, etc. This should be simple and easy to do. I expect these to be trivial  to implement and would probably introduce me to some of the basics of their API.

2. I want to add another thing or two to farm. Maybe expanding upon my cooking concept I could add 'spice'. I'm even thinking maybe to add some alcoholic drinks and plants/items/blocks accordingly to make them. I would also add in a 'drunk' effect to the character I'm thinking something along the lines of what they do in World of Warcraft.

3. I want to improve trading, the current system feels clunky. It involves 'recycling' villagers to get the trades you want, there is little incentive to continuously farm certain items without having to keep renewing trades and other things. I know there is a ton of economy mods that exist in various ways, something with soft limits instead of the current hard limits would be better. As in, I buy an item, the price slowly goes up. I sell an item, the price slowly goes down. I would also scale items differently than the current ratios, they seem far to generous for diamond.

4. I want to improve fishing, the current system is boring. This would mean something like chasing the bobber, catching different types of fish, and a few other basic changes. Fishing overall should be more interesting, but just as it is in real life it can be fairly boring if you aren't catching them quickly.

5. More armor types, lessen the gap between items. Going from leather to iron, and iron to diamond, the jumps in power are insane. And in full diamond armor, unless you are playing on hard, you are basically untouchable. Even iron armor is pretty generous. I also feel there should be a few more tiers of armor, but I won't really go into those details. Ideally, a copper/tin ore and copper/bronze armor. I might add a tier after diamond called mythril, and make it incredibly hard to find. I would also be tempted to add silver into the game. Iron could be refined into steel and such. I am aware of mods which already do this, but I have a few other things I would extend this concept to.

6. Make armor more interesting. More RPG like. Currently, armor has a single purpose which is to reduce the damage taken by all sources. This is pretty decent, but because it only has a single role it has to be really strong to convince a player to make iron or diamond armor. Instead I would want to change it to have item affixes which add health, increase attack, increase movement, increase jumping height, increase tool strength, increase xp gained, etc.

7. More enemies/mobs. Currently, the number of NPCs in the game is pretty lame. I have a handful of enemies and a few passive mobs and a couple friendly. I know a few mods at different types of mobs, but I would also like to play around with my own version. Including mounts, guards, pets, etc. In combination with the previous idea, I would want to add factions, scaling enemies, scaling stats and other rpg elements.

8. More adventuring. The game currently is about setting up a base and eventually going to The End and killing the dragon. So after all that... then what? I'm thinking Quest-based systems with NPC villages, to gain reputation with various factions and earn rewards that are not possible in other ways. Quests which send you to other dimensions, get you to collect items, build things, send you to fight a boss, etc. The system would make the world feel more alive.

9. More item types. Tool wise we are in a pretty good shape, but armor-wise there could also be gloves, bracers, belts, rings, necklaces. More weapon types with different methods of attacking. The combat system could be overhauled to add in skills and a more complex battle system. Including staff's for magic and multiple ways to use the weapons. Spells/Skills/Abilities, etc could be in hidden tomes you find by doing quests, defeating bosses, and other difficult tasks.

10. Large-scale towns. Currently a village is a pretty simple concept, but what about expanding the idea to have larger places as well. With unique buildings and such, different types of guards, more rpg like and factions. Maybe even have 'kings' or 'leaders' which can be killed or allied with.

11. Large-scale combat and meta game. This is one of the largest concepts I have, which would be to literally re-create the Stronghold game in Minecraft. I've heard of other games being rebuilt in Minecraft and adding interesting twists, but this concept seems to be the most interesting but also the most complicated.

I have other ideas and such, but I figured I should lay out the basics. Obviously, there is no way I could do this list and as I descend the list things become a lot harder and more challenging. Of course, this all depends on what ends up happening with the Modding API. If I could assist with development of the API I would, but that is very unlikely.


December 23, 2012

What's Next

TLDR: I'm not going to continue Combatics Evolution. I want to write Minecraft mods and now need to convince myself not to re-write Minecraft to clean up the code.

For the last while, I have been playing various games and just relaxing. This is after a good crunch period with school and basically had little to no time to work on anything serious. I did do a couple of things and will highlight them below, but I also have had a few thoughts lingering in my mind which I will expand upon.

In that time, I wrote a simple platformer game with some Box2D and made a couple levels with Tiled. It was pretty epic, and rather fun. However, I decided to not develop it into something real. It was more just a play around concept and the game isn't easily something I can scale up as the uniqueness of racing against a clock as water rises gets old pretty quick.

I then took on the Java4k contest, I'm thinking its a nice once a year thing where I spend a day or two writing a simple game in 4KB. It is interesting working in those conditions because you have to think about what you're doing in a very unique way. I'm very happy with my work this year, as it was a much better submission this year with a lot less work.

During my exams, I needed something to play around with between exams to keep my sanity in check and also so I can easily have a break and go back to studying at any moment. I was working on a 3D version of Falling Sand which if you have no idea what that is, check out the link. I played this game years ago before I was really into programming and thought it was a neat idea. The 3d version is pretty cool, but getting it to scale up to an interesting size proved rather challenging. I then thought about networking some more and the idea quickly went away.

Of course, during this entire time I was thinking about Combatics Evolution, I tinkered a bit with a few things and did a ton of prototyping with networking to figure out what a good framework would be. In the end, I've come to the conclusion that the scope of Combatics Evolution is simply too big. If I want to turn it into a game, I'm going to have to scrap the networking and focus on the core game-play. The editor will stay simply because I will probably use it for developing the game. I'm just not feeling very confident in the project. As it is still too much to chew for a single developer without an artist without sacrificing my social life.

I did play around with the concept of having a server-side model, a proxy model on the client-side and handling the updating with a caching mechanism to keep the networking calls to a minimum. The client would be a simple thin client and focus on just rendering the information and submitting user input to the server. However, this would require rather large changes and I'm not sure it would even work out well at all without building a more serious prototype and that would not be a trivial task considering the complexity of map/units/effects/abilities/items/etc.

For the last year or so I've been thinking about building Minecraft mods. I've been waiting for the official moding API because I would rather not have to deal with the hassle of unbuilding minecraft, moding and repackaging. Then figuring out how to incorporate networking into the whole puzzle, and working with bukkit to support my single-player mod. Well, I did play around with LWJGL and brushed up on some low-level OpenGL. I honestly cringe at the idea of building UI by hand... Additionally, unobfascated Minecraft code is brutal to work in and some of the glaring design flaws in the overall code structure drive me nuts. I seriously would spend hours rewriting Minecraft instead of working on the Mod, but never the less. It can't be that bad if in about 3 hours I was able to turn the heart meter into a health bar and make it scale with your level.

This is a pretty damn long post... anyways, bottom line is. I don't want to work on Combatics Evolution anymore and I feel like modding Minecraft could be a lot more exciting.

December 7, 2012

Java4K 2013

Well it's that time of year again. It amazes me how much I have learned over the last year. This contest I was able to really focus on features as I know a number of tools to help  with compressing my game into 4KB and I know Java much better than I did a year ago.

The game is called BallDefense, I will shortly post a link to it once the game is officially approved. It is actually a very deep game with a ton of different features and functions. I did use a number of formulas to scale and generate the game to keep things low of memory cost. Hopefully, this time I don't forget to do the community vote so I can vote on my game...

The source code should be publicly available after the contest, its rather complex and ugly for my tastes but when memory size is critical you have no choice than slightly ugly code. I actually have a couple bytes to spare with my game so any future request I should be able to accommodate  I'm slightly sad I don't actually have a high score, but I can probably squeeze it in later.

On a side note, I've been figuring out the best way to approach the networking for Combatics Evolution, but no work will be done until after I'm finished my exams. I have a feeling it might be best to strip things down and rebuild the battle system from the ground up with networking. Hacking networking into my current system will be error-prone and probably not work out very well; however, the battle system isn't a trivial thing to just code up so it will take a big effort to rebuild.