Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark GDK / DGDK Open Source Project

Author
Message
jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 11th Dec 2010 02:41 Edited at: 11th Dec 2010 03:12
@Matty -
Quote: "I still have not got around to optimizing it, which I need to do as it runs a little slow on some netbooks."


- I found keyboard stuff ( where I did the fonts etc myself) were a real pain... trying to get cut-n-paste and keys like that etc - all working in the GUI with the keyboard/mouse working sensibly was a bit tough. I had to make a couple "timing" decisions/guess in a constant - and work out the "best" balance of keyboard sensitivity and mouse responsiveness.

Quote: "I was thinking about splitting the screen co-ords into a binary tree and each node would have a pointer to any gadget that is inside(or partly inside)"


This may or may not be the best thing to do based on how your drawing things; point is I don't know what ya have exactly BUT I do know that I put a ton of controls on windows and that wasn't my particular hit - mine was windows. To many of them. you see they are sprites in mine... and the gadgets are painted on the sprite directly... this allows for "quick-n-effective" windowing both in front of and behind (or kind of in) 3d scenes etc.

Quote: " it, my thinking is that I give the mouse(or whatever) co-ords to the tree and it returns a list of gadgets to check. I think this would work but I've never done anything like that."


You basically described it pretty well.. and it does work pretty decent - but the code can ugly. (I have a gut feeling that this might be overkill.. but this idea is also much more scalable a design than a straight linear list to be sure)

I built this sort of construct (programming pattern) in JGC v3.0 (or v2 maybe...forget) but I basically converted LIT's (Lost In Thought's) Frustum Culling code for limbed objects to DarkGDK. That was linear..effective - but linear. when things got slow - (like in your GUI) .. I too never needed a binary tree like this.. (understood em - never needed to write one) so I opt'd to do what I refer to as a "Quad-Tree". applied to your GUI flat grid control/gadget scanning thing... Here is what I think... probably rubbish.. but...

First: I'd make some mechanism that allows me to manage a hierarchy of data, not unlike the folders your harddrive.

Preferably, each node would be the same exact class. Use a vector, or something - note that dynamic double link list solutions, though powerful are not as fast as dynamic arrays: I recommend a fast "navigator" class - to get around your nodes. (I learned this the hard way)

Second: I'd make sure my node class had all the data elements I might need for the application;

For me, I like a minimum of a pointer and a type specifier to what it is my node is "representing" or "getting its data from". Going the simple route has its advantages... pseudo of simple (elements versus pointig to and interacting with classes using pointer referencing etc):



this would give you "yeah - mouse over gadget" but not any sort of z-order "detection" or reconciliation.

Third: I'd make my first instance of MyNode. The fields top, left, right and bottom (TLRB) be the entire screen's current resolution

...Or... some subset of the full screen. This would actually allow you to 100% ignore the mouse if it's not in your NODE0 defined REGION. Noe... This starting REGION size for now we'll just think in even numbers, only because our next step is to simply take our NODE0 Region... and break it up into four even sized "squares" or regions. (make odd and weird stuff if you want - not today from me though ) then in your MyNode (zero) .. you instantiate FOUR MORE instances of MyNode, stuff them into the Array inside MyNode0... and the TLRB for each - well.. One per quarter. The first one gets the TLRB of the top left quarter of our mouse region ... etc....

you can rinse and reeat as much as you like but be warned of the programming performance rulez of thumb... the formulas computer scientists use to analyze programs' CPU performance; measured inputs against outputs, data point level and workload? Forgot how it goes? Have no clue WTF I said?

I forget how it goes.. but here's the deal... there is this "sweet" spot" on how farto go with your quadtree - to reap optimization benefits not outweighed by the additional program jumps etc the code has to follow as it drills down to the "node" it cares about.

Further - it's a screen - (back to over kill thought) - but seriously - even only doing a simple "preprocess" of "is mouse in quarter of screen a,b,c, or d?" and then figuring out which gadget its over - would be a major gain from scanning all of them.

this whole "example" is SIMPLY THAT - over and over... For a screen - maybe 3 levels is good: Level 1: node0="mouse region" Level 2: Quarters of Region, Level 3: Quarters of each Quarter of regions...etc... (hard to explain something on paper would take 2 seconds)..NO I wont draw one! LOL...


Quote: "Basically - I'd start with the WHOLE screen - as node ZERO. Then "


AWESOME!- Well - you're on the right track and I think you'll not only pull this off but find yourself "playing" in this sandbox a bit once you get this "programming pattern" down and dream up a ton of ways to use it! I know i left a lot of detail on the execution - but JGC v3 is open source now - and it has this pattern implemented like I said - in the frustum culling code.

Give a shout if I can help - otherwise - give a shout and I stay quiet - either way - have a happy holiday season!

--Jason

[edit: addedquote bubbles]
[edit2: need another field - either a int for an id perhaps, or a pointer to a class or something of the gadget itself.]

[edit3: Sorry - I'm proofing... and I forgot to mention something key - maybe overlooked... The NODEs need the TLBR because that is how your code checks if it has work to do... FIRST it checks node0... is mouse within TLBR? No? Back to GAME! Yes? Ugh - must process further....

Loop through the four nodes in your Node0.MyArray.. if the mouse is within one - dig deeper.

You're lowest level in the Quadtree.. still has nodes under it! THOSE ARE the LIST OF GADGETS TO CHECK IN THAT REGION.

Ok - now you get that... here is the flaw with this design (not bad on frustum... this isn't a frustum though). Gadgets don't always land on nice even bounds that match your gadgets. What if a button is half in one and half in another node? There are a couple ways to solve this. One simple way is to list a particular gadget in each "node" it "grazes" or is plainly within.

edit done..]

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 11th Dec 2010 18:24 Edited at: 12th Dec 2010 12:00
Quote: "Do you have any optimizing techniques in MAUI as far as what gadgets to update each loop, or do you know of any standard way that its usually done?"
Yes, and if you update to the latest S3GE SVN Rev, it would be easier to explain. But, I'll give it a try here.

I simply use flags to determine what type of processing should take place and these flags can be set via behaviors and gizmo messaging.
My General Rule is if a Gizmo w/Sprite isn't visible you don't process its collision, operation, transition, actions, and display. However, some Gizmo w/Sprites may not be visible but still need to process collisions, etc, and some Gizmos don't have Sprites, so this method accounts for this. You enable/disable these flags as needed. Its much faster to process one condition, then to process two or more conditions or perform collision calculations, rendering calculations, etc.

From writing a few GUIs, I knew I would need some optimized collision algo and that's one many reasons why I desired to use a High Performance Physics Engine for Collision Detection. Hence, the use of Fulcrum and Box2D for collision detection. One could use Octree Culling or another method to optimize the display of Gizmos(i have yet to implement this).

I use a simple list container to manage the active gizmos and any of the flags can be set by an Event or by another Gizmo via messaging. Messaging is a neat concept and I adopted it from reading up windows message pump. The basic idea is that you send messages (instructions) from one gizmo to others to queue, that instructs them to move, open, close, zoom in, zoom out, etc. I expanded on the idea and can see the value in using messaging beyond the GUI such as Game Entities using it for handling interactivity between themselves, the player.

Found this resource on GUI Design

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 12th Dec 2010 23:04
@Jason - Alot of info there, thanks. My GUI was only very basic, it just did buttons as you would find in a game, not the kind of windows/editor GUI that Techlord is making, although alot of the principles apply to even simple buttons.

If I was making a full blown GUI like you made, and Tech is making, I would be sure it worked just like the Java swing library or the C# windows forms.

Thanks for the advice on binary/quad trees, I presume there may be some kind of ready made container I could use for the trees.

I am very interested in what you said about the frustum culling, is GDK culling really linear? If so, thats bad right? If I ever work on that part for S3GE I will be sure to check out your classes.

The thing I have been thinking about recently is light-mapping terrains, my various light-mapping tools don't seem to work properly with terrains for various reasons. I would think that light-mapping a terrain should be easy, I could be wrong.
Is it this simple, I just raycast from the light source to each point on the terrain and build my image from the results, then set the terrain detail texture to the lightmap?
I may look at adding this to S3GE once I finish Fulcrum, Fulcrum + light-mapped Blitz terrains should make a good combination.

thenerd
15
Years of Service
User Offline
Joined: 9th Mar 2009
Location: Boston, USA
Posted: 13th Dec 2010 00:08
hey, just popping in to say nice job! You've got quite the project here...


jason p sage
16
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 13th Dec 2010 21:49
@matty halewood

Quote: "@Jason - Alot of info there, thanks. "

You're Welcome.

Quote: "My GUI was only very basic, it just did buttons as you would find in a game, not the kind of windows/editor GUI that Techlord is making, although alot of the principles apply to even simple buttons."
Agreed - and you also learn things from each - and never forget my man - no such thing as a wrong way if it works - and from there the sky is the limit! I find there is always a lot of crossover with this stuff - and there is something to that pattern programming - keep nailing it man: I think you're doing awesome! Only way to master this... and then... I don't think one can... LOL... just improve indefinitely.

Quote: "
If I was making a full blown GUI like you made, and Tech is making, I would be sure it worked just like the Java swing library or the C# windows forms."
Very noble to match paradigms and ease porting and stuff - and just the theory of it all to new users - cool

Quote: "
Thanks for the advice on binary/quad trees, I presume there may be some kind of ready made container I could use for the trees."
Well - a valid question for sure - but for me personally, crossing the divide between understanding what I THOUGHT a quadtree was or an OCT tree was... and actually having written one that worked in practice (where I could KNOW for a fact it was working right or not...) Well.. I'm glad I went through the process because I actually learned quite a few neat beautiful and weird things from doing it and actually getting it to work! It SUCKED - but when it worked and the things I learned... priceless.

Quote: "I am very interested in what you said about the frustum culling, is GDK culling really linear?"
It would be presumptuous for me to say such a thing about DarkGDK in general without seeing the source code.How DarkGDK's internal culling is actually implemented is unknown to me.. however LIT's original DarkBasic PRO Frustum culling of Limbed objects ... that was linear... basically an array of objects to check. The quadtree lets you check if you need to bother first is all (and hence a speeed gain - often profound - sometimes non-existant - LOL)

Quote: " If so, thats bad right?"

..moot point now - but ... answer is .. nothing wrong with a linear array... until say it grows very large and you are forced to iterate through each and every "row" or "item" in the array to check it against the frustum ... This is the part that doesn't scale so well. If you can add logic to make the code a bit smarter about not messing with things it doesn't need to - and making sure it properly handles things when it should... meaning not "ignoring" things that should NOT be IGNORED.

Quote: "If I ever work on that part for S3GE I will be sure to check out your classes."
Only bother if they do something you don't know how .. otherwise I get bored myself

Quote: "The thing I have been thinking about recently is light-mapping terrains, my various light-mapping tools don't seem to work properly with terrains for various reasons. I would think that light-mapping a terrain should be easy, I could be wrong.
Is it this simple, I just raycast from the light source to each point on the terrain and build my image from the results, then set the terrain detail texture to the lightmap?"


I'm not an expert here - I've dabbled but not much lately.. but you kind of described it how I understand it more or less - and there are of course different approaches -= realtime processing - shaders or otherwise, and preprocessed media... but I can't really say much else here and add any value....

Quote: "I may look at adding this to S3GE once I finish Fulcrum, Fulcrum + light-mapped Blitz terrains should make a good combination."


Sounds fun - meanwhile - I'll be doing more arduous tasks like managing hosted servers, trouble tickets from clients and web stuff, data, email etc...ahhh...

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 13th Dec 2010 22:28 Edited at: 13th Dec 2010 22:32
Quote: "My GUI was only very basic, it just did buttons as you would find in a game,"

Matty, your not giving yourself enough credit. You have more than a basic GUI there and its highly animated too. Highly Animated GUIs are a feature I notice commercial games.

I too started with a simple GUI using bound boxes, mouse input, and collision detection between the two. However, I often found myself desiring more features. Then I had an . What about a 3D GUI using meshes? Anyways, MAUI 2.0 is my 15th iteration of a User Interface. I truly believe when folks accept its implementation is similar to a Web Browser/Web Pages, they will appreciate it.

This is why I resent the following statement:
Quote: "not the kind of windows/editor GUI that Techlord is making"
MAUI is nothing like Windows...LOL!

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 13th Dec 2010 23:12
Ha ha, sorry Tech.

Did you see the intel compo winners games? There was one called 'yump' that got a prize for its GUI, uses 3D gadgets/widgets/whats-thats. That was superb so I am really looking forward to giving maui a try, when I said 'like windows' I just meant it has a suite of gadgets/gidgets/toomanymidgits lol.

Faker1089
14
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 14th Dec 2010 01:54
Wow.....I found some time to come back to this and I am totally lost as to what the current goal is aside from GUI management. Anything need fixing or creation that is fairly modular? Good job so far, sorry I couldn't have helped more earlier.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 14th Dec 2010 15:43 Edited at: 14th Dec 2010 15:44
Quote: "Wow.....I found some time to come back to this and I am totally lost as to what the current goal is aside from GUI management. Anything need fixing or creation that is fairly modular? Good job so far, sorry I couldn't have helped more earlier. "
Welcome Back Faker1089. The goal is to get a Living Demo working in the form of simple Multiplayer FPS (Capture The Flag) and continue to add systems and features to S3GE & Game along the way.

There's way more than GUI Management going on in S3GE, but, its easier to explain if you can download, compile, and run the latest SVN Revision. Its recommended that if you havent worked with the SVN for awhile, delete the old DOSP and reinstall the new. There have been lots of additions and some have had issues with Windows 7.

At the present, I'm working on networking: HTTP for DarkNet 2.0, File Download Management via HTTP, and Server/Client Message handling, DarkNet-DarkLUA Script Engine Bindings. I have all of these in place and fleshing them out.

Once again welcome back.

Faker1089
14
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 15th Dec 2010 02:46
Ok, I will see what I can do. I have gotten things to compile with the current SVN on windows 7 so now I can browse around and try to work on stuff.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 15th Dec 2010 07:25
Quote: "Ok, I will see what I can do. I have gotten things to compile with the current SVN on windows 7 so now I can browse around and try to work on stuff."
Excellent. I'll be on MSN Messenger everyday from this point forward and available to answer questions. There are modifications to the image system and there are some display issues with Windows 7.

Faker1089
14
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 15th Dec 2010 07:38
Ok, sounds good.
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 16th Dec 2010 11:53 Edited at: 21st Dec 2010 20:53
@Faker, we're not crossing paths on MSN Messenger. What is your preferred Instant Messaging Software? I'm really excited to get an additional hand with Particle and Path-finding System. Please advise.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 21st Dec 2010 20:53 Edited at: 6th Jan 2011 17:08
Hi Everyone,

For the past couple of weeks I've been working on the S3GE's Networking:HTTP for DarkNet 2.0, File Download Management via HTTP, and Server/Client Message handling, DarkNet-DarkLUA Script Engine Bindings. This week I've focused on File Downloading via HTTP. I'm particularly proud of myself on its implementation and want to take time to explain how it works.



S3GE's network topology includes a Centralized Host Server in which the engine communicates to download media/data on demand (content repository), register game servers, serve web apps. This communication is implemented at the very lowest level File I/O within the S3GE::File::Exist() Method.

The S3GE::File::Exist() Method works similar to the typical FileExist Method, however, this method includes a bitflag parameter to load the file with a variety of local/remote loading options. It will use loading options to verify if a file exists. The Method will return integer value: S3GE_FILE_FOUND, S3GE_FILE_NOTFOUND, HTTPFile Resource ID.

If networking options are set, it will attempt to pull the file from the Host Server, returning the HTTPFileResourceID that can be used to track the progress of the file download. The loading of the file can by updated within the main loop or processed immediately.

Network Server/Client Messaging is next on the agenda. I already have basic Server/Client Communication established, just need to work out the details messaging header/body formatting over UDP.

Faker1089
14
Years of Service
User Offline
Joined: 30th Aug 2009
Location: My own little world....
Posted: 24th Dec 2010 15:58 Edited at: 24th Dec 2010 16:15
@Techlord what name should I search for? Your TGC name brings up nothing under MSN/Live messenger.


Edit: You could try searching for James Lennon, my profile pic is Edward from Full Metal Alchemist, and location is Okinawa (trying to avoid posting my email straight up on the forums here).
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 24th Dec 2010 19:55
Quote: "@Techlord what name should I search for? Your TGC name brings up nothing under MSN/Live messenger."
frankie_taylor@hotmail.com

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 28th Dec 2010 23:52
Hey Everyone,

I apologize for not making myself available on Instant Messaging as often as desired. It has really been a busy Holiday Season (way more than expected). However, I anticipate the festivities to slow down after New Years. From this point forward, I will be on Messenger (frankie_taylor@hotmail.com) 12-16hrs a day, just chime in when time is available. I hope everyone Holidays have been Merry.

Happy New Years.

Frankie `TechLord` Taylor


Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 30th Dec 2010 14:51
Merry Xmas Tech.

I updated Fulcrum recently, I don't know if its worth updating dosp just yet, you can take a look at my physics thread to see what was added and you can decide whether its worth it, with any luck we will have something alot better in a couple of months.

@ Tech - Regarding the networking stuff, is this gearing S3GE up to be able to handle MMO's etc? Or is it more to do with developing in a team over the net? or both?

Also, how portable is what you have written, is it GDK dependent?

Will you be writing any higher level stuff that will automate the process of adding multiplayer online to a game? I don't have much experience with writing for online gaming, but I would like to think you could have a command like 'putThisPlayerOnline(int playerID)' lol, and it will do almost everything for you regardless of what type of game it is, is this possible?

Happy new year everyone

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 30th Dec 2010 18:13 Edited at: 30th Dec 2010 18:17
Quote: "I updated Fulcrum recently, I don't know if its worth updating dosp just yet, you can take a look at my physics thread to see what was added and you can decide whether its worth it, with any luck we will have something alot better in a couple of months."
I will check it out in near future to see how much code rewritting in necessary. This is my greatest concern.

Quote: "@ Tech - Regarding the networking stuff, is this gearing S3GE up to be able to handle MMO's etc? Or is it more to do with developing in a team over the net? or both?"
Both, scalable from Small to Massive Multi-user/player for Applications and Games. The same networking for multi-player games is also used for supporting multi-user collaboration in applications such as the S3GEd Map Editor. Just another example of consolidation.

Quote: "Also, how portable is what you have written, is it GDK dependent?"

S3GE uses DGDK mostly as a Input and Graphics API for DirectX. DarkNet2.0 is the Network Library and its not dependent on GDK. The code I've writen, DarkNet Extension, is the glue code that integrates DarkNet2.0 into the Engine Core, its only dependent on GDK in regards to using the Network Communication to manipulate Graphics. Practically all of the code that I've written is Glue Code that integrates Independent Libraries to work with one another.

Quote: "Will you be writing any higher level stuff that will automate the process of adding multiplayer online to a game? I don't have much experience with writing for online gaming, but I would like to think you could have a command like 'putThisPlayerOnline(int playerID)' lol, and it will do almost everything for you regardless of what type of game it is, is this possible?"
Yes, I'm writing the highlevel stuff at a Application Layer. Darknet already handles adding/removing clients at the API Layer (Source Code).

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 30th Dec 2010 18:37
Thanks for your response Tech.

Quote: "I will check it out in near future to see how much code rewritting in necessary. This is my greatest concern."


Yeah, I understand.
I think S3GE is probably fine with Fulcrum for now, it should be good enough for most things.
The new plug-in will be pretty similar so hopefully it wont be too much work.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 1st Jan 2011 08:33 Edited at: 6th Jan 2011 17:15
When I started to seriously pursuit 3D game development I was seeking a Point & Click Game Creation System with a BASIC-Like Scripting for customizing the Game to my needs. I tried many Game Creation Engines, Editors, Languages, etc. Unfortunately, I never found a system that would satisfy all my requirements.

Thus, I set out to learn programming and develop the Game Creation System of my dreams. I'm currently in progress of developing a Multi-Genre Game Production Platform with the DGDK Open Source Project-Trio: Super 3D Game Engine(S3GE), Editor(S3GEd), and World(S3GW).

I'm boasting that our Platform will support most game mechanics found in popular genres out-of-the-box, from any camera perspective, and can be used for 2D, 3D, Text-based, Audio-Based Games. Game Developers will be able to mix and match any of these features, or create new ones to produce a unique game experience. All with a fully interactive Point & Click UI system.

Need More Power? Our Platform is Open-Sourced, uses XML & LUA (BASIC-Like Language) for Scripting Game Logic (comes with pre-fab scripts), Modular Entity Construction for 3D, 2D and Audio Media, and a Centralized Repository for storing, re-utilizing, and sharing this Game Content.

The true power of the Platform exists in its network capabilities. S3GE's networking incorporates Internet Servers providing a scalable Multi-user/player experience for Applications and Games in-game, out-of-game, and and via the Web.

I don't know about most, but, someday I plan to reap the monetary rewards from my hard work. Thus, S3G3 also has built-in support for online distribution, marketing, and credit/cash transactions for games developed with it.

However, a great deal of these features are being achieved by consolidating core systems, consolidating game mechanics, and taking full advantage of scripting and networking at low level operation.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 6th Jan 2011 17:25
Trapped In A Box...Flog by TechLord 01/06/11

IS there a good reason to continue developing games for the PC? It is obvious to me that the profit potential with PC Games are in a downward slope, meanwhile Console & Cellphone Games are soaring. I often feel like I'm trapped in a box or even worst, a coffin. I'm working on a dead Gaming Platform that will soon be buried along with the prestige of being a G33KSTA.

I'm holding on to the crazy notion that I can single-handedly revive the market for PC games. The big question is HOW? Well, my crazy notions are based on crazy marketing and distribution models... the kind you dont see normally related to games, and that's where TournamentBlitz comes in.

TournamentBlitz was originally an attempt to develop a Online Cash-Based Tournament Management API for any Single Player Game written in a variety of languages. However, during its development, I quickly realized many other possibilities: Tournament Games, Casino Games, Treasure Hunts, Pay-Per-Play Games, Paid-To-Play Games, Paid Advertisement, Item Malls, and much more.

That was 10 years ago. I was badly infected with feature creep and needless to say, the API never fully matured. To this day, no one has developed such an API, so I'm going for it again and this time with a different strategy. This time around, I'm developing a Super 3D Game Engine (S3GE) with TournamentBlitz built-in.

This approach will enable any games developed with S3GE to support a variety token & cash-based game play options with several payment options such as Paypal, Western Union, and other online e-commerce transaction processors. I don't anticipate a wide receiption for the S3GE, so I plan to focus on developing my own games with it.

The goal is to provide an extremely large set of options to generate profits within games developed with S3GE and that includes advertising and merchandise. I have a strong belief that as Indie Game Developers we're going to have to think-outside-box to earn profits with our games. Why try to put your game on the store shelf, when you can put the store in your game?

TheConnorian
14
Years of Service
User Offline
Joined: 18th Dec 2009
Location: I\'m in ur game, pwning ur noobs
Posted: 6th Jan 2011 23:48
continue please, computer games will never die and when this work is done and the engine is ready and we have made our games they shall rise in a tide of awesomeness and destroy the unbelieving consoles and their gamers and when the dust has cleared they shall be united under one banner, one thought, one gaming system. PC!
Red Eye
15
Years of Service
User Offline
Joined: 15th Oct 2008
Location:
Posted: 8th Jan 2011 13:10 Edited at: 8th Jan 2011 13:13
Sorry wrong thread.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 12th Jan 2011 21:32 Edited at: 12th Jan 2011 21:36
Taking a little time to write some help documentation on Super 3D Game XML/LUA (S3GXL) Script(WIP). S3GXL was designed to provide Game Developers with a powerful Markup and Scripting language to customize Game Object properties, behavior, and logic within the Super 3D Game World. S3GE's Networking and A/V Interface is inspired by the Web Browser. As such, S3GXL also adopts the Web Browser's HTML/Javascript Client-side Language combination using XML/LUA.

Example of S3GXL


Current S3GXL for the GUI. To get the Full S3GE SVN go here.

haliop
User Banned
Posted: 18th Jan 2011 12:19 Edited at: 18th Jan 2011 12:20
helloooooooooooooooo
long time since i checked in
i havent had time for myself latley not mentioning S3GE or any programming related stuff...

i have managed to do some work and found myself deep inside a PaintBall arena working as an instructor.. a dude needs to live right?

well , im not back yet , gotr kicked from my adpartment and found a new one preparing on moving on this week or next , but you guys are always on my mind , everything idea i have and stuff , games etc .. ive opened a facebook group called the famillia and im welcoming you in if you had facebook .. however i did managed to draw something , from my expriance with S3GE , Physics and Evolutanry Ai bots , here is is , Enjoy this drawing , made with Windows Painter , after i painted it i realzed alot of stuff about S3GE , Programming and alot of stuff i want to accomplish , the drawing is a bit crazy , but pls take like 10 minutes to understand it , just sit , relax and try to feel what im trying to say here, talk soon , nadav.

Attachments

Login to view attachments
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 19th Jan 2011 18:32
Quote: "the drawing is a bit crazy , but pls take like 10 minutes to understand it , just sit , relax and try to feel what im trying to say here, talk soon , nadav."
Good to hear from you Haliop. I seriously tried to interpret what your trying to convey in the painting, but, I'm lost. Perhaps the image is too BIG to view the whole picture. Can you shrink it down and provide a little more detail?

haliop
User Banned
Posted: 21st Jan 2011 19:52
ive comeup with the next facebook , its crazy man.
i just dont know yet what it may become.


think of an OS , but instead of one you interact with , it interact with you, like the pc is the master the player is the robot.. how can i explain such a thing?


well, think of any electronic device that can simulate itself inside its so called brained or CPU , it simulates and simulates on and on and never stop , upgrading what it have configured plus making extreme changes from each simulation to another , regenrating its understading of its surrounding using Cameras .
all optic based when it comes to the outside world.

if you take a look at the picture , btw you can download it then look at it and scroll with it using windows image viewer or any image viewing and\ or editing.

so , the picture just shows the mass of data and calculation this system can do at any single time. and now for the explanation:

first , Simulation -> Evolution system of whatever you want to "grow" or "evolve" , from Ai Bots inside a game where they help you (player) or attack or just looking at you doing nothing saying.. dude i dont want to ruin neighter to fix..

this system is so simple to build , i just cant understand how i got so far but havent built it already, it is based on what you the human user wants to simulate and once you click "start" its very similar to the "Big Bang Theory" as long as your electronic device in our case a PC will be on , it will continue on and on and on , never stop.

and for further explanation i'll give yo the idea of tools like we human understand it.

you have 1 evo Ai bot , you create a surrounding for it like any 3D virtual world , each object in there (VR world) may or may not have an entity attached to it , to make things simple you simply declare what is static like ground and what is dynamic like a bike or something else..

the evo Ai bot have the ability to move on the surface , it have legs and hands a torso and a head in this example this evo Ai bot is a humanoid bot , in every simulation it starts at a random spot or at a declared spot , somewhere over there there is a bike , it can move his hands randomly and move his legs randomly , now a simple algorithem or a state machine , declare this:

legs below torso , hands random , head above torso and at a random angle, you declare a simple objective , from the place evo ai bot starts to a 100 meter distance , do it the fastest way possible.

now run this simulation 1000000 times... the pc does this in like one day 24 hours of extreme cpu testing.

at 50000 simulation , it knows how to run
at 100000 simulations , it knows how to jump and run and maybe take another route to the 100 meter end point.
at 500000 simulations , it for a random paste learned that once it touched the bike it moved a bit , at 500001 it declares the bike as a tool of movement , the next time and for the next 10000 times it will try to ride it , somehow in a random way it has succseded and now at 750000 times simulated this evo ai bot can now ride the bike for the 100 meter goal.

now i know this may seem hard to accomplish , but since it is evolutioned designed , the pc will do it itself, and the human player user is turned into the 0 \ 1 instead of the computer , every 10,000 simulations you the user click if that was good or bad.. but really there is no need , cause its all about what do you want it to do.

but this is too far ahead in real evolution, lets just create 2 evo bots , named Adam and Eve , the only thing they can do is Breed , Eat.. they have a full or semi full or just a small area to cruise around , it may take sometime to add all of this content like Tree -> Fruits (needs water and fertile land) , but do we need it that far? or do we just need this:
Tree -> Timer 10 sec - > drop fruit.. after 1000 simulations Adam knows that , that tree gives a fruit every 10 seconds.
its evo bot babies will also know that , since it is stored in Adam genetic code or.. if Adam still lives ,his babies will probably follow him , or atleast we can declare that until they are 500 simulated , a simple " Follow Parent " patern will do it , cause once Adam goes there , it Eats, the kids Eat 2 , now it is stored in their genetic code.


now what if adam have 10000 kids , and we have declared "TAKE CARE OF ALL KIDS" , adam also have the ability to pickup an a Stone , it randomly pick the Stone and randomly toss it , move it , do whatever , i can go on and on and on , until i'll actually build this i may not really know where im going at.. as i said earler i still do not know what its all about , but
just take Trixie for example , the Stamp algo can have an Evo of itself , as i said any electric device that has a CPU is able to use this, everytime Trixie stamps an area you let it simulate it 10000 times , with an objective of "1000 stamps , fastest way to cover most of the area".. you give Trixie Stamp algo to size,rotate,move,streach the stamps or whatever it will find at the end the best way to do it.

at the end product , we may assigne the Evo ai system to anything by anything with anything.

im working non stop on this , i got a pc that is not connected to anything and some nice algos to go with , still not functioning well , but it may suprise me by the end cause it is mostly random based..

the funniest and best part is , that the system is extremly thought and have too many functions and functionalties to talk about on 1000 posts, but if we just want a simple Evo Ai Enemy Bot to fire upon a player and work in squads with its fellow members , you actually degrade the system to only what you need..

for the last word , now take a look at the picture , look at the both humanoids at the picture , these 2 just relaxing at this time , and then take a look at the JetSki , a simplier form of the Evo system , has the ability to Cruise on water and turn around , thats it , move farward , revers , turn around.. everything else is random based , if it had a gun , then also the ability to shot , but thats it.

from what i have understood about evolution , sometiems the most complex object has the most simple properties and actions.

nadav.

btw the 3D Grid is awesome
Gibba gobba
15
Years of Service
User Offline
Joined: 21st Dec 2008
Location: regret
Posted: 26th Jan 2011 06:47
how far is this project? i never see it stickied.

20th Anniversary
The Unofficial Migration Suggestion Board
http://forum.thegamecreators.com/?m=forum_view&t=166736&b=26
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 26th Jan 2011 08:53 Edited at: 26th Jan 2011 16:01
Quote: "how far is this project? i never see it stickied."
Hi Gibba, thanks for your inquiry.

The Super 3D Game Engine has several functional core systems: scripting, networking, physics, UI, and I'm currently working on effects system. Pathfinding is the last core system and currently on hold until someone can work on implementing Recast/Detour or some other open source pathfinding library. Game-Related Subsystems to will be built from these core systems.

A sticky is not required, active participation and updates will keep the thread alive and within top listings.

haliop
User Banned
Posted: 30th Jan 2011 02:52
yo im back!!!
got a wifi connection for free
ahh good to be home.


i need the SVN and all that i kinda forgot how to use it
i will search back for it and redownload and reconfigure S3GE.
tech if you and matty and anyone else can get online on MSN it will help.
haliop
User Banned
Posted: 30th Jan 2011 10:02 Edited at: 30th Jan 2011 10:33
ok , i got the latest SVN which is 277
i need some help reconfigurin since im using a new drive for this.
tech , matty if you can get online on MSN.. it wll help out.

EDIT:
i have compiled it raned but stoped cause it couldnot find the lua files, therefor its the working directory or target directory inside the project properties , what do i need to write there?

2ND EDIT:
ive ran it from the excutable , still needed to change to full screen.

Illiduim feels natural thats awesome.
everything runs on 60 fps .
overall all good.

whats going on , whats new?
TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 5th Feb 2011 13:04
Quote: "Illiduim feels natural thats awesome. everything runs on 60 fps . overall all good."

Thanks Haliop, its operational and like many of the Core Systems will need to be refined (possibly reengineered) as the engine develops.

Currently, Illudium has Scripting and I will be adding Scene Graph management and Shader support in the near future. I will definately have to re-think my scripting implementation to accomodate performance. So far, I'm very satisfied with results and moving forward with implementing Pathfinding using RecastNavigation.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Feb 2011 11:53 Edited at: 9th Feb 2011 12:11
Pathfinding is a very important component of AI. After serious consideration I've opted to integrate RecastNavigation and my own Path Solver & Maze Generator.

S3GE Agents will utilize RecastNavigation for the autonomous navigation of exterior/interior level geometry. The Path Solver and Maze Generator can use similar algorithms(I'm starting with A*). The Solver will handle navigation for situation where geometry is not suitable. The Maze Generator will be precursor system for random level generation.

Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 9th Feb 2011 22:57
Why not use Micropather rather than making your own algorithm from scratch? It's very flexible, and very fast if implemented properly. Plus, it's literally a header file that needs to included not a library or DLL.


TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Feb 2011 01:34
Quote: "Why not use Micropather rather than making your own algorithm from scratch? It's very flexible, and very fast if implemented properly. Plus, it's literally a header file that needs to included not a library or DLL."


Hi Dar13, I'm actually adding Micropather lib to S3GE and using it for study in developing my own. I've previously written A* Solver and Maze Generation Algos in other languages and desired to 1) refresh my understanding of the algos; 2) rewrite them in C++; 3)Consolidate various Solvers and Level (Maze) Generator Algos under one system.

RecastNavigation is really powerful and negates the need to provide a graph. Thus, I anticipate using RecastNavigation for dealing with the AI Agent negotiation of game level with Geography/Architecture Geometry. However, not all Game Levels use Geography/Architecture (ie: Puzzle Games) and Pathfinding can be used for locating paths between two points at anytime, anywhere.

Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 12th Feb 2011 05:12
Quote: "Hi Dar13, I'm actually adding Micropather lib to S3GE and using it for study in developing my own. I've previously written A* Solver and Maze Generation Algos in other languages and desired to 1) refresh my understanding of the algos; 2) rewrite them in C++; 3)Consolidate various Solvers and Level (Maze) Generator Algos under one system.

RecastNavigation is really powerful and negates the need to provide a graph. Thus, I anticipate using RecastNavigation for dealing with the AI Agent negotiation of game level with Geography/Architecture Geometry. However, not all Game Levels use Geography/Architecture (ie: Puzzle Games) and Pathfinding can be used for locating paths between two points at anytime, anywhere.
"

Ah, I see. Good luck on this project, seems to have some really good planning behind it. I'd offer to help, but you're a bit out of my league at the moment.


TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 12th Feb 2011 23:01
Quote: "Ah, I see. Good luck on this project, seems to have some really good planning behind it. I'd offer to help, but you're a bit out of my league at the moment."


Thanks Dar13. Its more so a evolving plan (whatever that is). The design motto is to interfuse everything from Core Libs to Game Mechanics. I drew up these slides just for your overviewing.

Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 16th Feb 2011 03:13
Quote: "Its more so a evolving plan (whatever that is)."

That's how I'm going about my own project right now as well. Those slides are great for visualizing the desired organization of the engine, but wouldn't making everything interfused make debugging it when some integral part breaks harder?


TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 16th Feb 2011 09:14
Quote: "but wouldn't making everything interfused make debugging it when some integral part breaks harder?"

Interfuse just means to consolidate. If a integral part breaks all associated components will break, pointing back to it. One point of failure. Fix the part, restores all associated components. Modify the Part and associated components inherit the changes as well. Its easier to debug and less work to code.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 18th Feb 2011 05:25 Edited at: 20th Mar 2011 17:19
Integrating Recastnavigation into S3GE is coming along smoothly. I'm wrapping the S3GE glue functions to RecastNav API under the name QuantumPath (a Recast Wrapper originally started by Marlou).

My approach to integration was to hack-n-slash the RecastDemo Code by stripping out all the OpenGL constructs in my inherited classes. Sadly, the RecastDemo appears to be the only form of documentation provided for the Lib so im flying blind. My first task was load the Geometry mesh data into the into a dbObject. Heres a couple of screenshots of the RecastDemo dungeon.obj converted into DGDK Mesh and Object within S3GE. Next on the agenda is building the NavMesh, followed by adding Agents.



Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 19th Feb 2011 23:28
Good progress Tech!

Quote: "RecastDemo dungeon.obj converted into DGDK Mesh "

How did you do that? I ask as I have recently made a obj to dbo converter, I would have already released it to the community only it needs a slight fix and I have not had time yet.
Just wondering if you had made, or aquired something similar?

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 20th Feb 2011 05:39 Edited at: 20th Feb 2011 05:44
Quote: "How did you do that? I ask as I have recently made a obj to dbo converter, I would have already released it to the community only it needs a slight fix and I have not had time yet.
Just wondering if you had made, or aquired something similar?"
I hack-n-slashed the RecastDemo OBJ importer. The OBJ files that come with the RecastDemo are very simple, only containing Vertex and Triangle data. Once you parse out this data you can easily use a memblock to MakeMeshFromMemblock. Below is the actual source, which is also available in the DOSP S3GE SVN (hint, hint).



Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 20th Feb 2011 21:18
Thanks Tech, I may change my version to use memblocks like yours, I think the way I do it is pretty slow.

The one I have here can take uv data too and its a stand alone program, could do with a user interface, maybe MAUI?

I made it for soft bodies, the PhysX viewer(free tool) takes obj files and you create your soft body(tetrehedral) mesh. You then use this tet mesh which represents your soft body object(dbo from obj) in the physics simulation. It sounds confusing but its really simple to do with the obj-dbo converter and PhysX viewer.

It was a very complicated process to implement though, the tet mesh has to skin its-self to the dbo mesh, luckily PhysX provided most of the code needed, I just needed to pick it apart.

Its all going pretty slowly at the moment, but I have soft bodies and ragdolls working, they are the two hardest things to implement so the worst is over

With other commitments its probably going to be about another 4 months before its finished.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 22nd Feb 2011 13:51 Edited at: 24th Feb 2011 09:58
Quote: "The one I have here can take uv data too and its a stand alone program, could do with a user interface, maybe MAUI?"


I'm creating the Recast Tester (precursor to AIEdit Navigation Editor). in this process I'm adding features and fine tuning MAUI. This has been the process for most systems. Build and refine. S3GE is really starting to come together.

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 6th Mar 2011 08:17 Edited at: 6th Mar 2011 08:34

Take a gander at the little cute yellow 'Folder' icon.

MAUI Updates:

1. Added the Icon Theme to MAUI Sprite Object. I've also been busy with administrative changes to bring the labels for class methods, script functions, and application Gizmos into alignment with a coding/label convention for each.

2. New Gizmo referencing attribute shrinks down S3GXL needed to create a gizmo from script:


3. Scrapped the fancy System Names (ie: MAUI, Illudium) for the Editor Suite for more general purpose common names (ie: User, Effects).

4. Putting framework in place for UIEdit starting with the Gizmo Transforming Tool:


5. Continuous MAUI Tune Up to handle basic menus:


Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 6th Mar 2011 12:55
Hi Tech,

People here are often crying out for a good user interface like the one S3GE has, GDK simple does not have a good, easy to use solution, until now.

Is there any way people can use this soon without jumping through all the hoops with SVN etc? I think this could be very popular and get people interested in S3GE but do they need to wait for S3GE to be finished before they can use it?

I know the engine is your main concern, rightly so, but I know I could use this and having more people testing would be of great value, thats what I found with Fulcrum.

Keep up the good work

TechLord
21
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 6th Mar 2011 15:43 Edited at: 6th Mar 2011 15:54
Quote: "Is there any way people can use this soon without jumping through all the hoops with SVN etc?"
Short Answer: No. Long Answer: S3GE's GUI isn't a plug-in, its a C++ Class (MAUI) that integrates the Scripting, Networking, Input, Physics, Rendering, Audio Systems to function like one.

Matty H
15
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 6th Mar 2011 16:18
Thats what I thought, never mind.

GDK users still need a good GUI , strange that DBPro users have more easy options

I have been thinking about doing one but its just too big and its quite complex.

MAUI is awesome, no doubt. Do you have any idea on a timescale for S3GE? I know its probably longer than first expected as it's mostly just you working on this at the moment I think.

If it is finished anytime soon I'm sure plenty of people will want to try it out and perhaps even work together on something.

Red Eye
15
Years of Service
User Offline
Joined: 15th Oct 2008
Location:
Posted: 6th Mar 2011 16:25
@matty halewood: Using win32 api for the time being and its amazing really. Just need to get use too..


Good progress techlord. Keep it up!

Login to post a reply

Server time is: 2024-04-16 07:57:18
Your offset time is: 2024-04-16 07:57:18