spinnylights/some_sort_of_game_engine

help

Opened this issue · 3 comments

im an idiot who has been following this for a while but, like, i dont know how to code or anything so

can i actually play the current built or not

Hi!

Right now this engine is still in a pretty preliminary state—all it basically does is set up parts of the graphics infrastructure and give you information in text form about what's happening while it does that. If you do actually want help on compiling and running the build from this repo I'm happy to assist further in that direction, but it probably won't be very interesting unless you're into Vulkan. The most recent playable build (for a conventional defininition of "playable") is the most recent Unity build, which you could also call the "reference build" for this engine; that's available here (kind of confusing place for it I know, that's just how things have worked out so far).

If that's all you're looking for for now, then you need read no further. But if you're curious in general what's going on with this game, I really feel like I should say something to someone about it, so I'll continue in that vein.

Neither Lily nor I is quite sure at this point what the best way is to keep everyone informed about what's going on with this project. What's been happening for some time now is that Lily has been working full-time on other games (so we can keep the lights on etc.) and I've been working partially on those with her and partially on this engine. Once this engine can keep pace with the Unity build in terms of play, Lily's going to go back to making new graphics and areas and things for this game and we're going to keep going as we were before.

For quite some time now I've mainly been studying mathematics when I'm doing work for this engine, in absence of actually getting this engine further codewise, because I reached a point in the code where I wasn't sure how to write what I needed to and realized I needed stronger math skills to progress in the way I had in mind. I've gotten to the point now where I know single-variable calculus about up to the fundamental theorem of calculus and linear algebra about up to the concepts of basis and dimension. The calculus is starting to really feel like a powerful tool around now, whereas the linear algebra is still kind of coming into its own in my mind I would say. I think once I get to inner products in linear algebra I'll have all the math I need for the time being as far as this engine is concerned.

The reason I need to know this kind of math better is because graphics techniques are largely built on top of those subjects (especially linear algebra). Much of modern computer graphics is based on the physical treatment of optics to some extent, which uses similar mathematical tools. I have some really great reference materials for computer graphics, and I can follow the programming/computer science aspects, but a lot of the math is still a bit over my head (although I understand it much better today than I did a year ago).

Vulkan I already feel pretty good about at this point, to the extent that I wrote a fun program a while back that procedurally generates an animated film. Here's a "sneak peak," because I still haven't finished the music, although the visuals are all done. I've kind of struggled to make time for the soundtrack in the midst of everything else right now but I will sooner or later. That aside, generating the visuals was a nice demonstration to myself of how far my Vulkan skills have come in a practical sense. Once I know more linear algebra, I'll be able to do 3D with confidence, and start working on getting sophisticated lightning effects and things like in the Unity engine. I know how to write shaders and such now, so it's really just a matter of learning the math.

I'm not very sure about how to keep people informed about what math I'm studying. For a while I was posting my exercises in another Github repo but I started to feel kind of weird about doing that and haven't in a while. Keeping a blog where I can talk more conversationally about it might be better, and more interesting to other people, but I'm kind of reclusive by nature, so that's not really the sort of thing I would do without perceiving an existing demand. I know people do want more information on what's happening with the game, but I don't know if the same people want to hear my thoughts on the wonders of parametric curves or the intriguing concept of an infinite-dimensional vector space or whatnot. That is progress from my perspective, but my guess is that people really want like, a new playable build, or at least some cool video or screenshots or something.

I'm really close to at least getting the engine to "do 3D graphics" in some basic sense now, like within months I would say, depending on how much time I can set aside for linear algebra. Once we get to that point then there can be a continuous stream of builds and video and screenshots and things as the existing game comes together. I'd like to do that part really out in the open and talk a lot about it with everyone and things—I think that will be fun since there's so much interest in the game itself and perhaps to some extent in game development generally.

In closing I guess I'll say that although I knew it would be a lot of work to make an engine like this "from scratch" I didn't quite realize just to what extent—I feel almost like I'm getting another degree with all the stuff I have to learn. At the same time I still feel glad I decided to go for it (and that Lily encouraged me to in the first place, since I probably wouldn't have otherwise). I still really wish there was a wider ecosystem of "free software" game dev tools. I also just wish there was a wider palette of types of game dev tools instead of just like a few "monolothic" engines and then assorted graphics and sound tools and things. My hope is that this engine will be useful not only to us but also to other people, including people who want to make small games quickly. Crypt Underworld is a big slow game to develop, but we often make much smaller games, so even we would like better support for that. I also think it would be neat if you could make "big" games in a way that better preserved the advantages of making ad-hoc "in house"-type tools.

—Zoë

thanks for replying, it’s nice to talk to someone on the project after following it for so long. having a discord is probably what i would recommend for keeping people up to date on a platform people actually use, but discord is pretty lame. i will check back every few months to see if i can piss on things yet. bye and keep doing what you’re doing, it sounds important and very hard. goodluck

didn’t mean to close that