EngineSoundEditor for rFactor

In rFactor, you have to set the engine sound samples to match correct rpm's manually, by editing a text file. I created a little tool that would help to tune the values in real time, so you don't have to reload the game over and over again after each small change. Works with rF1 and rF2 style SFX files.

It is currently in still in beta stage, many features are missing and bugs need to be sorted out. Basically, what you can do right now, is specify the sound base dir (for example <rFactor folder>/GameData/Sounds) and then open an SFX file of a car. You will be displayed a tachometer and a list of sound samples. You can rev the engine (either automatically or manually) and change the min/max/natural values of the samples. You can also save the result.

UPDATE 18-11-2012: Version 0.3 (and source code!) - Added missing 'save' functionality.
Download binaries: EngineSoundEditor-bin-v0.3
Download source: EngineSoundEditor-src


WIP: Chevrolet Corvette C6 (version 2) – Update #3

After a long pause, here comes another update of the Corvette remake. The car is mostly done, some minor details and LODs are still missing here and there. I've got the model in game (rFactor) already and it's looking good. The poly count of the highest LOD with low-poly interior is around 35000, the high poly interior is about 25000 with the steering wheel. I've already got the second LOD level done and the poly count for that makes about 70% of the highest LOD level. If I get time, I will make another lower LOD level.

Here are some renderings of the four models - the Coupe, Grand Sport, Z06 and ZR-1. Although, I've been modeling in 3ds Max for about 5+ years, I've never really picked up rendering until now. So, this was my first time rendering something in 3ds Max with Mental Ray. While I primarily work in Windows XP (32-bit), I had to switch to Windows 7 (64-bit) since Max (or Mental Ray) was throwing me with out-of-memory errors all the time. Perhaps I messed something up while setting up the rendering parameters, I don't know.

Here are the renders:

Another unfinished project released…

Usually, I have quite a few projects going on both programming and modeling related. Sometimes, for various reasons, I decide to scrap a project even if I've already poured quite a few days worth of work into it, other times I decide to release an unfinished project to the community so that perhaps somebody else can finish it off.

I once released an unfinished Racer track project called "Factory Test Track", that received a warm welcome among the community. So, now I have done it again! I've released an even more unfinished Racer track project called "Mount Autobahn". I just decided that I don't have time to complete the project, ever, but since the ideas and design of the track were nice in my opinion, I would have hated to see it go down the Recycle Bin.

Mount Autobahn is/was my attempt at creating a challenging stretch of public roads that would feature an autobahn, twisty mountain roads, some city junctions, a railway overpass and much more. I designed it to be a point-to-point track with roundabouts at both ends, so that you could have traffic (Racer doesn't support traffic, but you can have many AI racers drive slowly) that would travel both ways.

Go to the track release thread at Racer forums at racedepartment.com for download links and more info. The download includes both the Racer-ready track and 3DS Max source files and textures.

Here's a few screenshots of the track in Racer:

Overview of my past programming projects

This post is an overview of my past programming projects that I have completed. I consider myself an advanced Java and C/C++ programmer (I do know web programming and design as well) and I like to program graphical applications and games, since they give immediate visual feedback of the programming progress and they are just fun to make.

Java 3D: Rubik's Cube

Since I like 3D graphics so much, I've always wanted to program a 3D game from scratch. In the beginning of 2007 (can't remember exactly, silly brain!) I decided to try out Java 3D and create a Rubik's Cube solving game. I'm not very good at solving the cube in real life, I've only solved it a few times altogether but that doesn't mean I couldn't create a simple game about it.

So, I researched the ways one can do 3D in Java and found this library called LWJGL (Lightweight Java Game Library) which uses OpenGL to render 3D graphics. LWJGL is not a game engine, it just enables the developers to get access to 3D graphics, input and sound to write their own game code.

It can't say much about the experience writing the game with LWJGL since it was quite a long time ago and I don't remember the particulars any more (silly brain is silly again). I do remember that getting the whole thing up and running was not as hard as I imagined.

Download the source code and binaries (currently for Windows only) here: RubiksCube.zip (3 MB)

Java: Kalah

In University, I took a course called Artificial Intelligence (AI) which was an introductory course to AI and had home assignments where we had to program various games and use some AI method for the game logic. One of those games was Kalah, and my version used ther Minimax algorithm. The graphical user interface is made with Swing and the graphics is made by me. The interface text is in Estonian.

Download the Kalah game binaries and source code: AI-Kalah.zip (376 KB)

Java: Traveling Salesman Problem

Another AI project, where we had to solve the Traveling Salesman Problem. My solution is quite dumb, basically it is a simple heuristical search, where the tour of the cities is calculated by alwasy traveling to the nearest not yet visited city. I guess I put more effort into the graphics than into solving the problem itself, nevertheless I got max points to the assignment. The program uses Swing to draw graphics and the interface is in Estonian again.

Download the source code: TravelingSalesman-
(4.6 MB)

Java: Noughts and Crosses

Yet another AI project, a classic Noughts and Crosses (Tic-tac-toe) game. I guess this one does not need any comments. Built similarly as the previous AI games.

Download the source code: NoughtsAndCrosses.zip (113 KB)

C++: Card games BlackJack and Video Poker

In my C++ course in University, I had to make card games as the course final project. They had to be graphical games and had to use the Allegro Gaming Library. So, the result was a library that supported building card games and two games - Poker and BlackJack - realized using that library. This was my first 2D game written in C++, I had only created simple OpenGL 3D apps before. The game uses only keyboard and the interface is again in Estonian.

Download the source and executables (Windows only): CardGames.zip (5 MB)

This concludes the overview of some of my programming projects. There are of course other projects that I have developed as well, but I consider them less worthy for this post.

A little overview of my old modeling projects

I began 3D modeling in about 2003, when I started my first car from scratch - the 1984 Chevrolet Corvette C4. It was actually quite a difficult shape to model since there weren't any good quality blueprints available (actually, there weren't any blueprints for a Corvette). But since I really liked the car, I was determined enough to finish it. The model was created from scratch in ZModeler1 and then exported to Racer. ZModeler is actually quite simple to use for a beginner and it is games oriented (supporting a fair amount of game 3d formats), but it lacks more advance features like mesh smoothing etc.

Since the Corvette received positive feedback from the Racer community, I continued modeling cars and in 2004 started my next serious project - the famous Honda NSX. This model too, was created entirely in ZModeler1 but it was more detailed and this time I also had blueprints to help me get the shape of the car right. When I had completed most of the model, I unfortunately found out the top view blueprint was a little skewed and thus my model had some inaccuracies. Bummer! I should have examined the blueprints thoroughly before starting to model. Anyway, the car actually turned out all right and was again available for Racer.

This car also received very positive feedback and so I continued my "modeling career". I wanted to try something different for a change so I decided to try and make a racing track. ZModeler did not provide very good tools for modeling tracks, but I didn't want to start learning another toolset just yet so I was stuck with creating a track in ZModeler. I created a very simple flat track with many curves. Since ZModeler didn't provide a very good lofting functionality, I just created a single stretch of road and then cloned it and bent it the way I wanted. The result was a small track I called "Short Circuit", like the movie.

Originally, the track was completed somewhere around 2005, but I made new textures (seen on the screenshots) for it in 2007. Two more track projects that I have completed are Speedest3 and Factory Test Track, both are created in 3DS Max and are available for Racer. Between these completed projects, I have created lots of unfinished tracks and some cars, mostly for learning purposes. I've long abandoned ZModeler and now I model in 3DS Max, which I find quite easy to use and very powerful.