Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

David Lindsey Pittman

21
Posts
5
Topics
279
Followers
6
Following
A member registered Nov 08, 2014 · View creator page →

Creator of

Recent community posts

Hi Kristof, glad you got it working!

It's a simple engine, and entities can only use AABBs for collision. Their bounds are defined in a RosaCollision component; look for the variables HalfExtentsX/Y/Z in the config files.

Static geo can use more complex collision, by exporting one or more convex meshes along with a renderable mesh (in the other export script, xmlbrushexport.py). In this game, I think I only used the simple box and wedge primitives in Raw/Brushes/Core.

The ExpectedVD assert is probably because the mesh doesn't have a UV vertex stream, as you guessed. Doing an auto unwrap in Blender should fix it.

David

(1 edit)

Hi Phariax,

Most of the pipeline is automated through the Projects/Main/Tools/bake.py script. You'll need to edit that to point at your paths (see BLENDER_DIR, PYTHON_DIR, etc.) and there might be some other headaches—looking at it again, I see this was written for Python 2 and there's a few things to change if you use Python 3 (print 'foo' becomes print('foo'), mainly). It also expects Cygwin to be installed, for the cp and mv commands.

If you can get that script working, then you should be able to drop new .blend files into Projects/Main/Raw/Meshes, and then bake.py will invoke Blender on the command line and export the mesh to /Intermediate/Meshes (using that xmlmeshexport.py exporter). Then it will run MeshCompiler to convert that into the custom .cms format.

None of this is documented, because the engine was never really meant for anyone but me. But I'm happy to help if you've got any other questions!

David

Edit: To answer the question directly, the .mesh file is the XML file that MeshCompiler expects.

Thanks so much for all the useful information! I'll try to get this right in my next game.

(1 edit)

Hey Guntha, thanks for bringing this to my attention. I'll look into it for future games.

Since I'd still want to support rebinding (and display the correct key names), I think I'd still want to use virtual keycodes, but I could use scancodes to initialize the default bindings? Could you suggest some games that have the behavior you'd want, and which also support rebinding, so I can research how they work?

Thanks!

It eventually grew on me in replays, maybe because it's so big that there were always parts I didn't remember as clearly as other missions. And Burricks are good boys.

(Reposted from my infrequently updated dev blog at dphrygian.com/wordpress)

I made a game about hunting Werewolf Hitler and punching Nazi zombies in the face. It’s called Schloss der Wölfe (“Castle of the Wolves”) and it’s out now for Windows and Linux: https://dphrygian.itch.io/schloss-der-woelfe

Schloss der Wölfe (or “Wolf” for short, because I’m not going to keep typing ö) was conceived as a short personal game jam, in the vein of the 7DFPS jam but on my own schedule. I started work on it on September 15, and intended it to be done by September 25. It’s now almost Halloween and I’ve just launched it, so… what happened?

For starters, it was probably a poor idea to do a game jam during a real crunchy month at my job. I made very slow progress the first weekend and had no time or energy to work on it midweek, so by the second weekend, it was clear that I wouldn’t hit my deadline. But I still wanted to finish it, so I let it slide into October. It’s a good game for Halloween-month, after all. Then it slipped the mid-October timeframe, as I got sidetracked with various tech detours and let the scope of the project grow beyond the original plan. But I was determined to finish it by Halloween, and here it is!

Wolf is the third in a series of minimalist first-person games I’ve made over the past two years, after NEON STRUCT: Desperation Column and Li’l Taffer. These three games are similar in design to my commercial games of the 2010s (EldritchNEON STRUCT, and Slayer Shock)—it’s what I love to make and what my engine was largely built to do—and one of my goals for each was to test new features and improvements to my engine by forcing myself to ship something small instead of noodling on tech with no real target.

I had begun some initial work on Eldritch 2 earlier this year—and I hope to get back to it now that Wolf is done—but that project got held up for months as my life got busy with buying a home, summer parenting duty, and the aforementioned crunch, among many other things. So Wolf was also a good opportunity to clear my mind and shake off the rust after a few months away from regular work in my codebase. As such, I let myself explore avenues that I’d normally avoid during a game jam, such as:

  • Reorganizing my deferred renderer G-buffer to replace the reflectance channel with an implicit reflectance (determined by metallicity) and freeing up a channel for ambient occlusion maps.
  • Adding new features to the texture generator that I developed earlier this year for Eldritch 2, including support for creating AO maps.
  • Completely rewriting my procedural geometry generator functions, to simplify the process of adding new shapes.
  • Replacing the simple echo filter I’d been using since 2018 with an actual reverb filter (which involved a crash course in digital reverb design—fascinating topic that I never knew much about before).
  • Implementing console commands, finally.

So, yes, a lot of tech detours; but it accomplished that goal of shipping something new and not just leaning on what my engine could already do to make a game as fast as possible. I consider that a success!

Enough about tech, let’s talk about the game. This is the original pitch, as I wrote in my email thread of potential game jam ideas:

Something I’ve never done before is a zombie game, and I have a feeling zombies in my signature toy aesthetic could be funny AND tense. Some light survival mechanics in a mid-sized generated city (or castle?) and a simple L4D style goal… that’s compelling. Maybe make it a Wolfenstein-core Nazi zombie thing for added punch. Could also use the comics style of Fray [an abandoned game project of mine, not the Joss Whedon comic], and really lean into a classic Captain America vibe. Call it “Schloss der Wölfe” (Castle of the Wolves) or something. Codename could be “Wolf”.

Of course, I’m not the first person to discover that the only thing better than killing Nazis or killing zombies is killing Nazi zombies; but as I said, I’d never made a zombie game before, so it stuck. The original idea was more stealth- and survival-oriented, but as I began to explore the concept and came up with Werewolf Hitler (initially as a joke that mi-i-ight be a stretch goal at best, but eventually became the central premise of the game), the tone got sillier and the genre shifted toward action.

I nailed down the high-level shape of the map and the pacing beats pretty early, but the bulk of the level design didn’t happen until this past weekend. In between, I focused on the mechanics: splitting my hands state and weapons system apart to support dual-wielding (the left hand can only punch, but it is technically a weapon in the code), optimizing AIs for zombie hordes, adding a simple zombie toxin status effect, and a whole lot of bespoke scripting for the (ahem) big boss fight. Also, it’s truly surprising to me that I’d never previously shipped a game with explosive barrels. I’m happy to finally check that one off my gamedev bucket list.

I’ll probably share more as I unwind over the next few days and reflect on this project. It’s my favorite thing I’ve made in a while, but it’s been six weeks of intense work, and I’m tired.

Thanks!

Thank you!

Teeny tiny bugfix to add a missing section of wall in one room prefab.

I've released the source code and raw assets for NEON STRUCT: Desperation Column into the public domain. This includes the entirety of my Rosa engine in its current incarnation.

Due to licensing issues, this won't compile or run as-is. I've simply removed the Steamworks SDK without fixing any of the dependencies on it. You can either change BUILD_STEAM in versions.h to 0, or download the SDK yourself and put it in Code/Projects/Rosa/src/steam.

I've also had to remove some audio files that were not licensed for redistribution. Those can be unpacked from the shipping .cpk package files with the FilePacker tool if you're trying to build this from scratch.

I don't really anticipate anyone would try to build this from scratch, it's more released for archival purposes. But it's public domain now, so do what you want with it!

https://github.com/dphrygian/zeta

(1 edit)

Thank you! The outlines are a screen-space process, using differences in both depth and normal to detect edges. There's a few artifacts, especially around doorways, but overall I'm very happy with the results and I appreciate you mentioning it!

Thanks! Most of the UI, including the options menu, was borrowed from prior projects. That's the only way I got this done in time!

Thank you! I use a custom engine, and I try to keep it pretty lightweight.

Thanks! It's a mix of procedural layout and some hand-placed rooms. The layout stays the same when you die and respawn, but starting a new game will generate a new layout.

Thanks! I'll probably do a balance/tuning pass later this week; I was in a hurry to wrap it up for the 7dfps deadline, and I only had time to play through the game once before submitting. I agree, the enemies are too easy!

Calling it done, with a few days to spare for bug fixes or early feedback: https://dphrygian.itch.io/neon-struct-carrion-carrier

Known issues:

  • Tuning hasn't happened at all yet, everything is first pass gut instinct numbers.
  • I'm expecting performance to be a problem, the number of shadow casting lights is pretty outrageous.
  • No tutorialization, esp. for climbing, sliding, and other non-standard moves.

I've put a beta build up for testing: https://dphrygian.itch.io/neon-struct-carrion-carrier

Loosely inspired by John-Charles Holmes's "CYBER COURIER 19XX" cart (and with his permission)...

...I'm making a spinoff of my 2015 cyberpunk stealth game NEON STRUCT (https://minorkeygames.itch.io/neon-struct).

The year is 1985, and you play a cyborg employed at a family-owned courier service. Your cybernetically-enhanced legs make you the best at the job, but a mega corporation is threatening the future of the business and your career. Take jobs to earn money to pay to recharge yourself to take more jobs to earn more money to pay more to recharge yourself again to take yet more jobs...

NEON STRUCT: Carrion Carrier is a first-person game with a focus on fast movement and resource management under intense time pressure.

I've been (and will be) mainly sharing progress on this Twitter thread, where I can embed larger GIFs: https://twitter.com/dphrygian/status/1302118566486061057