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
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 20th Oct 2010 08:20
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Oct 2010 02:36 Edited at: 6th Jan 2011 17:08

Took a small break from MAUI to start drawing up a design for S3GE's particle system, ILLUDIUM. My very first game related program was a particle system and I optimize the management of most of my game entities based on them. I visualize ILLUDIUM being the ultimate Particle System capable of producing any type of visual effect with massively replicated and controlled entities.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 29th Oct 2010 17:26 Edited at: 29th Oct 2010 17:31
I have been looking at the PhysX particle(fluid) system over the last couple if days, its pretty cool. There are many different ways of implementing it with dark basic, each has advantages/disadvantages, I was just wondering how you would render your particles.

It seems ghosted plains are the common solution, this system brings up a fundamental question, plains as limbs or plains as objects?
I have tried both but not done any speed comparisons yet:

LIMBS:
Advantages:
Just takes up one object, nice and tidy.
You can face the object to camera in one command, automatically facing all limb plains to camera.

Disadvantages:
If the limbs get too far from the root object they can be culled when root object goes out of view, simple fix is to have root object as large as you need it(hidden). Limbs getting too far away also will not face the camera properly.
Don't see any dark basic command to position the limb in global space, meaning I need to add the object position each time.


OBJECTS:
Advantages:
Can travel anywhere without culling/rotation issues.
Can position in global space.

Disadvatages:
Facing each object to camera may be slower than using limbs.
Hundreds of objects.

I will probably look at providing both methods, so its users choice depending on the situation.
I am only a couple of days in and just concentrating on getting something working. I would be very interested in hearing any tricks/techniques for rendering the particles Tech.

S3GE will have the PhysX particle system, but there will probably be things it can't do from looking at your diagram, but you will have fluids/fire/smoke/snow rain covered with PhysX I would think until you have time to implement your own system.

EDIT: I am also going to take a look at kaedroho's new 'draw abject' plugin, make turn out to be useful for particle system.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Oct 2010 19:52 Edited at: 29th Oct 2010 21:22
Quote: "I have been looking at the PhysX particle(fluid) system over the last couple if days, its pretty cool. There are many different ways of implementing it with dark basic, each has advantages/disadvantages, I was just wondering how you would render your particles."
Illudium decouples the Particle from the Collision and Visual Object/Rendering Systems, thus, any type of visual object: Light, Sprite, Mesh, Sound or combination there of can be used to represent a particle. Entire Character Meshes could be used as Particles.

Illudium considers a Particle to be a 3D Point in space with a Variable Map that holds various Properties/Values. The Variable Map has a few default Properties for holding values such as Life, Velocity, etc and Properties can be added for Visual objects, or whatever. Actions/Effects use the Particles Variable Map to manipulate the properties of the Particle, Visual Object, etc. However, the rendering system(s) are responsible for the display of the visual object.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 29th Oct 2010 20:04
Quote: "Illudium decouples the Particle from the Collision and Visual Object/Rendering Systems"


Yeah, so its just the rendering system I'm interested in at the moment as PhysX handles all the other stuff. I suppose I should leave it to the user to decide what their particles are(plains, lights, mesh etc). But I will also add features to simulate and render common particle effects with just a few commands.

I suppose my problem is that particle systems should be flexible, meaning the user will need to do more work, but I dont want it to be too complicated. I will follow your lead and try to give the option to access the particle system without rendering anything, should they need that flexibility.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 29th Oct 2010 21:36 Edited at: 29th Oct 2010 21:37
Quote: "I suppose my problem is that particle systems should be flexible, meaning the user will need to do more work, but I dont want it to be too complicated."
Some work on user's end is unavoidable. I recommend this approach as a Rendering System itself can be decoupled from the visual object and deployed in various forms for performance ie: BSP, Octrees, LOD, etc. Illudium is using Fulcrum for Physics/Collision Response and I anticipate using particles for a variety of massively replicated visual phenomena: Pyrotechnics, Decals, Foliage (ie: Grass Blades), Breakables/Fractures (ie: Shattering Glass), Fluids, Lens Flares, Flocks & Swarms, and much more.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 30th Oct 2010 00:05
Do you think that you may not need to write the actual particle code if physX provides this for us? PhysX particles already have collision, you can apply forces and it has the option of hardware acceleration.
I can probably provide more details as to what it can do in a few days when I really get to know the ins and outs.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 30th Oct 2010 05:09 Edited at: 30th Oct 2010 05:09
Quote: "Do you think that you may not need to write the actual particle code if physX provides this for us? PhysX particles already have collision, you can apply forces and it has the option of hardware acceleration."
Wrap up only the Particle Controller that Physx offers. I don't recommend to write code the manipulates the visual object properties. That should be left up to the Developer.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 30th Oct 2010 21:50
Quote: "I don't recommend to write code the manipulates the visual object properties. That should be left up to the Developer."


Yeah, you are right, I will do like you suggest and then provide external functions with source code showing how to achieve the most common effects.

Also, I found that pointing the object(hence limbs) to camera is not the way to do it, its best setting the object to camera orientation, it works great even if you are not looking at the root object, so I'm favouring limbs for particles at the moment, although I will provide both options.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 5th Nov 2010 00:07
Hi everyone, I've been busy working on a solution for DarkNet 2.0 TCP HTTP Postfix issues. It was a little challenging, but, I believe I now have a solid system in place and improved the existing TCP Modes in the process.

I'm going to be switching into Hop-n-Code mode as I update several core systems and gear up for Particles, Modular Construction, etc.

haliop
User Banned
Posted: 5th Nov 2010 21:16
Matty , if i remmber correctly


should do the trick.

if you have multiple cameras in the scene then it should go



ive done this with about 20 objects in real time for 4 cameras simutanlecly and it worked like a charm.


any how ,
first im glad to see illiduim in its first stages it will be really powerfull. btw , i think that PhysX should be one option for it but not the only , since some simple CPU functions can do it quicker then PhysX , you probably already heard of BattleField Series , and Dice it's developers dont use any Physic Accalerated GPU methods like PhysX or ATI equilent , but CPU only and they do it pretty damn good.

one more thing about Particles is the collision where PhysX would probably shine better then other collision systems but alot of particles dosent really need any collision detection but more like a box (Rect) of where it should end if it got to that vertice it disappers so no realy collision is needed even between them or against other objects etc..


second, its really fun to come here and see S3GE leveling up from time to time , ive sucsefully moved into a new adpartment
got my pc station setted up and working with GDK and Visual C++ to finish a single project before getting online again , so every chance i'll have a connection like now i'll update my progress and where i stand towards S3GE , for now i want to finish something in top of 3 months cause i really need something to stand out for its own.

currently im working on a Building/Buildings Generator from Modular Constructions Sets im building with Blender so im reaserching , using Grids and Debug textures pretty cool stuff and i will share my R&D later on in MECS. im also planning on achiveing a higer Trixie level with this project since im already generating buildings and not placing blocks with the mouse , all random generated and Trixie will shine where it comes to induvidual or duplicated textures but diffrent each time you play a level .

so its all a real time process with a bit of loading scenes between levels . currently im not saying much about the idea but it will be good.

ive also opened a FaceBook Group Page called the
Rhino Instinct if you go on FaceBook just search for it and my name will be presented there ask to become friends and i'll approve once i'll have the chance for it , basicly each time i get 5 minutes near a connected pc im writing my progress.

good to see everything is up and running and sorry for now for not being able to work on S3GE but i am improving my C++ skills plus blender etc.. so later on i'll be back with new ideas and much more knowledge to be inserted in S3GE.
have a great weekend.!
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 6th Nov 2010 07:42 Edited at: 6th Nov 2010 07:43
It is really good to see you back in business haliop. I was starting to think you had abandoned the project-trio

In my experience its easier to optimize development time after you have a design; and its easier to optimize the design after you implement it, even it requires redesign. Thus, I've taken Illudium back to the drawingboard before I start any serious coding.

S3GE is all about consolidation from Applications to Source Code. Consolidating and integrating systems to use as many of the same resources as possible will optimize both development time and performance. This is my case for Illudium utilizing Physx/Fulcrum.

Starting with MAUI, my very first objective was to use high performance physics engine for simple collision detection with complex physics simulation being an additional perk. In fact, I originally desired to use Physx/Fulcrum for both 2D/3D physics (to take advantage of its GPU capabilities), but that was not feasible, so now we have both Fulcrum and Box2D and I'm ok with that.

Physx and Box2D are extemely high performance and a step towards consolidation, is to use Fulcrum Physics to support the physics/collision requirements of Illudium. Doing so will save us lots of development time. Eliminating the need to re-invent a collision/physics and use only one Physics resource instead of two or more. It will also give us advance physics simulation features already available in Physx/Box2D to give Illudium the power to do things you wouldnt expect a Particle System to do.

For most scenarios, Particles are just eye-candy, however, IMO, they produce the best kind of eye-candy. I anticipate using Illudium for various visual, audio, and physical phenomenon within the game world.

I repeat is good to see you back.

haliop
User Banned
Posted: 8th Nov 2010 14:48
i never left man.
i think i have already told you im with S3GE all the way, but in real life i need to make some money to live..
actually now i have a bed , a refreigrator , my pc system and an oven... i dont even have a chair.. i sit on the floor man

so im off S3GE for a bit but not for good and every progress i make on my own project will later on be implented in S3GE.

i dont even have an Internet connection.. now i'm at my father place on my lil bro pc taking with you.

ive designed something that looks really similar to FPSC creator when it comes to creating buildings and rooms with modular constructions sets its pretty simple but very effecient and very fast i can create a building with 4 floors with 4 rooms on each floor , doors and windows in less then a sec..

so its pretty good .

ive also created a dynamic grid system where you define how much you want for each room / floor / building etc.. and the grid size resolution depeneds on the Size of the blocks you put in , so its very dynamic and can be very high detailed since you can create and recreate a grid at the same point , so you get a
Building Grid , in it , you get some Floor Grids and on the floors grid you get Rooms Grid , in the room grid you get Content grids which are dynamic in size.. so its pretty awesome and allows you to put alot of stuff inside a gride and then inside it again.. pretty cool stuff.

BOX2D is awesome man , i think that a dynamic GUI with physics is the only way to go today since we already posses the power and the tech to use it.

MAUI is really awesome , cant wait to see some illduim samples.
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Nov 2010 10:57
Quote: "but in real life i need to make some money to live.. "
I totally understand and agree.

Quote: "ive designed something that looks really similar to FPSC creator when it comes to creating buildings and rooms with modular constructions sets its pretty simple but very effecient and very fast i can create a building with 4 floors with 4 rooms on each floor , doors and windows in less then a sec.."
I really look forward to that. I really like the ease of use with FPSCs interior creation tools. This type of editor would compliment the ease-of-use like Spore Creature Creator.

haliop
User Banned
Posted: 10th Nov 2010 12:32
sure and think each Modular Entity has its own grid.
for now its pretty Integer simple , so the grid dosent go all around the model but only where you want it to be , this way , each Modular entity has a grid , so you can place other enteties on top of it and over and over again , so its very fast placement cause of the integeres instead of floats.

example
in case you have a wall block like this:

_____
| |
| |
| |
------

simple right? just a rect in 3D
now with grid

______
| | |
-------
| | |
-------
| | |
-------

so , its the same model , no extra polygons or anything , the grid is pure numbers and vars , and once it is devided it is very very easy to place other object on it.

and ofcourse you dont have to use FPSC like editor , from any view point you'll look at it , you can see the grid..

now lets make an example for a spore like humanoid editor with this kind of grid:

lower case words are the modular enteties

head
-> Grid
-> ears
-> earings or something etc
-> eyes
-> mouth
-> teeth
-> neck
-> necklace
-> torso connection (i havent got that far yet so now its just assuming , .. that the current system i have can handle this
-> main body
-> shoulders
-> foreArm
-> lowerArm
-> accesories (watch, etc..)
-> hand
-> thumb
-> fingers
-> accesories (rings etc..)

-> pelvis
-> upperLegs
-> lowerLegs
-> feet

so its simple
its not something out of the ordinare
think that every entity has its own grid and can be a parent to one or some childs , these childs also have a grid and they can be parent to another child etc.. as you showed me with the pointers , im still struglling out with it , but i have too much time to work on it so i'll get it eventually , currently its all hardcoded and i have already designed and redesigned it again and again ..

so , i have a building like this hardcoded i tried to convert each of its conntent such as
Building
-> Floors
-> Stairs (to another above or lower floor)
-> Rooms
-> Content

converting it to use pointers and such i guess is easy when you know what youre doing but for me , damnit i struggle alot i got my book but damn i just still dont get it.

well , im out for today , good talk.
haliop
User Banned
Posted: 10th Nov 2010 12:35


damnit it didnot came out right , the last post should be more orginaized , think of these stuff as class inside a class like you organize them in Visuall C++
ive put alot of spaces , well never mind ,
i'll paint an image of how it works... im on my lil bro pc , so no gimp / photoshop here and certinaly no WACOM! damn mouse users!
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 15th Nov 2010 11:30
Quote: "i'll paint an image of how it works... im on my lil bro pc , so no gimp / photoshop here and certinaly no WACOM! damn mouse users!"
A illustration would help me out. I would expect the modular construction for interiors/exterior building to function slightly different from characters.

haliop
User Banned
Posted: 16th Nov 2010 09:10
i thought of it also
but both of these are the same.

if you take a human, what do you need?

limbs (of each part of the human body)
limbs animations (if any) included in the limbs section.

what do you need in a building?
limbs ( of each part of the building (doors,walls,iron shards,windows,glass,floor and floor content like : chairs, dressers, tv's, cabins and these can be renamed as room content, now lets go further into a dresser content same as we will go to fingers or earings , which are limbs or humans content .. /
the dresser content act the same as room content , so why do i call it dresser content? no reason , just organizing it as i like aka the user, these are Modular Groups , it allows to load them faster or reload them at clients pc , since one user may change the content , actually im already talking about a way to organize Modular Loaded Objects , to the way a User would like them to be , it will effect faster loading by S3GEed and a ready game..).

i went too far and got pretty distracted , im already working on a Presentation for it , an interactive one , i figured i might aswell do it i need it for my game also i got it working but hardcoded.. classes, pointers, need to get it done. talk soon, expect an awesome InterActive 3D presentation.
Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 24th Nov 2010 17:23
From another thread:
Quote: " Team Requests are virtually outlawed around here, which forces would-be game developers to tread the path alone. When treading the path alone 1) dreamers eventually get discouraged and quit, 2) developers become unwilling to share their hard work freely. I'm starting to feel the latter as I work on S3GE alone."


Just thought I would let you know that I have been working very hard and although its not really S3GE related, S3GE will benefit alot if I am successful. If you want a professional engine(within a couple of years) then the people working on it would have to live and breath S3GE, its a big ask and very time consuming.

For outsiders looking in, there is no guarantee that this project will ever get finished, this makes it hard for someone to dedicate all their free time to S3GE. This is why I worked on the Physics the way I did, it was designed to be useful for S3GE and on its own for the existing community.

I think you can finish this, alone if you have to but I feel you may need to scale back a little, I find it hard to believe that the engine design/plan does not take into account the human resources available, we had about 20 names at the start with about 5-6 actively contributing. Now its just you but the aspirations are exactly the same, that does not add up for me.

Sorry for sounding negative(again), on a good note, S3GE started me off on the path I am on and I am thankful for that and I will hopefully repay with something truly awesome(in 2-3 months)

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 25th Nov 2010 07:14 Edited at: 25th Nov 2010 07:40
Hi matty,

I felt the unwillingness to share hard work freely many times along the development cycle of S3GE, but, someone (like yourself) always comes along, makes a contribution and reminds of the big picture and primary purpose: to create a FREE Open Source Game Engine with DGDK. I been down this road before and its simply the nature of the beast. Its a up/down cycle and recently I've been on the downward slope, this includes my motivation. Have no fear, I feel a boost of inspiration surging upward.

From day one I knew this project was going to be a challenge because I knew it was difficult to convey the idea of consolidating the base features of the most popular genres into a single feature set for a game engine. Why try to retrofitting a Game Engine originally geared up for FPS to handle RTS, a RPG, a Fighter? Thats just more work and its easier to consolidate these features at the start.

Consolidation, Consolidation, Consolidation. At the core, most games engines have common systems such as: Physics, Networking, Scripting, Rendering, Audio, GUIs, Pathfinding, Databases, etc. The requirements for these system are well established. However, DGDK alone doesnt provide all the core systems required to create a decent game engine. These systems are what we all have been working on and by default they're time consuming to plan and implement. Just consider how much work you've poured into Fulcrum, and thats just a Physics Wrapper.

Theres no guarantee that any project will be completed, especially one that relies on volunteered time. I expect participants to come and go, that too is the nature of the beast. That is why the project is Open Source and no game engine design/plan can allocate these human resources. The only factor that I can account for is my own participation and I do my best to communicate this information on a regular basis (this is a lot of work in itself).

You've mentioned scale back before and I don't take it as negative. We have taken this advice and agreed to work towards getting the core systems handle a small scale multi-player FPS (several posts back). S3GE essentially has all the core systems to handle this except a decent particles, occlusion rendering, and pathfinding. High level game mechanics for weapon systems, scoring, missions, will have to be built.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 25th Nov 2010 16:57
I too feel the highs and lows when working on any project as do most people I think. I'm sure I can take care of the particles, I have had some good results already. Occlusion rendering sounds very useful, if we had something like this then I'm sure it would create some interest.

I am about to look at how I deal with tri-meshes again, I will also take another look at Blitz terrain and report back.

Blitz terrain + occlusion + PhysX = more fps = more computing power = more polys, effects, shaders etc = best looking GDK game ever

Also, charging for all your hard work should always be an option, don't rule it out. Its great when stuff is free but its not always possible.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 25th Nov 2010 17:40 Edited at: 25th Nov 2010 17:45
Quote: "Also, charging for all your hard work should always be an option, don't rule it out. Its great when stuff is free but its not always possible."


I'm not ruling that out, in fact I have found inspiration. I've already written and incorporated C++ version of the Client Side TournamentBlitz Event Management System (TBEMS). This system enables games developed with S3GE to support a variety Cash-based game play options via TournamentBlitz. Cash-based Options include: Tournament Games, Casino Games, Treasure Hunts, Pay-Per-Play Games, Paid-To-Play Games, Paid Advertisement, Item Malls, and others. The system will also support several payment options such as Paypal, Western Union, and other online e-commerce transaction processors.

Its quite obvious to me that PC games such as MMOs are paving new ways to market and profit from your games. Why try to put your game on the store shelf, when you can put the store in your game?

jason p sage
15
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 25th Nov 2010 18:14
You are absolutely right!

But this business model doesn't work everywhere. I had a brainstorm... when frustrated about how my car looked and how I hated going to the car wash... then... I thought... why drive to the car wash when I can put the car wash..in the CAR! ... needless to say this did not work out so well and also was a lesson in how you should really try to think of everything... for example... wind resistance. Everything was fine until I tried to wash my car at 80 miles an hour on the highway: ......(Darwin Award)

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 25th Nov 2010 20:26
Quote: "I had a brainstorm... when frustrated about how my car looked and how I hated going to the car wash... then... I thought... why drive to the car wash when I can put the car wash..in the CAR! ... needless to say this did not work out so well and also was a lesson in how you should really try to think of everything... for example... wind resistance. Everything was fine until I tried to wash my car at 80 miles an hour on the highway: ......(Darwin Award)"
I don't know if you meant to be funny Jason, but, that's hilarious. However, 80MPH is a great way to dry your car after a wash.

Quote: "
But this business model doesn't work everywhere."


Neither does the typical business model for selling and distributing PC Games. TournamentBlitz offers several token & cash transactions/processing methods and I'm brainstorming others. It also includes systems for marketing and distribution. 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.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 5th Dec 2010 18:04
Check this out:
Evolved software

I had no idea he had converted some of his shaders to GDK, this is superb stuff. I knew Mista Wilson had converted some of them but Evolved has wrapped them up nicely so they should be pretty easy to use. I think S3GE should try to utilise everything that Evolved does.

Who is Evolved? He hardly ever posts, only to share his awesome work.
Where does he get the time? He writes top quality professional apps and shaders and shares with everyone.

I wish I had more time to try all his stuff out but I'm knee deep in physics right now

jason p sage
15
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 5th Dec 2010 20:18
@Matty - I think Evolved is into shaders like others are into physics more or menu systems etc... He has always been cool though eh?

Also.. Matty you wrote above a few threads ago about:
Quote: "It seems ghosted plains are the common solution, this system brings up a fundamental question, plains as limbs or plains as objects?
I have tried both but not done any speed comparisons yet:

LIMBS:
Advantages:
Just takes up one object, nice and tidy.
You can face the object to camera in one command, automatically facing all limb plains to camera.

Disadvantages:
If the limbs get too far from the root object they can be culled when root object goes out of view, simple fix is to have root object as large as you need it(hidden). Limbs getting too far away also will not face the camera properly.
Don't see any dark basic command to position the limb in global space, meaning I need to add the object position each time.
"


And I think the culling comment for limbed objects MIGHT be wrong.. or at least not as "in-stone" of a limitation as it might first seem. Again though, I'm referring to the large root object stuff you mention to try to deal the root object getting to far away and all the limbs getting culled?

Well... a ways back I used I think LIT's (Lost In Thought I believe) original DarkBasic Frustrum Limb culling. I turned this basic "system" into a quadtree Level Of Detail Culling system that works gorgeous. Specifically how it was implemented for DarkGDK before the Nov2008 Beta and changes to all the underlying Mesh manipulation etc.... I made a terrain system that uses USGS satellite imagery data to create real-to-life terrain from real life terrain altitude data. (That came with help from another coder here - USGS DarkBasic Implementation Pioneer - and got in the NewsLetter for it. http://www.youtube.com/watch?v=MUOZVycrySU)

As folks know the system I wrote that did all this is here: http://www.jegas.com/index.php/jegas-products/68-jegas-game-classes-version-30-library.html

Point Is - You might avoid the clipping of the root object of a limbed solution - if your limbed solution takes into account culling based on your rules opposed to relying on default (camera distance etc) behaviors of DarkBasic or DarkGDK for an object. You can control this - but it's an all or nothing process I think: either control all frustrum culling, or let TGC do it. I think if you do it yourself - you might be able to use the limbed technique.

I'm also acutely aware of the optimization "scale" where I found that code to optimize frustrum culling and logic, get a speed and control benefit without actually making performance worse. The issue here is it's largely scene related - as one scene might require more processing to frustrum cull properly etc than another - but the point is that you want to make sure that work to speed things up doesn't involve running more commands and take more time than the code did before yoyur optimization. Taking this further - it's hard to find a "sweet spot".

If you think I'm completely mad at this point trying to explain this performance balancing issue I found relevant when optimizing my frustrum code... let me know and I'll try to take another stab at it. In short I guess - it's that optimization tries to optimize for that largest number of scenarios it can.. to get the best performance in all sitations - but this is not a cut and dry effort - it's iterative design/architecture/trial/analysis etc...boring... but nice when you get a "engine" balanced enough to do stuff with a neat environment "living animated" around you

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 5th Dec 2010 21:26
Thanks for the insights Jason, I spent a couple of days on the PhysX particles and how I might integrate them although I have not started working on it properly yet so any info at this point is very useful.

I think I left it favouring particles as objects, the main issue with limbs if I am correct is the fact that when you rotate the object to face the camera all the particles rotate around the centre, changing their positions in global space, sometimes by a huge amount.

Also, as Tech said a few posts later, the physics is best leaving any rendering/culling options up to the user, its a delicate balance for the physics to be easy to use but not do too much.

But, that said, once the particle physics is done we will need to address the rendering/culling issues etc. If you could help here that would be awesome, I don't know the first thing about culling systems, I'm not sure how much Tech knows in this area.

It may end up that I provide options for particles as limbs or objects, I found I had to provide both options for regular physics actors to get ragdolls working. I will probably be implementing the PhysX particle system in full sometime in the next 4-6 weeks and will need to re-visit all these issues.

jason p sage
15
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 5th Dec 2010 21:41
Excellent.

And for myself - on projects like this - I often overwhelm myself because of how comprehensive I try to design things... its really tough with games because there are many kinds of technology and techniques (tricks/patterns) where speed sometimes is more important than code readability etc.... and the fact that in order to make a good design - you constantly have to see what's available.. and be ready to refactor...

so.. yes I'm whining... but I'm trying to convey that there is a certain elegance in the resultant code when you take one limited piece... your particles? and beating the living snot out of it until it's jamming! Unfortunately.. time, scope, funds, ..all sorts of things make this approach... (interupptions etc.) difficult! LOL... (But when you can steal those consecutive calendar days and really nail stuff a piece at a time - I think .. for me.. that's the code I tend to keep long long long term

--Jason

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 8th Dec 2010 22:14 Edited at: 8th Dec 2010 22:25
Hey Guys,

I've been in somewhat a motivational slump and I'm trying to pull myself back out. I started to question why I'm doing all this work for FREE. Deep down in corners of my mind, I really would like to turn some of this work into a profit stream.

Nowadays, I find myself often fantasizing over ways to earn profit from future games created with S3GE. In these thoughts I have also mustered up bursts of motivation.

Then I had a epiphany. I realized that others may be having the same thoughts, and want to earn profits with their projects too. Maybe these individuals feel DOSP is too grand to ever be completed to make games and start doing so.

I'm thinking this is a discussion we should be having too. How to earn money with DOSP. I don't see anything wrong with earning a profit from your Games created with DOSP. It has only been my desire to provide a Free Open Source Development Platform to create them with.

Cuddle Bunniezzz 12
14
Years of Service
User Offline
Joined: 14th Jan 2009
Location: Buffalo, NY
Posted: 9th Dec 2010 00:17
I know I'm not part of the team here (though I did submit a design for the logo), but I'd like to chime in.

Ad money.

We all hate hate ads so much, but that may be the only way to generate some real revenue. I know with things like Ad Blocker Plus for browsers can block out most ads, but why not try some in game ads (don't spam them).

For the current game I'm working on (even though I haven't touched the dev files in a month and a half) is big enough between levels where it needs loading screens. Why not put ads there?

Also around the time of the 2008 U.S. Presidential Election, I remember watching this one news story on ABC of how some game developers actually added in games ads (like billboards, posters, and even certain shops changed), and they were selling the ad space to this one advertising company, which intern would then sell that to companies or organizations looking to advertise (ex. Pizza Hut, American Eagle, or the Obama Campaign in the case of the story).

The thing I liked most about them is that the ads actually looked like they fitted into the game. Like there was an actual Pizza Hut building instead of a parody "Hut of Pizza." It added a bit more realism.

An example would be that my game uses ASCII art, so I could include ads that use that stuff.

http://ref.darkgdk.us/ <- Online DarkGDK Refernece. More content coming soon.
Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 9th Dec 2010 01:15
I'm a little disillusioned with dosp at the moment. Tech, you have put so much work into this and I appreciate all the extra time and effort you have taken to keep the team up to date with diagrams and the online tools etc.

But, if I wanted to make a game right now, not a mobile device/netbook game, but a real good looking state of the art game for PC the first things I would want are:

A good Physics/collision solution.(Fulcrum, QuickODE, Sparkys)
A good Tool for creating maps.(Mapscape)
A fast terrain system.(Blitz Terrain)
A nice suite of shaders.(EVOLVED)
A lighmapping tool(EVOLVED)
Multiplayer lib(DARKNET)
A GUI. (MAUI)

I know there are lots of other things but with these readily available tools we could surly tie everything in and create something really cool. What can dosp give me from that list, mainly MAUI, but I'm afraid that MAUI may be tied into alot of systems making it not very flexible or portable, to start with, a simple GUI to make basic tools/games would suffice.

If I could go back in time I would really push the idea of creating a lib with a unified set of commands that lets users seamlessly integrate all the best stuff people have developed here over the years.

Once you have the Lib you can make some games or create tools using your library to speed up development, or both together, the tools could evolve as the games are created.

Sure, lets talk about how we can make money off our games but I don't have the first idea how to make a game with S3GE, where is the command documentaion or the tutorials how to use the tools.

All that said, dosp has alot in it and could be something great, I just think it needs to focus on less stuff and get something finished so we can try it out, show it off, start making something with it.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Dec 2010 01:23
I like the idea of in-game Ads, Billboards, Logos, and Branding, especially for popular name brands. I thinks using them would be a two-fold win. You achieve an environmental feel people are familiar with while earning profit from Ad sales. I think one of greatest challenges in setting this up would be in product placement in the environment.Imagine a Fantasy RPG using Pizza Hut's for Taverns.

Of course, I love to design systems and I ponder over the front-end and back-end systems needed to implement such Ad system. Media will obviously play a major role and in my opinion it needs to be easy to create and place in the environment for a fast turn around. Otherwise, it can get complex fast, when you consider 2D, 3D, and Audio media could be used in Advertising within the environment. However, development of such media offers other profitable opportunities.

I've considered an Ad System that uses 2D Textured `Billboards` System. Billboards (for lack of better term) could be used for Building Signs, Posters, Prop Coverings, even Character Skinning within the environment. This system operates at a very low level dynamically altering textures as needed to display such advertisement.

A management system I've considered uses what I call Long Term and Short Term Advertising. This is to allow for booking as many Advertisers within a single environment and organize the content in way the player get can familiar with (as it may not be desired the content doesn't changes too often). I took the Billboard system into consideration when Haliop and I started to flush out the Trixie (dynamic imaging system).

Cuddle Bunniezzz 12
14
Years of Service
User Offline
Joined: 14th Jan 2009
Location: Buffalo, NY
Posted: 9th Dec 2010 02:56
Well, I sort have a model on how to implement it (using a web server with PHP and a copy of DarkNET on the client side of things). I'll see if I can make a diagram of how it would work.

I kind of gave up on the idea of ads for my game, but if you would like a model system for the distribution and implimetation of in game ads, I can try to build something over the weekend (or month).

Would you like me to? I'm always looking for a programming challenge.

http://ref.darkgdk.us/ <- Online DarkGDK Refernece. More content coming soon.
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Dec 2010 03:14
Quote: "If I could go back in time I would really push the idea of creating a lib with a unified set of commands that lets users seamlessly integrate all the best stuff people have developed here over the years."


Hi Matty,

What I didn't realize until after talking with a few of the other members was how different our ideas of what a Game Engine is. Some where under the impression DOSP was Super Engine Library. Yes, I wanted it open source, but, engine itself was to be compiled into single application (exe) and load in scripts and media to produce a game. The goal was to get away from coding DGDK/C++ if you didn't need too and just focus on logic/content creation.

I can understand how appealing a unified command set is, and this was one of goals behind the original Graybox Wrapper System. But, S3GE uses a lot of different C++ libraries and its just easier to use libraries directly instead of wrapping up wrappers. Also, no one has to modify their personal coding conventions and techniques. In my opinion, we could still pull it off under some C++ namespaces and I also see an opportunity for a unified command within S3GE XML/LUA Scripting.

Currently, S3GE has some of the systems you mention and some you dont.

HAVES:
Physics Fulcrum & Box2D
A UI (MAUI)
Multiplayer lib(DARKNET)
XML Parsing
LUA Scripting

HAVE NOTS:
Mapscape)
A fast terrain system.(Blitz Terrain)
A nice suite of shaders.(EVOLVED)
A lighmapping tool(EVOLVED)
Pathfinding
Particles

There were a couple of portable GUI Libs we could have elected to use in the beginning of the project. However, developing MAUI was a DGDK/C++/Visual C++ IDE learning exercise for me. In developing it, I've adopted coding techniques, realized more efficient resource management, worked out content loading, established entity communication locally and remotely, integrated several libraries (2D/3D physics, xml parsing and loading, http with darknet, directX Font/Surfaces, LUA scripting ); and flushed out other game systems.

In essence, MAUI isnt just a Game Engine GUI, its the Game Engine GLUe and we had to start somewhere with gluing these libraries together. Some of the systems you mentioned are not in S3GE. The question has always been who will implement them. Once the libs are added to S3GE is just a matter of working out the framework for loading, runtime management, releasing resouces systemmatically.

Getting Started is a big problem with the lack of Documentation and I'm working on it. But, until I get more time to just write technical documentation and examples, we're going to have to make really good use of other forms of communication (forum threads and instant messaging).

I don't know if you updated to the most recent SVN, but, if you have and can get it to compile you would see that S3GE is in a fairly advanced state. In fact, you could play with some buttons the physics now.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Dec 2010 03:19
Quote: "Well, I sort have a model on how to implement it (using a web server with PHP and a copy of DarkNET on the client side of things). I'll see if I can make a diagram of how it would work.

I kind of gave up on the idea of ads for my game, but if you would like a model system for the distribution and implimetation of in game ads, I can try to build something over the weekend (or month).

Would you like me to? I'm always looking for a programming challenge."
I'm very interested in seeing what you can do. What version of DarkNet are using? Have you worked out the HTTP Postfix issues within DarkNet?

Cuddle Bunniezzz 12
14
Years of Service
User Offline
Joined: 14th Jan 2009
Location: Buffalo, NY
Posted: 9th Dec 2010 04:45
Well, I had a working copy of the pre-2.0 version (I still have the old installer squirled away somewhere), but when I updated to 2.0, it kind of broke, and I haven't installed and tested the fix yet that Micheal Pryor sent me.

We could also use SFML's HTTP class, I've read in 2600 that's it's very nice and easy to use.

http://ref.darkgdk.us/ <- Online DarkGDK Refernece. More content coming soon.
Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 9th Dec 2010 11:18
I did come to understand that S3GE will be a single exe which will handle everything for us once complete. This is a great target to aim for and I understand that it is the way game engines work to streamline the game making process.

I still see it a little differently though, what you describe is the end goal, does this mean S3GE is not usable until this goal is achieved?

My approach would be to build a library first, by that I don't mean simply to wrap plug-ins into a S3GE familiar command set, far from it. I mean to actually design the engine, I know we have some abstract diagrams of what will be included but how is each system related to the other in real code? UML diagrams are what is needed, what classes do what and how they relate to each other etc.

Anyway, S3GE is where it is, I know you have a plan and thats good. If dosp achieves its goal to be a single application with all these systems working together at a good speed then I would love to make some games with you guys and maybe make some returns.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 9th Dec 2010 14:00
Quote: "We could also use SFML's HTTP class, I've read in 2600 that's it's very nice and easy to use."
Just curious if you have tried to work with DarkNet 2.0 for HTTP. I had to modify DarkNet to correct the HTTP Postfix issues and its working well in S3GE.

Quote: "My approach would be to build a library first, by that I don't mean simply to wrap plug-ins into a S3GE familiar command set, far from it. I mean to actually design the engine, I know we have some abstract diagrams of what will be included but how is each system related to the other in real code? UML diagrams are what is needed, what classes do what and how they relate to each other etc."
We are using several different 3rd party libs, what libs would you build from scratch. It will require more drawings to express how these libs relate and I anticipated using Doxygen to generate those sort of diagrams. What I've provided thus far is higher level conceptual drawings that express how the systems work together.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 9th Dec 2010 14:32
Quote: "I anticipated using Doxygen to generate those sort of diagrams."


Doxygen can only give you the diagrams once it is written
Maybe its the way I'm being taught in my course and me wanting to put it to good use. We are taught to design the system first and then write it, I understand this is a simplistic way of looking at it and its not that easy but it is a good starting point and makes sense to me.

But, I'm not sure I could complete that task, I simply dont have enough experience in game development, you can only design an engine when you have lots of experience using them imo.
You have alot more experience in this field but I'm not sure you would consider designing it in this way, whether thats because you don't see the merit in it or you have no experience in working that way,(I am aware that we are both only a couple of years into C++), it does not matter now.

We are where we are and its your engine more than anyone elses, I have my issues with it but thats why you have a leader, you do need to stick to a plan and you have that plan and I hope I can help you achieve it.

Also, sorry I have not been on messenger, I wiped my hard drive a couple of weeks ago and have not put it back on yet, I will get around to it.

Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 9th Dec 2010 14:37
FYI DarkNet uses doxygen and its very good, I can't recommend it enough! You can do prototyping where you implement the class structures without any functionality and visual studio (and doxygen) can generate some nice class diagrams.

Also I will be implementing full HTTP support for native DarkNet in a few weeks time.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 9th Dec 2010 15:24
Quote: "FYI DarkNet uses doxygen and its very good, I can't recommend it enough! You can do prototyping where you implement the class structures without any functionality and visual studio (and doxygen) can generate some nice class diagrams."


Yeah, Ive seen the diagrams it can produce, very nice. Prototyping is what I was talking about, design and setup your classes first, then fill in the blanks, realise its all wrong and do it again

Here is an example of coding with the leadwerks engine with dbpro, its from a project in the WIP section:


This is how I thought we would interface with S3GE, then build tools and scripting around our api.

Cuddle Bunniezzz 12
14
Years of Service
User Offline
Joined: 14th Jan 2009
Location: Buffalo, NY
Posted: 10th Dec 2010 03:07 Edited at: 10th Dec 2010 03:31
@TechLord

Well, no experience with 2.0 yet. I'll try to create the model of the dynamic ad system in 1.x, then when full HTTP supports comes for DarkNet 2.0, I'll use the new code.

Just have to re-install the old DarkNet

EDIT:
Okay, just got 2.0 working actually. I can still do procedural style code, right?

http://ref.darkgdk.us/ <- Online DarkGDK Refernece. More content coming soon.
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Dec 2010 09:54 Edited at: 10th Dec 2010 09:55
Quote: "Well, no experience with 2.0 yet. I'll try to create the model of the dynamic ad system in 1.x, then when full HTTP supports comes for DarkNet 2.0, I'll use the new code.
...Okay, just got 2.0 working actually. I can still do procedural style code, right?"
Code how you see fit, unless, you want to test the system within S3GE directly.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Dec 2010 10:14
Quote: "FYI DarkNet uses doxygen and its very good, I can't recommend it enough! You can do prototyping where you implement the class structures without any functionality and visual studio (and doxygen) can generate some nice class diagrams."
Michael, I was impressed with your documentation and I've been rewriting the comments in the S3GE source to match the ones you used for Doxygen in DarkNet 2.0.

Michael P
16
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 10th Dec 2010 11:52
I doxygen'd DarkNet over a 2 week period doing 8 hours a day and went a bit mad. I even wrote an application to ensure consistent use of punctuation e.g. Capital letters after @param and @param statements ending in a full stop.

haliop
User Banned
Posted: 10th Dec 2010 13:08
yo yo yo
i see alot of posts and i got no time to read, sorry about that.

i have stoped the progress with Modular Construction Grid , had some problems with it , then ive killed my pc and now im rebuilding an awesome new one.

so , got a laptop , a strong one , and im back into buisness.

gonna expriment in 2d / 3d optics using a variety of 6 - 8 low cost pc webcams

where am i standing with Modular Construction Grid :

im at the point where pointer are needed and trees to handle them, i get really frustrated on how to do it , the system works and its a pretty damn good, so im taking it to a demostration game idea i have very simple one.

hope to be more online
Nadav aka haliop.
TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Dec 2010 18:16 Edited at: 10th Dec 2010 18:31
Quote: "Maybe its the way I'm being taught in my course and me wanting to put it to good use. We are taught to design the system first and then write it, I understand this is a simplistic way of looking at it and its not that easy but it is a good starting point and makes sense to me."


Matty, its apparent you're more concerned about the look and feel of the source code than I am, but we're essentially designing in a similar fashion. The only difference is that you start with code class diagrams (low level), I start with system block diagrams (high level). I've had no formal training, but, I've researched, reviewed, and worked with several game engines. My design method makes just as much sense to me as yours does to you.

There are plenty of Games & Game Engines that I literally draw systems block diagrams from. Drawing system block diagrams help me identify the libraries and objects needed. I then breakdown the blocks into skeleton-code to refine the the constructs (properties & methods) required to get systems working together. Once I have the skeleton-code, I add functional code to flesh it out and get it working, constantly testing as I go. You can add a feature, library, object to the source now or later, it still takes time. However, in my experience its significantly more difficult to retro-fit code. Thus, I'm starting with most complex systems with intentions of using them for simpler systems. Its all about consolidation my friend.

Quote: "But, I'm not sure I could complete that task, I simply dont have enough experience in game development, you can only design an engine when you have lots of experience using them imo.
You have alot more experience in this field but I'm not sure you would consider designing it in this way, whether thats because you don't see the merit in it or you have no experience in working that way,(I am aware that we are both only a couple of years into C++), it does not matter now."


Matty, you don't need massive amounts experience to write a Game Engine, you've already done so with writing Hot Goblins. The only difference between Hot Goblins Engine and S3GE is that you designed with specific game play mechanics, logic, and content in mind. S3GE is being designed to handle a variety of game mechanics, logic, and content from the most complex genres (MMO) to the simplest (Arcade).

I'm curious if you use your design techniques in the development Hot Goblins? If so, can you imagine the work involved with providing the details (illustrations, documentation) for public viewing during its development. Can you imagine the work involved if you had to write all the libs from scratch? This is what we are contending with in the DOSP and I'm trying minimize the work.

The ultimate goal is to create Games and Apps with the S3GE and I want to do this within the next year or sooner. The only barrier I see our views is whether you are willing to compromise with me on how I'm coding S3GE (as majority of the core is written using my coding style.) I feel extremely confident that we'll better prepared to take on designing and developing an engine using your methodology, after we complete DOSP.

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 10th Dec 2010 20:43
Quote: "I'm curious if you use your design techniques in the development Hot Goblins?"


It was my first game and I really underestimated the amount of organisation needed even for a small/simple game. My code quickly got messy due to lack of design.
Although on a good note, the GUI I wrote was designed in this fashion and is probably the best part of Hot Goblins(programming wise), completely re-usable with any game and I even factored out the dark basic code, making it completely portable this was only possible because of the design.

Tech, I agree with everything in your post, I was just voicing my differences/concerns. You have the plan and I know S3GE could be something really cool. I will do some videos soon of what I have been doing, I can guarentee you that S3GE is going to have a top class professional physics system

@Haliop - Good to see you back, good luck with your current project.

TechLord
20
Years of Service
User Offline
Joined: 19th Dec 2002
Location: TheGameDevStore.com
Posted: 10th Dec 2010 21:25 Edited at: 10th Dec 2010 21:29
Quote: "Although on a good note, the GUI I wrote was designed in this fashion and is probably the best part of Hot Goblins(programming wise), completely re-usable with any game and I even factored out the dark basic code, making it completely portable this was only possible because of the design."
Hot Goblin's GUI is very nice. Its highly animated and responsive. I would like to discuss your design (specifically how you're animating and communicating between buttons & menus) when you get time.

Quote: "Will do some videos soon of what I have been doing, I can guarentee you that S3GE is going to have a top class professional physics system"

I look forward to Fulcrum2 very much. Just a little nervous about the amount recoding that may be required as the Physics drives all collision and its heavy used in S3GE. I had to completely recode DarkNet_Ext with DarkNet 2.0. It took a little more time than I wanted and I have yet to redo the DarkNet-->DarkLUA script bindings (there a few 100 commands).

Matty H
14
Years of Service
User Offline
Joined: 7th Oct 2008
Location: England
Posted: 11th Dec 2010 00:44
I will try to find the diagrams for the GUI, I actually tried to implement things I learned from talking to you and reading this thread. Having a behaviour class came from things I had seen here along with other things.

One thing I never did was have an 'event' class, if I did it again I would include this.

I still have not got around to optimizing it, which I need to do as it runs a little slow on some netbooks.
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) 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.

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?

Re-writing Fulcrum has turned out to be a good decision I think, alot of things work very differently and more efficient, plus I'm putting in alot of error handling and it will have debug/release versions.

Login to post a reply

Server time is: 2023-02-05 14:00:05
Your offset time is: 2023-02-05 14:00:05