Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (541)
Games in Android Showcase (133)
games submitted by our members
Games in WIP (603)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 [2]
  ignore  |  Print  
  Memory, Then and Now  (Read 5935 times)
0 Members and 1 Guest are viewing this topic.
Offline Damocles
« Reply #30 - Posted 2012-08-11 07:51:27 »

Speaking of low RAM gaming.

How about a "MicroRam" Java Contest.
Somehow severely limiting the Heap Memory allowed to be used.

Im not shure how that would technically work over the different JVM Versions (maybe running a anlysis program to assess
the actual used memory by the game, while ignoring the JVMs inherend Memory use that cant be avoided)

the "-Xmx1m -Xmx1m" probably does not give a constant usable amount of memory on different systems.

Or the programmer is only allowed to use a bye array
byte[] mem=new byte[256];
as workmemory, and can not instantiate any objects or variables apart from it.
(excluding a fixed minimal set of Input/Output functions to interface with the machine)

Im shure it would be a nice challenge.







Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #31 - Posted 2012-08-11 07:58:45 »

Speaking of low RAM gaming.

How about a "MicroRam" Java Contest.
Somehow severely limiting the Heap Memory allowed to be used.

Im not shure how that would technically work over the different JVM Versions (maybe running a anlysis program to assess
the actual used memory by the game, while ignoring the JVMs inherend Memory use that cant be avoided)

the "-Xmx1m -Xmx1m" probably does not give a constant usable amount of memory on different systems.

Or the programmer is only allowed to use a bye array
byte[] mem=new byte[256];
as workmemory, and can not instantiate any objects or variables apart from it.
(excluding a fixed minimal set of Input/Output functions to interface with the machine)

Im shure it would be a nice challenge.







I think that would be very interesting, actually! I'd be interested in seeing what the more experienced people here could come up with; I probably couldn't come up with much. I'm fairly sure the contestants could be tested with profilers to make sure they don't exceed an established guideline amount of memory; this way, their methods on top of their variables could be monitored. I'm sure there's a better way to do it, but that's the first thing that pops into my head. Cheesy

Colton

Straight flippin.
Offline Roquen
« Reply #32 - Posted 2012-08-11 08:07:38 »

It's be easier to have a virtual machine to program to.  (Humm...I have a java 6502 emulator that I wrote somewhere).  A vector machine would be fun.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #33 - Posted 2012-08-11 08:10:05 »

It's be easier to have a virtual machine to program to.  (Humm...I have a java 6502 emulator that I wrote somewhere).  A vector machine would be fun.
Ah, yes, that'd be cool. Gotta love emulators. For a case like this, I think your 6502 would be perfect. :]

Colton

Straight flippin.
Offline Damocles
« Reply #34 - Posted 2012-08-11 08:14:26 »

Yes, I think there needs to be some virtual (fixed) Machine to be interfaced to.
It does not really need to be some real-life machine. But something that suits the purpose of running a game.

So this virtual machine is providing input events, and accepts output events to it fixed-size "video RAM" and sound generator.

The gamelogic gets to strict limit to only use a size limited amount of static memory.
(no dynamic instancing, everything has to be computed using a staitic array of ints,booleans or bytes, wich have an upper limit)

Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #35 - Posted 2012-08-11 08:16:42 »

Yes, I think there needs to be some virtual (fixed) Machine to be interfaced to.
It does not really need to be some real-life machine. But something that suits the purpose of running a game.

So this virtual machine is providing input events, and accepts output events to it fixed-size "video RAM" and sound generator.

The gamelogic gets to strict limit to only use a size limited amount of static memory.
(no dynamic instancing, everything has to be computed using a staitic array of ints,booleans or bytes, wich have an upper limit)
Precisely. And then perhaps the winner of the competition can have a special thread made in Showcase to show their results? Or perhaps a new forum branch can be opened dedicated to showcasing just these, if there are enough? How many moderators say "Aye" or have other suggestions?

Straight flippin.
Offline Riven
« League of Dukes »

« JGO Overlord »


Medals: 848
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #36 - Posted 2012-08-11 08:20:14 »

Artificial limitations are fun, but would a java forum be the best place?

Why not make a tiny JVM (no allocateable objects, only static methods) instead, then it makes sense. persecutioncomplex

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social
Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #37 - Posted 2012-08-11 08:27:06 »

Artificial limitations are fun, but would a java forum be the best place?

Why not make a tiny JVM (no allocateable objects, only static methods) instead, then it make sense. persecutioncomplex
Sure, why not!  Grin I figured it'd be cool though among the members here at the forum, but I mean maybe even at GameDev or something of the like, the competition could be advertised, where they have a larger volume of members. We don't even really need to use a JVM, because many emulators, like I mentioned before, offer the ability to program virtual tapes and disks and whatnot and some have SDKs, so one of those could be established as the required interface and then would be just a required download for anyone involved. I don't know; just my thoughts! :}

Colton

Straight flippin.
Offline Damocles
« Reply #38 - Posted 2012-08-11 08:30:54 »

Does anyone have experiene with open source JVMs?

In the end, this JVM could be used as a pure verification engine, to assert that the game runs in the low-mem requirements.
While also running in the Standard JVM to be visible to the public.

Offline jonjava
« Reply #39 - Posted 2012-08-11 08:31:41 »

Memory then is to Memory now as Processing speed now is to Processing speed with quantum computers in 10 years time blown out of the milky way.

BigO notation will be renamed LittleO™ and people will start to analyze how best to slow down the quantum processing speed in order for us to have time to see all the things that it's doing.

After that we could really benefit from a room temperature superconductive wire.

After that, we need to figure out how to send/receive signals faster than light. Something to do with Avogadro I'm guessing.

:}

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #40 - Posted 2012-08-11 08:36:38 »

Does anyone have experiene with open source JVMs?

In the end, this JVM could be used as a pure verification engine, to assert that the game runs in the low-mem requirements.
While also running in the Standard JVM to be visible to the public.
In the end, it doesn't matter to me, so long as I get to see you guys all duke it out for whoever can program the best game using such minimal resources Cheesy

Memory then is to Memory now as Processing speed now is to Processing speed with quantum computers in 10 years time blown out of the milky way.

BigO notation will be renamed LittleO™ and people will start to analyze how best to slow down the quantum processing speed in order for us to have time to see all the things that it's doing.
And this is when a change of britches will be required.

Straight flippin.
Offline jonjava
« Reply #41 - Posted 2012-08-11 08:40:41 »

"Britches (monkey), a baby monkey removed from a laboratory by the Animal Liberation Front"

What? D:

Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #42 - Posted 2012-08-11 08:43:08 »

"Britches (monkey), a baby monkey removed from a laboratory by the Animal Liberation Front"

What? D:
lol, it's a variant of "breeches", spelled like it's pronounced, at least where I'm from (California).

Straight flippin.
Offline UprightPath
« Reply #43 - Posted 2012-08-11 08:43:14 »

Other definition, friend! :3


Offline ctomni231

JGO Wizard


Medals: 99
Projects: 1
Exp: 7 years


Not a glitch. Just have a lil' pixelexia...


« Reply #44 - Posted 2012-08-11 12:23:42 »

Memory is important and I think because programmers have such an abundance of it, we are wasting it. If you look back to gaming, games did not need loading screens and load times were nil. As time progressed, we got more memory and instead of making games more efficient with the technology, we just made everything a lot more bulky. We have to sit down and wait for almost everything we do now. I think about 30% of our time in front of the screen now is wasted on waiting for applications to start or switch phases.

People usually think of games in terms of content, instead of how this content affects user experience. More content = the better. More graphics = the better. However, when you finally sit down to play the game, most of the time is wasted on waiting for the content resources and sparkly graphics to load up. User experience suffers, but I fit over 1000 different options for my game with graphics that outshine Halo. This type of thinking is what has led gaming down a sinkhole.

Limits are good, because it forces you to think about what is important when you are designing. In most cases, it makes sure that people have to focus on the game play more than any other aspect. To be honest, working on game play is the #1 thing that will make a game last a long time. All great games have 1 thing in common, they draw you back in to keep playing. What creates that draw? The game play. Everything else is just fluff and pizzazz, to draw users into looking at it.

I don't want to move too far off-topic though, but memory is very important even in a environment where it is abundant. The best programs are going to be the ones "who are effective at getting one thing done really well." It doesn't matter if it is a game or application, or what time it is written. The computer world does not differ from the real-world. We still should actively try to manage our resources and reduce waste to form a better community.


Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #45 - Posted 2012-08-11 18:21:59 »

Memory is important and I think because programmers have such an abundance of it, we are wasting it. If you look back to gaming, games did not need loading screens and load times were nil. As time progressed, we got more memory and instead of making games more efficient with the technology, we just made everything a lot more bulky. We have to sit down and wait for almost everything we do now. I think about 30% of our time in front of the screen now is wasted on waiting for applications to start or switch phases.

People usually think of games in terms of content, instead of how this content affects user experience. More content = the better. More graphics = the better. However, when you finally sit down to play the game, most of the time is wasted on waiting for the content resources and sparkly graphics to load up. User experience suffers, but I fit over 1000 different options for my game with graphics that outshine Halo. This type of thinking is what has led gaming down a sinkhole.

Limits are good, because it forces you to think about what is important when you are designing. In most cases, it makes sure that people have to focus on the game play more than any other aspect. To be honest, working on game play is the #1 thing that will make a game last a long time. All great games have 1 thing in common, they draw you back in to keep playing. What creates that draw? The game play. Everything else is just fluff and pizzazz, to draw users into looking at it.

I don't want to move too far off-topic though, but memory is very important even in a environment where it is abundant. The best programs are going to be the ones "who are effective at getting one thing done really well." It doesn't matter if it is a game or application, or what time it is written. The computer world does not differ from the real-world. We still should actively try to manage our resources and reduce waste to form a better community.


Agreed! Well said. :]

Straight flippin.
Offline Mads

JGO Ninja


Medals: 26
Projects: 3
Exp: 6 years


One for all!


« Reply #46 - Posted 2012-08-11 18:37:00 »

I believe big titles on the 360 still have to worry about RAM, since they only have 512 mb. I believe to have read that they had to make a more narrow field of view on one of those shooting games, but that has to be a GPU problem with too many polygons. I'm not sure. A limitation nonetheless.

Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #47 - Posted 2012-08-11 19:03:53 »

I believe big titles on the 360 still have to worry about RAM, since they only have 512 mb. I believe to have read that they had to make a more narrow field of view on one of those shooting games, but that as to be a GPU problem with too many polygons. I'm not sure. A limitation nonetheless.
True, 512m can be quite a small amount by today's standards. Consoles are still quite limited, unfortunately, and I think they always will be in relation to computers simply because of the model they're based on. I'm sure a lot of ingenious programming does still take place in the console field because of how tough they are to program well for in comparison to computers, which have such wonderful tools and resources available to make it relatively easier.

Straight flippin.
Offline Mads

JGO Ninja


Medals: 26
Projects: 3
Exp: 6 years


One for all!


« Reply #48 - Posted 2012-08-11 19:25:26 »

I believe big titles on the 360 still have to worry about RAM, since they only have 512 mb. I believe to have read that they had to make a more narrow field of view on one of those shooting games, but that as to be a GPU problem with too many polygons. I'm not sure. A limitation nonetheless.
True, 512m can be quite a small amount by today's standards. Consoles are still quite limited, unfortunately, and I think they always will be in relation to computers simply because of the model they're based on. I'm sure a lot of ingenious programming does still take place in the console field because of how tough they are to program well for in comparison to computers, which have such wonderful tools and resources available to make it relatively easier.

Well on the other hand, developers for the 360 only has to worry if it'll run on that one machine. We (PC people) have to worry that it'll run on all kinds of hardware. Both can be painful. For PC's we can of course just say "Meh, we don't want our game on silly specs", but then you're limiting the market.

I'm looking forward to the Ouya though, if that ever happens.

Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #49 - Posted 2012-08-11 19:31:10 »

I believe big titles on the 360 still have to worry about RAM, since they only have 512 mb. I believe to have read that they had to make a more narrow field of view on one of those shooting games, but that as to be a GPU problem with too many polygons. I'm not sure. A limitation nonetheless.
True, 512m can be quite a small amount by today's standards. Consoles are still quite limited, unfortunately, and I think they always will be in relation to computers simply because of the model they're based on. I'm sure a lot of ingenious programming does still take place in the console field because of how tough they are to program well for in comparison to computers, which have such wonderful tools and resources available to make it relatively easier.

Well on the other hand, developers for the 360 only has to worry if it'll run on that one machine. We (PC people) have to worry that it'll run on all kinds of hardware. Both can be painful. For PC's we can of course just say "Meh, we don't want our game on silly specs", but then you're limiting the market.

I'm looking forward to the Ouya though, if that ever happens.
I saw that and thought it was very interesting, though one of my friends was worried that the creator would be sued by Microsoft for their controller design, since it was too similar to the Xbox's controller. It's a nice step for independent game development, though, so I hope it comes through and that it doesn't have too many setbacks from entities like Microsoft or the like.

Straight flippin.
Offline Ultroman

JGO Knight


Medals: 25
Projects: 1


Snappin' at snizzes since '83


« Reply #50 - Posted 2012-08-11 19:45:08 »

About that amazing talk philfrey mentioned, here it is. I enjoyed it very much.

Well I don't know. However, princec posted an excellent link recently you might be interested in watching. Especially if you're looking to be a professional indie developer.

[snip]
I think this might go back to that fascinating talk given by Jon Blow on making computer games. Please watch it. It is massively significant to how good you will be at making games, or even just software.
[snip]

- Jonas
Offline R.D.

Senior Devvie


Medals: 2
Projects: 1


"For the last time, Hats ARE Awesome"


« Reply #51 - Posted 2012-08-11 19:48:18 »

Try PS3 or Wii. Even less RAM. Play Uncharted 2 or 3. On consoles memory is still important, imho. I worry about it too. And I think a lot of libGDX users too.

Quote
Memory is important and I think because programmers have such an abundance of it, we are wasting it. If you look back to gaming, games did not need loading screens and load times were nil. As time progressed, we got more memory and instead of making games more efficient with the technology, we just made everything a lot more bulky. We have to sit down and wait for almost everything we do now. I think about 30% of our time in front of the screen now is wasted on waiting for applications to start or switch phases.

It takes time to load textures/sounds etc o.o Of course this allocates more memory but as you can see on console there is a limit to it. Most texture seem blurry on console and clear on PC Smiley So technology moves on and better graphics/sounds mostly need more memory -> loading time. I guess at least...
Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #52 - Posted 2012-08-12 00:47:42 »

Try PS3 or Wii. Even less RAM. Play Uncharted 2 or 3. On consoles memory is still important, imho. I worry about it too. And I think a lot of libGDX users too.

Quote
Memory is important and I think because programmers have such an abundance of it, we are wasting it. If you look back to gaming, games did not need loading screens and load times were nil. As time progressed, we got more memory and instead of making games more efficient with the technology, we just made everything a lot more bulky. We have to sit down and wait for almost everything we do now. I think about 30% of our time in front of the screen now is wasted on waiting for applications to start or switch phases.

It takes time to load textures/sounds etc o.o Of course this allocates more memory but as you can see on console there is a limit to it. Most texture seem blurry on console and clear on PC Smiley So technology moves on and better graphics/sounds mostly need more memory -> loading time. I guess at least...
Indeed, they do a pretty sweet job. From what I've heard, assembly is still used quite a bit in the console industry to squeak out some extra juice.

As an aside, do you guys think it would be worth my time to read Michael Abrash's Black Book of Graphics Programming? I have myself a copy and it looks interesting, but most of the material looks dated. I have kind of a thing for old-school graphics and game programming and stuff, but I'm more concerned about whether it will teach me a lot about things I can apply to today's game programming world :p

EDIT: I also have a bunch of Andre LaMothe's old game programming books I plan on getting into Grin DOS emulator, here I come!

EDIT 2: I took a look at just the first chapter of Abrash's book.... and it came straight back to something I was taught about the other day on these forums about serialization...



Colton

Straight flippin.
Offline philfrei
« Reply #53 - Posted 2012-08-12 06:47:15 »

Colton - you made me blush. Take my advice with a grain of salt, because I burned out royally, and left programming for an awful long time. I only discovered Java, and that programming could be fun again, a couple years ago, and there is a LOT about modern programming that I know little about.

Also, computers were a lot simpler then. Windows did not exist. The Web did not exist. Color and graphics, also much, much simpler. Thus, less cleverness was needed than now.

Still, it is generally good to be curious and to check things out. So if your intuition is saying "go take a look," it is probably worth doing so and finding out for yourself.

"It's after the end of the world! Don't you know that yet?"
Offline coltonoscopy

Junior Devvie


Medals: 2



« Reply #54 - Posted 2012-08-12 08:40:44 »

Colton - you made me blush. Take my advice with a grain of salt, because I burned out royally, and left programming for an awful long time. I only discovered Java, and that programming could be fun again, a couple years ago, and there is a LOT about modern programming that I know little about.

Also, computers were a lot simpler then. Windows did not exist. The Web did not exist. Color and graphics, also much, much simpler. Thus, less cleverness was needed than now.

Still, it is generally good to be curious and to check things out. So if your intuition is saying "go take a look," it is probably worth doing so and finding out for yourself.
I think that programming then and now are completely different paradigms, to be honest. Java's great, but I think it's lost some (not all!) of what it meant to program at times like then, where programmers were much closer to the hardware. Java's abstraction, however, also allows wonderful things to happen thanks to all the work that has gone into putting layers over the difficult aspect of coding low-level. I don't think most of what we accomplish today can be done with raw assembly coding, which is why I look at the two paradigms as meritable in their own ways; surely learning more low-level coding is essential to being a fantastic high-level programmer, and I'm already learning some interesting stuff from Abrash's book; in fact, he was the co-creator of Quake, having been a developer at id, and id was the company that Jon Blow (the guy who gave the aforementioned talk) referred to when he was talking about criticizing code as a college student. It's sort of crazy how all of this stuff sort of ties together! Cheesy

I really love programming and learning about all of this stuff, so I'll probably end up pursuing assembly language with C soon and programming on emulators and using the Gameboy SDK and whatnot just to get some experience with it, because it sounds like a very challenging but knowledgeably rewarding endeavor. I think there's a lot about programming that we all don't know, so I figure a wise path might be to start more at the true fundamentals of it all Grin Plus, there really is nothing quite as intriguing as firing up DOS and programming like it's 1990 XD

Colton

Straight flippin.
Offline wingsOrc

Senior Newbie


Medals: 1



« Reply #55 - Posted 2012-08-19 11:26:09 »

Quote
I really love programming and learning about all of this stuff, so I'll probably end up pursuing assembly language with C soon and programming on emulators and using the Gameboy SDK and whatnot just to get some experience with it, because it sounds like a very challenging but knowledgeably rewarding endeavor. I think there's a lot about programming that we all don't know, so I figure a wise path

Man indeed it did this and im still doing this. I ended up with a gb emulator and it was hell a lot of fun to write it and analyzing old games' assembly code and seeing it run on your pc.
[size=8pt]shamelessplug: https://www.youtube.com/watch?v=9cgi8xuulKg[/size]
Offline Grunnt

JGO Kernel


Medals: 95
Projects: 8
Exp: 5 years


Complex != complicated


« Reply #56 - Posted 2012-08-19 12:59:42 »

I realize that many game programmers now probably take what they're doing for granted and abuse the fact that they have so much RAM and processing to work with. It's amazing to think of the potential we have now on modern-day systems!

I think this is really a misconception, that "lazyness" is the main reason. Complexity is a more important factor I think: with a small amount of memory there's simply less code that fits in, which means less lines of code to optimize = easier optimization. Also, ofcourse, lower resolution graphics and ugly sounds aren't really what I would call "potential", but which is a more important factor than the size of the code base in using less memory. Finally, memory usage "potential" is severely limited by the time it takes a processor to use all this memory.

Offline Jimmt
« League of Dukes »

JGO Kernel


Medals: 143
Projects: 4
Exp: 3 years



« Reply #57 - Posted 2012-08-19 16:56:51 »

Also limited majorly by GPU, at least for most 3D games.
Pages: 1 [2]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Mr.CodeIt (10 views)
2014-12-27 04:03:04

TheDudeFromCI (14 views)
2014-12-27 02:14:49

Mr.CodeIt (25 views)
2014-12-23 03:34:11

rwatson462 (56 views)
2014-12-15 09:26:44

Mr.CodeIt (46 views)
2014-12-14 19:50:38

BurntPizza (92 views)
2014-12-09 22:41:13

BurntPizza (113 views)
2014-12-08 04:46:31

JscottyBieshaar (86 views)
2014-12-05 12:39:02

SHC (96 views)
2014-12-03 16:27:13

CopyableCougar4 (102 views)
2014-11-29 21:32:03
Resources for WIP games
by kpars
2014-12-18 10:26:14

Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!