Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Risto Paasivirta

Members
  • Content count

    9
  • Joined

  • Last visited

About Risto Paasivirta

  • Rank
    New Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Risto Paasivirta

    DoomLoader for Unity

    Here you go: DoomLoader_v4.zip The increased filesize is mostly due to music You can now fully play shareware Doom1 inside Unity! Added rest of the map linedefs from Doom shareware campaign Optimized linedef and sector controllers to use common formats and reduced ticking Fixed a lot of the linedef behavior in fringe/niche cases, looking at you E1M7 pillar of doom There is now PlayerDamageReceive variable in GameManager to make the game easier (doesn't affect nukage) Presynthesized music Added Baron of Hell Made a bytereader class to reduce repetition of code when reading raw wad data Flipped the V coordinate of floors and ceilings, they should be correct now (E1M8 teleporter) There is a modified OBJ exporter script that takes material names from textures used correctly Fixed oneshot door keycards being in wrong order There are couple hardcoded parts to fix bugs in maps or to enable old hardcoded behavior (eg. sector tag 666) Commented a lot of the code Missing Features: Menus Save/Load Minimap Powerups Monster infighting (monsters can damage each other, but they don't aggro) Gibbing Known bugs: Teleporters can place player too close to walls/ledges Corpses on dynamic sectors might stay hanging in the air Walking between things might push you on top of them AI sometimes walks off the ledges unintentionally Monsters are unable to walk through certain areas, such as a keycard door that is open. This is very noticeable with the pink demons, but applies to all. The reason for this is that heatmap doesn't get updated, or the original calculations were not good enough.
  2. Risto Paasivirta

    DoomLoader for Unity

    That's a nice idea. Knew about this method, but didn't want to go there. Gonna try it out, would love not having to work with so many decimal places to position the weapon sprites. Soon.... All maps are done and working correctly. I will clean up the codebase, document and comment as much as possible.
  3. Risto Paasivirta

    DoomLoader for Unity

    Multiple cameras are mostly to get the skybox working with how Doom would, it can be crunched down to a single camera, but certain areas (the outside area for E1M1 for example) will not look correct. The weapon sprite placement was a huge trial and error to get it not clip into walls, get light correctly from player position, while being easily movable per-frame. I can look into making a simpler setup where the weapon can be positioned more intuitively. If you are still interested we can be in contact and iron out the issues together.
  4. Risto Paasivirta

    DoomLoader for Unity

    Hi, sorry for not reading this topic for a while. My job really got to me during late winter and I didn't had the energy to finish up the shareware campaign. I also started to look into making the meshes into the ProBuilder format the Unity now ships with. that way people can load their old doom maps and continue editing them. I'm working on the project again and I hope to have full shareware Doom done this week (without options or load/save yet). The new version might differ a bit from what I last posted, but I will take this project as a weekend hobby now and try to be more consistent. Will setup a website and continue publicize there this week, I will post information here once I have the site up and running.
  5. Risto Paasivirta

    DoomLoader for Unity

    First three maps are now fully playable. Create a new Unity project and extract the zip contents into assets, open up the /assets/DoomLoader/test_scene.unity and hit play DoomLoader_v3.zip - Went back to rotate sprites in shaders, billboards now keep y = up. Projectiles rotate omnidirectionally - Fixed AxMath.CartesianLineF to work when direction was true compass direction - Monsters and things are now in separate layers, as well as local player - Made it so you can no longer shoot yourself, don't know if this is a good thing - Added sectors and linedefs to the fast lookup cache, similar to triangles - Created TheGrid class for the caches, breath and pathfinding - Made AI class and heatmap calculation based on the grid data - Dynamic meshes now add Rigidbody component to avoid any problems or performance loss - Items can now be picked up. There's a PlayerInfo script that holds player inventory. - Keycard doors now require the correct key - Created hud to show player items - Added pain and pickup overlay to color the edges of the screen for a short time - Player plays sounds when poking, getting hurt or picking up items - Pokeable is now boolean to make player do the sound if the poke failed - There's a boolean to allow pokeable for monsters - Changed GameManager to refer to local player and made triggers to query for PlayerThing instead of localplayer - Player is now a monster-type thing, as well as demons - Made GameManager to skip frames after loading a map to stabilize Time.deltaTime - Things now has unified gravity handling - Sectors have a property of being dynamic - Player casts breath that is used for making noise and generic pathfinding - Made physics collision matrix to optimize collisions and to disallow medikits to activate lifts - GameManager now handles loading of wads and maps - Zombies can now use common lifts and doors... monkaS - Monsters now have assigneable behavior that controls the intelligence - Renamed fivewaysprite to monstercontroller - Monster controller now refer to a common animation frame struct that holds the sprites for different rotations - Mesher, MapLoader, WadLoader and AI are now static classes - Damageable interface now has method for impules to make stuff be pushed by physical force. Only monsters use this atm - Shotgun and explosions now apply physical force to damageable objects
  6. Risto Paasivirta

    DoomLoader for Unity

    Yea in Unity you can export generated meshes into FBX and OBJ with just tiny bit of work. Simplest way is to just use "AssetDatabase.CreateAsset(...);" and after that "AssetDatabase.SaveAssets();" My main interest of making the Doom-like games to work with Unity is the ability to make better AI for the monsters. Stuff like pathfinding, waypoint navigation and areas of interest/danger (heatmap). After I have Doom 1 and 2 and Hexen running on the engine I try to form a small team to make a new game/total conversion. Sorry for the lack of recent updates, had some real life happening and the next update is a big one. I'm currently making the enemies to combat you and navigate around the map. Already have the heatmap generation working and player breath so enemies can always walk towards you around obstacles and corners. Hopefully at Sunday you can fully play maps one, two and three of the shareware Doom, no compromises given. Here you can see the heatmap and breath in action. Granted the breath (white lines) won't give the most interesting of path, but it is certain. Following a white line will always lead to player. This breath is also used for sound propagation. To make a more interesting walk path the monster checks the cells around himself and randomizes among the lowest cost breath values. This would be classic seek-and-destroy behavior. For pink demons that need to charge towards player there probably need to be a preliminary check to see if a direct line between player and the demon exists, and if so, then use that as movement vector. This should make them more dangerous than the vanilla demon AI in Doom that sometimes make some really weird and random movements. I will get to play around with monster behaviors at Wednesday or Thursday I think.
  7. Risto Paasivirta

    DoomLoader for Unity

    Version 2 is done. E1M1 and E1M2 are now feature complete, only thing missing is enemy behaviour and item pickups. Here's a list of the major changes: Removed Vector2D struct and replaced all references with Unity's Vector2 Added first person weapon, created transparent billboard material and shader Made mouselook and WSAD movement Implemented sounds for doors, weapon, enemies and linedefs You can now shoot enemies and barrels dead Created GameManager class and moved stuff from WadLoader into there Removed the shader vertex transformation and went with classic gameobject rotation instead Enemies now have the 5way sprite system Added my AxMath library into the project Mesher now has grid of triangle lists for quick querying for sectors Removed my own ambient light parameter, the shaders now use Unity's Sky Ambient Light Shaders in general are more cleaned up and parameter names are standardized Thing's facing is now a separate quaternion decoupled from the object transform rotation Homogenized linedef and sector controllers so they can be more easiely shared All E1M1 and E1M2 linedefs are now done Added a method to swap switch textures in TextureLoader Made a fix for the sector 7 bug in E1M3 You can now unload maps and thus move from one map to another Added a ground stick method to player object for smoother elevator movement As before. Just extract the contents to the /assets folder of an empty project. DoomLoader_v2.zip
  8. Risto Paasivirta

    DoomLoader for Unity

    Heh, long time since I've touched Unreal, so can't really say how easy it would be to even do. I think my codebase can prove to be a great case-study to help one implement WAD reading into various platform. Currently the code is pretty much undocumented as I'm pushing all the features in, constantly reworking the methods. Once it stabilizes a bit I can document it, even perhaps make some tutorials on how this sort of toolset can be achieved in other platforms. Not level editor per se. Idea is that you can use Doom level editors to create content for Unity. So basically it will act like a new engine Doom runs on. You can use it to make parts of your game, or true old school 2.5D shooter. There are many people who have become expert at making Doom-like maps as well as many who would want to port their years of hard work on mods to a newer platform. My personal goal is to make Hexen run in Unity so I can get to modding that :) I don't plan to do much of level editing features, but Unity allows you to export FBX and OBJ files. Thus you can use the toolset to simply create parts of the content you like, or even use it just as an importer/exporter to create custom meshes prefabs. Quake level formats is something I can confidently say I would be able to do at some point in the future (thanks to them being fully documented with various open-source projects already existing.) Nice! I think I might have seen your video already :D No it was pretty much just copy-paste, although I don't like that there is now another class for Vector2 as a duplicate to the Unity's internal one, and there are some useless package that came along with it. I will clean it up at some point. Hey but it works now, so no need to fix it. Thanks for the feedback and kind words! After loading a map I played around with the Unity's lighting setup. Here are some sneak peeks on what you can achieve with the toolset. Running at >90fps, although I do have a beefy machine. By the way, the scene I have in the zip is made ready for deferred shading (if you do forward rendering you can get away with having only two cameras in total to get the skybox effect working.)
  9. Risto Paasivirta

    DoomLoader for Unity

    Load Doom wads directly into Unity. (Currently Doom1 shareware wad) Builds meshes for linedefs and sectors. Constructs textures directly from WAD. Creates Unity gameobjects for things. Has option to override materials and textures. Open up the test_scene.scene and hit play to load the first map Change the "Autoload Map" parameter in the WadLoader component to load different map "E1M1" "E1M2" "E1M3"... You can walk around using arrow keys and open doors with spacebar. (currently only doortype 1 and it's keycard variants are done) Asset store package is currently pending for approval, but you can download it here. Just create a new project and extract the zip contents into /assets The zip package contains Doom1 shareware wad. =^-^= DoomLoader_v1.zip =^-^=
×