Java-Gaming.org
 Featured games (81) games approved by the League of Dukes Games in Showcase (492) Games in Android Showcase (112) games submitted by our members Games in WIP (556) games currently in development
 News: Read the Java Gaming Resources, or peek at the official Java tutorials
 Show Posts Pages: [1] 2 3 ... 7
 1 Discussions / Miscellaneous Topics / Re: HighSchool classes on: 2014-08-09 01:24:28 Since you are going to take Algebra you'll be inundated with solving systems of equations from the implicit angle where your variables x, y, & z are in the same equation. That is one way to structure equations. There is also the explicit form called parametric equations which provide separate equations for each parameter which achieve the same result as the implicit form except is much easier to manipulate because the one variable usually is (t == time). Example for a circle... Implicit form:x^2 + y^2 = r^2Explicit / parametric form (t == time):x = sin(t)y = cos(t)Which one do you think is easier to manipulate programmatically? Want to create a circle moving through a cylindrical motion moving forward in time... Guess what... z = tAs time moves forward you move in the z-axis making a circle...Parametric math is extremely helpful for creating patterns, paths, and working with projectiles or particle systems.The above also defines the unit circle which is something you should internalize along with the unit sphere in terms of rotations and other fun stuff that will be rather handy for 2D and 3D game dev.------I was pissed that in all the math classes I took in high school it wasn't until I was in a calculus class in college that offhand one exercise set had a few problems doing calculus on parametric equations which were not introduced as something unique; just more problem sets to plug through. I immediately saw the independent variable (t) and saw how it related to all sorts of useful graphics use cases. This could be taught to 9th graders yet for whatever reason unless you have a savvy teacher or good math book that relates to computer graphics concepts most highschool algebra is plugging through exercise sets with implicit / systems of equations busy work.
 3 Discussions / Miscellaneous Topics / Re: I once was a DJ (~50 hours on SoundCloud) on: 2014-08-02 19:36:19 Speaking of acid techno.... I just saw that ShaderToy added audio support with shaders... Check out this acid techno shader jam:https://www.shadertoy.com/view/ldfSW2
 4 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-08-02 19:18:16 Quote from: princec on 2014-08-01 20:34:41The data is stored in whatever method HSQLDB seems to think is most efficient for storing it, so that's something you don't need to think about. You just say what the data is, and how to index it.Now... about logic and data being removed from each other. That's a bit hand-wavy isn't it? By what measurement?What is efficient for HSQLDB is likely not efficient for the hardware (GPU) or even optimized CPU usage and still needs to be transformed. The data component / POD approach allows the data to be stored locally in the efficient form for the hardware. If folks think CA is not appropriate for client side development I don't think involving a database approach is appropriate for the client. Quote from: princec on 2014-08-01 20:34:41I absolutely think that of anyone here tinkering with CAs that you should be one of the people giving it a whirl to see how it works out for you as you've got direct experience of the "other" way.Personally, I'm trying to get back to earth again after embarking on the last major round of experimentation! I've got my gravity boots on and your rocket fuel will be passed on to the next astronaut. ;P The CA route is more encompassing than just usage for ES. The database approach and application is limited in scope to a subset of ES activities. I think someone should give it a go, but that's not me. I am all for comparisons and building up a test suite between different CA and ES implementations including further experimental approaches.
 5 Discussions / Miscellaneous Topics / I once was a DJ (~50 hours on SoundCloud) on: 2014-08-02 18:52:20 Well, I once was an active DJ and promoter of underground electronic music. Mostly "industrial-techno" or the cross section of powernoise, hard techno, and non-cheesy hardcore (there's a difference!). As things go when things got serious with building my R&D music studio (see http://www.egrsoftware.com/ for picts) I had to pull back from my music endeavors, especially promoting events, at the time '08. Still don't have time for it and well the stuff I'm into still isn't exactly popular out here in the US / west coast / San Francisco. Early on I hosted many London acid techno producers such as Chris Liberator, DDR, D.A.V.E. the Drummer, so definitely was inspired by acid techno back in the day. Here is a video of the last event I hosted in San Luis Obispo before getting out of college... DDR rocking a hardware set... ;P TAZ2002Back in SF I did host luminaries in the hard techno scene toward the end of my run including ArkusP, Robert Natus, and DJ Amok from Germany. I guess the tag team set I did with DJ Amok at Stanford radio KZSU was the widest listened one. Last year I posted all my live and studio DJ mixes from vinyl on SoundCloud and some early production work too along with a live experimental performance. There is ~50 hours of music up there for anyone here that likes this kind of stuff. Check it out if it's your thing and you need some tunes to code to... all night...  https://soundcloud.com/catharsisegr
 6 Discussions / General Discussions / Re: So... state of the art 3D "engines" in Java on: 2014-08-01 21:15:02 To get anything close to Unity functionality from the tooling perspective and runtime flexibility a component architecture is pertinent. Unity itself licenses and integrates various 3rd party middleware. SpeedTree being an example. If your effort was commercial I'd look at various 3rd party industry standard middleware to integrate. Sundog's SilverLining (sky rendering) and Triton (ocean / wave rendering) could be good additions to SpeedTree. For indoors I'd do a patchwork of separate BSPs (to my understanding this is what the Unreal engine does; haven't looked at Unreal 4 / recent source) which can be streamed.Outdoors indeed would be Octree plus heavy streaming.. Try and work out an editor like Grome (http://www.quadsoftware.com/index.php?m=section&sec=product&subsec=editor). Don't know if that company would license editor code. Pulling together an editor for outdoor / indoor would be a challenge.
 7 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-08-01 20:21:22 What Riven said of course... and.. Quote from: princec on 2014-08-01 19:20:26Does it actually need any particular use case? Performance would be one. I mentioned other reasons / answers to your question prior why I'd prefer the CA / query mechanism to be Java code. Some of them:- Runs anywhere w/ no dependencies and small code footprint - Data is stored naturally in the format most useful to send to the hardware at hand.- Logic is not far removed from the data and directly acts upon it- All code and data can be versioned, modularized, and deployed with one tool chain.- Refactoring support is super strong for pure Java. - Cross-compile to iOS via RoboVM (been really impressed w/ LibGDX in this regard lately!)Quote from: princec on 2014-08-01 19:20:26Looking at the classes of "problem" solved by CAs and entity systems here what I see is just basically set operations on relational data. That is an aspect to it all, but one of many concerns. The runtime aspects of being able to store components by extensible enum and use that same enum as data defining a category implicitly for event distribution in the EventBus is super powerful use case.  I'd be down to see someone experiment in that direction, but not for me..
 8 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-07-31 20:17:38 Quote from: appel on 2014-07-31 04:53:52I spent a great deal of time profiling Artemis to ensure its design wasn't bottlenecking the performance, and I did not find it lagging behind its OOP alternatives, e.g. dozens of thousands of entities.What you did with Artemis especially considering the experimental / trailblazing aspect is a complete success. For the type of games (2D / platform) created with Artemis it works well. I was very impressed when I checked out Naturally Selected 2D running on an iPad2 which is the lowest specced device I've tested with so far. Any discussion I'm contributing to here is more or less aimed at floating ideas around future directions. Saying that Artemis is a really good "type I" ES does not detract from what was accomplished. Quote from: appel on 2014-07-31 04:53:52If you have more than a dozens of thousands of entities, hundreds of thousands, then you're doing something terribly wrong. No game should have that number of entities active in its world at a given time.All I wanted was a easy design, where I wasn't schizophrenically dependent upon some hierarchical OOP structure and was fast enough.But that doesn't mean Artemis-design is suited for all. It's quite rigid when it comes to how entities are composed.I think you could say.. No 2D game should have that number of entities active in most usual game play scenarios. All of the Artemis related games I got to compile surely fit those assumptions.For a 3D game that is partitioning a larger world including partitioning the ES then entity counts could be in the hundreds of thousands (let's say ~15-20k per region), but of course in most situations only updated for regions near the player(s). The design I'm working toward is meant to support a larger general use case, so the additional data oriented packing and efficiency will make a difference. I'd say a fair assumption about "type II" ES is that new architectures are less rigid and increase the throughput and conceivable data parallel aspects of the ES out of the box. In the case of my efforts integration into the larger engine architecture is much easier since the CA relationship is inverted with the CA being a superset of the ES.
 16 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-07-24 19:47:32 Technically what I've done is taking stock Java 5 language level features and inverting OOP on its head to make Java as functional like as possible without requiring taking the step of moving to a JVM based language to achieve this level of dynamic behavior. Runs everywhere including all versions of Android. The problem, having a large differentiated OOP SDK to deploy across the Android ecosystem, existed before the solution. It's nice that this direction also fully supports a fully dynamic CA based ES too without hard locking the API to one particular use case allowing dynamic optimization possibilities. I tried everything OOP (well except dependency injection; shudder / eh! We can at least agree DI reeks and is of the devil right?) under the sun to ease the pain before finding something that significantly eased the pain and brought joy to coding again. You too will have your pain eased in time.. ES4L!  ES 4 Life, Yo...
 17 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-07-24 19:18:51 BAH!! You wouldn't believe what I've seen; beautiful accelerating heuristics dynamically unfolding through time.
 18 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-07-23 20:46:45 Quote from: princec on 2014-07-23 09:02:45It's a pretty ambitious free-to-play MMOG in which literally thousands of battledroids try to kill each other.Right on.. I'll be in line to pick up a copy when you get it out there. For a moment there I wondered if you were being facetious to back up a point...  Quote from: seismic on 2014-07-22 08:26:32From what I can see in the readme, Ashley looks like 99% Artemis. Only it uses different names for things? Where is the big difference here? Nice that it's on gradle but we have an ArtemisGDX (or whatever it is called) there too. So, hmm, not sure why one should use Ashley now?The potential benefit for Ashley is libgdx integration with an expanded set of standard components that work with other areas of libgdx out of the box. The libgdx collections backing the ES implementation may be slightly faster as well.
 20 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-07-21 18:02:43 Quote from: appel on 2014-07-21 17:05:22Java is a very cumbersome language when dealing with inherently dynamic nature of ES. Probably 90% of the overhead and complexity is the ES implemention for Java (Artemis) stems from the rigidness of the Java language. If you were writing in JavaScript, it would be almost effortless and natural to go the ES way.There is a bit more flexibility regarding Java when it comes to supporting dynamic nature of component architectures. Seemingly focusing on the component architecture first and then extending it to build an ES versus wrapping basic CA techniques around a purpose built ES is a step to unlock a different design and more performance.What I mean by that is the aspect, heh, of tying the CA to the notion of "aspects" or "family" as an organizational pattern impacts the flexibility of the CA API itself. In this case systems in Artemis and Ashley are organized as broad phase processing, but are limited to processing fully composed entities sequentially.
 21 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-07-21 16:30:29 And then there was Ashley...    http://www.badlogicgames.com/wordpress/?p=3481https://github.com/libgdx/ashleyAfter a quick code review though it looks like it borrows the design completely from Artemis and will have the similar performance bottlenecks and general rigidity. It will be interesting if any additional performance can be squeezed out of it and where the folks behind it will take it given that it is tied to libgdx.
 22 Discussions / General Discussions / Re: Component Systems: Artemis style systems vs. traditional fat entities on: 2014-07-20 18:30:52 It's gold right, the toaster; no, let's make it solid platinum!
25  Game Development / Shared Code / Re: Beware of Enum.values()! on: 2013-03-12 18:11:29
Since we're expanding on various oddities.. With J2SE Enum hashCode() returns the identity hash code on Android hashCode() returns the ordinal + hash code of the String name of the enum. Doh! If you try and mix a lot of Enum with other objects returning the identity hash code on Android collisions potentially occur. Also if you have two Enum classes with a duplicate name in the same position the hash codes collide. Doh!

On Android:
 1  2  3  4 `    @Override    public final int hashCode() {        return ordinal + (name == null ? 0 : name.hashCode());    }`
 26 Discussions / General Discussions / Re: I Switched to IDEA! on: 2013-03-12 17:55:26 I've been using Idea for over 10 years, but v12 impressed me considerably. In my efforts with TyphonRT which is composed of 700 source code modules v12 with the compilation improvements takes 23 seconds on a circa '11 MBP w/ an SSD for a fresh build. Prior to v12 9 minutes; I was definitely getting worried! I'm liking v12 a lot and very glad about the community edition being available if I initially have to depend on others who want to work with the source directly using Idea if there are any potential Eclipse issues with large amounts of modules.
 27 Discussions / Miscellaneous Topics / Re: Have you ever been Jumped/Beaten up? on: 2012-01-18 13:11:32 I've been lucky to not get jumped. I live near a shady area in SF / SOMA, so this is definitely always on my mind. If you look at the crime heat maps I'm real close to a big one. It's odd how a block or two away things are much worse and I walk through that area all the time to a local bar sometimes with my pool sticks. Luckily I'm tall and reasonably fit looking, but the biggest thing is just common sense and having decent awareness when in route. I'm doubly careful walking through said shady area late at night. But seriously any fight would freak me out as well the best course of action is usually to run away. If you can't run just give up whatever they want. My friends got jumped at knife point in Oakland and they quickly emptied their wallets and were lucky thankfully. I never got into fighting, duh clackity clackity, but always stayed clear due to being reasonably strong. With someone my size some decent damage can be done. I've really been meaning to start some martial art; quite likely Brazilian Jiu Jitsu as there is a highly regarded Gracie academy half a block from me. Not that BJJ would help in a street fight all too much with multiple assailants. I'm definitely interested in getting out of "coders head" and get moving around and learn how to control ones body with the appropriate force. Hah. I went to college in San Luis Obispo, CA and that is where Chuck Liddell is based and I was like 30 feet away on a big Mardi Gras party weekend when a fight broke out. Lets just say it didn't go well for the guy that tried to hit the Iceman and it was over quick.
 28 Game Development / Newbie & Debugging Questions / Re: Abstract classes and interfaces help on: 2011-12-20 08:07:44 I suppose I do this in my efforts for the core component architecture at least since it makes things clearer. You'd have to dig around some other posts to get all the background & "razmatazz". componentManager.getAs(IActivityLifecycle.class) by naming convention alone makes it clear that one is dealing with an interface and not expecting code completion to any public member variables... I don't prepend shared / IE cross-platform J2SE / Android classes with "Shared" or J2SE. The actual cross-platform implementation or base class is "ActivityLifecycle" which may also be dual registered and accessed as componentManager.getAs(ActivityLifecycle.class) along with the interface. Likewise with the Android specific version: componentManager.getAs(AndroidActivityLifecycle.class). However for cross-platform usage things are composed using the interface and if direct access is necessaryfor any given component they are also stored under the actual implementation type. In my case the naming convention helps shorten cross-platform implementation class names whether they are base classes or what not. Technically devs using my efforts can do whatever they want for naming conventions, but I've found the prepend useful for interfaces and code readability in my core component architecture work. It's not for everyone nor a rule; use when handy essentially. Before my efforts went full on cross-platform I didn't standardize on prepending "I". I'd also argue it depends on the size of the project; less than 50-100 classes and small entity hierarchy then don't bother. While the core architecture is small w/ my efforts the larger network of components / libraries is growing beyond 1600 classes now with likely ~2k by the time I fully flush things all the way out feature wise; nice thing is it's highly modularized. Prepending "I" for interfaces just helps out at a certain scale, but to each their own.
 29 Game Development / Newbie & Debugging Questions / Re: Abstract classes and interfaces help on: 2011-12-19 04:14:01 An interface essentially is a public contract. In Java it's also a top level type that is referenced by it's class. IE .classIn your case with a base NPC class consider if there were private implementation details that could differ between a conceivable second base NPC class. This could be anything really. Creating an NPC interface ("INPC") that provides the public contract allows you to use either base NPC types interchangeably. An example of this is that say you create a collection ArrayList. Now you can put either base types into this list and iterate over the common interface.Interface based programming is important in larger architectures and app dev. In your case you may get away with things for a while depending on the scope of your efforts.Interfaces are useful when private internal implementations differ, but the external public contract is the same between different implementations.
 30 Discussions / General Discussions / Re: Still hardly any games, why entity systems suck, and why 4k is good on: 2011-11-25 19:12:31 Quote from: pjt33 on 2011-11-25 18:39:42Quote from: Catharsis on 2011-11-25 04:01:30I'm kind of surprised this isn't the common understanding and am at times kind of amazed at some of the discussion in this thread and forums in general. Not to be disparaging per se, but it's like CS 101 hasn't sunk in at all.CS 101 shouldn't be covering software engineering. That's a completely separate discipline.I was being a little rhetorical in that statement. It's fundamental knowledge essentially and is widely recognized as a best practice in the industry. On whether software engineering is a separate discipline I at least do not treat it as such. The left hand must know what the right hand is doing otherwise if you just want to be a brick layer and be paid less be a programmer with little responsibility. You may eventually despise your work / job when non-software engineers / architects are calling the shots and this _will_ happen at some point if you don't demand to take control of this or keep it in mind in your career path. Besides when working as an indie one does both. There is no reason why one can't be a hands on architect especially on a small to mid sized team. As far as teaching and degree wise I absolutely think it's a tragedy that things are being separated. After the CS 101/102/103 but before the typical data structures / algorithms course software architecture / engineering should be part of the curriculum. What are data structures other than patterns of organizing data. This is accomplished through a knowledge of the "paradigm" of implementation OO or otherwise. A course on design patterns before data structures seems appropriate in my opinion.
 Pages: [1] 2 3 ... 7
 Add your game by posting it in the WIP section, or publish it in Showcase. The first screenshot will be displayed as a thumbnail.
 Nickropheliac (16 views) 2014-08-31 22:59:12 TehJavaDev (23 views) 2014-08-28 18:26:30 CopyableCougar4 (33 views) 2014-08-22 19:31:30 atombrot (42 views) 2014-08-19 09:29:53 Tekkerue (41 views) 2014-08-16 06:45:27 Tekkerue (35 views) 2014-08-16 06:22:17 Tekkerue (26 views) 2014-08-16 06:20:21 Tekkerue (37 views) 2014-08-16 06:12:11 Rayexar (72 views) 2014-08-11 02:49:23 BurntPizza (49 views) 2014-08-09 21:09:32
 BurntPizza 36x Rayvolution 31x Riven 27x princec 25x kevglass 21x Longor1996 15x PandaMoniumHUN 12x Roquen 11x basil_ 11x theagentd 10x gouessej 9x ags1 9x nsigma 8x trollwarrior1 7x cylab 7x HeroesGraveDev 7x
 List of Learning Resources2014-08-16 10:40:00List of Learning Resources2014-08-05 19:33:27Resources for WIP games2014-08-01 16:20:17Resources for WIP games2014-08-01 16:19:50List of Learning Resources2014-07-31 16:29:50List of Learning Resources2014-07-31 16:26:06List of Learning Resources2014-07-31 11:54:12HotSpot Optionsby dleskov2014-07-08 01:59:08
 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