Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - RoguelikeRazuka

Pages: [1] 2 3 ... 15
1
Hello, I came here to share my woes with a project I have been given on my current job recently, perhaps it would be desirable to hear some advice on how I should proceed in this situation in case someone has dealt with something similar (not sure if this really belongs in this thread).

So, I have been assigned a project. This project was not developed in our organization, rather it was handed over to us by the original contractor who also were not the one who originally developed this software and sold it to our client. The original contractor hired us as a subcontractor (according to my understanding, don't know the proper terminology) since apparently they lack the specialists who can handle this project.

The thing is, the project is not good. First of all, it's really complex. I lack the experience, the knowledge and, I fear, the brains necessary to work with this project. It takes hours for me to figure out how something works, since there is a lot of code, it's really complicated and hard to get into, it's complicated not only because there are some sophisticated algorithms or methods employed (although that complexity exists too), but in large part because the code operates on custom data/logic structures which refer to concepts and terminology which only the original developers themselves knew and understood well because they were the ones invented them in the first place, and I have no proper documentation to consult, all I can do is to inspect the code, but going like this it is very hard to get an general overview of the project so that I could navigate around it more freely and it was easier for me to get into the specific details, relate what the code does to what it should do, and understand why it was implemented in such a way.

The project had been in development for some 2-3 years I think, and apparently was partly rewritten several times, it was being worked on by a group of people whose level of competency and skill is far beyond my current capabilities, even more than that, judging by some of the FIXMEs and TODOs strewn around the code, the original developers themselves did not know or understand what to do in some situations, how to handle specific exceptions, fix specific bugs, more efficiently implement specific functionality, etc, and I am baffled as to how I am expected to solve all of these problems alone, if the necessity arises.

To reiterate, the project is quite complex and large (or so it appears to me at least, I haven't ever developed anything of a similar complexity and scale myself), it has tons of functionality of which operation I have no firm understanding. I scan the code with my eyes for hours and hours to no avail, I simply can't grasp its workings because of the aforementioned lack of experience, knowledge, and skill, but things are significantly complicated by the lack of proper documentation, and there is no one to guide me through the codebase, I do not know how I am supposed to fix stuff or even implement *new* things, because, as I said, there is a lot of code to handle by a single person, and there's no detailed and extensive documentation that I'm aware of, that would help me familiarise myself with it better. To further complicate things, it runs slowly on my machine, and when I try to run it in a debugger (I'm using the vscode Python debugger), to better analyze how things work,  the debugger just hangs for indefinite time when I try to look into a variable in the debug console (has someone encountered this bug in vscode? are there any workarounds?), so I have to use the print method to know what values the variables have etc, but it's awfully inconvenient, I have to add print statements for whatever variable I want to analyze, and then I have to restart the debugger and wait until control flow reaches that breakpoint again, which is wasting my time.

The project is quite ancient, works on Django 1.4.3 + Python 2.7, it's a legacy project, which I believe was abandoned by the authors themselves (though somehow they managed to sell it to the client 7-8 years back for a hefty sum of money), this terrifying mess runs excruciatingly slow and has awkward and confusing UI, the hapless users who have to use it on a daily basis according to the instructions do not know or understand (not that they are really interested to learn it anyway, as I take it) how it is organized, how it is supposed to function (specifically in terms of business logic, not actual implementation) and how to properly use it, for them it's all pure magic which just should work by itself, but the funny thing is that I, the developer, know very little about it myself, but despite that the users expect me to solve issues as if I were the very person who created this software the way it is (and made their lives miserable). I am required to process requests from users in the duration of several hours, depending on the severity of the problem, and if I fail to resolve requests in due time, the client is going to punish (I do not know the exact contract terms) my employer for non-fulfilment of the contract obligations. Another dismaying issue is that this software, despite being so sophisticated and having so many features, is in fact not very well suited to the specific use case for which it was it initially adopted, for, as I found out, this beast was conceived and developed more as a generic software platform for creating information systems than an application tailored for a specific field, it complicates things more than it aids the user, it's just too slow, confusing and awkward to use (it seems both users and developer suffer working with it), and to adapt it to the specific needs of the target user and generally make it more efficient and convenient I would have to come up with a generic solution, which requires deep understanding of the code, and I suspect large parts of it would have to be rewritten to change or add just a minor thing (if I want to do it the correct way, not resorting to ugly hacks, kludges and primitive duct-taping), and I've been struggling to wrap my head around it for quite some time already, maybe I'm just too dumb to do it, and I have no one to ask for help/advice/supervision since currently I'm the only Python/Django developer in the team (it wasn't the case some time ago, though, but things were not much different from now).

I did not know much about this project when I was first assigned it, I would likely not have accepted this offer if I knew beforehand. Working with this project is a nightmarish experience, it requires significant investments of time and effort, but gives very little in return, mostly headache.

So, do you think it's worth continuing struggling with this project, or it's better stop flogging the dead horse and accept defeat? Has any of you ever been in a similar situation?

2
Small random question: who came up with the idea of giving these major threads funny nonsensical subtitles (the "[WAAAAAAAAAAluigi]" part in the case of this one)?

3
General Discussion / Re: I like anime, do you like anime?
« on: April 21, 2021, 05:32:44 am »
Hello, I'm looking for some anime recommendations, to be honest I haven't watched that many titles, most of them I didn't like or dropped partway through for other reasons, the ones I really liked are JoJo, Madoka Magica, Kaiji. Preferably I'm after shorter titles, 23-26 episodes at most, 12 would be ideal. In terms of genre and theme it can be anything but sports I think, though experimentally it was established that I'm into action/drama/thriller, but other kinds of shows are also welcome (except sports!). It doesn't matter whether it's an older or recent title provided it is good and not too long (I doubt I would be able to stomach 200-300 eps of Gintama for example) and not a sports anime.

4
Life Advice / Re: The Generic Computer Advice Thread
« on: July 02, 2019, 03:03:20 pm »
Hello. Currently I have 2 x 4GB ram modules installed in my pc, working in dual channel mode (both were bought as a kit). But I want to make a small upgrade and add another 8GB but as a single module (same manufacturer, same speed, same latency). My motherboard is Asus Z170 Pro Gaming, the two 4gb ram modules are Corsair Vengeance LPX CMK8GX4M2A2400C14, the one I'm going to buy is Corsair Vengeance LPX CMK8GX4M1A2400C14. So what if I put those two 4gb ram modules in one channel (channel A, slots A1 and A2 on my mother board) and the new 8gb module in the other channel (Channel B, slot B1)? Will they work in dual channel mode using this setup? The manual for my motherboard states the following:
Quote
You may install varying memory sizes in Channel A and Channel B. The system maps the total size of the lower-sized for the dual-channel configuration. Any excess memory from the higher-sized channel is the mapped for single-channel configuration.
But my configuration is going to be 4 + 4 gb for channel A and 8 gb for channel B (hence equal sizes in each channel), so the above statement does not apply, correct?

5
DF General Discussion / Re: Upcomming announcement....
« on: March 13, 2019, 12:32:00 pm »
That was rather unexpected. Are there going to be UI enhancements in regard to convenience and usability? Anyway, I'm buying it.

6
Other Games / Re: Dungeon Crawl: Stone Soup. Or: THAT DAMN SIGMUND.
« on: October 15, 2018, 06:13:12 pm »
A question: does Gell's Gravitas affect your ancestor when worshipping Hepliaklqana?

7
Other Games / Re: Stellaris: Paradox Interactive IN SPACE
« on: July 03, 2018, 05:02:58 am »
Hello, which DLCs for Stellaris do you think are worth checking out and buying on steam summer sale? I haven't played the base game yet, but I will pretend I'm indeed planning to do so in near future.

8
Other Games / Re: Caves of Qud: Now in Open Beta
« on: May 16, 2018, 06:28:10 pm »
Damn I've only just known that full release is delayed until 2019. Not particularly surprised though, considering how much work is left, though I still was bent upon playing Qud for another 150 hours *this* year with the arrival of the final version. Sad.

9
Other Games / Re: The "Recommend me a game" thread
« on: May 16, 2018, 06:10:57 pm »
Wow thank you immensely for your recommendations [on games like Tactics Ogre], actually I think that just playing TO for a second time is exactly what I'm looking for (like, it's a kind of game that should be played more than once). My first playthrough on the psp version, but now I want to try TO for the ps1 or snes as I heard the original was better balanced and more challenging.

I'm also going to buy some new games for my ps3 soon, and I've been thinking about trying the Yakuza series for some time now, and what incarnation (either for ps2 or ps3) do you think it's better to start with for someone who's completely new to the series?




10
Other Games / Re: The "Recommend me a game" thread
« on: March 06, 2018, 03:21:51 pm »
Not sure if it's appropriate asking this in this particular thread, but I'll venture to do so nevertheless. I've recently finished playing Tactics Ogre: Let us Cling Together (PSP), liked the game a lot (engrossing gameplay, wonderful art style, excellent music, even story was decent, I found it really interesting, not particularly naive and thankfully not painful to follow I mean no panty hunt, incest, paedophilia and other embarrassing stuff we all love japanese cartoons for), and now I'm contemplating about playing some more games like it. So, how are Fire Emblem games similar to Tactics Ogre? I mean, am I going to like the former considering I very much enjoyed playing the latter? Which issue from the Fire Emblem series would you recommend?

11
Other Games / Re: Angband v4.1.0/Angband.live
« on: January 02, 2018, 02:06:50 pm »
Played quite a bit of Angband sometime ago (scoring maybe 60+ hrs in total), last time it was the vanilla version, and I'm still wondering why the game is actually considered one of the best and greatest roguelikes of all time, and while it actually may be so (considering its influence on other roguelikes etc), I was unable to discern its goodness whatsoever, for I can clearly see there are many flaws in Angband which make the game not fun for me presonally, mostly concerning design and content, just to name a few: the classes are boring to play (except the spellcasters of course), the races lack interesting traits and talents (differing mostly in attributes), the mobs are numerous and easy to kill (except the uniques, which I found to be absurdly overpowered, they hit hard and endure long, but themselves are very forgettable, I like how unique monsters are handled in DCSS a lot better), the levels are just featureless rectangle rooms connected with long corridors etc. Maybe I'm missing something, but it plays extremely dull, and it seems like it's a type of roguelike supposed to be difficult not in terms of not losing your character as most roguelikes, but rather in terms of overcoming its tediousness, learning to be prudent and patient so to speak. Whether it is the case or not, could someone enlighten me on why I should like this game, or it's really just not for me?

12
Other Games / Re: The "Recommend me a game" thread
« on: December 22, 2017, 11:19:48 am »
Is Elminage Original (PC) any good? Was trying to get the free torrent version before purchasing the game on steam, but decided to check if I could actually save megabytes of internet traffic not downloading it in the first place (I was unable to find a torrent of it anyway).

13
Other Games / Re: The Roguelike Development Megathread
« on: December 21, 2017, 04:24:48 am »
No, I don't want Unity or UE4 -- they seem a bit overkill-ish for my goals (for I don't aim at producing serious shit intended for sale at the moment). I was thinking about using libraries like SDL or SFML or maybe a 2D engine like oxygene, but maybe there are better options, especially if I'm not using C++.

14
Other Games / Re: The Roguelike Development Megathread
« on: December 19, 2017, 04:29:55 pm »
Finally, after having played roguelikes for more than 3 years I (naively) consider myself competent enough to start making my own roguelike game, and currently I can't decide whether I should use C++ or Python (C# is also fine) to code that thing (I have a fair bit of programming experience with both languages, even if I don't know something it shouldn't be much of a problem to get better at either as I work on the roguelike of my dream). What I basically need is an OO language and a library/framework/game engine offering convenient tools for representing game objects as text characters, but it would also be great to have the possibility to transition to tiles with as little effort as possible, so I don't think it's a good idea to use libraries like libtcod with limited 2D sprite graphics support (to my knowledge) or even libraries like curses designed to perform manipulations with text characters in a console window.

So, what would you suggest?


PS I'm sorry for necroing in advance, but since this thread hasn't been closed by this point, I think it's allright to post here.

15
General Discussion / Re: if self.isCoder(): post() #Programming Thread
« on: December 05, 2017, 06:43:56 pm »
No, unfortunately I couldn't find a solution that would suit my needs :( Had to switch to Python instead.


Here's another question. The thing is, I'm making a GUI program using Python's Tkinter. It has a button which if pressed calls a function which does some computations. The problem is that depending on the input it may take quite some time to get the result. Besides, when the function gets control the GUI of course feezes so user is unable to close the application correctly in case he got tired of waiting and he wants to stop execution immediately. I could fix the problem making the function run in an infinite loop and check some flag value on every iteration, but again performing a single iteration may take qute a long time, so I'm not sure this is a good solution for me. Another idea I've come up with is to use Python's threating.Timer class in order to run another thread (inside the function which runs in it's own thread, that is starting a thread from another thread) checking the flag value for that function, yet in this case I'd have to work out communication between the two threads which I'm not particularly experienced in, so I would be very grateful if anyone suggested me a more simple way to achieve what I just described.

Pages: [1] 2 3 ... 15