### Author Topic: Ideas and Help  (Read 8292 times)

0 Members and 1 Guest are viewing this topic.

#### {AP}

• Posts: 981
• Rating: +74/-3
• I am Webmaster!
##### Ideas and Help
« on: November 04, 2008, 06:24:17 pm »
Alright, here I hope to discuss some ideas on the game and get a little help.

Currently, I'm mostly curious of two things.
One, is there a way to hide archived programs from the program list?
I don't think anyone wants to see several programs with stars beside them in their list.
I use so many because these calculators lack a function and I'll save a LOT of space this way.
Right now, I just have the main system, battle system, and shop system in separate programs.
Next one being worked on is either a world map system or random dungeon system. (I'll bring this up again later)

Next is character data storage.
Currently, I'm using lists... and well... I'm wondering if there's a way that takes up less space.
Especially with 6 save slots.
There's also the fact that people can EASILY cheat that way... but I see no alternative.

Any feedback is welcome.
I need some help here. =P

#### TIfanx1999

• ಠ_ಠ ( ͡° ͜ʖ ͡°)
• CoT Emeritus
• LV13 Extreme Addict (Next: 9001)
• Posts: 6173
• Rating: +191/-9
##### Re: Ideas and Help
« Reply #1 on: November 04, 2008, 07:21:35 pm »
It is possible to hide programs through the use of ASM, but IMHO it's not necessary. Most  people won't care about such a thing. Also, I'm not sure but in order to acess a hidden program I *think* you would have to un-hide it and then re-hide it when you are finished using it.

#### {AP}

• Posts: 981
• Rating: +74/-3
• I am Webmaster!
##### Re: Ideas and Help
« Reply #2 on: November 04, 2008, 07:35:59 pm »
Ew... that doesn't sound fun.
Oh well, I guess people will have to deal then.
It looks like there will only be about 5 programs in all anyway. (after checking things out again)

#### TIfanx1999

• ಠ_ಠ ( ͡° ͜ʖ ͡°)
• CoT Emeritus
• LV13 Extreme Addict (Next: 9001)
• Posts: 6173
• Rating: +191/-9
##### Re: Ideas and Help
« Reply #3 on: November 04, 2008, 07:43:13 pm »
For large BASIC programs 5 is NOTHING anyway. Just ask DJOmnimaga or Tifreak. Metroid and some of the other large BASIC programs have had like over 9000 subprograms. O_o

#### {AP}

• Posts: 981
• Rating: +74/-3
• I am Webmaster!
##### Re: Ideas and Help
« Reply #4 on: November 04, 2008, 07:46:35 pm »
Well, they're currently: 5k, 4k, 2.5k
In space. The other 2 are undetermined... but they'll probably be bigger due to the massive use of matrices. (lots of maps)

Maybe I'm worrying too much... I use xLIB so I always only have one or two programs in RAM at a time.

#### Iambian

• Coder Of Tomorrow
• Posts: 739
• Rating: +216/-3
• Cherry Flavoured Nommer of Fishies
##### Re: Ideas and Help
« Reply #5 on: November 04, 2008, 08:34:52 pm »
As a shameless plug...

While trying to *run* a hidden program won't go over very well, you can use Celtic III to access hidden programs. For an earlier post, you can also paste in list data as a string using another one of Celtic III's functions. The destination can be an appvar, so it won't be as easy to hack it. You can also explore Celtic III's ability to convert matrices into strings that you can use to write back into a program that could recreate it.
A Cherry-Flavored Iambian draws near... what do you do? ...

#### {AP}

• Posts: 981
• Rating: +74/-3
• I am Webmaster!
##### Re: Ideas and Help
« Reply #6 on: November 04, 2008, 08:45:31 pm »
Hm... Celtic III doesn't interfere with xLIB at all, does it?
I doubt I can use the hidden program thing, but the list -> string -> appvar thing sounds really useful.

Don't understand the matrices part exactly though...

#### Iambian

• Coder Of Tomorrow
• Posts: 739
• Rating: +216/-3
• Cherry Flavoured Nommer of Fishies
##### Re: Ideas and Help
« Reply #7 on: November 05, 2008, 12:47:13 am »
Interfere? Heck no. That's not the purpose. Celtic III is a stand-in replacement for xLIB with a load of extra functionality. Doesn't fully work quite yet, but if your needs aren't too demanding ( DJ's games don't qualify), it'll work out just great without any modification to the syntax.

Another plus is that Celtic III comes with an autoinstalling program in case you don't want to leave the installation of the lib up to the user. More information and documentation can be found here : http://www.unitedti.org/index.php?showforum=62 . You'll be looking at "Progress..." for the most recent binaries. Also be sure to read through the topic, as it indicates known problems. If you experience problems, feel free to contribute.

Edit:

As far as list to string goes, the same can be accomplished with a matrix. If you store the resulting matrix to a program file, it'll likely take up less memory than having the matrix as a matrix in memory. Sure, it's not immediately usable, but it'll help save space.

But... if you choose to use Celtic III as the main lib, you'll also be able to use string tilemaps, where you can absolutely do away with the entire matrix idea. But... you'd want to ask a very experienced BASIC programmer if you want a halfway-decent explanation on how that works.
« Last Edit: November 05, 2008, 12:54:04 am by Iambian »
A Cherry-Flavored Iambian draws near... what do you do? ...

#### {AP}

• Posts: 981
• Rating: +74/-3
• I am Webmaster!
##### Re: Ideas and Help
« Reply #8 on: November 05, 2008, 08:04:00 am »
I can't be sure, but from the looks of it I wouldn't have to reprogram anything by using Celtic III.
If so, then as soon as it's finished up a bit more, I don't see any reason to not use it.
Also, I know how string tilemaps work... just no idea how they'd work with sprites. =P
_____________________________________________________________________________

With all of that covered... I'm on to needing a bit of help on one issue.

I can't decide wether I have it kind of Diablo-esque with one town and a randomly generated dungeon thing going on... or to try making a world map of sorts.

This would probably go along better with a story... the problem is... a full RPG story would take up WAY too much space.
Not to mention that with the state of my system, it'd be hard to manage.

Yet, I'm still going to add quests in.
Most likely in a randomly generated format.

...You know, I think this game is run, like, 75% on random generation when it comes down to it.
That could have something to do with a story of some sort.
The random creatures and even that random name it's got.

Well, what do you guys think? I'm listening. =D

#### Iambian

• Coder Of Tomorrow
• Posts: 739
• Rating: +216/-3
• Cherry Flavoured Nommer of Fishies
##### Re: Ideas and Help
« Reply #9 on: November 05, 2008, 06:00:25 pm »
If it's true that 75% of the game is basically randomized, I'm pretty sure that it would be suffice to say that random maps would also be sufficient, but if you really want it "Diablo-esque", you're going to want to save the maps that are generated, which could take up more space. A potential solution to that problem is to generate a map that is based upon a single seed. I say a single seed because "random" isn't really random if you seed the random number generator with a known value. In fact, all the numbers after the seed are the same if you happen to reseed rand with the same number. You can possibly get this seed by various means, including your stats and how many cycles it took for the player to push a key. Store this number (seed) into a list so that upon regenerating the map, you can look up that list for the seed that was used to generate it.

A good approach is to define a list used specifically for maps, and a variable to determine which map you are in. If you go to the next map and the variable's value exceeds that of the list dimensions, expand the list by one and add in a randomly selected number to be used as the seed. After that, go into some generic routine that picks that list element back up and loads it into rand for your random generator.

...

If you know all of this already, then... darn. I must sound like some sort of elitist or something. (sorry!)

Still. I can't ignore a possibility that an entire map can be stored in a single list element (9 bytes). Just make sure there's enough variation depending on the map level to ensure that none of the maps really do look alike, even with the same seed. You could be using your map level variable to make the determinations.
A Cherry-Flavored Iambian draws near... what do you do? ...

#### {AP}

• Posts: 981
• Rating: +74/-3
• I am Webmaster!
##### Re: Ideas and Help
« Reply #10 on: November 05, 2008, 06:44:24 pm »
I get what you're saying.
I was thinking of something close to that.

My main problem is thinking of a way to have it randomly generate the matrix which defines the map.
I was thinking of a room style where I have a set of rooms that that are randomly picked then put them together into the matrix.
...

Okay, ignore most of what was said above.
You're some kind of genius, but I didn't read correctly the first time around.
This kind of goes with my room styled idea, except that with your method it's a series of maps that make the dungeon rather than one huge map.

Oh, the possibilities!
I'll have to change a lot of code to get it to properly change through randomly generated maps.
Though... then again... as I type, more ideas are flying through my head.
I'm pretty sure I have this figured out too now.

Thanks much, Iambian! You got my brain going!

#### Iambian

• Coder Of Tomorrow
• Posts: 739
• Rating: +216/-3
• Cherry Flavoured Nommer of Fishies
##### Re: Ideas and Help
« Reply #11 on: November 05, 2008, 07:56:11 pm »
No problem.

But now that I think about the whole scheme, I'm now interested in how fast you can regenerate a map from a single seed, since I'm pretty sure that constructing a sensible map from a random number must take quite a bit of work. For generating an actual dungeon from a random number, I've got very little idea as to how about doing it, and the only way that I can possibly think about doing it would take some serious processing time.

I hope to see what you can come up with. Exceed all expectations and create a truly great game! (Hmm... Diablo for the graphing calculator...)

You still may need a separate list linked to each "randomly"-generated dungeon to define the events that have happened in it. For example, which treasure chests have been taken and which ones are still there for grabs. Which quests have been completed in that level and which ones still remain to be done. You know, stuff like that.

EDIT: btw, the idea for the random number seed came from a much earlier project when Weregoose asked me to retrieve a listing of a couple hundred thousand results in an attempt to create some sort of weird compression routine that used the randomness found in the random number generator. I though it might be useful to somebody someday, even if in a different incarnation.
« Last Edit: November 05, 2008, 07:59:59 pm by Iambian »
A Cherry-Flavored Iambian draws near... what do you do? ...

#### DJ Omnimaga

• Former TI programmer
• CoT Emeritus
• LV15 Omnimagician (Next: --)
• Posts: 55845
• Rating: +3151/-232
• CodeWalrus founder & retired Omnimaga founder
##### Re: Ideas and Help
« Reply #12 on: November 05, 2008, 08:24:59 pm »
Interesting ideas, if you have random dungeons I would really recommend that it chooses from a set of premade matrices/rooms, because generating dungeons areas tile by tile would be quite slow I think, especially since it would need to make sure rooms are linked and that it's possible to pass through the room

personally i dont care much about seeing multiple programs in the list because I usually have everything I don't use grouped and if I got another huge game I delete it (except save files) before installing another huge one then reinstall it later if I want to play again. But one thing, if you have a 84+ I would advise against using the timer/clock functions because then the program will not even work on the older models or if you plan to use them release a version with no clock/timer usage and another version with timer/clock enabled
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF

#### {AP}

• Posts: 981
• Rating: +74/-3
• I am Webmaster!
##### Re: Ideas and Help
« Reply #13 on: November 05, 2008, 08:36:31 pm »
Well, currently... I can't think of a way to implement a seed "number" per se...
My current idea is to have a list for each dungeon.
In the random generation part, it's choose a number that defines the layout of the dungeon (first element of the list) then generates the rooms to be placed in the layout (next approx. 9 elements).
That list will be that character's first floor of the dungeon.

The rooms that will be generated will be set based on a collection of interiors and the walls that contain the doors/pathways will be placed based on the layout.
From a little more on the thought of the layout, here's my examples.

Let's take a (3 room)x(3 room) dungeon.
Code: [Select]
 _ _ _|_|_|_||_|_|_||_|_|_|Now, the layout will decide which rooms to use which will leave out about... 2-3 rooms.
Not positive yet.
A possible layout could look like so:
Code: [Select]
 _ _ | | |_|_ _  |  |_ _|Of course, the possibilities are endless. (due to the rooms that can be taken out and the placement of doors/walkways)
I'll probably only have 10-20 layouts to be randomly picked.

What's in each room will be randomly generated and I'll work on random encounters too. (generation of room contents was explained above)

Assuming anyone understood the above... do you think it's a good idea?
Also, excuse my lame art above, I did it in a rush.

#### TIfanx1999

• ಠ_ಠ ( ͡° ͜ʖ ͡°)
• CoT Emeritus
• LV13 Extreme Addict (Next: 9001)
• Posts: 6173
• Rating: +191/-9
##### Re: Ideas and Help
« Reply #14 on: November 05, 2008, 11:53:52 pm »
Even with random generated dungeons you should have some order to it. Likely you may want to have a specific treasurse (IE a specific weapon or armor) appear in a dungeon. You also want to make sure that If you have locked doors that you have the proper number of keys generated and that they are generated so that the user can get them. It would be no good to have the key to the last door locked within the locked room now would it ? ^_^