wolf3d
systemshock
wolf3d | systemshock | |
---|---|---|
8 | 9 | |
2,095 | 795 | |
3.0% | - | |
0.0 | 0.7 | |
about 12 years ago | about 1 year ago | |
C | ||
- | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
wolf3d
- Wolfenstein 3D with a CGA Renderer
-
Historical Source Code That Every Developer Should See
There are far better historical sources to study, such as Wolf3D, the classic BSD games, or even Word 1.1.
-
Why Functional Programming Should Be the Future of Software
It took a long time to write that engine and porting the whole thing properly also takes time. It just moves goalposts. Why didn’t he spend 80M on a new AAA game? If he spent any less than that, he certainly can’t draw any useful conclusions.
Have you ever looked over the codebase? It’s plenty large enough to draw useful conclusions from for most people let alone someone with his vast game experience.
https://github.com/id-Software/wolf3d/tree/master/WOLFSRC
Meanwhile, you are drawing bay conclusions with no credentials out evidence. As to actual games, setting aside the fact that Wolfenstein still sees play, loads of popular games are written in JS. Lots of others are in Java or C#. None of these make your case as Haskell, Ocaml, and StandardML (SML) are in the same performance range.
As to your argument about the efficiency of objects, what do you think functional languages use? Lets use SML as an example. There’s real arrays and they are also optionally mutable (yes, there’s linked lists too, but those can be used in C++ too).
Records are basically just C structs (they are immutable by default, but can contain refs which are mutable pointers). They can contain functions because functions are first class without the mess that many languages create.
You associate functions with datatypes which gives you the best part about methods. They also give you a kind of implicit interface too due to structural typing. I’d note that closures are mathematically equivalent to objects.
Finally, modules are everything a language like Java tries to get from classes (and more), but without any of the downsides of classes themselves.
People generally like the JS paradigm of factories and object literals (even if they hate the stuff like dynamic typing or type coercion). StandardML offers the same kinds of patterns, but with sound typing, simpler syntax without the warts, more powerful syntax, and performance in the same range as go or Java.
To me, your argument sounds like the people arguing that goto is better and more natural than looping constructs or the procedural guys arguing against OOP. I think if you messed around with StandardML, it would change your mind about what programming could be in the future.
-
Found more assembly horrors while rummaging through my backups. This time, starring quaternion arithmetic
I'm not used to seeing assembly look like this. What's the wrapper stuff? Looks like C. But I thought you could inline assembly in C like here: https://github.com/id-Software/wolf3d/blob/master/WOLFSRC/DETECT.C
-
Porting DOOM To A Forgotten Apple OS
c) The source code was pretty vanilla standard C. No huge assembly. Around 36000 lines of "normal C" (at the time, most of C games were non-portable, you would get near and far pointers or assembly shenanigans you had in Wolf3d source). Only 4 assembly functions (draw a vertical line, a horizontal one, fixed point multiplication and division), and they were already replaced by 4 standard C functions.
-
How were coded early fake 3D graphics like in 3D Monster Maze or Wolfenstein 3D ?
id software used raycasting since it's early games like Hovertank 3D, Catacomb 3D and Wolfenstein 3D. heck, even though Doom, Duke Nukem 3D and Blood were majorly using BSP, their most simple and rustic rendering base was through raycasting.
- there is a dos mod for wolf 3d that adds strafe, but it doesn't work on the expansions. Anybody know one that does or can explain how I might go about modding it myself?
systemshock
-
The System Shock remake is excellent - and Nightdive's most ambitious work yet
For what it's worth, Nightdive did release the source code for the old Mac version and there's currently a cross-platform source port in development based on it: Shockolate.
- Systemshock: Shockolate – A minimalist and cross platform System Shock source p
-
should i play the original first or the remaster
if you want a source port that looks like the original (none of that KEX engine crap that looks awful), but also has mouse look, you can try shockolate (https://github.com/Interrupt/systemshock). it's not 100% stable though and sometimes crashes. i could not figure out the reason in two full playthroughs, but it was good enough for me if i can avoid the disgusting KEX port.
- The Icculus Microgrant is giving out 250 dollar grants to open source projects, please brag about your project(s) in this thread so I can see them!
-
Wolfenstein 3D with a CGA Renderer
Though the Ultima Underworld maps were made out of a 2D grid, the rendering was done using texture-mapped polygons - and not just that but they even used dithering for more light variations. While pretty much all objects were rendered as 2D sprites, there were a few 3D polygonal objects too.
Wolf3D has a much more limited renderer - only walls are rendered, no lighting (the shaded side for walls is actually different textures) and the viewport is fixed at the middle of the walls for example. On the other hand Wolf3D was much faster and responsive and had a larger render window than UU.
UU itself was not open sourced, however System Shock 1 which is based on the same engine was[0][1].
[0] https://github.com/NightDive-Studio/shockmac
[1] https://github.com/Interrupt/systemshock
-
Why Aren't There More Open Source Games?
last example, system shock - got open sourced and ported by the community in no time https://github.com/Interrupt/systemshock
-
System Shock Remake set to launch next year on consoles and PC. New screenshots released.
I have a more modern source port that works on my Mac (Shockolate), but I still find it clunky to control. Funny how preferences and expectations change over time. I don't remember having an issue with the controls back then (or with Ultima Underworld), but now, it's just really hard for me to get past.
-
System Shock: Classic or System Shock: Enhanced
I don't know if you still care, but there's also Shockolate. It's meant to run on modern hardware.
-
What is the best System Shock Classic Source Port?
The official KEX Enhanced Edition has had the most work put into it, but Shockolate might be an option if you want to give it a shot.
What are some alternatives?
peds - Type safe persistent/immutable data structures for Go
OneLife - a multiplayer survival game of parenting and civilization building
MS-DOS - The original sources of MS-DOS 1.25 and 2.0, for reference purposes
wp-plugin-leaflet-map - Add leaflet maps to Wordpress with shortcodes
dhall - Maintainable configuration files
cargo-show-asm - cargo subcommand showing the assembly, LLVM-IR and MIR generated for Rust code
book - The Rust Programming Language
qBittorrent-Manager - [WIP] Modern qBittorrent WebUI Client for Android written in Kotlin
fun-problems
copygen - Go generator to copy values from type to type and fields from struct to struct (copier without reflection). Generate any code based on types.
WolfensteinCGA - Wolfenstein 3D with a CGA renderer
Mida - A JavaScript framework to easily operate in global financial markets.