[QUOTE=xAustechx;25841564]That looks nice ander. :D
[b]I know you guys are getting tired of seeing this on the waywo by now[/b], so I'll put it in a media tag.
[media]http://i56.tinypic.com/300wrwl.jpg[/media]
Tried making a little user browser for Zombie Outrage 2.[/QUOTE]
Not so.
[QUOTE=Tobba;25841579]Still need to fix AA
Its loading my own binary format, I still have to figure out why it wont load the teapot properly[/QUOTE]
CornflowerBlue :allears:
[QUOTE=NovembrDobby;25842334]CornflowerBlue :allears:[/QUOTE]
Are you sure? Looks a little darker to me. :v:
[img]http://upload.wikimedia.org/wikipedia/commons/6/67/Color_icon_Cornflower_blue.svg[/img]
[img_thumb]http://dl.dropbox.com/u/4838268/cube.png[/img_thumb]
Edit: Oh wait. It's just this new monitor. Cornflower blue actually looks like it's supposed to, now :v:.
[QUOTE=andersonmat;25841483]Unfortunately GUI in Java is a huge pain in the ass[/QUOTE]
something in java is a pain in the ass? stop the presses.
[editline]3rd November 2010[/editline]
[QUOTE=Tobba;25841579]Its loading my own binary format, I still have to figure out why it wont load the teapot properly[/QUOTE]
i feel you man. 3d modelling really gets on my nurbs.
[QUOTE=deloc;25842835]something in java is a pain in the ass? stop the presses.
[editline]3rd November 2010[/editline]
i feel you man. 3d modelling really gets on my nurbs.[/QUOTE]
>Rate funny for stop the presses comment
>Refresh page
>Nurbs
>Can't rate funny again
>:saddowns:
[QUOTE=Chandler;25831464]I think you just accidentally created some fractal geometry. congratulations! :D[/QUOTE]
A fractal is self-similar as you zoom in. This is just an interference pattern.
[QUOTE=deloc;25842835]something in java is a pain in the ass? stop the presses.
[/QUOTE]
:derp:
[QUOTE=Darwin226;25830450]The only good feeling after making a successful program in an unmanaged language I'd get is because the language gave me more opportunities to screw up and I didn't.
The garbage collector for example. It takes care of memory management for you (for the most part).
Why do it yourself? You won't manage your memory that much better manually while there are infinite memory leak possibilities.[/QUOTE]
Actually if you're trying to code a pretty realtime application the gc sweeps are going to kill your loop timing. Is it every 250ms? I forgot. Managing your own memory can be beneficial. It [i]depends on the application's needs.[/i]. Or perhaps just your taste for the language. I havn't used C++ a lot but I've learned a lot of it, because that knowledge is useful sometimes, even if my main language is C#.
[QUOTE=Icedshot;25836814]Mwahaha
[img_thumb]http://i55.tinypic.com/zls0gz.jpg[/img_thumb]
Thats the end of me spamming my lighting[/QUOTE]
Still not perfect
I finally got some form of a preprocessor working.
[code]
`foreach(var, list;of;stuff)
${var}
`endforeach
[/code]
So I basically implemented CMake's language. :eng99:
Back to the drawing the board, I suppose :sigh:
[QUOTE=gparent;25843560]Actually if you're trying to code a pretty realtime application the gc sweeps are going to kill your loop timing. Is it every 250ms? I forgot.[/QUOTE]
That's not how mark & sweep works. No modern garbage collector initiates a mark & sweep at timed intervals, it sweeps on heap allocation if it decides that available heap memory is low. That means if you don't heap allocate in a performance critical loop, you won't trigger a sweep. This isn't as easy in Java and scripting languages, but in languages like C#, D and C++ (with the Hans Boehm GC, for example) it's easy to avoid heap allocation for specific sections. And in any language you can preallocate your memory (which is recommended for deterministic performance even without a GC) using stuff like free lists. If you're using GC in a language like C++ or D, you can also temporarily disable the GC and run the collect cycle later at an appropriately chosen time (this also allows for deterministic execution of finalizers). For example, with games it's a known trick to run the collect cycle before waiting for sync when that's enabled. In C#.NET, you can use GCLatencyMode.LowLatency (and other GCSettings) to achieve mostly the same results for critical sections.
Just because garbage collection has a runtime overhead doesn't mean it will always affect performance in your application. With a little bit of consideration, it's easy to write performant code running in a garbage collected runtime. If you're on a multi-core system, the CPU overhead in runtimes like .NET and JVM are even smaller because those garbage collectors are almost entirely concurrent.
[QUOTE=jA_cOp;25846874]That's not how mark & sweep works. No modern garbage collector initiates a mark & sweep at timed intervals[/QUOTE]
pardon my pedantry, but I believe the unreal engine actually does use timed intervals. (Though it doesn't cover the whole memory tree, but rather as much as it can in a given frame of time (x), every (n) frames)
[QUOTE=Chandler;25846916]pardon my pedantry, but I believe the unreal engine actually does use timed intervals. (Though it doesn't cover the whole memory tree, but rather as much as it can in a given frame of time (x), every (n) frames)[/QUOTE]
That's an example of invoking the garbage collection manually, the garbage collector won't interrupt the program at timed intervals to do a collection cycle.
[QUOTE=jA_cOp;25846874]That's not how mark & sweep works. No modern garbage collector initiates a mark & sweep at timed intervals, it sweeps on heap allocation if it decides that available heap memory is low. That means if you don't heap allocate in a performance critical loop, you won't trigger a sweep. This isn't as easy in Java and scripting languages, but in languages like C#, D and C++ (with the Hans Boehm GC, for example) it's easy to avoid heap allocation for specific sections. And in any language you can preallocate your memory (which is recommended for deterministic performance even without a GC) using stuff like free lists. If you're using GC in a language like C++ or D, you can also temporarily disable the GC and run the collect cycle later at an appropriately chosen time (this also allows for deterministic execution of finalizers). For example, with games it's a known trick to run the collect cycle before waiting for sync when that's enabled. In C#.NET, you can use GCLatencyMode.LowLatency (and other GCSettings) to achieve mostly the same results for critical sections.
Just because garbage collection has a runtime overhead doesn't mean it will always affect performance in your application. With a little bit of consideration, it's easy to write performant code running in a garbage collected runtime. If you're on a multi-core system, the CPU overhead in runtimes like .NET and JVM are even smaller because those garbage collectors are almost entirely concurrent.[/QUOTE]
That said I'd also like to note that one of the greatest misconceptions about managed languages is that you don't have to worry about memory. It's simply not true if you care about writing anything other than trivial, or pure trash slow horrible code. I personally worry about programmers who don't even at least basically understand the performance characteristics of whatever gc their host environment implements, and worry even more about those who wouldn't know that there is more than one type of gc.
[QUOTE=blankthemuffin;25847003]That said I'd also like to note that one of the greatest misconceptions about managed languages is that you don't have to worry about memory. It's simply not true if you care about writing anything other than trivial, or pure trash slow horrible code. I personally worry about programmers who don't even at least basically understand the performance characteristics of whatever gc their host environment implements, and worry even more about those who wouldn't know that there is more than one type of gc.[/QUOTE]
I agree, if you want any kind of performance in a garbage collected environment, you still have to worry about managing memory. Of course, the upsides are still clear: you can manage memory only for your critical sections, while doing write-and-forget where it's not important. You usually also get a memory safe environment (.NET barring C#'s "unsafe", JVM, scripting languages etc) which can greatly reduce time spent on bugs like dangling pointers etc.
A lot of GC users in more conservative languages (I even talked to one who used it for his very large C application) tend to liken garbage collection to that of a safety net, I think that's a very sensible way of thinking about it.
[QUOTE=xAustechx;25841564]That looks nice ander. :D
I know you guys are getting tired of seeing this on the waywo by now, so I'll put it in a media tag.
[media]http://i56.tinypic.com/300wrwl.jpg[/media]
Tried making a little user browser for Zombie Outrage 2.[/QUOTE]
I know it's not very programming related, but I think you should put more effort into the quality of your menus and visuals. Probably 10-20% of my programming time is spent repositioning, resizing, recolouring menu / gui / hud stuff. It makes such a difference in whether people will look at your game and think "That looks amature" and "That looks like he's put hours into it". People are shallow, remember that the face of the program is just as important as its brain.
For example here - the text fills the boxes and the boxes have no padding, and the text is really big. Also the positioning of the info box is top-center-right, which is kind of odd. Making proportions and positions feel "right" is important. The fact that all the name boxes are different widths looks unusual too to me.
I know it's sort of unrelated to the actual workings of your project, but attention to these little things makes all the difference IMO and it's what I always aim for before I release anything.
[QUOTE=bootv2;25847179]is there a portable release of that? I want to be able to use that in computer class.[/QUOTE]
No, but you could install MinGW ? MSYS + Code::Blocks on your USB drive.
So I put my BBS up for a public trial. The UI is a little rough around the edges, and it's not very featureful yet.
It's accessible over SSH:
[release]
ssh [email]bbs@bbs.charlie.bz[/email]
[b]Password is bbs[/b]
[/release]
Please try to crash it, but let me know what you did and what the stack trace said so I can fix it :)
Enjoy!
Posted reply to the first thread on the bbs. Made a period on it's own line and pressed enter:
"Are you sure you want to post this reply?"
*Pressed enter, without sayinig yes or no*
"Unhandled Exception: System.IndexOutOfRangeException: Array index is out of range.
at sshbb.UI.ThreadReply.Present (sshbb.Model.User user, sshbb.UI.UiToolkit ui, sshbb.Model.Thread thread) [0x00000]
at sshbb.UI.ThreadView+<>c__DisplayClass5.<Present>b__1 <> [0x00000]
at sshbb.UI.UiResult.Next <> [0x00000]
at sshbb.Program.Main (System.String[] args) [0x00000]
Connection to bbs.charlie.bz closed."
[QUOTE=grlira;25833895]
[cpp]
//bla bla bla code
// we're in the update() function
foreach (RedBall redBall in RedBalls) { //RedBall is my renderable object, RedBalls is my LinkedList
if (redBall.getPos().Y > 300) { //300 hardcoded for testing purposes atm
RedBalls.Remove(redBall);
}
redBall.Update(gameTime);
}
// bla bla bla more code
[/cpp]
Now, what this does, is complain that "Collection was modified after the enumerator was instantiated".
I know what it means, but can't figure how to solve it. Any ideas?
thanks for any help[/QUOTE]
In situations like this, I use an approach similar to the following:
[cpp]
//bla bla bla code
// we're in the update() function
for(int i = 0; i < RedBalls.Count(); i++)
{
if(RedBalls[i].getPos().Y > 300)
{
RedBalls.RemoveAt(i);
i--;
} else
RedBalls[i].Update(gameTime);
}
// bla bla bla more code
[/cpp]
You decrement to offset the fact that you just removed an element.
[editline]4th November 2010[/editline]
Of course you will need to adjust the iteration if it's a linked list and not a list.
[editline]4th November 2010[/editline]
Of course you will need to adjust the iteration if it's a linked list and not a list.
[QUOTE=Siemens;25847395]-charlie bbs-[/QUOTE]
When inputting a password, I pressed backspace and it added a star.
[QUOTE=mechanarchy;25847904]In situations like this, I use an approach similar to the following:
[cpp]
//bla bla bla code
// we're in the update() function
for(int i = 0; i < RedBalls.Count(); i++)
{
if(RedBalls[i].getPos().Y > 300)
{
RedBalls.RemoveAt(i);
i--;
} else
RedBalls[i].Update(gameTime);
}
// bla bla bla more code
[/cpp]
You decrement to offset the fact that you just removed an element.
[editline]4th November 2010[/editline]
Of course you will need to adjust the iteration if it's a linked list and not a list.
[editline]4th November 2010[/editline]
Of course you will need to adjust the iteration if it's a linked list and not a list.[/QUOTE]
With iterators, the erase method usually returns the next iterator so you can use that.
[QUOTE=Siemens;25847395]
Enjoy![/QUOTE]
Double tapping return results in "121;1R" Being printed, The first number seems to change each time?
Also, Tabs condense down to single spaces once posted.
I never use BBSsss so I don't know if any of this behaviour is normal, though.
[media]http://www.youtube.com/watch?v=oaUhPg44Xlk[/media]
Cleaned up the screen..... looks much better now.. also easyer if youre working in it.. much... like making a calculator (*, -, /, +)
And somehow i still cant find the damn button to remove the audio >.>
[QUOTE=jA_cOp;25846874]it sweeps on heap allocation if it decides that available heap memory is low.[/QUOTE]
Yeah, I got confused by another article. Which is weird cause I knew that too. But either way, it's not going to work out unless you preallocate every byte of gc'd memory you use. You can't just hope the garbage collector won't take too long the next time you allocate. It'd be way easier to use a language meant for it.
[QUOTE=bromvlieg;25849673][media]http://www.youtube.com/watch?v=oaUhPg44Xlk[/media]
Cleaned up the screen..... looks much better now.. also easyer if youre working in it.. much... like making a calculator (*, -, /, +)
And somehow i still cant find the damn button to remove the audio >.>[/QUOTE]
That's awesome, but holy fuck that music scared the shit out of me.
[QUOTE=Jallen;25850829]That's awesome, but holy fuck that music scared the shit out of me.[/QUOTE]
Indeed, very trippy.
[QUOTE=bromvlieg;25849673][media]http://www.youtube.com/watch?v=oaUhPg44Xlk[/media]
Cleaned up the screen..... looks much better now.. also easyer if youre working in it.. much... like making a calculator (*, -, /, +)
And somehow i still cant find the damn button to remove the audio >.>[/QUOTE]
You stole those cogs in the main menu from E2 :cop:
[QUOTE=Jallen;25850829]That's awesome, but holy fuck that music scared the shit out of me.[/QUOTE]
Really?
"This video contains content from Sony Music Entertainment. It is not available in your country."
:frown:
[QUOTE=Siemens;25847395]So I put my BBS up for a public trial. The UI is a little rough around the edges, and it's not very featureful yet.
It's accessible over SSH:
[release]
ssh [email]bbs@bbs.charlie.bz[/email]
[b]Password is bbs[/b]
[/release]
Please try to crash it, but let me know what you did and what the stack trace said so I can fix it :)
Enjoy![/QUOTE]
I tried it with putty and when I wanted to open a thread from the second page of threads then putty just exited. Not sure what really happened.
Sorry, you need to Log In to post a reply to this thread.