Dungeon4k

Well, the SonicRacer4k thing mutated into a voxel cave engine that got stuck at 3KB sans gameplay, and I forgot to save the sourecode for just the racer, so I started over with something new.

My main goals where to both make something that looks good, and to make something that’s actually PLAYABLE. This is supposed to be a GAME competition after all, not just a fancy technology competition.

Screenshots:

http://www.mojang.com/j4k/dungeon4k/screenshot2.png

http://www.mojang.com/j4k/dungeon4k/diamond.png

http://www.mojang.com/j4k/dungeon4k/screenshot3.png

Webpage: (with jnlp, instructions, and more screenshots)

http://www.mojang.com/j4k/dungeon4k/

Oooooooh shiny :o

Whoa! Really Nice!

Can you say winner :slight_smile:

Kev

Very cool!
Dungeon Master in 4k :slight_smile:

Very amasing ;D I agree with Kev, I think that we already have a winner. Are you planning to release the source code?

Ooh, I can actually play this one…

Yes very nice, and well the source code be release?

I wasn’t expecting to win, but I was hoping that my Robotron 4096 would at least have a fighting chance! Thanks alot Markus. :-/ :wink:

Actually, I’m quite impressed. You did a good job. Particularly impressive is the apparent lack of prerendered pixmaps. Would I be correct if I assumed that the textures are generated from a random noise generator plus a few line drawing algorithms? Also, if I’m not mistaken, there’s no 3D math being done here. Rather the walls are linearly scaled to match their precise 2D distance from the player.

The addition of lighting is particularly nice. Is that done with a palette, or do you modify the individual pixels? Also, is the map autogenerated, or is it actually stored somewhere?

Anyway, a few comments:

  1. You might want to change the name in the JNLP file to “Dungeon 4K” instead of “SonicRacer4K”.

  2. How about an executable manifest for the download version? You seem to have the space.

  3. I’m on my Mac right now. When it goes into full screen, only a small portion of the screen is used. Is this correct?

  4. How does the Pull spell work? When I try to pull one of the spheres, it seems to just stay where it is.

In any case, very nice job! It should fare well in the competition! :slight_smile:

Wooo. pwetty. ;D

Whee! =D
I’m glad you like it. I almost went nuts finishing it last night. I was at 3.8kb with no actual gameplay yet, and a few strange bugs. (You could sidestep through doors!)

jbanes:

  1. All the graphics (except the key, which is a hack) are procedural. So is the map. It initially had a hand-made 16x16 map that was a bit more fun to play, but it just felt too small.

  2. Hah, oops. Thanks, I fixed it. =)

  3. The jar is 4096 bytes at the moment… I’ll try.

  4. No, it’s supposed to run 320x240 pixels fullscreen. Mh.

  5. Stand in front of the sphere you want to pull, then back up one step and press p. It costs 10 energy to cast that spell, though.

As for the sourcecode, I’ll post that once it’s done. Hopefully it could inspire someone to make a proper dungeon master clone applet. :wink:

Blimey, I just don’t know how people do it :confused:

Cas :slight_smile:

I can only speak for myself, but it’s a lot of bad code and angst. =/

You should make a 4k alien flux. =D

IMHO, for experienced java devs this is what’s really good about the 4k contest: getting good graphics, etc, and then making sure there’s good gameplay in there too. A lot harder than just doing 4k graphics demos…

IIRC there is a complete port of the original Dungeon Master (the last version released on PC) to java, and it’s already open source.

IIRC the code is also pretty horrible :slight_smile: and no-one’s updated it for ages.

Yep: here it is:

http://www.cs.pitt.edu/~alandale/dmjava/index.html

I played it quite a bit, but to be honest it’s quite a dull game by today’s standards; unlike some other oldies, it has dated particularly poorly. Probably mainly because 3D graphics in particular moved ahead light years, and we’re now spoilt by the interactivity of MMORPGs…

PS: I wrote a real-time raytraced DM clone some years back with free movement, and some funky stuff like slightly exaggerated perspective (so that walls have a slight curve to them, which makes them look more realistic, but is a PITA to do if you’re using traditional triangle rendering) and funkier lighting (because it’s easy to do once you’re already raytracing).

If someone (I’m guessing Markus, like me, has nowhere near enough spare time :slight_smile: given his other projects) wants to start a “modernised” DM clone suggest doing raytracing for it to give it a unique new feel…it’s really immersive having realistic lighting. Although I never got further than trivial AD&D combat with boxes (didn’t get as far as adding sprites for monsters ;)) and only had it in black and white, you could get very far these days using pure procedural textures and lighting, doing all rendering in software (and without those boring triangle renderers ;D)

An online multiplayer version of Dungeon Master would be pretty cool, perhaps I should make a Project Proposal and see if anyone else is interested in helping out.

Andy.

[quote]If someone (I’m guessing Markus, like me, has nowhere near enough spare time :slight_smile: given his other projects) wants to start a “modernised” DM clone suggest doing raytracing for it to give it a unique new feel…it’s really immersive having realistic lighting. Although I never got further than trivial AD&D combat with boxes (didn’t get as far as adding sprites for monsters ;)) and only had it in black and white, you could get very far these days using pure procedural textures and lighting, doing all rendering in software (and without those boring triangle renderers ;D)
[/quote]
You know, for something like Dungeon Master, Perlin Style Procedural Textures are really sufficient. Adding actual raytracing would be an unnecessary overkill. i.e. Since you’re stuck to a limited number of moves and directions to face, the 3D coordinates become stupidly simple to compute. Once you have those coordinates, you just plug them into the procedural texture generator and out pops a perspective texture. Raytracing is far more useful for complex surfaces with surface coordinates that are difficult to predict. :slight_smile:

Ah. I wasn’t clear enough: My clone had full 360 degress movement, just like Doom. If you’re not worrying about 4k limits :wink: there’s really no reason to go all EotB these days ;).

Ultima Underworlds is a basic example of how to make all the gameplay and UI work effectively, although obviously it’s quite easy to do better these days, when you can laugh in the face of “optimization” (UU was happily doing quake graphics and richer gameplay on hardware 1/2 the speed of what Quake required as a minimum to run; PS: reminds me of the Carmack thread; carmack == great programmer? My arse. Go play UU; came out 2 years before even Doom1).

[quote]Ah. I wasn’t clear enough: My clone had full 360 degress movement, just like Doom. If you’re not worrying about 4k limits :wink: there’s really no reason to go all EotB these days ;).
[/quote]
Ah, I see. Neat! So were you actually doing Ray Tracing, or were you using an advanced Ray Caster? I really can’t see a Ray Tracer being efficient enough without some SERIOUS optimizations. Not that it isn’t possible, just a bit tricky. :wink:

[quote]Ultima Underworlds is a basic example of how to make all the gameplay and UI work effectively, although obviously it’s quite easy to do better these days, when you can laugh in the face of “optimization” (UU was happily doing quake graphics and richer gameplay on hardware 1/2 the speed of what Quake required as a minimum to run; PS: reminds me of the Carmack thread; carmack == great programmer? My arse. Go play UU; came out 2 years before even Doom1).
[/quote]
Indeed. In many ways I think Chris Roberts and the rest of the Origin team were the original masters of PC Game Programming. The only reason why Ultima didn’t get its due was because it was an RPG. And RPGs of the time tended to appeal to only a small subset of Players. The titles that got away from that (e.g. Wing Commander) showed extreme success and popularity. Now if Origin had only known how to make money off of that popularity…

An interesting factoid is that Ultima Underworld was produced by Looking Glass Studios, the same people who produced such cool titles as Flight Unlimited, Terra Nova, and System Shock. They really had a history of producing innovative gameplay technologies. Sadly, they were only slightly better than Origin on capitalizing on those technologies. :frowning:

The problem with the java dungeon master code and pretty much all other dungeon master clones out there is that they all try too hard.
Cool 3d graphics does not make a game easier to play, and there’s absolutely no need to add 360 degrees movement to a tile based game unless you’re making a wolfenstein clone.

It’s like seeing an opengl version of excite bike… it just feels wrong.

Um, IIRC it was, technically, rayCASTing, since it didn’t do each pixel, it did each vertical column of pixels using one cast, and then algorithmically (ignoring perspective now) worked out what to paint inside the column.

It was full of cheap tricks because performance did matter, a bit, on java 1.2, so I’m glad the source is nowhere publically visible (I’ve lost it). The code probably looked horrible.

Still, it was easy to do, and it was really nice wandering around with decent lighting and curving walls.

PS: don’t knock 360 movement in an RPG untl you’ve tried it; I mentoined it precisely because it’s a lot nicer than I would have tghought until I actually had an example to fiddle with.

I’m not. I’m knocking 3d movement in dungeon master clones.
And, yes, I’ve tried it.
They even had the nerve to SELL some games like that. (case in point, Lands of Lore 3)

Sure, Ultima Underworld was a better game than, say, Eye of the Beholder 3, but that wasn’t because of the 3d engine. The highly underrated Dungeon Master 2 was way better than Ultima Underworld.
This is all, of course, imho.

[edit:]
360 movement in an rpg is fine for games that aren’t trying to be dungeon master, such as neverwinter nights, wurm online and fable. But just slapping a 3d engine on DM is annoying and wrong.

Imho. :wink: