Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Teemu

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I had to add a new game object type for powder and liquid containers. There is an option to use existing objects, but they would then have some extra features added which is always a bad idea. I have done that mistake before and it just doesn't work well when you have "empty" data for some objects etc. First I thought this would be painful, because OOP, but it was actually quite easy in this case and took only 32 minutes. The engine is somewhat data-driven and got in a new object type without too much hassle. Objects are stored and handled (in display map etc.) by their base class handle, so that's also one reason why it was easy.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
The source code is getting so good, that I can no longer fix it.. I have to finish the rpg system. It's pretty much the only unfinished part anyway.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Link in first post isn't working anymore. Mikrobitti's really reached the bottom of the drain now
Removed it. Currently there is no homepage for the game, because I'm first going to finish 1.3 and then create a new homepage for it. I'm trying to speed up the development by concentrating on main stuff... there is too much optional stuff to work on, should really leave it for later.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Save and load game works, a big feature done so I'm quite happy. I need to start using it in testing. I think this is the way to go, work on one feature to complete it.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Funny problem with a shop, because inventory (menu interface) works only with inventory class for creatures, but the items of shop are in the level class... Well, I guess the only reason is that you can see the items in the shop's floor. You could maybe write inventory-style menu for level class, but another trick could be creating exact clones of items in the shopkeeper's inventory. It could be risky.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Luckily the menu class itself was using items that were inherited from a base class so it was "easy" to add an item for items that are on ground. Then add routines that search the item by index and return it when player selects an item from a menu. But it's not over, the shopkeeper has to physically fetch the item from the location, bring it back and give it to the player. So it needs some AI stuff which I don't mind programming, because it's fun. The current "AI" system probably can't handle a task this complicated, but I guess this is good practice for Kaduria which also is totally missing AI for creatures.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I made a decision to focus on one project, get it ready and move on to another one. This project is the first one, because it's almost ready and easiest to complete. Not only that, but I also have a plan in what order I should do things. First I'm going to add missing content, then fix game world generation and the rest is the RPG system.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Adding content seems to be about one feature per day... The unfinished list has 5 features, but I often have break them to smaller sub-features, because the thing often needs several other things to work. Like for example you need an item that has some use, then maybe a new monster type or terrain object etc. And I just realized the wardrobe feature is unfinished, so it should be on that list.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I'm in the dark forest trying to implement the lightning strike. It's funny how these ideas become more detailed, like how I'm changing the dark forest. It's almost working, I had to rewrite a generic flood fill for it that I was using in the generation of islands etc. Stuff like this is super slow to implement, I've been stuck in this one feature for days now.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Writing AI is even more hilarious, because I'm just hacking so it barely works. I was too lazy to implement a genuine id for items you buy from a shop so I gave item a "purchased" flag that works only for one item at a time. Then again, the whole shopkeeper event is so constrained that it probably doesn't break. Funny and actually frightening fact is that I have not dig deeper into AI until now and it looks like there is a lot to learn...
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Wrote a design doc for level themes. I think it is useful even at this stage when everything is kind of ready, because you can fine tune plans and check that quest items and monsters are in place. Two level themes should be upgraded to be more complex, but I'll have to see if those plans can be implemented without taking too long. Design docs are quite practical, who knew, right?
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
For a while I tried to make sense of the rpg system, but I couldn't figure it out in theory so now I'm just programming it in practice. Seems to be easier that way, just have to report everything on screen like damage values etc. when hitting someone, and then just try it with every weapon and attack type to see what happens.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
The save game is almost ready, but I can't figure out why the RLE unpacking doesn't work... seems to go over the limit, which "should" be impossible, because it's a simple routine. I need to check again the data it's saving, it seems to be ok. I guess the last count could be wrong. That pesky last count.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
All of the counts in RLE were off by one. Took like an hour to find out, but the good thing is that now the same routine is also fixed in Kaduria, because I took it from there, not knowing it didn't work. Compressed map data seems to be 5-10Kb which means the save game doesn't get too large. RLE works quite nicely (and it's easy to implement), because one tile has 7 variables like terrain id, mask, light data etc.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Using my new project management tool I found out that 35 .cpp files are not finished yet, so it's not that many files of the project. Obviously the most unfinished part is the RPG system, but I think brute forcing it to work should be fine.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Must have been tired when I was programming save/load game, because when I was implementing the gui stuff for that I realized most of the components don't load correctly. The problem is that there are no empty constructors for creating "empty" components, I was just trying to load stuff into a game world that was already generated... however, I think fixing this should be somewhat easy, because you can use the data stream class as a constructor parameter, rather than using Load functions.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I didn't have to write too many constructor-loaders, since the game world itself was already done in a way that the main constructor creates an "empty" class which is then generated or loaded. Surprised how easy it was. I've been mainly writing gui parts for a new type of save/load game where you use slots, not the player's name as the filename itself. I think it's better, because you don't have to remember or check the name, just pick the saved game from a list. Then again the amount of save games are limited, but it shouldn't be a big problem, I guess. There is a also an archive of recently died characters to choose from, rather than go through the character creation, enter the name etc. With this new system I can also begin to test save/load game, because it often has bugs. Also, I think that project management was a great idea, it seems to work.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Testing load game... aaand it crashes. It seems to read (not physically from file, but from the data container) more variables than it saves. It has to be something simple, because the save/load is also simple. It's just a linear stream of data and if the amount of items don't match it will crash or the values become weird.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I'm no closer to fixing this bug. The only thing I noticed it's trying to load a monster even there is no monsters yet created. When saving it shows zero monsters were saved. I went through save and load routines and didn't see any problems. It has to be missing something, maybe before object lists are loaded. The way save game works makes it almost impossible to just look at the save file and figure out where it fails. Maybe I could try it anyways.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
After checking out save and load routines several times without success I finally found the bug. There is a base class list for game objects, but when objects were saved they used only base class save routine, which should have been virtual to call the proper save function for each object type. That's why it tried to load more data than was saved. However it was also useful to check out the serialization routine, because I was able to make it simpler and even better than it was before.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Working on the "simulator" to make some kind of sense to the RPG system. With the simulator I can see the list of creatures and all their attributes, plus change them in real time to see what happens to their stats. It's some extra work, but I think it's a nice tool when trying to figure out how to implement the RPG system. When you don't have an existing system it's quite difficult to figure out how everything affects everything else.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Hit point ranges set with the simulator, it's quite nice tool because you can see in real time how attribute changes change HP etc. I made HP scale with the size of the creature which seems fine. I think the stamina calc will be reversed: smaller creature has more stamina.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Both stamina and mana values are now determined, so it's happening! Had to refactor char creation and npc classes, I had an idea to use a shared class for RPG data, but it never works that well, because when you get in modifiers to stuff it gets ugly. So now char creation is completely separate class with only the data it needs to modify for a creature. Then creatures and the player are created using that data, that way npc/player classes don't contain anything related to creation. Char class determines some attribute mods which keeps it clean I think. I had an idea to make skills modify attributes, but I think there is no need for that yet. Skills are bit funny because at the moment they don't really work in the gameplay, but the plan is to use them later. Of course now when char gen is ready I started to get strange bugs like autopickup doesn't work, I can't pick up items and maybe more.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Char creation ready and two items removed from the project management. 20 left. Forgot to add constructor for humanoid class to have max amount of items in the container so the player had only 1 item capacity. It didn't break the game, but was not possible to pick up more than one item and apparently autopickup just doesn't tell anything if your inventory is full, maybe change that.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom