I have this game engine...

Johannes Pfau via Digitalmars-d digitalmars-d at puremagic.com
Sun Nov 1 10:17:41 PST 2015


Am Sun, 1 Nov 2015 11:33:21 +1000
schrieb Manu via Digitalmars-d <digitalmars-d at puremagic.com>:

> So, I just wanted to put this idea out there, and see what other
> people make of it.
> 
> I have this game engine (https://github.com/TurkeyMan/fuji), it's
> lived for about 12 years now (first commit in 2004, and it existed
> prior before source control). I called it 'Fuji' (a modest, yet
> pleasing and attractive mountain). It supports (or has supported)
> shit-loads of platforms; I'm a game-engine dev for life, and I have a
> fetish for portability, and niche platform support.
> Needless to say, it has had a LOT of time and energy put into it, and
> I would say it's infrastructurally better than most proprietary
> commercial game-engines I've worked with (although there are some
> missing features, I just implement what I need), mainly in that I have
> the luxury to aggressively refactor when design decisions turned out
> to be mistakes, and no deadlines to meet.
> It is a very good example of what we use in real-world AAA gamedev.
> 
> It's written in C, obviously. It has comprehensive bindings for D,
> which I'm pretty sure I'm the only one that's ever used, and I use it
> in all my modern D projects.
> 
> Anyway. I'm spending less time on hobby game-dev these days, obviously
> I'm not going to make the worlds next big game engine... Hobbyists
> will just use Unity. I'm not quite sure what to do with it.
> 
> I have been thinking about full-scale porting to D, and it would serve
> there is a massive-scale long-term codebase, with portability as it's
> primary objective, and I don't know of another project quite like this
> in the D ecosystem? Also, perhaps D gamedevs might be interested in an
> all-D game engine they can use and hack on.
> 
> So, when I think on that, I consider what would be lost... and the
> answer is; almost all platforms. But this is something that can be
> addressed.
> 
> If people find this to be an interesting project, and I do take some
> time to do this port, what I'd really love is to work together with
> some of the niche platform support guys and use it to stress test
> toolchains for various platforms. I'd also like help from guys like
> Johannes to make regularly released builds of some console
> cross-compilers available so that it can keep on building.
> The CI of this project for those platforms would more-or-less verify
> that the toolchains and druntime+friends are working.

Sounds like a great idea!

I can certainly build the GDC toolchains*. But I guess the first thing
you'll need if you want to use Dreamcast, NDS and other low memory
systems is a @nogc druntime port? I had a look at this some time ago and
there's some work to be done until we can build a druntime completely
without GC.



*
or better: also provide build scripts. We now use docker.io containers
to build the binary GDC toolchains. Building a toolchain with the latest
GDC version is as simple as running one docker command:

docker run
-v ~/shared-dir/:/home/build/shared #results will be saved here
-t jpf91/build-gdc /usr/bin/build-gdc build
--toolchain=x86_64-w64-mingw32/gcc-5/x86_64-w64-mingw32

It should be easy enough to add support for console toolchain build
scripts.

Docs:
http://build-gdc.readthedocs.org/en/latest/
Sources:
https://github.com/D-Programming-GDC/build-gdc
https://github.com/D-Programming-GDC/build-gdc-config
https://github.com/D-Programming-GDC/build-gdc-docker



More information about the Digitalmars-d mailing list