Done some more work on this tonight. Refactored how I was retrieving entities, iterating over entities (well, the interface) moved all the code out of the abstract room class to it’s own class. Added in the give and take functionality for the player. And I added in exits with locks, might possibly change it to be able to take multiple keys instead of one at some point.
How I am going to represent levels and entities in a text form is going to be somewhat interesting, but I have some good ground work laid out from earlier stuff. I also have a fair idea on how I am wanting to do it when I add in monsters / destructible objects and events, I will probably work on that. Long ways off.
Phew, my project folders getting huge lol
Will you be able to place items from your ‘inventory’ in a room? Otherwise this is looking really cool.
It was one of the things I was planning I can’t imagine it will be to hard with how I have it all setup.
Done a little bit today. Create a basic GUI look for it and implemented a bit of the “Out” interface so it could work on anything really. It’s not properly implemented at the moment as I’m just throwing it straight into the player class and then the players outing to that window, through the interface, I will have a main game launcer type program that handles all that, skins, etc.
I also implemented a skin system for the window for the heck of it lol. I also done a bit of testing with exits, rooms etc.
libzz is all stuff you wrote?
I don’t want to sound like it’s a negative thing but that’s huge
As in the code / classes? Yes or do you mean the outputs? I wrote all the hardcoded inputs like player.useObjectByName(“x”, “y”) and then the generic responses that come back. It’s not like just a text adventure game e.g written from top to bottom, it’s more an text adventure engine, with pieces.
I mean, all the interfaces, the .java files.
Gotcha. Yeh, I wrote all of those.
Updated: Added give functionality. Next up, changing how the doors/exits work. So, the player can unlock the door by giving it the key.
Still testing this and such.
Well I’m comparing to the gserver’s source files which has about that many files and yeah. That’s a lot of files and it’s admirable work.
In comparison with both of your projects, my own text adventure game was nothing. Something like four files, it had 21 rooms, look, take and typo handling functionalities. It’s very basic. I expected Chicken’s game to be somewhat like that in size.
Well, it;s more of the tools to make text based games then an actual game XD so I have everything split out so it’s modular and in case I need to change something without it breaking everything else, hopefully. I’m not using a waterfall approach to it.
Updated the doors to now be able to have a list of keys required for access etc.
Done a bit more. Started off with consumables, fixed up the attacking stuff to a more permanent type of thing (still super simple, but if I choose to make it more complex it’s easy enough) the consumables are barebones at the moment, but shouldn’t be to difficult, I hope.
I changed a lot of code to no longer produce null, but rather a default entity instead, with appropriate setup that it can be plopped in place of just about anything and be informative enough to tell the user what they did wrong.
More finalized version of the weapons and consumable system. Going to add in teleport scrolls and other interesting things as it progresses. dunno if i will expand the battle system more then it is for now.
Just started working on level/room and entity loading and got things working semi decently. I still have a lot of things to tackle e.g room persistence (need to decide how I am going to do that, cache already opened room objects or something), do the boxes/containers children in the entity factory and then the custom/mix matched entities in the factory.
Changing all of the entities should be relatively easy, as it all relies on a entity factory interface. I can swap them in and out if it all goes to poop.
A level currently looks like:
First iteration of all of this stuff and definitely new grounds for me. So, I may change a lot in the future.
Done some level persistence now, but I foresee some issues with it in the future and I am currently trying to think of a new way to handle it. It works though. I did try to search for some ideas already, but I was unable to find anything of use :X if anyone has any ideas about it please let me know, if anyone is still checking this out lol.
Just finished redoing how all the levels are loaded and are stored. Well, the hardcoded levels are now using XML and I’m using a factory with the root elements of the XML to build rooms now. I implemented nested elements (recursively) And a ton of other shizz.I have changed a way a few of the core systems work also, but nothing to big and begun to add in on_load, on_enters, on_killed functionality to entities also, but not to far with that. Will pick those up once the level loading is 100%
Also, with this, customized objects should be somewhat easily achievable. e.g entities not being restricted to their concrete types, you can set their use actions. Hard to explain, but my concrete entities are just setup with different actions for use, look at, look inside.Would allow for shit like having a dead body that could also warp you if you try to use it.
Now that the nested elements are working, I will probably go back to the core look/use etc system and make it require a focus object so you can do something like “move to desk” (desk is in focus) And now all elements within it are accessible (e.g box) then “look at box” and now that box is in focus. So, this way you can go more then 1 level deep. Would require a fair bit of change, but not a ton. I’ve been wanting to change a few things in the way I iterate over objects to anyways.
As long as you make it obvious in the returned text what is currently focused on. I believe otherwise people might get very frustrating moments not being able to do action X (which they couldn’t do while being focused on object Y) for minutes before realizing they are focused on something.
Yeh I plan to polish the updates and such to the player later on. I started a custom graphics output/console that will support multiple fonts, colours, etc for text. So I can have some nice syntax highlighting, but also I plan on writing them out more clearly. Still yet to devise a proper plan of attack for nested looting though.
The ID’s aren’t really used at the moment, except for the level ID and I’m still working things out with this.
Chicken, what’s that colour scheme you’re using for eclipse?
In the market place its called Darkest Theme 2017 CI 7. Found it when I setup eclipse on my linux box.
Much love, so much better than the eclipse default trash.
Done a bit of work on nested calls to objects. It’s a bit of pain in the ass, but it seems to working well enough, for looking at objects and looking inside of them. Still have a lot of work to do with it as I don’t think it’s quite there yet, but it’s a good start (for me anyways) XD
Yeh, first think I do when I install Eclipse is to install a dark theme. I can’t use the standard ones. Hurts my eyes and becomes impossible to type for more then 5 minutes. Cough, dark theme for forums hos?