Jump to content
Sign in to follow this  
carmel_andrews

An idea for all game programmers/developers

Recommended Posts

How about a totally new direction in games engine programming

 

 

 

 

Where the issue/problem being that most if of not all games from the earliest pong like dedicated gaming systems right through to the likes of the latest crysis/skyrim or Final Fantasy game, has lacked a ‘randomness element’ to the game

 

 

 

 

I.E, after you’ve played the game a few times or clocked (as in completed) the game same number of times, the game becomes ‘predictable’, i.e you know the general layout of the game in relation to all the game components in respect to where they figure (they being the various and all game components programmed into the game) as you progress within the game, so you know the general paths/movements and start points of the baddies or enemy characters/sprites, you know when and where and how each enemy character/sprite will fire or kick or do something to the player character you control, you know where all the pitfalls/dangers etc are within each stage/level etc as well as the general layout of the stage or level (so you know where in that level you can take a breather for a few minutes), i think you get my drift of what i am saying

 

 

 

 

My idea is that we ask games programmers/developers to program into their game logic/engines a randomness feature, or even better a random system engine that works in tandem with the game engine or game logic and that the random system engine can be latched/programmed onto either specific/particular or some components of the game or can be programmed/latched onto all components that make up the game

 

 

 

 

The idea being is that the random system engine (that works in tandem with the main game logic/engine as well as some or all the components that make up the game) essentially gives the game player a unique game playing experience each and every time they play that game as well as adding more of a game challenge and if it gives the games player a unique games playing experience and more of a game challenge each and every time they play that game, the longer or more they will play that game therefore will extend the shelf life (as in lifespan) of that game so far as the game player is concerned (since they will be playing the game more and more until they complete/clock it) and because of the way the random system engine works no two games will play or be the same, which essentially means the games player won’t be able to complete the game the same way as last time again

 

 

 

 

The way the random system engine will work is that it is programmed as part of the main game engine/logic and can be tied (as in programmed/latched) to some or a particular/specific or all components that make up the game) this of-course depends on the type of game being developed/programmed, since some games (or game types) only benefit (logically) from a random system engine by latching it onto particular/specific or some components of the game and some games (or game types) will benefit (logically) from a random system engine by latching it to most or all the components that make up the game within the game engine/logic

 

 

 

Additionally for modern games (which obviously use the console or computers memory as a scratchpad) a section of that memory will be given over to the random system engine for two purposes) the first purpose is for a compressed ‘ramdom system engine ram’ and the second purpose is for a random system engine ram buffer, what happens is that the random system engine compresses the system engine ram, so lets say you allocate 1 meg for this memory, the compressed version will be 1meg by the power of 1 meg and each compressed area of that memory is transferred over to the system engine buffer memory and once that is used the next compressed area is transferred into the buffer memory and the previous compressed area is replaced with a new random system engine and so on and so forth for the next area of compressed area of system engine ram (so effectively you end up with an ‘infinite’ amount of possibilities), since the system engine compressed ram (and each compressed area within the system engine compressed ram) is constantly updating itself with new random system engines, each random system engine is basically the various (or all) game components that you latched or programmed the random system engine onto within the realm of the game logic/engine (the user will of-course be able to configure how much memory is given to the random system engine compressed ram and ram buffer and also the ability to program in which game components (that’s attached to the game logic/engine) can be programmed/latched or tied to the random system engine and also save those settings for that game, so you can use that setting each time you play that same game or make new settings)

 

 

 

 

For Classic systems (i.e atari, commodore or sega/nintendo etc etc) the random system engine could be programmed as a game cartridge, which you then either load in the game itself (i.e tape/tape) or plug in the game cart via the random system engine’s game cart port, or since most classic systems now support Sdram cards/cf cards/usb memory sticks, the random system engine could be programmed as a game Sdram cards/cf cards/usb memory sticks, it works the same as the version for modern systems in that you configure how much memory will be used as the compressed system engine ram and how much memory will be used as a system engine ram buffer (since the random system engine game cart will have its one memory for that purpose and the sdram/cf card or usb memory stick will also configure a section of it’s memory for this purpose, outside the memory used to hold the ramdom system engine of-course)

 

 

 

Once you load in the game (be it tape/disk cartridge etc) you enable the random system engine device (be it the game cart or usb etc ) by pressing the little button, you are taken to a menu which will basically guide you through the various and all components of the game (that’s attached to the game engine/logic) that you can program/latch the random system engine onto, so you can basically program or latch the engine onto whatever component(s) of the game you feel would make the game more challenging and make the game unique each and every time you play it

 

 

 

Of-course with regards to the classic systems version of the random system engine, you will of course be able to save your settings for that game (or make new settings each time you play that same game)

 

 

 

The idea being that the random system engine basically/essentially controls every (or certain/specific or particular) element(s) or component(s) within the game (depending on how the random system engine was programmed in the first place) effectively changing the game control/physics, layouts/levels/paths/movements etc as you get further into the game and for each/every time you play that game which makes the game more challenging to play (since you won’t know what will come next as the game engine will randomise everything) and therefore make the game play a unique experience each and every time you play it, which should logically mean the game player will play the game more and more therefore extending the lifespan of that game as far as the game player is concerned

Share this post


Link to post
Share on other sites

Sounds like it would be a NIGHTMARE to debug.

 

You'd also need some clever AI operating behind the scenes to prevent objects/enemies appearing in the wrong places or at the wrong times, etc. Even modern games suffer from this on tasks designed to be random...nevermind a full game.

 

Imagine the helpline traffic (!)

 

I'll wait for that random rom writer deal.

Share this post


Link to post
Share on other sites

How about a totally new direction in games engine programming

Yes, I always think in that when I am with my 'trying to get coders to convert old un-released games for A8'...For example:My first enter here was about my Last Ninja crazy to have it on A8. From the begining I started to think if it would be worth to have LN (even with lots of A8 colours) and it is exactly the same places to pick-up objects, use them,...Then I have solved that with having the same map as C64 but I invented a new way to get the objects and weapons and the objects needed to pass each one of the levels are diferent on A8. Maybe one day you play and see what I have in mind.Returning to your thoughts, I think that there are games and there games.If you convert one of that Magnetic scrolls graphic adventures not released with todays G2F and/or Rasta Converter it would be probably simply just import the screens and all the game logic/question and answers just copy of other syatems I know, almost 100% sure people will pick-up one of the old Magazines solutions and 'key' them just to see all the beautifull screens (but we all, for sure, did this on the past...).But for games, platforms ones, like Manic Miner, the game logic can be the same as you see the keys,... but if you don't walk and jump with the right precision, at the correct places you'll end up dying soon.But others like LN even that precision at the correct/same places is needed if the Objects and Weapons are always at the same places then the game soonlost in interest.I am talking about converting old games but the three types I said above also applies for new games.For me it's just a question of the type of the game you are creating...

Share this post


Link to post
Share on other sites

Imagine the helpline traffic (!)

 

Hey, what an idea... 'traffic', I remember Trafic Lights. I always go at at the same city roads near me and always know if the car from up road go, then the left road,... and when I approach the trafic light seeing this I know how much time I have to wait.

Now imagine that up road cars moving, then down road and then left road always could be:

-> up road cars moving but this turn to red it could be next any of the others... Radomly... I would never know when I would have the chance to walk to the other side of the road (same for the car drivers because they would never know when would be their turn to re-start moving).

 

 

Am I geting crazy?

Edited by José Pereira

Share this post


Link to post
Share on other sites
How about a totally new direction in games engine programming

 

You go first then.

Share this post


Link to post
Share on other sites

You'll be happy to hear that HARem is (a bit) random.

 

And to say FinalFantasy is not random is a joke in itself. The first 6 at least are based on random encounters. So is Alternate Reality. WTF

 

HOWEVER, i see a (small) point there. Bu tthat is no news, as I have a random based gam ein my head since at least 1 year.

Share this post


Link to post
Share on other sites

Hey, what an idea... 'traffic', I remember Trafic Lights. I always go at at the same city roads near me and always know if the car from up road go, then the left road,... and when I approach the trafic light seeing this I know how much time I have to wait.

Now imagine that up road cars moving, then down road and then left road always could be:

-> up road cars moving but this turn to red it could be next any of the others... Radomly... I would never know when I would have the chance to walk to the other side of the road (same for the car drivers because they would never know when would be their turn to re-start moving).

 

 

Am I geting crazy?

 

just so you know, there is a field of research to optimize traffic lights. So get used to it beeing "random" ;)

Share this post


Link to post
Share on other sites

just so you know, there is a field of research to optimize traffic lights. So get used to it beeing "random" ;)

So, I am not totally mad... Just a little bit!...

Share this post


Link to post
Share on other sites

How about a totally new direction in games engine programming

 

I.E, after you've played the game a few times or clocked (as in completed) the game same number of times, the game becomes 'predictable', i.e you know the general layout of the game in relation to all the game components in respect to where they figure (they being the various and all game components programmed into the game) as you progress within the game, so you know the general paths/movements and start points of the baddies or enemy characters/sprites, you know when and where and how each enemy character/sprite will fire or kick or do something to the player character you control, you know where all the pitfalls/dangers etc are within each stage/level etc as well as the general layout of the stage or level (so you know where in that level you can take a breather for a few minutes), i think you get my drift of what i am saying

 

 

 

If I read this correctly, I think you are describing Tail of Beta Lyre

Share this post


Link to post
Share on other sites

I didn't read all of the above message as it was too big, but I do think that I got the essence of what you're trying to say.

 

Yes, I think it will give an element of randomness each time which is good. However, you would need to be careful that it randomly enters data which -has a purpose-.

 

Imagine the game "Tagalon" being randomly mapped out. I wouldn't just want a fence tile to be stuck in the middle of a field. So OK, I program it so that fence tiles must be combined together to make lengths of fence. I then have to ensure that I am not creating an enclosed area of fencing where nobody can enter. But then I may actually want areas like that. But when I implement it, it may just look "out of place", which an algorithm will struggle with as that is a human concept.

 

The 2nd time I play the game also, maybe I want to feel a sense of achievement, so really I want to know my way around a bit better. But now all my skills have been wiped out by a random algorithm.

 

What I like most is the idea that I can save shed loads of RAM. Well, that is as long as my algorithm doesn't end up using more space than the data.

 

I'm unsure whether I like this idea or not. I keep changing my mind.

Share this post


Link to post
Share on other sites

I think you could have just said, "I think games should have a more random elements to them-this would help with repeat playability." Instead, we have a non-coder's viewpoint on how to code "random" games, which just comes across as rambling and generally incoherent.

 

Some games lend themselves to a more random element than others. Add too much randomness and you just piss off the player. Imagine a strategy game where everything is "random". Every encounter or battle is decided by some random factor-the player will be quickly frustrated. Or how about make the length of a jump in Jumpman completely random?

 

Randomness is a design decision and must be part of the overall game play design. I think you'll find that TONS of game include random elements to some degree.

Edited by Shawn Jefferson

Share this post


Link to post
Share on other sites

One recent game that I think would be nice to have randomized is 'DIAMONDZ.XEX'. It is a fun game but now that I know all the Levels fairly well some of the fun has gone.

Swapping the levels around randomly I would like. Also the same for 'Nibbly'

Share this post


Link to post
Share on other sites

True random would be a debugging nightmare and lead to generated scenarios that weren't possible or fun.

 

What is a better way of doing it is to have prefabricated level components and have those tagged up with metadata which contains additional information about how this fits into the grand scheme of things, such as how it contributes to the difficulty of the level, other elements that you might want to control (e.g 'is this a more action-oriented sequence? is this more puzzle-based?) that would allow the user to control the kind of game experience they got and also 'cause and effect' (for example you need the key to be available if you're putting the door into the map, or from a plot perspective you can't go rescue a princess if she hasn't been kidnapped first). This building blocks can then be assembled into larger chunks, which can incrementally be built up into entire levels.

 

That ought to balance out the need for new and random game play but still allow an element of design and sanity in the output, and you would get a bit of player customisation thrown in at the same time.

 

If you are going to implement something like this though you need to be aware that there is a patent on this method of doing things which was initially targeted at editing video in real time, but a 'Media article' in that patent can be a game level and a 'media element' a level segment. IIRC level building was one of the examples given.

Edited by sack-c0s

Share this post


Link to post
Share on other sites

Whilst not truly random the map generator we used on XCOM: Enemy Unknown & TFTD created such a huge number of map variations that not all were tested, Given:

 

"A terrain types X B map templates X C tiles X D structures X E map sizes X F difficulties X G enemy ships X H enemy deployments X I landing sites X K enemy forces sizes X L enemy force makeup"

 

Added to the player choice variations Force Size, Weapon and Equipment load outs, PSI skills, Character quality, Character stats (in shooting, health etc).

 

Then add on the fixed location designs, such as ships, plus your bases laid out, configured and equipped as you chose!

 

All meant we had no way of testing all variations even though we created self playing tools to test as well as 1000's of QA hours.

 

Even now I get players telling me of impossible missions :)

 

sTeVE

 

P.S. We estimated on TFTD we were able to generate over 14 million unique maps - and that was just "A terrain types X B map templates X C tiles X D structures X E map sizes"

Share this post


Link to post
Share on other sites

So one day the game is a kart racer, the next day a 3d shooter, the next a text adventure, and some days, an onion.

 

In my recollection there have been many games that used random elements, if none come to mind, that's kind of a commentary on market acceptance.

 

I think you outlined a real problem with repetitive game play, but the solution is online multiplayer, let real humans provide the variation. And the A8 can do that. ...has done it. I'm thinking of adding internet multiplayer to a game sometime...lol if I find the time.

Share this post


Link to post
Share on other sites

Exactly. Computers are not clever enough yet to figure this stuff out (especially in regards to design aesthetic).

 

I recall in a thread about Pinball simulations, a comment was made to the effect of "Pinball Construction Set tables all feel like Pinball Construction Set". In other words...even though a human is making the decisions of how to place the elements to create a new game, the result is little improvement over the original - which were designed using tools made specifically to create the original tables included with the game. The core engine remains the same, so anything user-created would have a difficult time topping what was already done.

 

OK...so scrap that direction and go for a multiple-scenario game engine where the user can decide on which tools to use to form the rules which the game engine follows (since the computer cannot do this on it's own). Unfortunatly, people are lazy and don't want that much work involved just to play a game...so they inevitably tweak the settings to give themselves every possible advantage right at the start. The result is boring gameplay. Unremarkable and quickly forgotten.

Share this post


Link to post
Share on other sites

I agree developers should use some randomness in games to vary things - even in platformers a small amount of code could switch over a couple of platforms or features effectively doubling up levels where RAM is tight. This would make things interesting for the player and keep them on the toes. The downside is the extra testing. Imagine in the 1st Donkley Kong screen if the ladders/gaps/broken ladders were repositioned (as a game option perhaps) the logic for the game would largely remain the same (bad example as it's an awesome game but you get the idea) :)

 

In Gwobby's Adventure I used some elements of randomness with level generation (within boundaries) and occasional 'Mania' levels where you are chased right from the off...

...I expanded on this in Gwobby Strikes Back! which ended up with 234,258 different screen platform combinations (though I could have done more to vary the screens) on top of this there are other random elements for ladders and rings and death sequences, [plus extra lives awarded based on how poorly you are doing!] so no two goes would be the same.

 

There must be other games with significant in game variation: didn't Mercenary have a couple of endings depending on which side you destroyed at the end? Regular MULE players will notice the game seems to have variations in play (though more would be awesome!)... even after years of playing you still occasionally see something new like the Mechtrons actually playing the Crystite game :-D

 

If I read this correctly, I think you are describing Tail of Beta Lyre

we still need a working version of this great game with the Gravity Bombs that pull your ship about - the tape version is out there (xex/ATR) but doesn't have this really neat unique feature. The disk versions seem to suffer with the grey screen bug/copy protection issue during play - I even get this on my original disk :_( Perhaps someone can fix this one day ;)

One recent game that I think would be nice to have randomized is 'DIAMONDZ.XEX'. It is a fun game but now that I know all the Levels fairly well some of the fun has gone.

Swapping the levels around randomly I would like. Also the same for 'Nibbly'

Agreed! Hope someone will design some new levels for Diamondz and ask Fandal to code them. If you like Diamondz Checkout Atomit, Atomix/Atomix+? and perhaps MITE :-o

Share this post


Link to post
Share on other sites

Platformers: Spelunky, Terraria..

Top down: most rogue likes, Dwarf Fortress..

3D: Sentinel (?), Minecraft..

Share this post


Link to post
Share on other sites

3D: Sentinel (?)

 

Level number is seed for generator - yes, it has some characteristics...

 

Wonder why nobody mentioned 'Seven Cities of Gold' yet...

Share this post


Link to post
Share on other sites

Platformers: Spelunky, Terraria..

 

One of my started projects is (or was) a platformer with random level generation. The codename for the project is a bit mysterious - "Pitfall 3" ;-)

The code is ready to handle a lot of large on-screen objects animated by software (font) sprites. Each screen line is multiplied by 3 with change of the font each line. This way only 1/3 of memory is needed to store objects on the map and all the object operations are 3 times faster. Take a look a the display list.

 

I attach a small engine demo + map generator compiled for Windows console and Atari. Atari version does not show anything except a message that a new level has been generated. The code for the level generation is written in not very optimized CC65 and takes about 5-10 seconds on Atari to generate a new level. It is acceptable for travelling from one level to the next one during the game. It could be also done with a "Create a new adventure" button that in some time would create and save a bunch of levels.

Pitfall3.zip

Edited by ilmenit

Share this post


Link to post
Share on other sites

One of my started projects is (or was) a platformer with random level generation. The codename for the project is a bit mysterious - "Pitfall 3" ;-)

 

And some screenshots for it:

post-22831-0-11596200-1347965371_thumb.pngpost-22831-0-62826400-1347965371_thumb.png

post-22831-0-22024800-1347965443_thumb.png

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...