Hi!
So here’s a thing. A thing called DungeonScript, which you can find right here. You can use it to make games, or play games, like this new 3D edition of Dungeon Janitor. Go! Enjoy!
The other day Blue Manchu’s Jon mentioned he wouldn’t know where to start designing a Dungeon Master style game. That got me wondering how I’d start designing a Dungeon Master style game, and what tools I’d use. Immediately I thought of increpare’s very wonderful PuzzleScript, which is great for turn and grid based puzzle game development, but, like, in first person. That’d be really cool, I thought. If only PuzzleScript would draw in first person.
So that’s what DungeonScript is. It’s PuzzleScript in first person.
What’s most wonderful about PuzzleScript, and therefore also DungeonScript, is that you can build and share an entire game using just the editor webpage screenshotted above. Everything from the art to the audio to the game logic sits in one simple text file, and there’s a share button right there on the screen. Some fantastic games have come out of PuzzleScript, and I’m hoping people will use DungeonScript to create crazy new worlds for us to explore.
So… hop in! Have a play. I’d love to see what you come up with.
<3 Farbs
PS: Here’s a link to the DungeonScript source, in case you’re into that sort of thing. You won’t need this if you’re just making games with it though.
PPS: If you grabbed the source just after I posted this you might want to try again to get version 1.1. 1.0 didn’t work in firefox or safari. Erp.
PPPS: If you grabbed the source before version 1.2 you might want to try again – I just fixed a bug with checkpoints (October 2017).
PPPPS: So… 1.2.1 is better. I forgot to add that fix to the export code. (October 2017).
]]>So… here’s something new.
While working on something totally unrelated* I saw how much wing shapes opened up spaceship design, and I thought damn, I wish I’d known that when I built Captain Forever. Then I remembered that I’m still building Captain Forever, in so much as I’m rebuilding it anyway. So I added space wings! Of course, space wings make no sense and decorative modules would starkly oppose the CF design, so… they’re shields. Which totally works. Think of them as ablative shielding for re-entry, serving double duty as laser fire absorbers. They’re lightweight and can take a lot of damage, but you can’t anchor other modules to them so they don’t replace girders. I think they’re pretty neat!
These won’t appear in Captain Forever Trilogy: Captain Forever because I want to keep the CF module pool constrained, but they will appear in Captain Forever Trilogy: Captain Successor and Captain Forever Trilogy: Captain Impostor. Also apparently I didn’t think ahead when naming any of these things.
After adding the shielding I saw opportunities to revamp or completely redesign other modules, so I’ve been sweeping through the module list doing exactly that. You can see here that I subconsciously copied the rounded girder shape from Remix, for example. Sorry about that Dean & Brian! Most modules have simply been tweaked to add variety of line intensity, which adds a surprising amount of texture to the screen. A handful of others either looked weird in the new renderer (eg bubble shields) or have always looked a bit terrible in my eyes (eg torpedo launchers), so they’ve been redesigned completely. I’m super happy with the results. It’s weird, but 7 years on CF is finally starting to look like it did in my head back when I started building it.
<3 Farbs
* Or maybe it’s not unrelated. Either way, it’s a surprise :)
]]>Hi,
I’m working on a thing! It’s a Captain Forever thing! The Dawn Star was unwell, with the renderer failing on many machines, the design disappearing into the wilderness, and a secret new Blue Manchu project dominating my schedule. I decided to scale my CF ambitions down to something I could finish, and now it’s done! Almost. It’s 90% done, and I’m working hard on the other 90%. The new project is Captain Forever Trilogy, a re-release of the first three games (Forever, Successor, and Impostor) in glorious full screen, high framerate, GPU accelerated glory. The flash software renderer behind the original games is too slow to run fullscreen, which is why the GFX have been redone in this mode. They looks a little different, but I still like ’em.
Tonight I’m working on the ?????????? part which unlocks after you complete the three games, then it’s on to options menus, polish, packaging, and release. Woo!
Speaking of release… I haven’t figured out how to do that yet. These days a downloadable game is either Minecraft, on Steam, or dead in the water. So I’ll aim for Steam. But even then, I can’t just leave the supporter program running and give out steam keys to all new supporters. If you do that people buy copies with stolen credit cards, sell the keys on G2A or similar, and leave it up to the real card holder to reverse the transaction. I’d not only lose a sale, but I could end up paying a fee for credit card chargebacks. Multiply this by a few thousand and you can see why it’s not my preferred option. This is why we can’t have nice things. It’s also why my options are limited to:
1) Try to release Trilogy on Steam, but only give supporters access to a non-Steam download.
2) Try to release Trilogy on Steam, give existing supporters steam download codes, and rework the supporter system so new supporters pay less but don’t get Trilogy.
2a) The same as 2), but shut down new purchases into the supporter system. Of which there are now very few.
Thoughts?
<3
Farbs
My, what a snazzy new helmet. The pilot’s reflection is only really visible when lit by something particularly bright, which is all the excuse I needed to show off the new explosion effect. It’s not subtle.
I also ported the ping effect to GPU, but though my experiments with integrating it into the vertices of the background geometry looked cool, they failed to express “communication wavefront”. So it’s just a circle again now. I then found success with the new road renderer, which shows transit routes as dashed lines on your HUD. These look quite nice as they wind along ahead of you, and they add a lot of structure to the environment.
Oh, and I finally fixed the bug that causes a camera jump whenever modules are added to or removed from your ship. That took me, what, six years? Anyhow, the scrolling adjusts smoothly now. So that’s nice.
Progress!
<3
Farbs
Why, they just click on a module of course! Then this happens:
Neat! In this mode module shapes and levels are clearly visible, and building is super easy. Once you’re finished building you simply hit the thrusters (or any other key) and…
…the renderer fades back to gorgeous lighting + background + details + etc mode.
Other things you might notice here:
Next week I’ll port VMEDS to the new text system, and very likely change the button layout, add colours, and hopefully even add some map icon characters. Fun!
<3
Farbs
*I haven’t added these yet.
]]>
Other things you might notice:
Dynamic lights! There is no ambient light in these images, just light from the thrusters, laser bolt, and running lights. The Dawn Star was built to handle a ton of dynamic lights, and it’s super exciting to see these in action.
There’s a new command module! I don’t much like this direction though and plan to scrap it and try again.
It’s a standalone game now! Okay maybe you can’t see that in these images, but it’s still true. I’ve ported The Dawn Star to AIR, which means it now runs outside the browser just like a regular game. It also runs on more systems and at a much higher framerate.
It’s great to be back on this and making progress again. Next I’ll add GPU-based font rendering using Signed Distance Fields, which should be fun. After that I’m considering a complete UI overhaul – more on that later!
Later!
<3
Farbs
Oh my. As you can see, I’ve built a new girder module, and it’s a million times more interesting than the last one. The trick, it turned out, was to stop trying to use software built for artists and instead find software built for engineers. OpenSCAD could be a game changer for me.
The cool thing about this tool is you build model files by writing code. There’s no clicking and dragging and getting lost in a maze of modes and menus, just line after line explaining how the model is built. Given that’s exactly how my original 2D graphics worked I find this far, far more intuitive. I’m excited.
What module should I do next?
<3
Farbs
For the next two weeks you can pick up the Card Hunter basic edition for around half price ($12 or more), and get a bunch of other card games as a free bonus. We launched Card Hunter in late 2013 and have since then published a ton of updates, with lots more to come. If you haven’t seen Card Hunter yet, or haven’t logged back in for a while, head on over and check it out.
<3
Farbs
The problem was, that didn’t result in very much surface detail and grew increasingly complex as I added more detail. Manual modeling just didn’t seem feasible, especially since I have almost no experience with it.
This week I’ve looked into kitbashing, which might yield much better results. The idea there is to take many little pieces from other models and cut and arrange them to make new ones. This can be a very fast and effective way to greeble a model, so should work quite well here. It can also result in highly unoptimised models, which are slow to render and generally unusable in a game. However, since I’m pre-rendering all of my models into sprite sheets I don’t need to worry about that much at all. Hooray!
My next step is to figure out what software to use. I’ve had a lot of success using Sketchup for simple models, but it gets unwieldy as I add detail. 3D Coat on the other hand seems to work well for blatting on techno-greeble-chunks but hasn’t been useful at all for fine detail. So, my new plan is to build very simple and precise outlines in Sketchup and then detail and texture them in 3D Coat. Wish me luck!
<3 Farbs * Adding co-op to the Card Hunter campaign, which will hopefully be finished soon.
]]>I released a new build a few days ago, this time featuring an actual in-game module being rendered by the actual in-game module renderer! There was a lot of behind-the-scenes work involved in this, and I’ve never built anything like it before, so I’m incredibly relieved that it works.
The renderer uses Multiple Render Targets, or MRTs, which are a new feature in flash. They are pri-tee cool. Now when I draw a screen full of modules I can render out an image showing their diffuse colours (what colours are painted on them), an image showing their lower frequency circular harmonic light radiance (how much light hits each pixel from every direction), and an image showing their higher frequency circular harmonic light radiance (more detail for the lower frequency stuff). Here are some pictures!
Diffuse
You can see here that I haven’t actually painted the command module yet – it’s just flat white, so everything you see in game is lighting detail
Radiance low harmonics
I might be using the word “radiance” incorrectly. I’m pretty new to all this!
Higher harmonics
It’s not really obvious what’s happening here, but trust me it’s cool and useful.
Accumulation buffer
This is where all the lights are added together. Since light brightness isn’t proportional to pixel value, this looks a bit funny until…
Backbuffer
This shows the accumulation buffer translated to pixel values, and is what finally appears on screen. Pretty!
So, what’s the point of this? The point is lights. Many, many, many lights. Lights from thrusters, lights from muzzle flashes, lights from explosions, and lights from missiles and torpedoes and laser bolts. With this information stored in buffers already it becomes incredibly efficient to draw lots of little light sources, which should be perfect for a game like this, and would have been impossible with regular forward rendering. I, uh, don’t actually have any of these lights in the game yet, but I expect they’ll look awesome. PEW PEW!
—
I ran into quite a few issues getting this working, mostly due to a an apparent absence of documentation. I couldn’t find a single article from Adobe about how this works, so had to cobble together an understanding via other people’s source and hours of trial and error. If you’re also looking to use the new flash MRT feature you might find these notes useful:
I hope this helps someone out there.
<3
Farbs