Game development career thread:

  • Guest, it's time once again for the massively important and exciting FoH Asshat Tournament!



    Go here and give us your nominations!
    Who's been the biggest Asshat in the last year? Give us your worst ones!

Captain Suave

Caesar si viveret, ad remum dareris.
5,328
9,051
Even in the best of cases, mobile/f2p games are fucked, and web builds are so fucked it's not even funny.

I sympathize with the devs, but as a consumer I have to wonder if the death of f2p crapware wouldn't be a big improvement.
 
  • 1Like
Reactions: 1 user

Control

Bronze Baronet of the Realm
3,113
8,228
I sympathize with the devs, but as a consumer I have to wonder if the death of f2p crapware wouldn't be a big improvement.
It probably would, but I'm not sure this is how you want it to happen. As a consumer, I don't like the idea of game engine companies or platform holders telling me what games I can and can't play. This also potentially kills cheap games (like bundles and deep Steam discounts), which I think are generally pretty great things.
 

Palum

what Suineg set it to
27,199
42,884
It probably would, but I'm not sure this is how you want it to happen. As a consumer, I don't like the idea of game engine companies or platform holders telling me what games I can and can't play. This also potentially kills cheap games (like bundles and deep Steam discounts), which I think are generally pretty great things.
The industry must die to be reborn. The blue hairs and the suits alike can only be cleansed with fire.
 
  • 1Truth!
  • 1Solidarity
Reactions: 1 users

Control

Bronze Baronet of the Realm
3,113
8,228
The industry must die to be reborn. The blue hairs and the suits alike can only be cleansed with fire.
1694734599227.png

you cant kill me season 3 GIF
 

moonarchia

The Scientific Shitlord
24,247
45,501
There is literally no way they are not getting sued into oblivion.

The whole "we reserve the right to change the ToS at any time" schtick has been shown to have limits and all the sudden bankrupting games that were developed under a completely different fee schedule is probably too far.

This would be such a great time for the courts to finally say no more to this "change anything at all at any time" bullshit that tech companies do. It is fucking ignorant that it was ever allowed in the first place.
Lawsuit waiting to happen is probably finally happening in a couple months. But Unity may win, if that was in the TOS to begin with. It's not like anyone was forced into using their engine.
 

Kharzette

Watcher of Overs
5,405
4,265
BTW, I have decided, very stupidly, to do this jam on the xbox. The original OG xbox, because that's what I have a devkit for. This is a very unwise and stupid decision but also a fun one!

Here's the details on the "extra" mode for the jam:
  • Extra (new) – 3 week deadline, solo or team, mostly from scratch, opting out of the Graphics or Audio categories if yours isn’t original. Take as few or as many days as you need. No score at the end, but you will get feedback if you submit early and give feedback.
 

Kharzette

Watcher of Overs
5,405
4,265
For the curious, to get the old xbox going was a bit of a chore. First I needed some kind of video out. The old cables were either composite or component.

I grabbed a HDMI converter off amazon for 15 bucks and it works well though it does get really hot. It is a strange little powered hdmi. You plug usb-c into the side of it (which makes it tricky to plug in next to other hdmi).

After that, the sdk is very old, around the windows XP era. I tried to get it to work on windows 10 but didn't have much luck. Xbox neighborhood wouldn't work, and it didn't recognize any recent visual studios to install into.

I ended up trying a VM of windows 2000 and got it mostly working, but there was something wrong with the debugging, so I ended up grabbing XP off archive.org and everything works with that.

The SDK expects visual studio .net 2003, and while I love the workflow of it, the colours are absolutely blinding. The old features I love are all there, like hotkeys that make sense, and completion that uses tab and not other keys you accidentally hit all the time. F4 to cycle through errors with enter to jump to the line is just the best thing ever.

Visual studio 6, which many programmers remember very fondly as the pinnacle of the software, will work but you don't get edit-and-continue in the debugger. I rarely use it but it can be quite handy sometimes.

I ended up setting up a shared folder into my usual git area, and fought with visual studio code for several hours until I got intellisense working. Oddly once it works, it works better than it does with modern C++! It has behaved really well. So I code in VS Code and build / debug in the virtual machine.

Here's what the VM looks like:
buggery.png


Remember that old plasticy look? :emoji_laughing: XP was when they started nagging you with the system tray. It also has a little dog that comes out when you search for files.

And here's VS code with the dracula theme. Much easier on the eyes!
dracula.png


As for the xbox itself, it is basically a single threaded pentium 3 with a very early programmable nvidia GPU. The docs and samples seem to span a big evolution, like the hardware changed several times. The early stuff you can actually get into the individual VLIW instructions to super-optimize things, and the instruction count was super limited.

But the actual specs are pretty close to directx 9 standards. 80ish shader instructions, which is plenty to do characters and decent lighting and such.
 

Kharzette

Watcher of Overs
5,405
4,265
I forgot the most important thing: VirtualBox version.

Some xbox projects do some kind of build step on the local machine that needs Direct3D working. Newish versions of VirtualBox have deprecated their old D3D stuff on pre windows 8 vms I think. Anyway if you just grab the latest you'll never get D3D working.

The last version with working D3D is 6.0.24, and to find it you have to dig a bit on the site. I think I had to manually edit a URL from another version to find it. Once installed you have to do some tricks to boost the GPU ram up to 256 (there are 2 tricks in the goog that work).

On the linux side, this old version is so old it is beyond several big barriers to getting it to work. There's some huge breaking change to SSL that makes any software from before that time super brutal to install. I tried but eventually gave up, so I'm doing all of this reluctantly in windows.
 

Kharzette

Watcher of Overs
5,405
4,265
I'm in a strange sort of semi-retired state right now. I sleep at very odd/random intervals and have no internal clock.

I could do mighty things if I had some discipline and wasn't sleepy all the time, but I waste alot of time watching racing, starting new projects instead of finishing old ones etc.

The above stuff only took a day or two though, you should see the horrors I went through to get my mom's tv bill down :emoji_laughing:
 

Kharzette

Watcher of Overs
5,405
4,265
Stuff draws!
vsworkin.png


And here's what the themes are looking like:
finalround.png

Most of those are not too shabby.

BTW: here's what the shader debugger looks like:
debargar.png


Yes, that is an activeX control running in internet exploder :emoji_laughing:
 
Last edited:
  • 1Like
Reactions: 1 user

Kharzette

Watcher of Overs
5,405
4,265
Limited Space won :emoji_laughing:

Imagine looking at the above list and thinking that's a good idea, when "running out of space" won not long ago (also a turd).

I'm ok with it though, I've got a great idea. Doing the easymode 3 week deadline.
 

Kharzette

Watcher of Overs
5,405
4,265
I'm lovin this 3 week deadline. I've been taking it easy and working on stuff and just having fun.

My game will be the theme words swapped like "Space Limited" or "Space LTD". You run / own a generic space company, and maybe eventually will be able to haul stuff around, mine, make stuff, do regional market stuff, combat etc

All I have so far is a very crudely made shuttle that looks slightly phallic. You can steer the ship and the camera and right trigger fires up the engines.

blorp.png


It's funny, getting that ship drawing I think took a couple hours. Getting text drawing? About 12 hours :emoji_laughing:

I was going to do really simple physics, just like a basic accel and velocity but I couldn't get anything to come out right so I ended up porting over this rk4 integrator stuff and it is really nice: Integration Basics | Gaffer On Games

I'm not doing any of the angular momentum stuff, as it just didn't feel right. I have standard videogamey turning with the analog sticks.

My standard lazy euler angles turning didn't work and somehow I remembered having this problem back around 2000 when I was working on a descent style game. Pitch/yaw/roll gets super goofy when you get upside down so you have to use quaternions and use rotation axisesseeses transformed by the quat at the frame of rotation.

The quaternion library in d3dx math is ... sparse at this time. Here's what you get from the docs :emoji_laughing:
quats.png


So I had to write a quaternion vector rotate. I ended up stealing one out of CGLM, the math library I use for linux.

Same kind of problem with alot of math related stuff. No fmod etc. Since I know exactly what the hardware is it is easy to just write what you need in assembly:


Later I learned that it is entirely a C / C++ problem. Apparently there's some special compiler flag you need to get math library stuff in C. I put one tiny C++ file in the project and now all the math stuff magically works. :emoji_shrug:

I've had almost no problems at all with graphics. This old directx is a joy to work with. Shaders are in assembly but it is a really easy to write assembly and there's no confusion about how data comes in and out. There's even a 2D mode where you can supply pre-projected verts for 2D stuff.

Everything in dx11 is filling out these gigantic structs to tell it what kind of surface you want, or describe what kinds of verts you are feeding it etc. Dx8 doesn't care. Here's a chunk of ram do what you want with it.

Apparently because of the "unified memory" on the xbox you can also just cast a memory chunk into something else, like treat a vertex buffer as a texture etc. I haven't had any use for it yet but that is cool as hell.
 
  • 1Like
Reactions: 1 user

Control

Bronze Baronet of the Realm
3,113
8,228
I'm lovin this 3 week deadline. I've been taking it easy and working on stuff and just having fun.

My game will be the theme words swapped like "Space Limited" or "Space LTD". You run / own a generic space company, and maybe eventually will be able to haul stuff around, mine, make stuff, do regional market stuff, combat etc

All I have so far is a very crudely made shuttle that looks slightly phallic. You can steer the ship and the camera and right trigger fires up the engines.

View attachment 493632

It's funny, getting that ship drawing I think took a couple hours. Getting text drawing? About 12 hours :emoji_laughing:

I was going to do really simple physics, just like a basic accel and velocity but I couldn't get anything to come out right so I ended up porting over this rk4 integrator stuff and it is really nice: Integration Basics | Gaffer On Games

I'm not doing any of the angular momentum stuff, as it just didn't feel right. I have standard videogamey turning with the analog sticks.

My standard lazy euler angles turning didn't work and somehow I remembered having this problem back around 2000 when I was working on a descent style game. Pitch/yaw/roll gets super goofy when you get upside down so you have to use quaternions and use rotation axisesseeses transformed by the quat at the frame of rotation.

The quaternion library in d3dx math is ... sparse at this time. Here's what you get from the docs :emoji_laughing: View attachment 493634

So I had to write a quaternion vector rotate. I ended up stealing one out of CGLM, the math library I use for linux.

Same kind of problem with alot of math related stuff. No fmod etc. Since I know exactly what the hardware is it is easy to just write what you need in assembly:


Later I learned that it is entirely a C / C++ problem. Apparently there's some special compiler flag you need to get math library stuff in C. I put one tiny C++ file in the project and now all the math stuff magically works. :emoji_shrug:

I've had almost no problems at all with graphics. This old directx is a joy to work with. Shaders are in assembly but it is a really easy to write assembly and there's no confusion about how data comes in and out. There's even a 2D mode where you can supply pre-projected verts for 2D stuff.

Everything in dx11 is filling out these gigantic structs to tell it what kind of surface you want, or describe what kinds of verts you are feeding it etc. Dx8 doesn't care. Here's a chunk of ram do what you want with it.

Apparently because of the "unified memory" on the xbox you can also just cast a memory chunk into something else, like treat a vertex buffer as a texture etc. I haven't had any use for it yet but that is cool as hell.
Take the easy way out:
1696476847069.png
 

Kharzette

Watcher of Overs
5,405
4,265
I cannot do barrel rolls yet, I have no axis of control for "roll" :emoji_laughing:

Another cool xbox thing is you can load all your shaders at once if they will fit in the tiny gpu memory, and just switch between them using an offset. I haven't done it yet though.
 
  • 1Like
Reactions: 1 user

Kharzette

Watcher of Overs
5,405
4,265
Here's my timelapse. I didn't quite get this playable beyond a desert bus style travel simulator:



After that, Quarm happened
 

Kharzette

Watcher of Overs
5,405
4,265
Saw this on the directx discord. This is a very neat trick to help with precision.

 
  • 1Like
Reactions: 1 user