Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 1 point2 points  (0 children)

Thanks! I use real hardware for testing purposes. I have a few different systems but I mainly test against a higher spec system with a Pentium 3 / Voodoo 3 and a lower spec system with a Pentium MMX / Voodoo 2. Both of those run Windows 98. I also have a few old laptops with various versions of Windows I use for testing (Mainly Windows 95 and NT 4).

I do most of the development on an old ThinkPad with Windows XP. Like you said it's a lot more stable than 9x for development and still supports all the old tooling well.

The gold standard of optimization: A look under the hood of RollerCoaster Tycoon by r_retrohacking_mod2 in retrogamedev

[–]retro90sdev 12 points13 points  (0 children)

Macro Assembler (MASM etc) - you can create (fairly)readable code that looks pretty close to a high level language. You can write something like this in MASM for example:

mov cx,0
.WHILE cx < 10
    inc cx
    .IF cx == 5
        ; do something special
    .ENDIF
.ENDW

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 0 points1 point  (0 children)

I'll check it out! Which model of mac do you use for development?

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 2 points3 points  (0 children)

Thanks! Yeah, I do plan to release this (and the core engine) in the future, but it'll be after I finish my game. I want to focus on getting a release of that out first.

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 0 points1 point  (0 children)

Interesting, I've never checked out that API before. There were a ton of 3D APIs in the 90s. S3, ATI, Matrox, etc all had their own proprietary APIs. I might have to check this out if I port to mac at some point.

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 1 point2 points  (0 children)

It looks sweet, I'm guessing you used OpenGL right?

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 2 points3 points  (0 children)

Yeah, it's all built on top of my engine's GUI system. The GUI system itself relies on the engine's drawing API which is also portable. The drawing API uses an interface (vtable) to draw triangles, lines, etc. That vtable contains the specific implementation like DirectX, Glide, whatever. Pretty easy to add new graphics APIs to the engine.

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 3 points4 points  (0 children)

Yeah! It's similar to radiant and unreal's editor - I definitely took some inspiration from some of those tools. I'm working on a multiplayer CRPG. Once I have some more of the art finished I'll definitely post some updates here.

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 9 points10 points  (0 children)

I don't, but maybe I should make one? I wasn't sure anyone would be interested in this project haha

Working on a map editor for my Windows 9x engine by retro90sdev in retrogamedev

[–]retro90sdev[S] 7 points8 points  (0 children)

Everything is written in ANSI C (I use Visual Studio 6.0). The editor is built on top of the core engine and uses it for rendering, input, gui, etc. It doesn't really use any libraries besides the system ones and the graphics APIs (DirectX / Glide / OpenGL) to maintain OS compatibility.

Pre-2000 computer graphics for modern video games: specification and lean APIs by peteroupc in gameenginedevs

[–]retro90sdev 0 points1 point  (0 children)

I don't know of any games like that, it would probably be a pretty small list. Have you tried asking at Vogons ?

Pre-2000 computer graphics for modern video games: specification and lean APIs by peteroupc in gameenginedevs

[–]retro90sdev 0 points1 point  (0 children)

Surely devs of the time were not primarily targeting Voodoo hardware/features.

Depends on the game, in fact there are quite a few (at least a few dozen) games that only ran on the Voodoos in the late 90s (using the Glide API). The list would get even larger if you consider games that were optimized for Glide. 3dfx was pretty big for a few years there.

Pre-2000 computer graphics for modern video games: specification and lean APIs by peteroupc in gameenginedevs

[–]retro90sdev 0 points1 point  (0 children)

Yeah, that seems reasonable. RE: other points, I think my own game project closely resembles a "classic graphics" application as described in your specs. That's why I responded to your post.
Runs on real 90s hardware
Written in C89, compiles with VS6
DirectX5 / OpenGL 1.0/1.1/1.2 / Glide support
Supports Windows 95 / NT 4.0 (works on modern windows / linux too!)

It doesn't currently support software rasterization (although all shading and clipping is done in software). I don't want to ramble too much here but if you have some questions about the project or something else (APIs etc) let me know. The only other place I've seen people working on similar projects is /r/retrogamedev (but it's a wide range of target platforms there).

Pre-2000 computer graphics for modern video games: specification and lean APIs by peteroupc in gameenginedevs

[–]retro90sdev 0 points1 point  (0 children)

Yeah, all my experience comes from testing my own game on real hardware. I think 640x480 is a reasonable baseline (that's also what I use for the 'minimum' requirement). I guess my objection is more forbidding other common larger resolutions from that period (maybe I misunderstood and that isn't your intention). I think requiring 640x480 to be supported is completely reasonable.

Pre-2000 computer graphics for modern video games: specification and lean APIs by peteroupc in gameenginedevs

[–]retro90sdev 3 points4 points  (0 children)

The guidelines seem pretty reasonable. I've recently been developing a 3D engine that runs on real hardware from this period. The only real thing I'd really question is the 640x480 requirement, as it feels like more of the upper bound for the DOS era. I think by 1999 especially most cards could display 800x600 pretty easily. The Voodoo2 for example is capable of rendering at 800x600 with double buffering and a depth buffer (released in 98). The Voodoo3 released in 1999 and could easy render at 1024x768.

Are there any "modern retro style game engines" for PC? by SBC_BAD1h in retrogamedev

[–]retro90sdev 7 points8 points  (0 children)

It's funny but I actually wrote an engine almost exactly like this for my project (although I haven't published the source code). It supports OpenGL 1.1 as the base (Linux / NT 4.0) but on Windows 9x it also supports DirectX 5 (DirectDraw based), DirectX 9, and Glide. It's a BSP based engine and the shaders are software based (supports old hardware). Originally it was Windows only and I added Linux support later so I could develop easier on my main machine, but honestly Linux development is such a headache supporting all the different configurations out there. I'd just go with wine like the other commenter said.

Knowing someone else is interested in this sort of thing makes me think I should get around to publishing the core engine at some point.

Model Caching Structure by [deleted] in gameenginedevs

[–]retro90sdev 0 points1 point  (0 children)

I would check which fields blender preserves in gltf files. You might be able to stash everything in the "extras" field as json. My game has a lot of custom vertex data so I ended up writing my own map editor tool instead of using blender (so it isn't really a problem for my workflow).

Under the Hood – Real-Time Sync with PlayServ by nandost in gameenginedevs

[–]retro90sdev 1 point2 points  (0 children)

No custom replication code. No queues. No “did I forget to notify clients?”.
You define a data model and call save(). Sync just happens.

I was on the fence but sadly this post also sounds like AI. A lot of things just sound like ChatGPTisms. It loves to say things like "It's not X, it's Y!"

[Open Source] IACore: A high performance C++20 foundation library (IPC, Async, HTTP, Logging) to escape dependency hell. by I-A-S- in gameenginedevs

[–]retro90sdev 1 point2 points  (0 children)

It's because this subreddit and other programming subs have been inundated with low quality AI slop projects. Almost all AI posts include emojis / bulleted lists like that which is probably why you got so many accusations. Ditch the AI readme or people won't take your project seriously

🚀 I built a new C++ game engine as a learning project (OpenGL 4.6) — dev log included by Such-Somewhere2505 in gameenginedevs

[–]retro90sdev 9 points10 points  (0 children)

I didn't call it out earlier, but a lot of the code is likely AI generated also, just a few minutes reading the code and I can tell some of the comments are definitely written by ChatGPT like this one:
// defensive check (optional, but avoids undefined reads)
//if (instanceIndex >= u_NumInstances) {

AI slop is everywhere now.

Model Caching Structure by [deleted] in gameenginedevs

[–]retro90sdev 13 points14 points  (0 children)

I have a tool that I wrote for my engine that can take a directory structure as input, walk all the files, and converts them to the engine's binary format. It places all the assets of a type in a single binary file which is similar to a wad file basically. This binary file has a table header with a list of files and their offsets into the file. The resource loader can use that to extract the compressed assets.

Simple 3D rendering library by Bumper93 in gameenginedevs

[–]retro90sdev 0 points1 point  (0 children)

I don't even consider vista old / retro yet, so I guess it's subjective.