CYBERDECK is a cyberspace themed video game. It is inspired by the works of William Gibson, specifically Neuromancer, and Count Zero. The engine is being written entirely from scratch. I'm hoping it will be available some time in 2020.
I will be posting updates here from time to time as development progresses. Hopefully I will be able to share code-snippets and useful game development tips as I learn more in my quest to finish the game.
I should work on this, I really should. I have been thinking lately about this video game again. Ironically, I haven't worked on it since the last update I made here almost a year ago. But it's probably the best code I have ever written. I read it today. -- Clean. As. A. Whistle. I have been showing people the ganky handheld footage I took of it. But it isn't really very good. So I took a few hours to do a proper video. Kazam (on linux) worked beautifully. Still, the code hasn't changed in a while. I am chomping at the bit to get in there. But ironically, life always seems to get in your way, like a sysyphusian wind blowing right at me no matter which tack I take. TL;DR ... I am busy, with school, with work. But what I really want to do - is get back to this game, give me four months and I'll get Lua scripting, variable shaders, map generation, and a ton of other stuff in there. But that's like a dare to life - come on, life, I dare yah, life. Be good to me, let me do the thing I want to - instead of all this other pointless stuff that doesn't matter to anyone. There's no way.
I was thinking about game companies this morning. I think the thought is a response to a game that just came out, and how it follows all the tropes, how it strongly copies Dark Souls, how it emphasizes limited interaction with the world, limited/dull combat, balanced by extreme emphasis on bloated art budget.
My reaction to these is usually some variation of: why are they doing this again? Why do they keep making this game? What happened to the good old games, back when people explored different kinds of story-telling and new kinds of interaction?
So I quick calculated back-of-the-napkin the truly creative, unfettered, not derivative game companies I can think of from over the past 20 years. Then I needed to quantize how many game-related creative endeavors take place in a single year. I came up with the totally guessed number of 8000 creative projects per year. This counts all the big franchises, all the Nintendo, Disney, EA, each project counting as 1 unit, smoothed out into units of single-endeavor/year.
The number of truly great game companies is much smaller. At first I was thinking of like 20 or maybe 40, but the more I scratched at it (and counted some of the indie studios I really love) I realized there were many hiding in the corners, so I bumped up the number to the hundreds range, and arrived at a plausible guess (conveniently a power of 2) of 320 great game companies over the past 20 years. Perhaps I'm being overly critical? To calculate: 320/(8000*20) => 320/160000 => 32/16000 => 8/4000 => 2/1000 => 1/500.
1 in 500 chance per year. Not good, but almost tractable. That is a 1/500 chance per year I will ever see, find, or let alone be hired by one of these fabled companies. The prospects are pretty grim.
Of course there is the alternative — do it yourself. This is the one avenue open to all of us who believe in the sacredness of creative endeavor. It's also worth remembering that this is how most game studios get started: a very small core team of a few highly-capable folks build the kernel of an idea into a product that later takes on a life of its own. It's better than sitting around and waiting for the world to do it for you. As an aside, here is Steve Jobs talking on the perils of companies losing sight of their product and letting the marketing department take over. This has become dangerously normal in modern western business. I can hardly name a company that hasn't suffered in some way from this kind of product erosion. People aren't thinking clearly about what they are making or the reasons they are making it. In our idleness we've let the money-people kind of slip in and take over everything. They've hijacked the rhetoric on why we do things, and I think this is very dangerous, and fundamentally is at the root of my complaint above about the state of poorly written or conceived creative projects. It doesn't have to be this way, and certainly wasn't always this way, though the wolves have always bayed at the door.
Here's a video I made for a friend to illustrate what I have been working on. Of note is the floor tiles running synchronously on a timer. A pretty cool effect I thought. Also I have the very first try at player-fired projectiles and some adlibbed entity blocks which are just bouncing around. The collision is in, which took some doing. The sad thing is that getting this far just reminds me how much further I have to go.
This video was taken as I was near finishing my map loader. I quick sketched out a map file format spec. The maps are stored in JSON , which specify the order of the polygonal sections, the name of the OBJ file(s) needed to render them, their size, color, animation characteristics, etcetera. The map structure is built as the json is read in. So what you see is an ad-hoc amalgamation of odd-ball sections I made in Blender all frankensteined together to demo various animation techniques. It's pretty garish but at least it's illustrative. :-)
This is the first post for this brand new website, cyberdeckthegame.com. I am working on a video game engine. The idea is something I could see in my mind going as far back as 2012 or so. At first it seemed fairly easy to implement, but an abandoned attempt in 2012 left me feeling I was in over my head and not quite up to the task. I did write a 3d engine in 2012, but it was sloppy and in many cases just plain wrong. However, additional experience has given me the polish I have needed in my own programming skills--not to mention the focus--to try and make another stab at it. So far the progress has been extremely encouraging.
I wrote a loader for Wavefront Alias OBJ file format in a day. I wrote a system to render Truetype fonts. That took a week to crack, but now its done. My rendering pathway feels abstracted enough to be flexable going forward, at least for a first game. I have started slapping together a Lua sub-system. This is taking a bit of work, but 50% of the game or more will probably be built with Lua so its worth the extra effort.
Here is a video from one of the very first incarnations where I got something running and mouse-look in. Worth noting is that I am using Matrix Rotation here for mouse look. I later switched it to quaternion to avoid gimblelock.