Losing Steam

Motivation sucks. For every bit of it that I get, there seems to be an equal and opposite amount of apathy. Despite that, I guess it still technically produces something positive because during the manic depressive high I get a few things done. I had been contributing to my project at least an hour every business day and then taking the weekends off, but the last two days I just played video games instead of the hour I should have spent working on CarCoder. I guess that’s not bad considering I did work for a few weeks like that. I want to share some screenshots of everything that I did to see if that helps me, and also talk a bit about why I don’t want to work on the project anymore.

New Features

1. You can no longer make the car fall off the edge of the world:

New terrain surrounding TestTown

2. Trees!

Trees!

3. Intersections with “working” lights!

At the moment, you can only turn all the lights on or off (working on a day/night cycle)

4. Improved resolution of TestTown’s town square backdrop and added more props:

Used an AI upscaler to make the backdrop a higher resolution

5. Improved look of the “auxiliary” TestTown buildings:

The circled building is where the coder will physically be.

6. Added a four-way intersection with stop signs:

Are regular stop signs double-sided? Hmm.. might need to look into that.

7. CCTV camera models:

New models for street-cams

8. CCTV shaders:

Needs more scan lines! (also the camera name should be here but it’s not)

9. You can adjust the time of each instruction as well as remove them:

You can use the slider to adjust the time each instruction runs, or remove instructions using the red x. Needs some polish but works!

Things that are broke now that were not before

No more car sounds.. after adding additional cars for the car selection scene (more on this in a moment) my car controller would do very odd things like cause the wheels to just float away and other oddities that I just took out the sounds and animations to get the new cars working.

New bugs

Reordering an instruction can break the new adjustment UI changes (I think)

The biggest change I have made so far is the car selection scene, or what I’m calling the job selection scene. I had this idea that the player could choose who they wanted to work for since there are several companies, and that would give them a different car with different capabilities/specifications (speed, handling, etc) and a completely different scoring mechanism depending on that companies safety rating. So, while one car manufacturer might value safety above everything else, another might value the speed at which you completed objectives above everything else. I set out to create a new scene that appears after you select a level, and here’s how it looks so far:

Yuck, right?

You can see the new cars, sure, and it all works, but let’s just admit that it needs a lot of polish, to say the least. The new scoring system complicates things as well, but I felt it was necessary to make the game more interesting and give it some replayability. It didn’t seem like much fun without the chance to get things wrong, and this way, less, um, cautious players can progress but still be challenged. This has also meant tasks of tedium like searching the internet for appropriate yet affordable 3D models, and then getting those models to work (and look) correctly. My goal now is to make all the levels I possibly can and get everything working. Then, a feature freeze to get it polished up for the release.

CarCoder Update

Who needs active ragdolls?

Here’s what I’ve managed to do so far:

  • Vastly improved lighting
  • CCTV cameras have a CRT-like shader and actual models
  • Added traffic lights to intersections (one is a 4 way stop)
  • Added lighting manager to toggle lights on/off
  • Added power slider for instructions
  • Can finally delete instructions
  • Added new ragdoll “pedestrian” models
  • More props in the town square
  • Added some trees

There is still plenty to do, but the main area of work will be the levels/stages as they’ll need a lot of work now.

Another idea I had is that you take jobs from contractors who have their own car you have to use. Each contractor also has its own criteria for scoring, so while one may put safety first, another might only care about the time it takes for you to get from point a to b.

The Follow Through

I made some progress with Cannons, but I decided to pivot back to working on CarCoder until it’s ready to be released on Steam. I’m not expecting some crazy success, but I feel like it would be fun to try. I believe the game has a lot of potential, but in its current state, I don’t think anyone will buy it. My guess is the work needed to polish up this game will take more time than its original development. Here’s my punch list so far:

Game Improvements

  • Use a better car model
  • Improve sounds
  • Make cameras more realistic and add nice transitions (CRT shader?)
  • Add dialogs
  • Fix lighting and terrain textures
  • Make streets and intersections more realistic
  • Improve UI (add a way to delete single instructions)
  • Improve the pedestrians
  • Add more levels (games like angry birds have over 700, IIRC I have around 14)
  • Optimizations and beta tests

Other Work That Isn’t Game Development

  • Add SSL to this website
  • Check on any legal issues from the assets in the game
  • Apply for Steam dev license/agreement
  • Marketing!

Thanks for reading!

Cannons

Progress 1

I’ve been making an effort to post all my projects to GitHub because in the past I’ve lost a lot of work not making backups. I very much regret that I no longer have the code for:

  • A Quake 2 mod where you fight other players using the Q2 AI characters (similar to TABS)
  • The custom maps for the Q2 mod
  • A series of interactive 3D ASCII art I was making for an “installation”
  • A helicopter game I made when I was 14
  • A top-down military game like Rescue Raiders
  • A 3D wireframe game engine
  • Several raycasting engines
  • Anyway, you get the point!

Among those games, is one I started at least ten years ago that I called Cannons. It’s a mashup of Minecraft and an old DOS game called Scorched Earth (30 years old this year btw). I’m not sure, but I always liked the concept and it seemed like fun to make, so I started remaking it last night using the latest version of ThreeJS. So far, I haven’t used any of the old code but I’m hoping to somehow. The new version also uses NPM but I’m shying away from things like React for performance sake. Anyway, you can expect the next few posts here to be updates about this project. I want to add voxel-based physics to the game, but I still need to add terrain chunks and other “basic” Minecrafty biome mechanics. At the moment, it’s just one giant mesh with a single layer of blocks, and the tank is just suspended in the air at an arbitrary point to make it look like it’s on the ground. Later!

Let There Be Sound!

So, I really love playing Spellbook, but something I have always wanted to add since I originally considered building it was AI generated music; specifically, old school 8-bit video game music that matched the current mood of the story. It may be possible to take the data from this site and create new music the same way the game creates images. I have no idea how to train CLIP, but I did recently learn how to train a transformer for a work project, so hopefully I can make this happen. I’ll let you know if I make any progress. Hope I don’t break the internet.

Spellbook

My latest foray into the mysterious world of generative adversarial networks has yielded interesting results:

Don’t worry, it doesn’t make any sense when you zoom in

As illustrated (pun intended) in this post, it seemed possible to create an interactive story writer with actual graphics using GPT-3 and VQGan/CLIP, and the screen shot above proves that maybe I’m not as lazy as I thought I was. Hmm.. anyway, as a game it’s simply ahead of its time, but as an experiment it’s frickin’ cooler than dolphins with lasers. The prompts are hard coded, and as of yet I can only get it to continue the story for one or two additional prompts without devolving into madness, but it is sooo very very neat that I can just hit refresh and see a new opening passage along with a relevant image (after a few minutes of course). I can’t help but wonder how long it will be until content like becomes realistic and performant enough to replace the handmade games we have now.

VQGAN Caveats

VQGAN assumes you want “low” quality images if you don’t include “unreal engine” in your prompts. Engine bias? Example:

Prompt: Busy medieval tavern

Prompt: Busy medieval tavern unreal engine

Menu on the right.. below the name of the tavern. IINEDU? INEOU? Innuendo? Hmm..

I obviously need to increase the resolution of the images it creates as well, but the difference is obvious. Also, I noticed that while it generated this image the tavern was “built” first and then it started adding people. If you compare one of the first generated images to this one you’ll see what I mean:

Guess they haven’t opened yet

I’m going to let this prompt run its course and I’ll post in the result later. Also, I’m running this is colab and I want to see how well my new computer performs in comparison.