Posts Tagged ‘Operating Systems’

openBVE v1.2.8 and increased rendering speed, openBVE v1.2.9 development branch with cross-platform .NET plugin support, Cross-City South v2.0 update, and openBVE performance with budget versus high-end CPUs, and discrete versus on-board graphics

Posted by Anthony_B on October 14, 2010 at 00:20
Updated: 16th October 2010 @ 22:50 UTC

openBVE v1.2.8 released, with significant rendering speed improvements

openBVE Logo openBVE v1.2.8 was released recently, which includes a reorganised renderer which can provide significantly higher framerates than the old renderer found in v1.2.7.4. This is achieved by rendering opaque faces (i.e. faces without alpha), using OpenGL display lists. There are two ways to enjoy the performance increase; if you currently have low framerates, then the boost could make routes more enjoyable, however if you already have high framerates, then you can increase the viewing distance significantly so that you can see much further away from the train, whilst maintaining similar framerates to those you are already used to seeing. You can visit the Official openBVE Homepage for the download and to read the changelog, as well as read this thread on the openBVE forum for more information.

Here are some framerate and image quality comparisons which I conducted on my main development PC (Core 2 Quad Q9650 / GeForce GTX 260), showing some notable improvements:

On the left is openBVE v1.2.7.4, and on the right, the new v1.2.8:

Screenshot Screenshot
Screenshot Screenshot
Screenshot Screenshot
Screenshot Screenshot

openBVE’s default viewing distance is 600 metres, however, here are some screenshots showing what the upcoming Watford Junction to Rugby route looks like with an increased viewing distance of 2000m. This particularly benefits the straight sections of this route, allowing you to see more than one upcoming signal at the same time. Thanks to the new renderer, it’ s possible to significantly increase the viewing distance, while still having very playable framerates on a good computer with reasonably detailed exterior car objects:

Screenshot Screenshot Screenshot Screenshot Screenshot Screenshot

Most people are reporting better performance with the new renderer, however if you notice any previously unseen stuttering with the new renderer and detailed routes, I’d really appreciate it if you could contact me with some information about your computer’s specifications and the route being used, as it might be useful for me to know, when I draw up recommended system requirements and openBVE settings, particularly for the upcoming Watford Junction to Rugby project. Thanks.

openBVE v1.2.9 development branch released, enabling support for cross-platform .NET train plugins

openBVE Logo The latest version 1.2.9 development branch of openBVE, includes support for .NET assemblies (plugins), which enables cross-platform plugin compatibility, just as with openBVE itself. With previous versions of openBVE, and of course BVE Trainsim, only Win32 C++ plugins were supported, which limited their use to the Microsoft Windows platform, leaving Linux and Mac users to rely on openBVE’s built-in safety systems only, with a great deal of functionality found in plugin enabled trains unavailable. With .NET assemblies, these can be written in a variety of languages which target the .NET framework, such as C# or Visual Basic .NET, and users of non-Windows operating systems can also enjoy enhanced train functionality once new .NET plugins start to appear.

Anyone with at least some programming experience can visit the .NET assembly train plugin section on the official openBVE website, to download template projects to help you get started. If you’ve already developed a Win32 C++ plugin previously, you might prefer to look at the “C# project files (for updating from Win32 plugins)” download specifically. Anyone interested in making general comments can do so in this thread on the openBVE forum, while anyone wanting to help improve the design of the plugin API by making suggestions, can visit this thread instead.

I’ve started writing a replacement .NET plugin for the class 323, although I’ll design it such that it could be used with other trains too. I’ll release the new .NET assembly and publish the source code when there’s something worth showing, unless someone else writes a plugin which is sufficiently good enough, before me.

Edit (16th October): I forgot to mention that some .NET assemblies are already available; the plugins for the 1000, 2000 and 9000 series trains used by the Chashinai Railway have been ported to C# by odakyufan, and you can download them here (at the bottom of the page). These might be helpful if you’d like to see some example source code and structure, although bear in mind that openBVE .NET plugin support is still experimental at this stage, so you may need to check for both openBVE and plugin updates in future.

Of course, if you’re a more advanced non-Windows user and just want to enjoy driving trains, then you too can now experience some of the best in-cab system functionality available for openBVE. Here’s the openBVE v1.2.9.2 development release, with Chashinai Railway’s Misaki Line, and the 9000 series train with fully functional .NET plugin enabled safety systems, running in Ubuntu 10.04 32-bit Linux (itself running within a virtual machine under Windows 7 64-bit, in this case):

Chashinai Railway Misaki Line, and 9000 series train
with .NET plugin enabled safety systems, used
with openBVE v1.2.9.2 in Linux

Birmingham Cross-City South v2.0 update

Railsimroutes LogoIf you’ve been keeping an eye on the news infobox at the top left of the blog (or my Projects page), you’ll have noticed that I’ve been continuing work on the pointwork along the Cross-City South route, and I’ve also been working on updating the pointwork on the approach to Birmingham New Street as well. All pointwork between Alvechurch and Five Ways is now finished, and ready for animation to be applied prior to release. The pointwork on the approach to Birmingham New Street is a rather difficult task though. At this location, there are single and double slips, switched diamond crossings and three-way points, all crammed into a rather small space, and all located on quite a sharp curve. There are also a variety of point machines, including electric, hydraulic clamp-lock, and Westinghouse electro-pneumatic types, as well as cast manganese steel and conventional frogs. I like to model these kinds of details, so I’ve spent quite some time working on this area – I’m not finished yet, but will be shortly. Cross-City South was originally designed with a 25 metre block length in mind, however the pointwork doesn’t fit neatly, so much of the pointwork is contained in two large set-piece objects instead. I always felt that this task was going to be the hardest part of the Cross-City South v2.0 upgrade, as it’s rather tedious and difficult (and indeed I was right), however for me, the route wouldn’t be complete without it, as I want Cross-City South v2.0 to be of the same standard as Watford Junction to Rugby, so I’ll endure the pain.

Here’s a screenshot of one of the Birmingham New Street pointwork objects:


At first glance it doesn’t look like much, but on closer inspection, it’s actually rather detailed and intricate. This object features 4076 vertices, and loads 9 textures. Each rail is carefully texture mapped, to ensure that the Pandrol rail fasteners are as closely lined up with the underlying sleepers as possible, and that the inside of the railhead as depicted in the texture, matches the mapping on the object. Depending upon the location of a rail within the point assembly, different kinds of rail fasteners are depicted. If you examine the existing equivalent object in Cross-City South v1.31, you’ll notice that that old object is afflicted with z-fighting issues; I’ve taken special care to ensure that this doesn’t happen with the new version. In the case of the cast manganese steel frogs, these feature a combination of 3D geometry and use of a photographic texture of the prototype, to create the desired 3D effect:

Screenshot Screenshot Screenshot

Each fishplate is also modelled in 3D, and these are also responsible for much of the vertex count, incidentally – this also means that they can be easily removed to create a lower detail object, however. Each point blade has a texture depicting baseplates beneath it, and where the tie bar assemblies will go, oil-stained ballast is featured. The object has also been designed in such a way, that animating any of the point blades is very easy to do in future. I’ll post a screenshot of the object within the route, once I’ve finished the second of these pointwork objects, improved the appearance of New Street station a bit, and finished some other things.

Prior to starting on the New Street pointwork updates, I also spent some time working on the Kings Norton area. In the existing Cross-City South v1.31, I didn’t lay any track in the sidings to the west of the station, and instead, I included a simple texture depicting a pair of tracks on a flat surface to the right of the loop siding. Cross-City South v1.31 was designed for BVE Trainsim 2 and 4 with their cab-only view and lower resolution, of course, so there wasn’t much point in modelling the extra tracks. With openBVE, it’s well worth adding them, however:


Here are some screenshots of the updated pointwork and track geometry at Kings Norton (I’ll replace these points with the more recently installed concrete sleeper versions soon):

Screenshot Screenshot Screenshot

You might have noticed that scenery has been improved a little in those previous three screenshots; I’m currrently adding the embankment/tree alpha shadow technique I developed for Watford Junction to Rugby, throughout the Cross-City South route as well. Here are a few more screenshots showing the latest scenery enhancements I’ve been working on, as well as little things like extended length sleepers beneath electric point machines, and disused trackbeds:

Screenshot Screenshot Screenshot Screenshot

Budget versus high-end CPUs, discrete graphics cards versus on-board graphics, and openBVE/Watford Junction to Rugby performance

Information IconSometimes I see people talking about poor framerates or image quality in 3D games which they use, such as openBVE, or others. Upon finding out about the system specifications in use, the cause of the low performance, in the case of Windows 7 and Vista, is often due to inferior graphics drivers being used (i.e. those bundled with Windows by default or obtained via Windows Update, rather than from the graphics card manufacturer). However, the other frequent cause of unsatisfactory performance, is a slow graphics card, and sometimes, a slow CPU.

Personally, I’ve used less-than-stellar graphics cards in my desktop PCs for use with openBVE, but being a geek, I’ve never used on-board graphics solutions (integrated on the motherboard) in a desktop PC before, as I’ve always dismissed them as not being up to much. It occurred to me that perhaps I was being too hasty in writing integrated graphics off, as I’ve never actually tried to play games on such a solution in a desktop PC myself. The same goes for budget CPUs, such as those in Intel’s Celeron or AMD’s Sempron lines – I’ve never been interested in them as I’ve always viewed them as merely cut-down versions of “real” fully-featured CPUs, such as those in Intel’s Pentium and Core product lines, or AMD’s Athlon and Phenom lines.

So, I thought I’d test openBVE on a contemporary budget PC to find out what it was capable of, with the cheapest of Intel’s newer CPUs that I could find – a socket LGA 775 based Celeron E3300 with the Wolfdale-3M core (the same core used in Core 2 E7xxx and Pentium Dual Core E5/6xxx processors), which runs at 2.5 GHz with 1MB of Level 2 cache. This CPU is combined with the cheapest of all graphics solutions – on-board graphics integrated onto the motherboard – in the form of Intel’s “Graphics Media Accelerator” X4500, which is a part of the G41 Express “Eaglelake” chipset. I was also curious to find something out – if a choice has to be made between a better CPU or a better graphics card, which is the best to go for where openBVE is concerned?

I ran the hardware in a few configurations, and tested openBVE’s performance with my upcoming Watford Junction to Rugby route. Here are the results, and in all cases, the best image quality that each graphics solution is capable of was selected, and in all except the last test (number 4), the following constants apply:

CPU: Intel Celeron E3300 @ 2.5 GHz
RAM: 2 GB PC-6400 DDR2 SDRAM (dual-channel configuration)
Operating System: Windows XP Home Edition (32-bit)
openBVE version: 1.2.8 (Sharp transparency, 1920×1200 fullscreen, 600m viewing distance)

Two locations were used for measuring framerates: Watford Junction, and Bourne End Junction.

Test setup 1:

Graphics: Intel GMA X4500 (G41 Express Chipset, 128MB shared video memory) [Antialisasing: n/a, Anisotropic Filtering: 2x]

Framerates (fps)
Watford Junction 12
Bourne End Junction 9

Test setup 2:

Graphics: AMD/ATI Radeon HD 2600 Pro (256MB DDR2) [Antialisasing: 8x, Anisotropic Filtering: 16x]

Framerates (fps)
Watford Junction 34
Bourne End Junction 24

Test setup 3:

Graphics: NVIDIA GeForce GTX 260 (896 MB GDDR3) [Antialisasing: 16xQ, Anisotropic Filtering: 16x]

Framerates (fps)
Watford Junction 118
Bourne End Junction 101

Test setup 4:

Lastly for comparison purposes, here’s what we get when the GeForce GTX 260 is paired with a faster and more powerful quad-core CPU:

CPU: Intel Core 2 Quad Q9650 @ 3 GHz
Graphics: NVIDIA GeForce GTX 260 (896 MB GDDR3) [Antialisasing: 16xQ, Anisotropic Filtering: 16x]
RAM: 4 GB PC-6400 DDR2 SDRAM (dual-channel configuration)

Framerates (fps)
Watford Junction 179
Bourne End Junction 160

From these results, we can see that the budget Celeron E3300 is actually a rather nice CPU (which isn’t too surprising I suppose, given the architecture in use), and more than good enough for highly detailed routes such as Watford Junction to Rugby when paired with a decent graphics card. By comparing the two GeForce GTX 260 results, we can see that the speed of the CPU matters, however performance is also very clearly determined by the graphics hardware, and I would say that it’s the more important factor when it comes to openBVE performance. While I didn’t test the Core 2 Quad CPU with Intel’s GMA X4500 integrated graphics, I think it’s highly unlikely that framerates would have been much higher with this combination (overclocking the Celeron E3300 from 2.5GHz to 2.92GHz, made a difference of only around 1 fps when the integrated GMA X4500 was used). Intel’s on-board graphics is simply too slow, and the image quality is a bit poorer too, as there is no antialiasing, and the anistropic filtering level is rather limited (compare this screenshot using Intel’s GMA X4500, and a screenshot using the GeForce GTX 260). Intel’s driver control panel claims to support 16x anisotropic filtering, although openBVE/OpenGL reports that 2x is the maximum supported. The framerates don’t tell the entire story either though, as the much faster GeForce GTX 260 graphics card also gives more fluid and stutter-free performance than the budget Radeon HD 2600 Pro does. This is especially true when large textures, animated objects and higher levels of antialiasing and anisotropic filtering are used, as well.

So, if anyone is thinking of upgrading their computer soon and would like to run something like Watford Junction to Rugby, and money is tight, then my advice would be to bias your budget in favour of getting the best graphics card possible, while trying to keep some balance between the CPU and GPU in terms of what each is capable of. For the energy conscious amongst you, also bear in mind that newer generation graphics hardware tends to be more power efficient for a given level of performance. While quad core CPUs are nice to have, dual core CPUs are just fine, too. Indeed, running openBVE on only two of the four cores of the C2Q Q9650 CPU, by setting the affinity for the OpenBve.exe process accordingly, makes only a small difference to performance. Running openBVE on only a single core, even at 3 GHz, does result in performance being halved though, therefore I can’t recommend a single core CPU any more, when dual core CPUs are so common now. Of course, if you can live without the rich graphics or geometrical complexity of the latest openBVE routes, and only want to run less demanding examples, or those previously designed for BVE Trainsim, then even the cheapest contemporary hardware including on-board graphics, may suit your needs just fine where openBVE is concerned, if you don’t mind losing a little image quality and have realistic expectations.
For example: [ Uchibo – Intel GMA X4500 | X-City South v1.31 – Intel GMA X4500 | Saijou Line – Intel GMA X4500 ]

Transition curves and superelevated track created using the Object Bender tool, and Cross-City South v2.0 progress update

Posted by Anthony_B on September 5, 2010 at 07:30

Railsimroutes LogoI’ve been doing some more work on Cross-City South v2.0 during the past couple of weeks or so, and I’ve been making good use of odakyufan’s new Object Bender tool, where incidentally, the code was so well written and the functionality comprehensive enough, that Object Bender has been made into an official openBVE tool. Please see the new Object Bender section on the official openBVE homepage for more information: Developing for openBVE: Object Bender.

The output from the tool is such, that I’ve decided to replace all the curved track objects used in the Cross-City South route with new objects generated by Object Bender (from a set of “template” objects which form the intial segment in each type of track – please see here for an example of what I mean), and later I’ll do the same with Watford Junction to Rugby, too. I had already manually created a full range of suitable UK style track objects incorporating cant, as well as objects to be used in transition curves, however these objects had one rail lowered and the other raised in height, to suit the cant model used in older versions of openBVE (therefore enabling the wheels to be visibly touching the rails at all times in earlier versions). openBVE v1.2.7.3 features an improved superelevation model however, where one rail is raised above the other (which remains at the same level), so the existing objects were no longer so suitable.

I had started to make some progress in manually modifying my existing objects, however Object Bender has now saved me many days of work, possibly weeks, thereby preserving my sanity and enabling me to easily generate a much more comprehensive range of superelevated track and transition curve objects to create some very nice results, even better than what I’ve shown in Watford Junction to Rugby for a long time now. The slight downside is that the generated objects have a larger filesize compared to the objects I’d entirely hand-written, however Object Bender’s command line arguments also let me automate and recreate many hundreds of track objects, from a handful of source objects, with great ease via shell scripts. This benefit is simply too good to pass up – if I decide that I want to improve or alter my depiction of track in future, all I have to do is edit the handful of template objects and I can recreate the entire library of track objects with just a double-click. An example batch file for Windows users, based on the one which I’ve written for myself, can be found below, along with a sample shell script for Linux users too.

Here’s a selection of screenshots to demonstrate what nice results can be gained quickly, thanks to Object Bender and a little object building skill:

Screenshot Screenshot Screenshot Screenshot Screenshot
Birmingham Cross-City South v2.0 with superelevated track and transition curves, created via
odakyufan’s Object Bender tool. Also note the embankment (dike) with curved cable trough
in the last screenshot, with the vegetation handled via Object Bender’s /a command-line
argument (please see the Object Bender documention for a tutorial).

One problem I have encountered during the latest Cross-City South superlevated track upgrade so far, is how to accomodate pointwork (switches) on superelevated curves. There are examples of this at Longbridge, between Northfield and Kings Norton, and just after Kings Norton, too. On Watford Junction to Rugby, I took the easy option and handled such situations by transitioning back to uncanted track on either side of points (only with the visual representation of the track – the cant applied via the .Curve command remained constant throughout the points). With Cross-City South v2.0, I’ve decided to gradually alter the height of the other tracks leading towards and away from crossovers connecting superelevated tracks instead, while also rotating the point objects around the Z-axis. This way, the crossover itself is superelevated to the same degree as the tracks being crossed between, which looks better visually, and I presume it’s also more prototypically accurate. Here’s an example between Northfield and Kings Norton, with some new custom pointwork objects I’ve been working on for this location (amongst others):

Screenshot Screenshot Screenshot
Birmingham Cross-City South v2.0 with superelevated track and custom-built crossovers.
Note the clamp-lock point machines, too.
Note: For those of you familiar with the real Cross-City South, please be aware that these screenshots depict the line prior to the recent track renewals on the real-life route. I’ll work on the renewed track (plus such changes as the upgraded 70mph / 112km/h sections beteween Redditch and Northfield), once I’ve sorted out a few more remaining tasks along the route, such as realigning overhead wire objects due to altered curve radii, improving the stations, and finishing the remaining scenery objects which need to be updated with new textures, 3D trees and vegetation.

Object Bender has most definitely made route building easier and more enjoyable for me, however one problem which needed to be solved, was that when a track object is superelevated, the terminating height of the ballast shoulders on either side of the sleepers is also altered. In a route, and depending upon the design of the track objects, this can lead to gaps appearing between tracks running side-by-side, and between the ballast portion of the track objects and dikes (i.e. the embankment beneath the track):

Depending on the design of track objects, gaps can appear
between the ballast shoulder and dike, or a parallel track,
when superelevation is applied via Object Bender.

I’ve solved this problem, by expanding the ballast shoulder in the track object to include two faces at increasing angles, such that at the maximum level of visible cant I’ll ever apply in my routes (160mm in my case), no gaps appear and the cable trough isn’t obscured, while I can continue to use only one template object for creating the full range of curved track pieces, at differing degrees of superelevation, via Object Bender. The ballast portions of the dike objects are also extended. This solution does lead to more faces being rendered, but hopefully it’s not too much of an issue, performance wise. Here’s a screenshot:

Extended ballast shoulders in both the track and dike objects,
to remove visible gaps when cant is applied via Object Bender.

Screenshot Screenshot
Screenshot Screenshot
On the left, are the original objects, and on the right, the new versions. Note the custom vertex normals
applied to the ballast shoulders in the last screenshot, to help remove the angled appearance
which might otherwise be visible with certain lighting parameters.

Object Bender supports some markup which can be applied to template objects before they’re processed, for example, to determine the desired texture coordinate shifting in generated segments (please see the Object Bender documention on the openBVE homepage for more information – I think the tutorial is clear enough that I don’t need to explain it further). I was originally going to suggest expanding the supported markup a little, so that Object Bender could be instructed to leave the X and/or Y coordinates of any vertex as it is in the original template object, which would for example, solve the ballast shoulder issue above in an easier way for the object creator. However, I quite like the appearance of the solution I came up with, so I don’t think such a change to Object Bender is too important, but might be nice to have, nevertheless.

Lastly, for more advanced users, or beginners feeling more adventurous, here’s a sample batch file for Windows users, and a bash script for Linux users, which you can adapt and expand if you want to automatically create a range of curved objects using Object Bender’s command line interface, rather than the GUI. There is a simple example of a suitable batch file included in the Object Bender documention, however rather more can be done with batch files/shell scripts. These following example scripts use variables to reduce the amount of duplicated text that you might otherwise need to type, and they also create a logfile which you can read, which is handy if you’re generating a large number of objects, to more easily check for any errors which might have occured during a lengthy object bending batch process.

For the Windows batch file, you need to give it a .bat extension. The text highlighted in red (including the less/greater than characters), should be replaced by any paths or filenames which are appropriate for your purposes. Where <Your_File_To_Append> is concerned, this object file could contain fishplates for example, or overhead wires, which are appended to the object generated in the previous line (please see here for more information). You can see fishplates added to my curved wooden sleeper based track objects in the above Cross-City South v2.0 screenshots – this is how they were appended to the files generated via Object Bender.

Sample batch file using Object Bender to automate curved object creation (Windows users):

@echo off

rem Set variables (paths and extension for all files)
set objectbender_path=<Path_To_Folder_Containing_ObjectBender>\
set exe=ObjectBender.exe
set obj_source=<Path_To_Your_Source_Object_Folder>\
set obj_final=<Path_To_Your_Route_Object_Folder>\

rem Clear the screen and ask user for confirmation
echo Proceed with object creation? This will overwrite any existing files.
echo Press Ctrl+C to cancel, or any other key to proceed . . .
pause > nul

echo Processing files and creating log. Please wait . . .

rem Create a new log file with time stamp
echo ___________________________________ > %objectbender_path%objectbender_log.txt
echo New log [%date% at %time%] >> %objectbender_path%objectbender_log.txt
echo. >> %objectbender_path%objectbender_log.txt

rem Use Object Bender to create finished objects from templates

rem 500m right curve
%objectbender_path%%exe% %obj_source%<Your_Source_File> %obj_final%<Your_500m_Right_Track_Object> /n=5 /s=5 /b=25 /r=500 /g=1435 /u=80 /v=80 >> %objectbender_path%objectbender_log.txt
%objectbender_path%%exe% %obj_source%<Your_File_To_Append> %obj_final%<Your_500m_Right_Track_Object> /a /n=1 /s=25 /b=25 /r=500 /g=1435 /u=80 /v=80 >> %objectbender_path%objectbender_log.txt

rem 600m right curve
%objectbender_path%%exe% %obj_source%<Your_Source_File> %obj_final%<Your_600m_Right_Track_Object> /n=5 /s=5 /b=25 /r=600 /g=1435 /u=80 /v=80 >> %objectbender_path%objectbender_log.txt
%objectbender_path%%exe% %obj_source%<Your_File_To_Append> %obj_final%<Your_600m_Right_Track_Object> /a /n=1 /s=25 /b=25 /r=600 /g=1435 /u=80 /v=80 >> %objectbender_path%objectbender_log.txt

rem 700m right curve, etc. . .

Linux users can adapt the following shell script to make use of Object Bender for automating the creation of multiple files. Your script should be given a .sh file extension, and be made executable (for example: chmod +x The script can be executed from the Terminal prompt by typing, for example: ./ Don’t forget that Object Bender requires Mono to be installed, too.

Important note: Object Bender determines whether a command line argument is a pathname, or another command line argument, based upon whether or not the argument string begins with a ‘/’ character. In Unix based operating systems, this character is the directory separator character, so if you supply a path which begins with ‘/’ (such as /home/username/etc), it will be interpreted as a command line argument which is other than a pathname, and the tool won’t work as expected. You can get around this by supplying relative pathnames (i.e. ../yourfolder/etc), or by using the following modified version of the tool, in which I’ve altered the program to intepret the ‘-‘ character as a non-path command line argument instead (the recompiled executable is temporarily available here, with source code modifications here as well (also requires the official Object Bender source code from the openBVE homepage). The following script assumes the modified executable is being used:
Sample shell script using Object Bender to automate curved object creation (Linux users):


# Set variables (paths and extension for all files)

# Clear the screen and ask user for confirmation
echo "Proceed with object creation? This will overwrite any existing files."
read -s -n 1 -p "Press Ctrl+C to cancel, or any other key to continue . . ."
echo "Processing files and creating log. Please wait . . ."

# Create a new log file with time stamp
echo _____________________________________ > $objectbender_path/objectbender_log
echo New log [$(date)] >> $objectbender_path/objectbender_log
echo >> $objectbender_path/objectbender_log

# Use Object Bender to create finished objects from templates

# 500m right curve
mono $objectbender_path/$exe $obj_source/<Your_Source_File> $obj_final/<Your_500m_Right_Track_Object> -n=5 -s=5 -b=25 -r=500 -g=1435 -u=80 -v=80 >> $objectbender_path/objectbender_log
mono $objectbender_path/$exe $obj_source/<Your_File_To_Append> $obj_final/<Your_500m_Right_Track_Object> -a -n=1 -s=25 -b=25 -r=500 -g=1435 -u=80 -v=80 >> $objectbender_path/objectbender_log

# 600m right curve
mono $objectbender_path/$exe $obj_source/<Your_Source_File> $obj_final/<Your_600m_Right_Track_Object> -n=5 -s=5 -b=25 -r=600 -g=1435 -u=80 -v=80 >> $objectbender_path/objectbender_log
mono $objectbender_path/$exe $obj_source/<Your_File_To_Append> $obj_final/<Your_600m_Right_Track_Object> -a -n=1 -s=25 -b=25 -r=600 -g=1435 -u=80 -v=80 >> $objectbender_path/objectbender_log

# 700m right curve, etc. . .

exit 0

If you need any help with using Object Bender or writing scripts to automate curved object creation, please feel free to ask. 🙂

openBVE v1.2.5, Watford Jn. to Rugby progress, class 390 Pendolino, other developer’s add-ons, Cross-City South bugfix, and one million visits

Posted by Anthony_B on January 31, 2010 at 17:50

openBVE v1.2.5.0 released

openBVE LogoopenBVE v1.2.5.0 was released a few days ago, and various changes have been made to openBVE since my last blog entry. In this release, the main form (i.e. the window for route selection, setting options, etc.) is smaller so that it can be used on smaller screen sizes (e.g. 800×600) or with larger fonts, and if the window is resized, the new size is saved between sessions. The player’s train now derails when passing the end of the track, as well.

Michelle has also written an impressive RIFF/RIFX/WAV PCM/ADPCM parser, which she’s ported from openBVE’s successor to openBVE 1. This removes the need for two dependencies, namely ALUT and SDL, and her parser supports a wider range of sampling rates. Other improvements recently, include a shortening of loading times for routes using detailed animated objects (which eventual users of the projects being developed here will appreciate). Also, there’s the addition of the $Include preprocessing directive which allows text in other files to be parsed in place of the directive in a route file (with random selection of multiple included files), and point-based turns (via the .Turn command) are smoothened out, which gives much more pleasing results. Please see » this thread « for more discussion about these latter features.

Head over to the » openBVE homepage « to try the latest v1.2.5.0 release, and you can read the changelog for further details. Remember that the » developer tools « have also been updated as well.

Horizontal Rule

Watford Junction to Rugby progress update

Railsimroutes LogoIt’s been quite a while since I posted any updates regarding my routes, so I thought you might like to know what’s happening with the Watford Junction to Rugby project this time. I’m relatively happy with the state of the permanent way and between-station railway related lineside objects, so I’m now implementing some more scenery enhancements, including improved under-bridge shadow effects, moving road vehicles, and lineside buildings. I’ve also, at last, started working on the stations and so far I’ve created new photo-realistic lamposts, photo-realistic 3D platforms, and various signs.

Previously, the underbridge shadows I’d implemented were simple untextured meshes with alpha applied via the SetColor command. In addition, I’ve now applied a small 8×8 pixel texture where the outer 28 pixels act as the transparent color, and the inner pixels are nearly black. When this texture is applied to the existing shadow meshes and the color adjusted accordingly, smoothly transitioned shadows can be achieved. I’ve also added deeper shadows to the sleeper textures to improve the appearance of the track, and added more blue colouration along with reducing the lightness of the railhead, to make the rails look a little more metallic. I’m also implementing shadows cast by platforms and embankments as well. The way in which I’ve implemented the latter can give the appearance of dappled sunlight caused by trees, and increases the effect of warmth created by sunlight and the realism of locations within cuttings, although this feature will be optional in the final release as there’s a possibility that it may incur a performance penalty on slow graphics cards. Lastly, I’ve added some new photographic backdrops which I’m experimenting with at the moment. Take a look at the following screenshots to see how the route is coming along (please note that there may be some inaccuracies, as the route shows trackwork or infrastructure as it was in different eras simultaneously at the moment):

openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge openBVE v1.2.5 and Watford Junction to Rugby--click to enlarge
openBVE v1.2.5, and Watford Junction to Rugby with new lineside buildings, station details, road vehicles, scenic shadows, and backdrops.
All screenshots taken at 1920×1200 resolution, with openBVE’s smooth transparency enabled, and 16xQ anti-aliasing/16x anisotropic filtering (Core 2 Quad Q9650 at default 3GHz, and GeForce GTX 260 55nm)
Horizontal Rule

Class 390 Pendolino

Railsimroutes LogoSome of you may remember that the class 390 Pendolino was given an » openBVE exterior car update « some time ago, thanks to Cramaboule. I’m pleased to announce that I’m now working with Cramaboule to produce some detailed exterior models of a similar quality to the class 323 I’ve demonstrated previously, along with a full 3D cab, so there will be some more nice looking rolling stock to run on Watford Junction to Rugby. I’ll post some screenshots as the models are developed, but for now here are some photos of what we can look forward to:

Class 390 Pendolino photograph (Milton Keynes, June 2005)--click to enlarge Class 390 Pendolino photograph (Milton Keynes, June 2005)--click to enlarge Class 390 Pendolino photograph (Cheddington, June 2005)--click to enlarge Class 390 Pendolino photograph (Old Linslade, October 2004)--click to enlarge
Class 390 Pendolino photos (1400×1050)
Horizontal Rule

Other more recent openBVE add-on releases

Information IconSince my last blog entry, some high quality openBVE add-ons have been released. Just in case anyone missed these releases, here are some screenshots and links to some excellent new add-ons with rather beautiful graphics:

Note: All screenshots taken at 1920×1200 resolution, with openBVE’s smooth transparency enabled, and 16xQ anti-aliasing/16x anisotropic filtering (Core 2 Quad Q9650 at default 3GHz, and GeForce GTX 260 55nm)
openBVE v1.2.5, FEVF Railway and EM A1 3D cab--click to enlarge openBVE v1.2.5, FEVF Railway and EM A1 3D cab--click to enlarge openBVE v1.2.5, FEVF Railway and EM A1 train--click to enlarge
FEVF Railway and EM A1 3D cab.
Homepage: » FEVF Railway «
Horizontal Rule
openBVE v1.2.5, mtrain HD v2.0 and Hong Kong Island Line--click to enlarge openBVE v1.2.5, mtrain HD v2.0 and Hong Kong Island Line--click to enlarge openBVE v1.2.5, mtrain HD v2.0 and Hong Kong Island Line--click to enlarge
mtrain HD v2.0 and Hong Kong Island Line.
Homepage: » winsome’s Studio « | » Hong Kong Island Line «
Horizontal Rule
openBVE v1.2.5, First Brno Track and CD163 plus coaches--click to enlarge openBVE v1.2.5, First Brno Track and CD163 plus coaches--click to enlarge openBVE v1.2.5, First Brno Track and CD163 plus coaches--click to enlarge
First Brno Track and CD163 plus coaches.
Homepage: » Brno BVE Website «
Horizontal Rule
openBVE v1.2.5, Guaianazes-Estudantes route and CAF 440 train--click to enlarge openBVE v1.2.5, Guaianazes-Estudantes route and CAF 440 train--click to enlarge openBVE v1.2.5, Guaianazes-Estudantes route and CAF 440 train--click to enlarge
Guaianazes-Estudantes route and CAF 440 train
Homepage: » BVE Brazil Fans «
Horizontal Rule

Upcoming openBVE projects to keep an eye on…

Information IconThere are a couple of new projects in the works which I’m personally very much looking forward to seeing, namely » Odakyufan’s « representation of the Odakyu Odawara Line running from Tokyo’s Shinjuku station, and the new Iida line currently being developed. The latter will of course be known to BVE users as one of Gaku’s classics (see my links page), but the new Iida line, train and exterior car objects being developed at » « look beautiful and very realistic so far.

Some superb early screenshots of » Odakyufan’s « representation of the Odakyu Odawara line were also published a little while ago. The Odawara line starts from Tokyo’s busy Shinjuku station, and the line is well known for it’s Romancecar limited express services for tourists visiting Odawara and the surrounding resorts, but it’s also a busy commuter route and the Odakyu Electric Railway uses it’s own OM-ATS safety system, which will be simulated in a semi-realistic way due to the absence of detailed technical information. Odakyufan has a goal of modelling at least the first five stations, and this will be interesting to see, as this section of the line is surrounded by densely packed buildings. The screenshots showing the exit from Shinjuku station, Japanese 1500V DC catenary and Tokyo’s buildings all look very promising indeed, and easily recognisable, even at an early stage of development.

Odakyu Odawara line -- click to visit homepage Odakyu Odawara line -- click to visit homepage Odakyu Odawara line -- click to visit homepage
Homepage: » The Web Presence of Odakyufan «
Horizontal Rule -- click to visit homepage -- click to visit homepage -- click to visit homepage
Homepage: » «
Horizontal Rule

Cross-City South bugfix

Railsimroutes LogoI’ve uploaded an update for Cross-City South v1.31, which fixes the following issues:
  • Incorrect pathname in route files using the class 323 passenger views.
  • The ground repeater signal prior to Birmingham New Street station is now accurately modelled, such that the red aspect is nearest to the driver (i.e. the signal is as though it were upside down now, as in reality). Many thanks to Paul Sladen for pointing this out.
  • In the night routes, “P” has been added as the ArrivalTime argument of the Five Ways .Sta commands (to indicate that trains are not meant to stop). Thanks again to Paul for bringing this omission to my attention.
  • Also in the night routes, the repetition count for Background(0) has been added, which was missing previously, leading to a horizontally compressed background image.

Existing Cross-City South v1.31.03 users can simply download a small update to v1.31.05 here: xcs_1_31_05_update.7z [180 KiB]. If you’re using a version earlier than v1.31.03, you might be better off downloading the full route pack again, which also now includes the aforementioned update. The previously separate class 37 and 158 route files are now included in the main download as well. Please also note that BVE 4 doesn’t work on my current Windows 7 64-bit/NVIDIA GeForce GTX 260 setup, so this update has only been tested in openBVE, as it’s inconvenient having to dual boot or use another computer every time I want to check some minor thing in the old BVE 4. There aren’t any changes which should affect BVE 4 users, but if any issues arise, please let me know with as much detail about the problem as possible, and I’ll investigate.

Horizontal Rule


Railsimroutes LogoI noticed that the site has had it’s one millionth visit today (as opposed to page view), insofar as it’s possible to measure such things — the actual number of users of my routes will likely number in the low thousands, of course. Thank you to everyone who has taken an interest in my work during the eight or so years since this site was launched!

Jaunty Jackalope and openBVE

Posted by Anthony_B on April 25, 2009 at 08:42

Ubuntu 9.04 “Jaunty Jackalope” (which is a Linux distribution for any dear readers who may not be particularly au fait with the wonderful world of operating systems…), has just been released. With this version, it’s possible to install a seperately packaged, unofficial version of openBVE maintained by Paul Sladen (currently at v1.0.2.0; the » official openBVE « release is at v1.0.3.0 at the time of writing) via the ‘Applications’ > ‘Add/Remove…’ menu item (I haven’t used Kubuntu in a while and I’ve forgotten what the equivalent in KDE is). A specially prepared, public domain version of the Cross-City South route (v1.31.03) is also installed automatically when openBVE is installed via this method, along with a reduced functionality (plugin DLLs don’t work on non-Windows operating systems), public domain version of the class 323 which Steve over at » trainsimcentral « also kindly donated.

X-City South v1.31.03 is just a cut-down version of the public release available from this site, with the copyright files removed and alternative backdrops added, and fewer route files; I prepared it so that openBVE could be considered for inclusion in Ubuntu’s list of installable open source applications, as for a game engine to be accepted, it requires some equally permissively licenced game data to be supplied with it. Eventually the Ubuntu X-City South package should be identical to the official X-City South v1.4 package once it’s been released, and I hope to send any updates to Paul so the Ubuntu version is kept up-to-date; by implication, X-City South v1.4 will be entirely copyright free as well. Any copyright material, like the Birmingham New Street announcement audio files, will be available as an optional extra only.

After installing the latest ATi Catalyst drivers (and, at last, my Radeon HD 2600 Pro graphics card finally works with Ubuntu), it was nice to see openBVE running in Linux myself, and with decent framerates too. The framerate in the first screenshot of XCS v1.31 was 80 fps (90 fps in Win XP), and in the third screenshot, showing XCS v1.4, 17 fps (20 fps in Win XP). The latter screenshot actually includes more animated trees than will feature in the final XCS v1.4 release though, and in-cab, I was seeing up to 30 fps):

openBVE v1.0.2.0 running in Ubuntu 9.04--click to enlarge openBVE v1.0.2.0 running in Ubuntu 9.04--click to enlarge openBVE v1.0.2.0 running in Ubuntu 9.04--click to enlarge

I admit there was also some momentary fascination after I turned on Ubuntu’s “Extra” visual effects option which enables hardware accelerated graphical effects to be applied to windows, and watched my X-City South v1.4 development route carry on running at 25-30 fps while I distorted and bounced the poor helpless openBVE window around the desktop (sorry I wasn’t able to capture a screenshot, just a low quality video still):

openBVE v1.0.2.0 running in Ubuntu 9.04

I may be finding that framerates are just a bit lower than in Windows XP, but they’re still good and I enjoy using openBVE in Ubuntu instead. The application’s forms all rendered nicely although the loading and error dialogs remained visible once the SDL window was created; I’ll carry on testing it and see if I notice any other issues.

Any Windows users who might be considering trying openBVE on Ubuntu, should remember that plugin DLLs don’t work natively on non-windows operating systems, so various functions in BVE 4 trains like TPWS won’t work. For this functionality to be available in Linux, you’ll need to use openBVE with Wine instead, which isn’t quite as easy to set up (I haven’t personally had time to try it yet, but as shown in this » YouTube video of the Northern Line « for example, if you do go to the trouble, it’s well worth it).

Information Icon Edit (1st May ’09): I have tried and succeeded in getting openBVE v1.4.0.1 running with Wine and Mono 2.4 for Windows in Ubuntu since this entry was published, and it was quite easy after all. See the comments for more. 🙂