Live data from Hacker News

Descent 3 Source Code

github.com

131–140 of 347 posts

Re: Descent 3 Source Code

#131
post #94

Earlier quoted context omitted.

Everyone has nausea initially when using VR. It will go away eventually. You need to train your brain to not feel G forces when you see movement.

Not everyone has it even initially; it really varies from person to person. I suspect that to some extent it is influenced by past exposure to fast-paced first-person games (e.g. FPS when played using the mouse).

For me there was practically no sickness at all, first time I used the headset I felt a little weird after an hour, and after that had no issues playing a variety of genres, with no teleportation.

Okay except that one time playing COMPOUND. By accident I moved the analog stick to the left while turning my head to the right, and the image moving the opposite of what I expected made me feel bad. I finished the level there, and then had to go rest for a couple of minutes and stop playing VR for the day.

tl;dr for some people it almost never happens, until it does.

Re: Descent 3 Source Code

#132

I loved loved loved this game. Never understood why this concept didn’t become a whole genre. No actual up, 360 degree freedom, enemies that were smart and could snipe you. Wasted many hours back then and very eager to try this out.

If that's your cup of tea then elite dangerous might scratch that itch.

Re: Descent 3 Source Code

#133

I loved loved loved this game. Never understood why this concept didn’t become a whole genre. No actual up, 360 degree freedom, enemies that were smart and could snipe you. Wasted many hours back then and very eager to try this out.

There's a weird effect where sometimes one game in a genre will become so iconic that nobody wants to try and make another one, possibly out of fear of seeming like they're ripping it off? It happened to Descent, and I feel like it happened to e.g. Myst as well - everyone was expecting the huge success of Myst to launch a whole genre, and then it just... didn't.

The Sims was like that too, and it's only recently that anyone's tried to launch a full-blown competitor, Life By You from Paradox, who also launched a full blown SimCity competitor, Cities: Skylines. It's run by Rob Humble, who managed The Sims 2 and 3.

Myst was the top selling game of all time until The Sims came along and dethroned it for quite some time. So you have a point about how some top selling games can become so iconic that there aren't any alternatives for a long time.

I think it's a great thing that Paradox eventually picked up the ball and made some competition for SimCity and The Sims, after EA strayed from the original designs, and enshitified them with all the expansion packs and online DRM bullshit.

Competition is great, and The Sims 4 and SimCity and the competing alternatives would be much better off and further along, if they only had viable competition all these years. EA should have released and documented and supported their internal content creation and programming tools for user created content, instead of putting all their effort into competing with fans and trying to squeeze the last penny out of it with expansion packs.

I've proposed and campaigned for EA to release the tools since before the release of The Sims 1 in 2000, and they did eventually give me the rights and pay me to develop and release some limited tools like The Sims Transmogrifier for The Sims 1, but they never followed through with releasing the internal tools like the Edith editor and SimAntics visual programming language, or the 3D Studio Max content creation tools, and they never officially supported or documented anything, the way Factorio and other games do such a wonderful job at.

This video shows Edith -- The Sims Steering Committee - June 4 1998:

https://www.youtube.com/watch?v=zC52jE60KjY

And this shows The Sims Transmogrifier and some other tools I developed with it, and user created content programmed by fans with the limited tools available (iffpencil2 etc) -- Demo of The Sims Transmogrifier, RugOMatic, ShowNTell, Simplifier and Slice City:

https://www.youtube.com/watch?v=Imu1v3GecB8

Decades later, it's now possible but difficult to develop and program user created content for The Sims 4 in Python, but it's terribly documented and practically unsupported. Here is the original proposal I wrote around the time we released The Sims 1 in March 2000, which outlined what we should do, but unfortunately they didn't take it nearly as far as I suggested, and never let me release the 3D Studio Max animation and object exporters, or the Edith editor and visual programming tools.

https://web.archive.org/web/20040329181128/http://www.donhop...

>A Proposal to Develop Third Party Content Authoring Tools for The Sims, by Don Hopkins, March 2000

>This is a proposal I wrote to Maxis after The Sims was released in March 2000, outlining some of my ideas for third party content authoring tools that I could develop. This led to The Sims Transmogrifier, but it touches on several other interesting tools and projects that Maxis never got around to.

>Problem Definition:

>There is a strong demand many from third parties who want to develop their own custom content for The Sims, including characters and objects.

>Proposed Solution:

>Update, clean up and document the content creation tools, so third parties can make their own characters and objects for The Sims.

>Port the tools to the latest version of 3D Studio Max.

>Make the tools self contained so they can be run stand-alone, by removing all dependencies on the Maxis environment and expensive software packages: Character Studio (Biped, Physique), Access, SourceSafe, MKS Toolkit (Korn Shell).

>Document the content creation tools with an overview, examples, tutorials, and a reference manual. Write down the folklore that has been passed by word of mouth. Read over the code and document how it actually behaves.

>Provide consulting, training and content creation services to third parties who want custom content authored for The Sims, but don't want or know how to do it themselves.

>Develop a Sims Content Authoring SDK, so it's possible for third parties to create specialized content creation tools, like FaceLift.

>Goals:

>Third Party Character Creation and Customization:

>Characters include virtual people who the user can play with, as well as autonomous non-player characters with programmed behaviors. Characters consist of bodies, heads and hands of 3D polygonal meshes with texture mapped bitmap skins.

>Characters are created at Maxis by highly skilled artists using expensive tools like 3D Studio Max, Character Studio, the CMX exporter, and Photoshop.

>Simplify the content creation tools and make them run stand-alone, so third party artists and designers can create their own characters and objects.

>Maxis' expert 2D character artists currently use Photoshop to paint body textures in layers, then flatten and dither them into 256 color bitmap files.

>"Flesh out" the process of applying layered clothing to naked bodies and dithering to 8 bits, so anyone can dress up their characters in all kinds of clothes.

>Maxis' expert 3D modeling artists create textured low-poly rigid meshes (like heads, hands and accessories) attached to individual bones, and the CMX exporter creates rigid suits.

>Make the CMX exporter easy for third parties to use, so many proficient 3D artists will be able to make their own textured heads, accessories, selected character pointers, and carried objects.

>Maxis' expert 3D character modeling artists attach textured low-poly deformable meshes (like bodies) to skeletons using Character Studio Physique and Biped, and the CMX exporter reads out the weighted vertex/bone bindings and creates deformable suits for the game.

>Character Studio is an expensive plug-in that enables a skilled artist to bind deformable meshes to skeletons, but there are other ways to do that with 3D Studio Max and other 3D tools.

>Enhance the CMX exporter to support Max's new way of attaching deformable meshes to skeletons, so third party 3D artists can create bodies.

>Maxis designers and programmers use the Edith tool to configure the behavior of characters and objects.

>Clean up and document Edith, so third party designers and programmers can program and modify their own characters and objects.

>Third Party Object Creation and Customization:

>Objects consist of pre-rendered z-buffered sprites, packaged together with character animations, sound effects and programmed behavior.

>Objects are created in-house at Maxis, by highly skilled 3D modeling artists, using lots of polygons and detailed texture maps in 3D Studio Max. The sprite exporter breaks the objects up into tiles and renders them in different scales and rotations, then writes out z-buffered sprites.

>Clean up and document the sprite exporter, so third party artists can use it with 3D Studio Max to make their own objects.

>The sprite exporter is very specific to 3D Studio Max, especially when breaking apart multi-tile objects.

>Maxis' expert 3D character animation artists create skeletons and animations of characters interacting with objects. They use Character Studio Biped, although the exporter supports other types of skeletons, like the bones built into Max or even hierarchies of normal objects.

>Clean up and document the CMX exporter, so third party character animators can use it with 3D Studio Max with or without Character Studio to make their own character animations.

>Enable Third Party Content Creation Tool Development:

>Develop and document an SDK (Software Development Kit) that gives third parties the information they need to make their own content creation tools for The Sims.

>Enable and encourage the development of tools like FaceLift and Blueprint by third parties.

>A "BodyLift" tool that enables anyone to mutate, breed and tweak deformable body meshes, like FaceLift lets anyone do with rigid head meshes.

>A skin tool that enables anyone to layer clothes and accessories on different bodies, skin colors, sexes, ages, etc. Allow artists to create 32 bit alpha masked layers of clothing that can be applied to any body.

>An animation tool that enables anyone to create their own dance sequences, walk loops and idle animations, by mixing, cross fading and mutating between many pre-existing dramatic poses, dance moves, walks and idle loops.

>Specialized object creation tools that enable anyone create their own customized objects from templates, like a PictureFramer that would create a framed picture from any bitmap, or a JukeboxFactory that would create a jukebox full of your favorite mp3 files.

Re: Descent 3 Source Code

#134
I'm working on making an open source version of Yoot Tower (aka Sim Tower, The Tower II) that runs in the browser!

https://github.com/YootTowerManagement/YootTower

What led to this being possible: There was recently a discussion about elevators on Hacker News, and somebody mentioned SimTower and asked about the algorithms it used, so I gave Yoot a call to ask him, and he mentioned he wanted to open source it. I enthusiastically agreed to help him, and contribute my efforts porting the code and navigating the licensing and trademark issues, benefiting from my experience developing the open source version of SimCity for the OLPC:

https://news.ycombinator.com/item?id=39087437

>I know Yoot Saito (creator of SimTower) from my time at Maxis, so I just gave him a cold call out of the blue and asked. ;) I caught him drinking Jack Daniels in a Japanese bar, but he had some time to chat.

>He said he once did a big interview with BBC about SimTower (which would be worth looking up and watching if you can find it), and had a friend who worked in the elevator industry, who told him generally about how elevators worked, but much of it was secret and proprietary, so he had to come up with how they worked in the game himself, based on the general ideas he learned and his own experience and imagination.

>He also said he's interested in releasing the original source code of SimTower as free open source software, like I did with the original SimCity Classic source code, so I volunteered to help him and find other people who could help. Anybody interested? ;)

Yoot recently sent me a huge code drop of the Windows sources as well as the Gameboy SP and DS versions and production documents, and I'm sorting it out and cleaning it up to make a version that compiles with emscripten and runs in the web browser. We've decided it release it under the MIT license, and develop a version that runs in the web browser using emscripten and SvelteKit. I'd appreciate hearing from people who are interested in helping out, especially people who know Japanese, since there is a lot of great content in The Tower II that was only released in Japan that needs translating to English and other languages.

I've also started the process of porting the Micropolis (open source SimCity) code to run in the web browser in the same way as Yoot Tower, since they are both from the same era (and from Maxis) and share a lot of technologies and requirements, so they will both be able to share much of the code and infrastructure (WebAssembly, emscripten, embind, SvelteKit, canvas, html, css, user interface code, github actions, etc), with the eventual goal of being able to embed multiple Yoot Towers in your Micropolis city!

https://github.com/SimHacker/MicropolisCore

>Open Source Micropolis, based on the original SimCity Classic from Maxis, by Will Wright.

>MicropolisCore C++ Core

>This is the source code for Micropolis (based on SimCity), released under GPL-3. Micropolis is based on the original SimCity from Electronic Arts / Maxis, designed and written by Will Wright, and ported to Unix by Don Hopkins.

>The origin of this repo is the "MicropolisCore" directory of the full micropolis repo, https://github.com/SimHacker/micropolis , but it's been stripped down and simplified.

>I am now in the process of converting it to build for WebAssembly with emscripten and bind to JavaScript with embind, and implementing a SvelteKit front-end.

Since I know the SimCity code well already and have ported it to many different platforms, and put years of effort into cleaning up the old code to be well organized C++ code with clean interfaces and doxygen documentation, it's a great way to learn the new technologies, work out the approach, and prepare for porting SimTower the same way.

ChatGPT has been a huge help, especially analyzing the code and writing documentation and translating the Japanese comments, and now I'm using Aider for them both:

Aider: AI pair programming in your terminal (github.com/paul-gauthier):

https://news.ycombinator.com/item?id=39995725

Here's a code map for each source file that I made with ChatGPT that focuses on helping me get a high level view of the code, its dependencies, purposes of each file, and porting issues:

https://github.com/YootTowerManagement/YootTower/blob/main/Y...

The Nintendo Gameboy SP and DS versions of Tower have a whole lot of proprietary Nintendo SDK code and also their precious proprietary content and characters like Mario, which we are certainly not able to release ourselves under the MIT license, so I'm working with the more generic Windows version instead. Yoot owns the rights to the source code to his own games, but we can't just release stuff with Nintendo's crowned jewels like Mario and their SDKs in it as open source.

We are being extremely careful not to infringe on anyone’s copyrights or trademarks, of course! Maxis got into a lot of trouble with Godzilla just because they had a big monster on the box but didn’t mention Godzilla by name (but a review in a magazine did, which was too much), and Maxis (now EA) own the SimTower trademark, so we’re calling it Yoot Tower. The Nintendo Gameboy and DS console ports of SimTower have a lot Nintendo content (like Mario), so we definitely don’t want to make Nintendo or EA mad by infringing on their trademarks or copyrights.

Jeff Braun (CEO of Maxis) told me the story of what happened decades ago with Maxis and Godzilla, so I want to be careful to avoid stomping on anybody’s property:

>Maxis was sued by Toho. We never referred to the name Godzilla, our monster on the box cover was a T-Rex looking character, but... a few magazine reviews called the monster, Godzilla. That was all it took. Toho called it "confusion in the marketplace". We paid $50k for Godzilla to go away. In all honesty, Toho liked Maxis, they said $50k was the minimum they take for Godzilla infringement. I doubt you will need to worry about Toho, as long as there are no magazine reviews that call the monster Godzilla.

I guess the lesson is to always make sure to give your monsters a unique name, and don’t leave that up to the user’s imagination.

Re: Descent 3 Source Code

#135

I loved loved loved this game. Never understood why this concept didn’t become a whole genre. No actual up, 360 degree freedom, enemies that were smart and could snipe you. Wasted many hours back then and very eager to try this out.

Yup, that's bugged me for years. I didn't even spend that much time with the game, but I've never seen anything like it since.

Re: Descent 3 Source Code

#136
post #28

I played the original Descent over kali.net back in the day. Man, what great memories.

I've brought up Kali a few times on HN and never had anyone say they used it too. Glad to finally see another person! What an amazing piece of technology. I used it to play a modded version of Diablo's expansion Hellfire, which without Kali was single player only / LAN with a little hack. There was a great little community on that app.

I used Kali too, for Descent and other games. The chat rooms were true communities, probably one of the first times as a kid that I connected with other like-minded people (aka nerds).

Re: Descent 3 Source Code

#137

I loved loved loved this game. Never understood why this concept didn’t become a whole genre. No actual up, 360 degree freedom, enemies that were smart and could snipe you. Wasted many hours back then and very eager to try this out.

> enemies that were smart and could snipe you I had Descent 1 on PS1, and I remember the box claiming the enemies adapted to your play style. Now that I'm older and have studied machine learning and some other AI techniques, I've always wondered exactly what that meant. I'm sure my PS1 wasn't doing gradient descent (heh). What tricks were behind the claim that the enemies learned and adapted to the player?

Well, it's of course a marketing term, so I don't think it really needs to mean much.

In videogames sometimes the AI skill is adaptive in very simple terms, e.g. reaction times or see/aiming range or chance of hit are increased or lowered to keep the game engaging.

Re: Descent 3 Source Code

#140

I know I will be in a small minority, but I miss the way changes were documented and explained at the top of the source code. Makes it super easy to get a feel for it and super easy to search for comments on changes or jump to the part of the code you need to work on. Yes the drawbacks are sometimes a huge list of comments before the source code even begins, but you can quickly jump with a search for " */" It makes t…

[deleted]
Post reply on HN