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,324
I've been working on some actions like kicking. Previously kicking was a virtual function for object types, but now it's a procedure with objects having much simpler virtual functions for damage and some kind of result which change the internals of a game object. The 'kick' procedure can take in both creatures and player character as a kicker and even though you need some checks for player vs. npc it's still easier to control I think. The control flow and understanding what it happening during kicking is easier with one procedure.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
I hope no one cares when I derail this thread with my other projects, but I don't know if there are proper places to post stuff about programming in general etc. I haven't given up the idea of a new programming language, even though I don't have the skill to create it. But I have ideas! One of them is making three types of routines: 'method' for class with no return value or parameters, 'procedure' with only paramaters but no return value and 'function' with return value and parameters. I think this alone would be a solution for 84% of problems in programming.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
Sometimes I think about the insanity of working on a large project like this where development has became mostly trying to make some kind of sense about what is happening in the source code. Trying to make anything work in the gameplay seems to be difficult.
 
Joined
Jan 14, 2018
Messages
50,754
Codex Year of the Donut
Sometimes I think about the insanity of working on a large project like this where development has became mostly trying to make some kind of sense about what is happening in the source code. Trying to make anything work in the gameplay seems to be difficult.
You should document your code better so you don't have to waste time figuring out what you did/were doing.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
I don't know how to document. I've tried to look at the subject, but it seems to be quite vague one. Maybe it would help to create some kind of overview of the project structure, but who knows.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
Well it does seem to help just listing classes and functions. I'm going at letter C with 82 items already in the list and I noticed some problems, so there is at least something to do while I'm trying to figure out the next step.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
If you think about motivation then competition could be a part of it. Roguelike development scene had competition... 15 years ago. When some people were still developing their own major roguelikes. But I guess people grow up and start to think about money. Kornel became a commercial game developer, but he is polish so it's understandable. They don't have other dreams than money in Poland. Biskup didn't yet have the idea of monetizing ADOM (because crowdfunding was not yet invented), he was trying to make a sequel for it. Some others got a real job and life for sure. As far as I know I'm the last one. Now banned from all roguelike forums and have to settle for just a role-playing game forum.
 

Metronome

Learned
Joined
Jan 2, 2020
Messages
277
There are a few other serious freeware roguelike developers I know of. SoTW, Zorbus, Demon... I could see those games becoming like major roguelikes. At least in terms of quality. But since "Major" goes by popularity this might be the end. I doubt roguelikes will ever be as popular as they once were.

I blame Steam for the culture it produced. That destroyed a lot of hobbyist enthusiasm. It's now considered a waste of time to create anything big for free. The original values in roguelike development are also not very profitable and so negatively impacted by it. On top of that you are competing for attention with programmers who are upheld financially to do the same thing. It is no surprise that the roguelike scene is dead or dying.

I follow this project loosely. I would have more to say but I don't know what's going on most of the time. I plan on playing it when it comes out at least. The length of it's development has made me curious.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
On top of that you are competing for attention with programmers who are upheld financially to do the same thing.

Not only they are not making roguelikes, but if there is something like ADOM it's not taking the genre to the next level. I can't be the only one who is thinking that there is much to improve in roguelikes which could make them more interesting games.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
I was annoyed about the decisions I made in game object code and wondered how games like Dungeon Crawl do it. I went and read (more like tried to read) the source code of DCSS and it's an experience you could say. It's like a reverse of Kaduria's style with 90% procedural code and some classes. I actually need to read more of it to understand something, but it's really much more complex than Kaduria in source code level, so what am I complaining. I even had an idea to clean up some of the GO code by removing virtual functions for rare stuff like determining if the object is a platform. Virtual functions are quite difficult to manage so the less there are the better. Since the "base-base" class of objects know only the type and subtype of the object I can move those virtual functions as regular ones and they work just like that without rewriting anything else. Sometimes OOP works like that which is a nice surprise, rather than finding out something is difficult to rewrite because OOP.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
There is a bug where some races don't yet have female professions so it returns -1 for profession and the game crashes. I made a quick fix to give 'citizen' role for those. The plan for female characters is not give them any male roles like fighter or cleric. It's just not realistic and doesn't portray the roles women had in "medieval" society. For human characters I already have professions like kitchen maid and witch, but I need to do more research to find roles for women.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
I wanted to make myself more depressed so I have began to go through each source file (in this case C++ header files) giving it a five level rating from "unfinished" to "ready". I have rated about 30 of 200+ headers and it doesn't look good to be honest. But I'm hoping this will improve the way I'm working on the project, because I can find files of certain level and try to level them up closer to ready state. It looks like there are many files with only couple of unfinished or untested things. It does reflect the state of gameplay, but doing it this way seems to make it more tangible...
 

Heapcleaner

Novice
Joined
Mar 16, 2017
Messages
10
I've been a c/c++ programmer for 10+ years and I am personally moving away from OOP when I am making a game (or any kind of software for that matter)

I came to hate it because it complicates things that should be simple. Clean and maintainable code is a must, and OOP, most of the time, makes the code base very hard to maintain

Anyway, goodluck with the project!
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
Clean and maintainable code is a must, and OOP, most of the time, makes the code base very hard to maintain

I can't think any situation where it would be harder than with any other language. OOP is often (at least C++) used in a way that makes it more like procedural code, but without full power of either style. The public interface idea is quite important in OOP I think and if you find that you have to move stuff as public (from private section) and use 'friend class' AND use get/set to access internal parts then it could be a sign of bad design. Inheritance is also a bit difficult concept, you have to inherit from proper classes which is not always the case and it's also a source of problems if you don't keep it clean. When a project gets bigger the actual problem in maintaining is the size itself, it just becomes increasingly harder to maintain.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
The "rating system" works really well but it's brutal. The first step is to change "test" level files to "works" (which means they work, but may miss some features). It's hard enough to test the actual classes, but in both last two cases I had to rewrite another two classes to pass the test. In first case I had been using theme colors for windows (and menus) only in some places so I had to rewrite a good part of menu class so it would actually use theme colors rather than hard coded ones. In the second one I was testing Wall class which just creates a wall, but found out that I had broke the debug creation of rooms (wall creation is only for internal walls of rooms and only some rooms have them) and had to fix that. The bug wasn't a big one, just a problem with proper aligning the rectangle that moves when you create the room in automap view. This shows that testing is really important in a way that you don't just randomly test, but try out everything to see if it really works and then hopefully you can be quite sure it works.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
Well there is one annoying thing in OOP and it's that class hierarchy doesn't always reflect the real life. This has been a big problem in game objects. Sometimes you need a feature not typical for some game object and it's going to be painful to add. In theory if your class hierarchy is good you can derive a new class, but it's usually not that simple. And you can't derive too many classes, imagine if all weapons had their own class...
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
I'm thinking about rewriting terrain map again. For like nth time. At the moment terrain tiles are game objects, just like all other game objects. So they can have gradual damage data etc. The problem is that they do take more space especially from the save file. What you could do is change the map to int-based array or rather tile-based which contains stuff like fov, climate data etc. Then if some tiles are damaged you could create a terrain object for them only (and put them into a list like other game objects). I have always wondered how people do this, because to me it has always been so confusing.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
Almost got the terran map rewrite, actually what is left is "unrelated" stuff, because it always breaks something else. I'm really thinking about taking couple of weeks off from my main projects anyway. Meanwhile maybe learn how to use C++ modules, because I can't seem to leave programming, it's something I have to do all the time.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
Didn't do any of that, instead just worked around the stuff to get the project run again. It's works ok, you just can't do anything to terrain at the moment which isn't an important thing at this point. The phases for each source file has proven to be a good way to keep track of what to do next. Working from "sketchy" status to "unfinished" for files that are sketchy is a logical way to proceed. Then fix unfinished to "test" phase and it's done. With that I've also began to keep track of actual development time which is something I learned by watching Jonathan Blow videos on youtube, as we all do. He has the point there, the way to manage your time is track every minute you put into development and that way you get the real numbers. I'm lucky if I get over 60 minutes of dev time (for this project) per day, it's often less than that.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
The role-playing system has "stuff" in it, but it's not a working system, because I don't know what to do with it. If I would have chosen an existing system this game would be already finished like years ago.
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
When I watch the new roguelike celebration videos I can understand now why I was kicked out from the community. It's overrun by LBTQ+ "people". Like it wasn't gay enough before that.
 

Metronome

Learned
Joined
Jan 2, 2020
Messages
277
When I watch the new roguelike celebration videos I can understand now why I was kicked out from the community. It's overrun by LBTQ+ "people". Like it wasn't gay enough before that.
The cowards in charge would rather just side with the more influential group. They know what happens when you go against the LGBT freaks. They probably screwed you over to save their reputations.

Those kind of people become a real liability when in positions of power.
 

laclongquan

Arcane
Joined
Jan 10, 2007
Messages
1,870,150
Location
Searching for my kidnapped sister
Water source.

Despite the big frozen lake (or maybe because of it) you have no drinkable source of water. There's a saying "an ice field is the same as a desert" because you dont have drinkable water.

Melting ice? Where's the fire? Where's the fuel? You dont want to use dry feces to boil water.

So anywhere with large number of creatures you gotta design for a water source with understandable mechanism. Like, a hole dug deep into the mountain to the lava lake, thus the hole's heated air is enough to melt some ice up there. Or a magic well with enchanted mechanism that translate ice into water. etc and etc...
 

Krice

Arcane
Developer
Joined
May 29, 2010
Messages
1,324
Like, a hole dug deep into the mountain to the lava lake, thus the hole's heated air is enough to melt some ice up there.

This is actually a cool idea, if you think about the dungeon-wide ventilation through some kind of channels. The whole dungeon could be a passive system where air flows from deeper levels to fill the dungeon. Maybe some levels could have less air which influences light sources (fire) and breathing etc.
 

laclongquan

Arcane
Joined
Jan 10, 2007
Messages
1,870,150
Location
Searching for my kidnapped sister
And it could be a mini dungeon (the base after you fell through the hole and fall into the lava lake) where you have a set of enemies (fire elementals etc)different from the rest of the world (cold weather creatures).
 

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