3D Game with 2D weapons + enemies

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
Post Reply
kelbesh
Posts: 5
Joined: Mon Mar 20, 2017 8:46 am

3D Game with 2D weapons + enemies

Post by kelbesh »

Hi,

some time ago I made Wolfenstein mod in ecwolf (It was sort of a parody of Wolfenstein). Mostly I just changes sprites and sounds of enemies and some wall textures. I'd like to do a sequel for which ecwolf won't be sufficient anymore, as I'd like to do following things:

- Truecolor textures - I had lots of problems with 256 color palette in ecwolf, especially when I imported pictures that were ruined by conversion into 256 color palette (I know using for example GZDoom would solve this, as it supports truecolor textures)
- One level would be on a moving train. It's okay if the movement would be just faked by moving skybox or some similar effect
- Sometimes there would be exteriors with multi-story buildings. Some of those buildings would be accessible
- If possible I'd like to have a hud where you can see your character's face (like in Wolfenstein, Doom, Quake) and change graphics for the face as well (I had done this in the mentioned mod)
- It's not necessary, but if it was possible to make character say random comments in certain situations (like Duke Nukem), it would be nice
- making new enemies or changing behavior of existing enemies - if this can't be done, I'm ok with to just reskin and change sound of some existing enemies
- same as above, just with weapons

What I considered using:
GZDoom - Since the first mod was done in ecwolf, using Zdoom (or GZDoom, because of truecolor textures) would be a logical choice, but there are few things I don't like. 1) Using doors sliding to the side (instead of upwards) is a mess as you need to have each doors paired with "fake" doors outside the level. I saw this done in Wolfenstein TC for (G)Zdoom for example
2) There can't be two rooms above each other or even two things above each other. Even doing simple 3D chair requires using 3D floors as the the seat is in the middle of the air above the chair legs.

Unity / Unreal Engine - my problem here is that I would have to do anything from scratch. Player movement, monster AI, collisions and so on. I don't want to do all that when point of the MOD/game are graphics/sounds for enemies, graphics for environment and levels.

Quake / Darkplaces - I know that Retroblazer (which uses 2d weapons and enemies) was done in Darkplaces, but they somehow had to modify the code to have 2d weapons and enemies instead of 3d

Cube 2 - also uses 3D enemies, but I haven't looked too much into this one

Eduke32 - I don't really like mapster32 and I also don't see as many tutorials for adding own content (like own textures/enemies/weapons) as for ZDoom

Sven Coop - I'm familiar with mapping for Half-Life, so that's good, but problems are, Sven also uses 3D enemies and I'd rather have something that people can just download in itself instead of having to download a game on Steam first (and create accound if they don't have one)

What I need:
I need some engine (but with already programmed FPS mechanics and some basic weapons/enemies), port (like ZDoom), or easily moddable free / open-source FPS game, where I could make my retro FPS/mod with 2D enemies and weapons. I want 2d enemies and weapons, because I'd rather draw sprites (even if they don't look especially nice, beauty of the graphics is not point of the mod) than to fiddle with 3D models. For levels I'd like to be able to do actual 3D architecure. It doesn't have to be especially detailed or beautiful, but I don't want to be restrained by not being able to have 2 rooms over each other or 2 objects over each other. It would be enough if i'd be able to do levels like for example in Half-Life 1 (I did several multiplayer maps for Half-Life 1 in the past). I'd prefer if adding my own textures (for levels) and own enemies/weapons would be as easy as possible as my own textures and new enemies (or at least new looks for enemies) is one of the main points. If I won't find anything else, I'll just do this in ZDoom and somehow get over the limitations, but I don't want to do that unless I'm sure there's no better option. I don't care if it's a moddable game or port or some sort of FPS Creator as long as I can do these things in it and distribute the final product for free. For all I care it could be even free / open-source minecraft-style game as long as it has reasonably functional FPS mechanics and allows me to do things I need. I'm already searching for something for weeks and I'd rather not know how much time I already wasted on that instead of actually making something. Everytime I find something, it's not good for some reason (for example because it uses 3D models for enemies and I wouldn't know how to change that or because it's a multiplayer-only FPS and I actually singleplayer one). (G)ZDoom is overall the best thing I found so far, but didn't choose it yet, because of the cons I mentioned. It's killing me, because I already have lots of ideas for the content of the game, but I can't work on it, unless I find the port/engine/game in which to do it and decide to use it.

Do you know about something like this or maybe even a forum with suitable topic for this question? I know it might not be exactly ZDoom related question, but I know this community is very active and maybe someone who uses (or used) ZDoom had similar dilemma as me.

Thanks for any help (also if this question should be in some other topic, feel free to move it).
User avatar
Caligari87
Admin
Posts: 6174
Joined: Thu Feb 26, 2004 3:02 pm
Preferred Pronouns: He/Him
Contact:

Re: 3D Game with 2D weapons + enemies

Post by Caligari87 »

I'd say that GZDoom fits all your requirements and is going to be easier to get into than any of the others. True room-over-room is one drawback, but unless you're doing something like 20-story skyscrapers then it's really not that difficult with a little planning. Sliding/swinging doors (polyobjects) do require dummy sectors, but again with planning they're dead simple to implement.

Your note about chairs and stuff is kinda moot because every other engine does those with 3D models, not level geometry, so that's how you should plan on doing it anyway. Alternatively, use sprites or voxels for decorative objects like chairs and tables. It's worked before and would fit with the aesthetic you seem to be going for. Voxels especially would probably be helpful for you since it's basically drawing sprites in 3D.

8-)
kelbesh
Posts: 5
Joined: Mon Mar 20, 2017 8:46 am

Re: 3D Game with 2D weapons + enemies

Post by kelbesh »

Thanks, Caligari. I was already considering GZDoom, but you finally convinced me to decide for it, so I started working on the mod.

I have questions about topics I already mentioned. Maybe they were already discussed somewhere in this forum:
1) Do you know how I could do the moving train? I know there's this famous doom map with moving train , where you have to get the blue key and quickly get back (It's called NJTRAIN, I believe). Unfortunately that one is maybe too complicated for my current knowledge. Is there some basic tutorial or topic on this forum for moving train effect. A simple effect with moving lampposts or something to give the illusion of movement would be sufficient.
2) How could I do the Duke Nukem one liners? Like character would react to certain situations and say something for example when killing monsters (but only with certain probability, so only sometimes, not after every single kill) or when trying to interect with specific objects and so on. I assume this is done with ACS scripting, but I haven't really used it yet
3) How to do interactive objects? Like urinals that you can use, jukebox that you can use to play music, TV that plays movie with sound and you can destroy it (and sound stops)... that kind of thing. This might be it's own point, but it's also kind of interactive object: How would I do hostages that you can rescue and they would either A) dissapear immediately after being rescued B) run to certain point in level and dissapear there C) follow you (and maybe fight alongside you). I've more ore less seen all these things done in some mods, but for know my knowledge is too basic to understand where in the map/pk3 it's actually scripted. I "reverse-engineered" much simpler things by digging in other mods, but this might be too complicated for me for now.

Could you at least give me some hints how to do these things or where to look?
User avatar
Caligari87
Admin
Posts: 6174
Joined: Thu Feb 26, 2004 3:02 pm
Preferred Pronouns: He/Him
Contact:

Re: 3D Game with 2D weapons + enemies

Post by Caligari87 »

Sure.
  1. NJTrain is actually one of the simplest examples of a "moving train". Since level geometry in Doom needs to be mostly static, the train itself never actually moves. The ground and fences around the train are scrolling textures, and the landscape areas have a "conveyor belt effect" to move the objects like trees and lampposts. Far in the back of the level are "teleport when object crosses lines" which send the objects back to the front of the level again. It's actually very clever, and easy to understand if you open the level in an editor (GZDoomBuilder-Bugfix is the current best level editor). Kind of like when movies have a painted scrolling backdrop and objects on moving tracks for filming actors in a car. A slightly fancier example of "moving" level geometry is to build your train/car/boat/spaceship/etc in one room and make all the walls/floors "[wiki]skyboxes[/wiki]", then have a separate level that a "skybox camera" can fly through. It can be harder to get right, especially if your vehicle has to "interact" with the level in any way. This is more like using a greenscreen to filming actors in cars.
  2. You are correct that [wiki]ACS[/wiki] would be used for this one. A simple script would just use a random number to pick an audio clip to play when the script gets called. Additional random checks such as "if ([wiki]random[/wiki](1,10) <=5)" would be 50% probability for example. You'd use a separate [wiki]SNDINFO[/wiki] file to define the sounds to use.
  3. Interactive objects have many different implementations. A jukebox could be just an appropriately-textured "use" line (like those used for switches and doors) which calls an ACS script to play a random song. A destroyable TV might be a level-geometry object with a "shootable" line that triggers a script, or it may be a real object made with [wiki]DECORATE[/wiki] (old way) or [wiki]ZScript[/wiki] (new way). A simple disappearing "hostage" actor would be fairly simple, a path-following one would be more complex and require additional scripting.
Overall, the BEST place to look for documentation is the Wiki, which I've linked in several places above. It contains all the accumulated knowledge of G/Q/ZDoom modding (except full ZScript documentation which is still a work in progress). Be aware that it sounds like some of your ideas are on the more complicated side, so I'd strongly recommend starting off with some simple level making (square rooms, doors, elevators, etc) and basic monster coding (make an imp throw three fireballs instead of one, for example).

Also, I know the documentation is somewhat lacking but it's going to be worth it to try and learn ZScript since everything is moving that direction. It's sort of a combination of DECORATE and ACS which extends and enhances both. We have several threads on the forums where you can ask general "how do I" questions, or create one of your own for more in-depth requests.

Above all, I'll repeat: START SIMPLE! Modding is easy to get into but hard to master, and biting off more than you can chew is a sure recipe for failure.

8-)
Post Reply

Return to “General”