Author Topic: Motherload  (Read 9861 times)

0 Members and 1 Guest are viewing this topic.

Offline aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3915
  • Rating: +184/-32
    • View Profile
    • wank.party
Motherload
« on: August 14, 2013, 04:39:16 am »
Okay, so it's about time that I make a new calculator game. this time, I'm trying to create motherload. Yes, that game you played for hours on miniclip is now coming to a calculator near you.
So, I have calculated that a 140(w)x280(depth) map will take up almost 20000 bytes. Is that okay with you, or is that too much? Please vote so I can know.  Thanks :D
I'm not a nerd but I pretend:

Offline ElementCoder

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 611
  • Rating: +42/-2
    • View Profile
Re: Motherload
« Reply #1 on: August 14, 2013, 05:00:51 am »
Nice project. I don't know how much is available on the calc, but I think it sounds reasonable since the game definitely needs an aspect of exploration. Then again I don't know available space, so maybe a bit smaller say 100 x 200.
Nontheless good luck.

Some people need a high five in the face... with a chair.
~EC

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Motherload
« Reply #2 on: August 14, 2013, 05:19:18 am »
Maybe you could find some source code or tiles here that you could re-use, but I don't know how you would ask the permission.
Anyways, nice project idea. How many tiles are there in the game ? I guess you already use nibbles but if there are less than 4 tiles (which I doubt a bit), you can use two-bits per tile and divide the size of the map by two again.

Also, you could do like I do in TinyCraft: let the user choose the size of the map so people with a regular 83+ can choose a small one and people with a 84+SE can choose a large one (so I voted for "other").
« Last Edit: August 14, 2013, 05:29:40 am by Hayleia »
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3915
  • Rating: +184/-32
    • View Profile
    • wank.party
Re: Motherload
« Reply #3 on: August 14, 2013, 07:19:34 am »
There are 12 tiles in the game. And yeah I think I might reduce the map size to say 70x140 and let the user choose the depth (in multiples of 140)
I'm not a nerd but I pretend:

Offline pimathbrainiac

  • Occasionally I make projects
  • Members
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1731
  • Rating: +136/-23
  • dagaem
    • View Profile
Re: Motherload
« Reply #4 on: August 14, 2013, 08:37:44 am »
It would be awesome.

suggestion for the map data: put it in an appvar.
I am Bach.

Offline aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3915
  • Rating: +184/-32
    • View Profile
    • wank.party
Re: Motherload
« Reply #5 on: August 14, 2013, 08:57:16 am »
Of course I will put the map data in an appvar, the map will be randomly procedurally generated (from a random value
I'm not a nerd but I pretend:

Offline Hayleia

  • Programming Absol
  • Coder Of Tomorrow
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3367
  • Rating: +393/-7
    • View Profile
Re: Motherload
« Reply #6 on: August 14, 2013, 09:41:06 am »
And yeah I think I might reduce the map size to say 70x140 and let the user choose the depth (in multiples of 140)
Why does it have to be multiples of 140 ?? I could have understood a fixed value for the width, but the depth  can be anything, can't it ?
I own: 83+ ; 84+SE ; 76.fr ; CX CAS ; Prizm ; 84+CSE
Sorry if I answer with something that seems unrelated, English is not my primary language and I might not have understood well. Sorry if I make English mistakes too.

click here to know where you got your last +1s

Offline aeTIos

  • Nonbinary computing specialist
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3915
  • Rating: +184/-32
    • View Profile
    • wank.party
Re: Motherload
« Reply #7 on: August 14, 2013, 10:05:08 am »
well, yeah you are of course right. It could technically be anything, but... yeah I actually dunno, it just feels better to me, and I think it makes the random map generator easier to code.
I'm not a nerd but I pretend:

Offline ben_g

  • Hey cool I can set a custom title now :)
  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1002
  • Rating: +125/-4
  • Asm noob
    • View Profile
    • Our programmer's team: GameCommandoSquad
Re: Motherload
« Reply #8 on: August 14, 2013, 03:29:35 pm »
If you want to make it generate levels, can't you generate them at runtime and only save the things that change during gameplay (like positions of enemies)? I wouldn't mind having loading areas when you move to an other part of the map.
My projects
 - The Lost Survivors (Unreal Engine) ACTIVE [GameCommandoSquad main project]
 - Oxo, with single-calc multiplayer and AI (axe) RELEASED (screenshot) (topic)
 - An android version of oxo (java)  ACTIVE
 - A 3D collision detection library (axe) RELEASED! (topic)(screenshot)(more recent screenshot)(screenshot of it being used in a tilemapper)
Spoiler For inactive:
- A first person shooter with a polygon-based 3d engine. (z80, will probably be recoded in axe using GLib) ON HOLD (screenshot)
 - A java MORPG. (pc) DEEP COMA(read more)(screenshot)
 - a minecraft game in axe DEAD (source code available)
 - a 3D racing game (axe) ON HOLD (outdated screenshot of asm version)

This signature was last updated on 20/04/2015 and may be outdated

Offline Eiyeron

  • Urist McEiyolobster
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1430
  • Rating: +130/-10
  • (-_(//));
    • View Profile
    • Rétro-Actif : Rétro/Prog/Blog
Re: Motherload
« Reply #9 on: August 14, 2013, 03:43:44 pm »
Mnh... If the pseudo random generator gets his seed changed ingame, it could add some abrupt changes...

Offline ben_g

  • Hey cool I can set a custom title now :)
  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1002
  • Rating: +125/-4
  • Asm noob
    • View Profile
    • Our programmer's team: GameCommandoSquad
Re: Motherload
« Reply #10 on: August 14, 2013, 03:49:38 pm »
You can save the seed in the save file.
My projects
 - The Lost Survivors (Unreal Engine) ACTIVE [GameCommandoSquad main project]
 - Oxo, with single-calc multiplayer and AI (axe) RELEASED (screenshot) (topic)
 - An android version of oxo (java)  ACTIVE
 - A 3D collision detection library (axe) RELEASED! (topic)(screenshot)(more recent screenshot)(screenshot of it being used in a tilemapper)
Spoiler For inactive:
- A first person shooter with a polygon-based 3d engine. (z80, will probably be recoded in axe using GLib) ON HOLD (screenshot)
 - A java MORPG. (pc) DEEP COMA(read more)(screenshot)
 - a minecraft game in axe DEAD (source code available)
 - a 3D racing game (axe) ON HOLD (outdated screenshot of asm version)

This signature was last updated on 20/04/2015 and may be outdated

Offline leafy

  • CoT Emeritus
  • LV10 31337 u53r (Next: 2000)
  • *
  • Posts: 1554
  • Rating: +475/-97
  • Seizon senryakuuuu!
    • View Profile
    • keff.me
Re: Motherload
« Reply #11 on: August 14, 2013, 04:12:14 pm »
Would it be possible to have "chunks" of the map that load on the fly, so you'll always have 3 chunks - 1 above and one below, and when you move into the upper or lower chunks it archives the furthest chunk and unarchives (or creates) a new chunk. The chunk need only be as big as the screen, and since it's not all created at once, it's also easier on memory and checks for whether or not the memory is being filled up. This was the approach I took a while back when I was trying to create a randomly generated scrolling terrain, and it seemed to work out okay (aside from thrashing the archive :P)
In-progress: Graviter (...)

Offline Eiyeron

  • Urist McEiyolobster
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1430
  • Rating: +130/-10
  • (-_(//));
    • View Profile
    • Rétro-Actif : Rétro/Prog/Blog
Re: Motherload
« Reply #12 on: August 14, 2013, 04:39:27 pm »
GLHF to avoif Garbage Collection. Is GC possible without the TI-OS menu? I'd see a loading screen with GC ibcluded

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: Motherload
« Reply #13 on: August 14, 2013, 05:22:19 pm »
Responding to the poll, 20 KB of map data is acceptable to me, as long as they're not overly repetitive or something.

Good luck for this project by the way!

GLHF to avoif Garbage Collection. Is GC possible without the TI-OS menu? I'd see a loading screen with GC ibcluded
I think Doors CS does (or did) it.

Offline Builderboy

  • Physics Guru
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5673
  • Rating: +613/-9
  • Would you kindly?
    • View Profile
Re: Motherload
« Reply #14 on: August 14, 2013, 11:23:45 pm »
         I think the best solution would be to do something like the following.  First you will need some sort of deterministic random number generator (not axe's).  By using a random seed as a map key, combined with using the coordinated of a tile as a secondary seed, you would be able to generate the entire map from a single seed key.  More importantly, you could generate any tile in constant time, independent of any other tiles, and would not be restricted to having only 16 possible tile values.  Then it is only necessary to store a single bit of information for each tile, whether or not it has been dug or not.  With a map 128x256 you would only need 4096 bytes to store the entire state (plus the map key).  This is small enough that you could easily store it in an appvar.  When scrolling, you (assuming 8x8 tile size) can only see a maximum of 117 tiles at once, which is plenty small to fit into a small RAM area.  This 13x9 map area would be constantly updated as the screen scrolls by generating the new tiles using the map key and tile position as seed, and then setting the tile state to filled or dug based on the bit you read from the appvar.