Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×

Comment Re:It's my first serious coding project (fork) (Score 1) 17

Not upstream because it's clear enough it's not in line with how they code ( the C++ way while mine is the C way ).

I did post all code on the forum and updated regularly, but the current code base is not posted yet. I want to change the timetable window first with the new/replaced one ( and most of the underlying code).

Comment Re:According to a Steam reviewer: (Score 2) 17

Indeed, it's the virtual version of building a model railroad in the attic.

There is an old patch to enable shunting as well to enable actual rail yard simulation for even more management, but unfortunately it was never further developed.
I do hope I can introduce it in my own OpenTTD fork later.

Comment It's my first serious coding project (fork) (Score 5, Interesting) 17

Not satisfied with the day lengthening patch (integrated in the JGR fork), I downloaded the source code a couple of years ago and took up programming in C (++) to make my own patch to slow down the game enough to my own liking.

It was the first time I found an incentive for the bit of knowledge I had about programming I've had for a long time, and it felt good to actually see what I could accomplish with lines of code.

I refactored enough to be able to run the game down to real time speed and enjoyed building virtual model train tracks. It was not about the game elements in it.

After a hiatus of a year or so, I've picked it up again for a build from scratch for a different time approach to handling time, but not from code from the 13.x or upcoming 14.x release.
When I read about the developers finally picking up the speed issue, I took a look at the code and cringed. I had not expected such a convulated approach to handle time in the game.
Then again, more class and template code appeared in other parts, making it more obfuscated what it did. No KISS and clean code approach here.

I begun again from the 12.2 code a few weeks ago with the new way of handling time (and can slow down to even less than real time), and "de-classified" code on the way (with profiling help from Valgrind) to save 10-15% CPU time compared to the original 12.2 code base.
Comparing with the 12.2 title game running, the original uses around 55% CPU in my Dual Core laptop, while 13.x went from ~200MB RAM to ~450MB, and the 14-RC1 used 160% CPU and ~900MB (compiled with the same settings).
My fork hangs around 40% CPU with ~200MB RAM in use now.

The flow of handling vehicle and order processes is also rather messy coming from the original TTD code and also something to rebuild, but I'll have to pick that up one vehicle type at a time later. Doing it for all types at the same time before had me hitting a code wall.

Anyway, OpenTTD is fun, but it's not a good example of code that's easy to read, understand, and maintain, even with all the documentation in it. I'm looking forward to seeing the result without classes, templates, and operator overloading.

Comment Re:Quite right (Score 3, Interesting) 104

I'm working on my own overhaul of OpenTTD, and any time I begin working on it, it seems I can't stop because I'm curious and want to see new/refactored features work as soon as possible. Thus long days and nights are the norm.

That being said, I wouldn't be able to do that at some office. Being in another place makes the work feel mandatory and drains the fun because I can't take a break whenever and do something else around the house. Especially while witing for yet another recompile of the whole thing and the long linking time it takes on my old dual core laptop.

Comment Learning a thing or two.. (Score 1) 117

..from the EU now, are we now?

The more people's lives are exposed to third parties (OS telemetry, website tracking, email tracking, cloud connected anything aplliences, private and personal transport, etcetera), the tighter privacy rules have to become.

Slashdot Top Deals

The rule on staying alive as a program manager is to give 'em a number or give 'em a date, but never give 'em both at once.

Working...