My name is John Anderson. I often go by the name RollerSimmer online in gaming communities. This blog will highlight some projects that I have worked on over the years, as well as any ones that I may work on in the future. It will tie into my
Github repository at.
I am a programmer who has worked on various programs related to game development and game utilities. I also have interest in artificial intelligence, machine learning, computer vision, and computer graphics.
I started out in programming on QuickBasic and Pascal all the way back in the late 1990s. Throughout the 2000s, I participated in game communities and made utilities for members of the community to use. During this time I heavily used C and C++. In the 2010s, I pursued a Bachelors of Science in Computer Science and Mathematics, and currently I am a Masters of Science student in Computer Science. Throughout my formal education, I was introduced to new languages like Java, Prolog, Python, PHP, CSS, and Bash. Around 2010 or so I converted over to Linux from Windows, which gave me a lot of free programming utilities to use.
I was most well known for making utilities and trainers for the RollerCoaster Tycoon franchise, most notably RollerCoaster Tycoon 2. Back then I went by ja227 followed by Parkitect. My biggest projects for that game franchise were
- 8 Cars per Trainer - a trainer that edited things in the game while it was running. The simple menu-only interface was heavily inspired by Beast Trainer for RCT1, but it grew into it's own beast and later versions had so many features that even I don't even remember them all. Amazingly, this was coded mostly in C without MFC or anything to help me.
- ParkDat - a specialized save game modifier that modified which plugin objects were tied to a given park.
- Palette Maker - This command line utility created a color palette object (known as "water" color in game) allowing for crazy parks like black and white retro parks or really dark parks.
- Large Scenery Maker - There was already a pretty good RCT2 scenery creator made by Doctor J (James Hughes), but it was really hard to make multitile scenery objects. This large scenery maker took a large image file, cut it up, and applied height displacements to each tile to create multitile scenery objects. It came in handy since usually people filled up their small scenery spaces and needed more room. You could make 1x1 "large" scenery objects and have 128 more slots (I think that was the number)
- RCT2 ReliABLE - This trainer counteracted a lot of anti-cheat code in the game to prevent breakdowns when people set their lift hills to 255 mph or whatever they wanted to do.
In addition to RCT2, I made a roster generator for Madden NFL 2004. This was one of my first experiments with random number generators. I thought it was a pretty cool project, and hoped to someday implement some similar features into a football game I had always wanted to make. I had also made a team editor for Microprose NFL Football back in my early days of programming, but it was never distributed online since the game didn't have a huge following online. I still think Microprose made one of the best football sims ever, but it was quickly eclipsed by EA's Madden.
Other simulation games that I had made attempts towards making utilities for were Yoot Tower and SimCity 2000. Yoot Tower proved to be pretty easy to mod since it was mostly just Visual Studio resource files. I had been able to get a hold of the SimCity 2000 file formats enough to edit the roads and land types, which was the only thing one couldn't really edit in SimCity Urban Renewal Kit. However, by the time I had made this breakthrough, no one seemed to be interested in the game, and SimCity 4 was about to come out. SC4 proved to be the most heavily modded SimCity game.
Recent projects of mine have focused more on making physics simulations, artificial intelligence, and generators for both language and landscapes. These projects, while not serving much of a standalone purpose, are good demos that could be integrated into a more meaningful application.
One of the coolest projects was a college team generator. While it didn't have much practical use on its own, it demonstrated the use of grammar rules, probability distributions, and procedurally generating a somewhat realistic world of college team names and colors that could plausibly exist in some alternate universe. Much like the Madden roster generator, I would love to include it in a future football simulator. I think licenses are overrated. I would rather make a great football sim than have proper team licenses. With a generator that could make a full set of teams each time one wants to start a dynasty mode, it would make for much more replay value. Projects like this have further fed my interest in natural language processing and generation. I hope to take a graduate level course on the subject in the future.
I am still interested in game development and design. I did a couple semesters at a game school, in which I made a couple 2D arcade games and a Minecraft clone. I wish I could have stayed longer, but things didn't work out there for me. The short time I spent there was packed with knowledge from people that had worked in the industry, and I learned a lot in a short time.
Some of my earliest forays into programming was on the graphics programming side. I started out learning about compression and image file formats. I created programs for palette editing, image loading of PCX, GIF, and BMP formats, as well as a bootleg knockoff of Photoshop and Paintshop Pro that I called DrawProg. While not very featured, it could be run in DOS. I developed this in Turbo Pascal over the space of a year. Before my RCT2 projects, it was my crowning achievement in programming.
In spite of all these projects and degrees, I still have never had a professional programming role. I hope someday to land a programming gig that can support me. I have invested 20 years of my life into this pursuit, and I don't feel like quitting any time soon. I am open to contract work, freelance, part time, and especially full time positions.
https://github.com/RollerSimmer