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.

Kaduria

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I think after 30 years I finally took static keyboard commands and made them user definable (is definable a word?) by placing them into std::map. Save and load for keyboard commands works in theory, now I just have to figure out how to redefine commands.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Reorganized virtual folders, I think it was worth the time. Previously I had folders like 'procedures' which isn't that great when you try to find something. Now there are more folders with less stuff. For game objects I have began to use 'actions' and 'data' folders, and it more or less reflects the style of source files. My programming style is shifting from "pure" OOP to kind of half-procedural approach where I try to keep data structures simple and move actions to other classes or even procedures. This idea comes from the fact that classes get large and entangled when they contain actions that require other classes. Actions seem to be really what procedures are good at, it's almost in that name: procedure = action.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
If I can't think of anything there is at least the list of bugs to fix. Well it only has 7 open bugs, but there are more of them of course. However fixing bugs is quite tedious, I've never liked it, who does. But something has happened to me, I have this weird crush on a woman and to get my mind off her I'm programming like crazy person. I think this is how we guys get anything done at all, right. Right?
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I'm planning to do a RPG simulation for this project as well (already did for Teemu). The idea is that you can adjust attributes real time in a "simulation" and see how it affects to everything else. This hopefully will fix the problem I have developing a RPG system when you get lost in calculations and how modification chain should work. In fact even getting that chain to work properly will be useful.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I think it's weird that even the source code is quite nice I'm still having trouble to finish stuff. Previously I actually had to fight with the source code quality and those problems seemed to be the "only" thing that was blocking the way, but.. looks like it isn't the only thing. One explanation I've been thinking about lately and this is going to sound simple, but my mental health problems play a role in this. I don't think I really even have any motivation for game programming, but I'm doing this because I can't stop either.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Maybe I should make simpler games first, because somehow overwhelmed by the size of the project. When I look at some unfinished feature it feels like too much work just by itself.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Working on the design of the gameview. I think the item belt is a good idea, it's a quick items feature. You can equip items in the belt and use with ctrl + 1-7. What needs to be shown in gameview is not that difficult to decide, but it's quite tedious trying to find the place for them and how to display some stuff. At the moment item belt shows only the item icon, but I guess it needs to show the name as well. For a while I had an option to mouse hover on the item to see the description, but then I decided to remove mouse completely from the game. In order to utilize the mouse properly you have to go all the way, because it's just going to be annoying if the mouse works only partially in some things.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I'm refactoring functions back to classes in this project also. It was kind of mistake, but I also learned what was the small problem I had with classes in determining where some member functions should be. And when going back I will utilize more virtual functions in the creature hierarchy for player vs. other creatures.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
One funny thing I figured out by accident is that you don't need to have classes as fixed components. In some cases they have sync problems which means you would have to synchronize that component's data when something changes. In this case the Look class has current level and player's handle which would have to be synchronized when the level changes etc. But you don't have to do that if you just use the class as a local variable. It's such a simple concept that you almost never even think about it. And it does completely remove the need to synchronize, because the constructor can take in the current data.

Code:
void U_Avatar::Look_Something(int mode)
{
   Look look(this, current_level);
   const Coords c=Get_Location();

   switch (mode)
   {
       case Look::Examine:
       case Look::Ground:
       case Look::Direction:
       case Look::Everywhere: look.At(mode); break;
       case Look::Stomping: look.When_Stomping(c); break;
       default: message->Write("You look around in wonder!"); break;
   }
}
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
After a surprising event of improving my health I've started to see how messy the source code is in some parts, so I've began to refactor that stuff. With of course making it pure OOP, but also creating better structures. The level generation code is quite bad, not going to lie about it. But it's almost like I know how to fix it.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
It's difficult to say when it happens, for many reasons. One of them is that I'm working on at least five projects at the same time. I don't have any reason to hurry or make myself work harder, because these are not commercial projects and I don't like working. Most likely Teemu 1.3 is going to be released first, because it is nearly ready.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Thinking about adding "dynamic" levels in the game, that are not part of the dungeon structure. One of the places will be a sewer mini cave, you can enter a sewer to find items etc. They could be stored in a different list than the levels of the game world, maybe easier that way. If the sewer is destroyed the level data could be also destroyed. This could be an interesting way to add more space in the game world without creating new places in the world structure.

I was hoping to just add levels in the dungeon's list, but it would have to be refactored and even then there would be problems with entering a level, because there is a special object type 'stairs' to enter levels, which are stored in a 'level node' list. It's simply a structure of the game world in a blueprint form, with a level instance and stairs list. You could in theory rewrite game objects to have a virtual function to find out if it's an enterable object. But I'm taking a shortcut and creating a list for dynamic stairs in the level class I guess. If an enterable game object (other than stairs) is destroyed it's also easier to delete the list item (and the level of the object), because the dungeon list is a static vector. It was never designed to change.
 
Last edited:

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I thought it would be practical to give each type of selectable character a mission based on race, gender and class. It's like "find the amulet" in Nethack, but each class has a different mission. Only some of them require finding an item and I try to explain also why that item is important to that person. Designing the missions has been quite lot of fun, but also tedious, because writing is difficult. I wasted 65 minutes writing only 4 misson descriptions.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
When I was cleaning up my e-mail I found a piece of lore for this project from 2010. Then I had some kind of idea on how to open "the gate", but it's still bit of a mystery. But surely some kind of magic is needed.

Meanwhile I've tried to figure out how to set up the new homepage. I'm totally out of the loop on how to do it. I try to google for homepage/e-mail providers, but it's such a mess trying to find anything useful from internets in this modern era.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
The main Level class hierarchy has 8 levels (of inheritance) and it's too much. The idea in that was to split Level to smaller classes. I have already removed one level and it seems like there is another one that can be removed, and then it starts to look clean with each class having a distinct role. In roguelikes I guess Level becomes quite large from all the random generation stuff, but if it does, it's just how it is. You could create external classes for creation stuff, but it's just the same thing, but in more complex form.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
The level class hierarchy is now better and the world structure has the base class data of each level in it as 'nodes'. The reason the game world is not created at once is that I want to keep dynamic creation as an option, in other words level content can change based on current situation. I've been working on the structure of the game world and now it has even more level themes than before. The "problem" I guess when making a roguelike is that the game world can't be extremely large, because then permadeath can make it annoying to play. I have some thoughts about permadeath, but it's unlikely I'm going to just remove it. It would go too far I think. The current size of the game world is not that crazy after all.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
There are 9 new level themes and even the old ones are not yet ready. Then again, there isn't really much more to focus on than this, and also the RPG system. I like the idea of creating a detailed game world, but often the implementation of it is pure work.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I've been working on each project like a week at a time so it's easier to focus. It's funny to return to this project, because this one doesn't have issues with the source code. I don't have to figure out how something works, it's almost entirely about creating more content. Although I do have to work on some parts of the source code, like recently the save/load game.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Is it possible to have some kind of "easy" system to handle delayed events with game objects? It seems like a nightmare if you have a list of events associated to objects and the events have to keep track where the object is at the moment. If you have a bomb item, you set the fuse and then place it in a box, how does the event know where the bomb is. Unless you add a specific data in the event telling where it is, but then you would have to synchronize it for any action that happens to the item. Also, it could be hard to handle events if the player enters another level. Then you would have to add the amount of turns when the player gets back and... it's no wonder this stuff is not in roguelike games that I know.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
Trying to fix a bug where if I drop some items of item stack and try to pick up the items it crashes. I tried to fix it the wrong way, then realized the item handle is not the problem. To make things even better, when I kick the items to a new location then I can pick them up without a crash. Also, I noticed that even the kicking has a new bug, because it should kick only the first item from the stack, but it kicks everything. Bugs are the greatest.
 

ERYFKRAD

Barbarian
Patron
Joined
Sep 25, 2012
Messages
28,240
Strap Yourselves In Serpent in the Staglands Shadorwun: Hong Kong Pillars of Eternity 2: Deadfire Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I'm very into cock and ball torture I helped put crap in Monomyth
If you have a bomb item, you set the fuse and then place it in a box, how does the event know where the bomb is. Unless you add a specific data in the event telling where it is, but then you would have to synchronize it for any action that happens to the item. Also, it could be hard to handle events if the player enters another level. Then you would have to add the amount of turns when the player gets back and... it's no wonder this stuff is not in roguelike games that I know.
I don't quite get this. Why should the event know where the box is? Let the bomb explode on its turn wherever it is and let the collateral property sort it out, so to speak.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I don't quite get this. Why should the event know where the box is?
So it knows which item to explode. The bomb itself surely doesn't know where it is and if its fuse is burning, because it doesn't have that data. If you did that then you would have to go through all items in all containers (per turn) to find out if they are active somehow. It's too slow. Or maybe I'm missing something, maybe there is some kind of simple way to do this?
 

Joonas

Arcane
Developer
Joined
Jul 28, 2011
Messages
172
Location
Finland
I don't quite get this. Why should the event know where the box is?
So it knows which item to explode. The bomb itself surely doesn't know where it is and if its fuse is burning, because it doesn't have that data. If you did that then you would have to go through all items in all containers (per turn) to find out if they are active somehow. It's too slow. Or maybe I'm missing something, maybe there is some kind of simple way to do this?
I guess you don't yet have any duration effect handling then? You need some kind of list which handles duration effects / events. Effects like a cloud effect on the map, a poison effect on a creature, or some event that is going to happen on turn x. Put the bomb effect on that list, and somehow in the list data point / index it to the item. You don't even have to check the list on every turn if you store the smallest turn number (of the effect / event that is going to happen next).
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,289
I have the event list. Just wondering how I'm going to keep track of items that are inside containers. You could track the container, but then everything that happens to it and the item should be reflected to the event itself. I guess?
 

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