[Development Halted] Rogue: The Doomlike

Projects that have specifically been abandoned or considered "dead" get moved here, so people will quit bumping them. If your project has wound up here and it should not be, contact a moderator to have it moved back to the land of the living.
Locked
HexaDoken
Posts: 325
Joined: Thu Dec 01, 2011 7:34 am

Re: [WIP - Updated June 8] Rogue: The Doomlike

Post by HexaDoken »

Yet I absolutely love how like every second person or so spills shit on ACS shouting that it doesn't let you do anything.

Projectiles automatically target the shooter no matter what. All you need is to slap up a function that does SetActivatorToTarget and GetActorPitch(0) and returns the results to the main script(which should still count the projectile as activator). Sin/cos functions exist, ACS' excuse of a support for "floats" is notably silly but it works if you punch it hard enough, so should work.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: [WIP - Updated June 8] Rogue: The Doomlike

Post by Josh771 »

Ugh... I am absolutely bogged down. I've begun putting the weapons into the scripted inventory, so that you can carry around 4 long swords at a time. My next steps would be to implement the attached curses and blessings, but... I'm going to have to take a good break from all this. I'm running on empty, but I do plan on bringing this thing to a respectable close.

In the meantime, I have actually allowed any brave soul interested in the development on a more intimate level to grab a copy of my current in-development version. All the scripts are contained within, along with plenty of unfinished DECORATE, so don't consider it a true release. But if anyone catches on to some of the work I've been doing and wants to do me a kindness by wrapping up some of the tedium, I'd be ever so grateful.

Other than that, I'd say not to expect the next release to come very swiftly. I'd thought I would have more to show at this point, but life has proven a better obstacle to my work than I'd considered. Still, I wanted to at least let anyone following the mod know that I've not abandoned it.
User avatar
Hetdegon
Posts: 321
Joined: Sat Oct 30, 2004 12:55 pm
Graphics Processor: nVidia with Vulkan support
Location: Chireiden

Re: [WIP - Updated June 8] Rogue: The Doomlike

Post by Hetdegon »

Yeah this kind of thing takes time. Feel free to take a break or two, I am doing the same (specially after a heat stroke, weak as a pudding here).
I'd offer to be that brave soul, but alas, I already got my hands full. Take your time, don't get burned out, we can wait :D
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: [WIP - Updated June 8] Rogue: The Doomlike

Post by Josh771 »

Well, after being mostly lazy (only mostly, mind you) for the past few weeks, I may start slaving away at this thing again. Last thing I was doing was putting weapons in the ACS inventory, so that's where I'll pick back up. It's been a long while and DRL is in danger of dying if I leave it alone for too long. Hopefully I can get that to a decent state. If I can get all the current features put into the new inventory, I'll call it an official release and begin working on enchantments, etc.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: [WIP - Updated June 8 / Indev June 23] Rogue: The Doomli

Post by Josh771 »

Eh, I've uploaded a new in-development version (just under the big Download link). It allows the throwing of weapons and potions from inventory, on the left-hand side of the screen. Thrown potions will affect the monsters they strike, including yourself if they land near you. The inventory is not currently multiplayer compatible.

You'll need to set up several inventory-related keys, so Customize Controls as soon as it launches.

Eating food, reading scrolls, drinking potions, equipping and unequipping weapons are all functional... for now. Armor is not. Play around with it if you're interested, but don't expect to get very nice armor (except by scrolls of enchantment).
User avatar
Hetdegon
Posts: 321
Joined: Sat Oct 30, 2004 12:55 pm
Graphics Processor: nVidia with Vulkan support
Location: Chireiden

Re: [WIP - Updated June 8 / Indev June 23] Rogue: The Doomli

Post by Hetdegon »

Uhm, lookin' good!
I noticed that equipping and unequipping some weapons could cause the second weapon to disappear, but I have been unable to reproduce it reliably. Can't wait until it's finished for some 32-level OBLIGE run for celebration.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: [WIP - Updated June 8 / Indev June 23] Rogue: The Doomli

Post by Josh771 »

Heh, I've seen that happen before. Not sure why; most of the time it correctly swaps the two. I'm taking it slow with this stuff, mostly because I haven't got enough hair to go tearing it out all at once. But I would like to see this thing finished someday. The next time I get into the code, I'll probably work on adding armor to the ACS inventory, and maybe look into the disappearing weapon issue.
User avatar
Hetdegon
Posts: 321
Joined: Sat Oct 30, 2004 12:55 pm
Graphics Processor: nVidia with Vulkan support
Location: Chireiden

Re: [WIP - Updated June 8 / Indev June 23] Rogue: The Doomli

Post by Hetdegon »

When it comes to the time of hair tearing, do your scalp a favor and move onto something else.
I got a bit burned up finishing the weapon systems in Vault City (adding AC-like custom robot suits to the design spec complicated things, but nothing that cannot be done with A_Warp and patience) so I moved into indoors and nature texturing until I can gather patience to finish the huge ammunition listing and projectile-actors/puffs. It helps keeping my mind into the project and is a way to keep getting things done.
Perhaps you could experiment with monster AI or something of the sort while your willpower levels replenish.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: [WIP - Updated June 8 / Indev June 23] Rogue: The Doomli

Post by Josh771 »

It's difficult, really. Everything I could be improving on right now will take some debugging work (like getting the Dungeon Keeper to actually recognize line of sight -- A_JumpIfTargetInLOS has to be the buggiest thing ever) and involve some hair-tearing out. Whether I'm spilling out bunches of new ACS/Decorate for wands or adding armor to the inventory or trying to get enchantments to follow items, it's all hard work. To be honest, it's partly why I went off and made that light-based stealth thing.

This is probably going to be a slow-going project for some time. It started like a bullet, but it's gonna be a snail's pace until I manage to get through the miserable parts here. And then I'll have something quite magnificent.
User avatar
Nash
 
 
Posts: 17505
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia
Contact:

Re: [WIP - Updated June 8] Rogue: The Doomlike

Post by Nash »

XutaWoo wrote:Getting in contact with Nash is a good way to check on that. He's done several ACS inventory systems, most if not all of them allow per-individual information. He should be able to point you in the right direction real quick.
Hey sorry I haven't been keeping up with this thread. I actually got the whole thing working (video at the bottom of this post). I see that SidDoyle has already come up with his own inventory engine, but I will share the technical working behind my engine for educational purposes.

The very first step was visualizing the data structures I need for my inventory system. I was inspired to write an inventory system similar to RPGs like in Diablo and Elder Scrolls where you can have multiple copies of any item, and each item actually has their own individual properties (so it would be possible carry 5 sword all with varying damage levels, durability rating, etc).

I decided to lightly adopt the inventory system used in Morrowind: base items are the items you, as a developer, define before-hand, and anything that is spawned in-game are called "references". I know that technically they work completely differently, but I adopted the terms from Morrowind. :) Everytime a new reference needs to be created, it will pull the item's base stats from the base items list and transfer them all into the new reference. From that point on, the reference can be manipulated independantly.

So with this in mind, I scribbled this ugly sketch to help me visualize what I need (click for full res):

Image

It is immediately apparent now that all I'd need are some structs. But... oops! ACS doesn't do structs. So I'll just settle with 2D arrays.

I then proceeded to write all the functions I need to read and manipulate all of the data in these arrays. This was actually not so hard and I had a working inventory system in a short amount of time. At least it works in the data world.

The next problem was coupling all of this data to a GUI. It's probably just my inexperienced coding but at this point, I had to make a choice of what kind of item GUI I want and commit to it. There were 3 options - grid-based (Ultima Underworld, every item ever only takes up 1 grid space), alphabetical list based (like Elder Scrolls) or inventory Tetris (Diablo). I chose the Tetris one because I have always been fascinated by Diablo's inventory system, and I have already done the Ultima Underworld one in the past and I wanted a new challenge. Alphabetical list was a little too complicated for me so I skipped that.

Which GUI system I choose would ultimately affect the data I needed - since I chose inventory Tetris, each inventory item now needed extra properties (their grid dimensions) and it also makes containers complicated - now containers need to have X and Y dimensions too (see if I chose grid or list-based, I didn't have to worry about a container's X and Y dimensions). And with all of this container stuff, convoluted container math needed to be written to check if placed items in the container actually have space to be there and things like that.

I wish I could go into more detail on the container stuff but it was all written when I'd randomly wake up at 4 in the morning and somehow during my zombie state, I actually write code that works. :O So I can't exactly explain it in too much detail because to be honest, I don't remember much of it at the top of my head (I'd have to sit down and read the code before going "aahhh so that's how I did it").

Speaking of containers, the players themselves are internally treated as "containers" so that's how players hold their inventory. This also (unintentionally) allowed me to create droppable containers - so players can drop their entire inventory collection into the game world and other players can loot them.

Linking pickups in the physical game world with the data world of my inventory and container system is pretty complex coding-wise but at the basics of it: every reference generates a unique reference ID. This is so that I can differentiate between the several swords that's generated in-game (for example). When spawning a pickup into the game world, the reference ID is transferred to the object and stored in their user variables. This is how I am able to seamlessly transfer objects from the data world to the game world with ease. The pickup items do not store any other data! All it has is a reference ID. Everything else is just looking up from the reference table.

I will have to stop writing here because I think I wrote too much already and I know I'm missing a ton of important details and if I go on and on, it'll just make things more confusing.

If you learned something from this wall of text, then that's great. :)

As for the actual code... right now it's not isolated (it is sort of hard-coded to the other non-inventory stuff in my game like the weather system and stuff), plus as I've said earlier, since I commited the GUI to inventory Tetris, it will only work in inventory Tetris format... if I want to change the GUI to list-based for example, I'd have to tear the thing apart and retrofit it... and plus it's coded really messy with cryptic comments so I don't think it's helpful at all. And lastly, it's still fairly incomplete, the items in the player's inventory do not do anything yet (they just exist as a bunch of numbers in the data world and I am only representing them on the screen visually... they have no functionality), and I'm pretty sure I was in the middle of completing something that was not functioning yet with the container system but since it's been a while since I worked on the code, I don't even remember right now what it was I was working on. :S But don't worry, as always, I will release this stuff open source along with the game it's intended for so keep an eye out for that.

Other than that, the best I can do is just give advice on any particular problems you might have in figuring out an inventory system. :)

User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: [WIP - Updated June 8 / Indev June 23] Rogue: The Doomli

Post by Josh771 »

Inventory Tetris with an actual GUI... that's pretty nice. I might have attempted that myself, but I wanted Rogue: The Doomlike to be as much like Rogue as I could get it, so I opted for an on-screen list of items. I've got a little more experience with ZDoom since then, so I might be able to do something with this again. Your system of using "references" is pretty much how inventory in RPGs works; programming a game engine from scratch, you'd have to create a template or definition of some kind to create the items themselves from -- just look at how we define actors in ZDoom. Might as well call them actor templates and call the in-game actors references.

I was actually considering putting this project away, but... I know I can do it. My inventory system, if I recall, had gotten to the point that I could use potions, etc. from it and equip/put away weapons. I also added a "throw" hotkey so that you could select an inventory item and chuck it as a projectile. I don't remember why I stopped, other than sheer mental burnout. Writing an inventory system in ACS is just tedious with all its limitations.

I might come back to this in the coming months, but I really don't know when it will strike me. I'm playing with a blood mod right now and I've got some experimental AI for Sneaky Doom that's still in the works (I should probably get on that). Part of me wonders if this thing is worth my time, though. If there are people who genuinely want to see me finish this, I wouldn't mind working for their sakes. But otherwise... it's a lot of work and it just won't be as much like Rogue as I'd wanted.
Locked

Return to “Abandoned/Dead Projects”