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.

Work in Progress / PonyCraft : Tainted Skies

Author
Message
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 2nd Oct 2012 10:20
Quote: "When I can play the demo?"


Soon™

@ All

The core of the engine is complete. We now have a moddable game with script support, in-game console, and debugging tools for the end users to exploit. Further, I have prepared the code so it can support online multiplayer when the time comes. For those who are interested, the project has reached 14'500 lines of code.

You can expect some new update videos in the coming weeks because now I'm working on unit abilities (and fixing some minor bugs).

I have been doing some speed tests and have found that already 30 units have a horrible impact on performance. I ran a test where I replaced all of the units with subdivided cubes (5000 polygons, 2 bones) and to my surprise, not even 100 units could get the framerate below 60 fps. I therefore conclude that the issue lies with the number of bones in the unit models and am trying to get the fastbone shader working with them : http://forum.thegamecreators.com/?m=forum_view&t=200469&b=1

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 2nd Oct 2012 14:31
You can use unit billboards, why not. It will allow you to make 1000 and more units.

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 2nd Oct 2012 15:05
Unit billboards? Would like to know more about that.

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
CoffeeGrunt
16
Years of Service
User Offline
Joined: 5th Oct 2007
Location: England
Posted: 2nd Oct 2012 15:11
Unit billboards...isn't that just a plane with a texture on them?
mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 2nd Oct 2012 15:45 Edited at: 2nd Oct 2012 15:46
@CoffeeGrunt
Yes.

Dark Imposters as example
http://www.thegamecreators.com/?m=view_product&id=2293

3D RTS "Heroes of annihilated empires" uses combined method: large units are 3d, small 2d. Camera rotates freely.
http://images.stopgame.ru/screenshots/4781/geroi_unichtozhennyh_imperij-14.jpg
http://img.zoneofgames.ru/screens/918/19.jpg

CoffeeGrunt
16
Years of Service
User Offline
Joined: 5th Oct 2007
Location: England
Posted: 2nd Oct 2012 17:11
Ahhh, Dark Imposters is for models at a range. Our problem is that on-screen models are slowing down the game.

You see, because of the angle of the camera, you don't get distant views. DI is adapted more for a third or first person view, we are using...well, I dunno what it's called, but halfway between isometric and top-down.
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 2nd Oct 2012 17:41
Just call it RTS-style.

It's definitely the bones that are castrating your performance at this point, DBP is horrible at handling large amounts of bones(or large amounts of models with bones). Have you tried importing the models into Fragmotion and then re-exporting them out to .X?

CoffeeGrunt
16
Years of Service
User Offline
Joined: 5th Oct 2007
Location: England
Posted: 2nd Oct 2012 18:09
We're going to run a whole load of tests, to see how we can streamline things. Now that we know it's the bones, it's a matter of seeing how few we can animate a pony with, and still retain an attractive animation quality.

From there, it's research into methods of making the numbers of bones as lightweight as possible. Alex is testing the fastbone shader idea out, I hope it works.
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 2nd Oct 2012 19:26
Quote: "Have you tried importing the models into Fragmotion and then re-exporting them out to .X?"


I have heard this a lot now. Apparently doing that in combination with a fastbone shader will yield the best results. I'll let you know when it works (or doesn't).

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 3rd Oct 2012 04:03
Quote: "I have heard this a lot now. Apparently doing that in combination with a fastbone shader will yield the best results. I'll let you know when it works (or doesn't)."

The problem might be that the model is being exported with some funky animation or material stuff that messes with DBP's ability to apply shaders safely. The import/export from Fragmotion should strip out any funky stuff and just leave a well-formed and DBP-compatible X file.

mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 3rd Oct 2012 20:53
I think we could use it as easter egg.


TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 6th Oct 2012 01:31


TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Seppuku Arts
Moderator
19
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 6th Oct 2012 03:57
The work behind this is producing some pretty amazing and professional results, I am liking what I am seeing, so keep this up.

Sergey K
20
Years of Service
User Offline
Joined: 4th Jan 2004
Location:
Posted: 6th Oct 2012 12:13
very good work man.
how about adding small fake shadow dot on the groun while the pony is flying? cuz its kinda hard to notice if the pony on the ground or not.

Advanced Updater for your games!
GIDustin
15
Years of Service
User Offline
Joined: 30th May 2008
Location:
Posted: 9th Oct 2012 06:44
Tagging this for updates. Looks like you are making some serious progress.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 9th Oct 2012 11:46
Great work with the fog. I wonder how you will darken the buildings and trees

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 9th Oct 2012 20:16
Thank you all for your kind words.

Fog of War now supports high ground vision denial:



Attacks can now be chained onto enemy units:



Fog of War will now hide enemy units based on the colour of the Fog of War at their coordinates. You will only be able to see enemy units if they are in range.

This has caused some further bugs, such as handling units that are following an enemy when the enemy disappears into the fog.

More to come!

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 17th Oct 2012 23:49 Edited at: 17th Oct 2012 23:52
I decided to write a new compiler for the scripts because of three reasons.

1) The current compiler has a few nasty, deep rooted bugs.
2) The current compiler doesn't support proper unfolding of expressions and disregards order of execution in boolean operations.
3) The scripting language is all over the place and stupid.

Since the interpreter is already in place, all I really have to do is write a compiler that compiles to the required byte-code for the PonyCraft engine.

The new compiler supports code inspired by the language C. Here is an example script which will load a unit:



Cool features of this new compiler

+ Variable scope consideration (as known in C)
+ Any amount of functions can be declared, all are global
+ Multi-threaded execution by the game engine (allows any amount of threads to run the same function at the same time)
+ Extremely fast compilation times - 1000 lines takes ~120 ms
+ Calling "RunScript( index )" from the console will cause the "main()" function in the script to be called.
+ Any defined function can directly be called from the console

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 18th Oct 2012 22:54
Cool! Scripting is really good for DBPRO, it is nice to be able to tweak things without a recompile; but I tend to also use ini and xml files to quickly define things in the engine without exposing myself and any user to too many potential script syntax errors; but when I need to define something too complex for intiation files, it's scripts all the way for me. Another time saver is compiling DBP sub-programs then piecing them together.

But creating you own compiler sounds like fun

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 19th Oct 2012 01:25
Quote: "But creating you own compiler sounds like fun "




TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Sergey K
20
Years of Service
User Offline
Joined: 4th Jan 2004
Location:
Posted: 19th Oct 2012 02:05
actually i wouldnt say its a compiler..
its more like an application that modified to work with dynamic commands that happens to be writen inside files..

@TheComent:
when you gonna add some nice looking GUI to your project?
the current gui looks sux

Advanced Updater for your games!
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 19th Oct 2012 07:13
Quote: "actually i wouldnt say its a compiler..
its more like an application that modified to work with dynamic commands that happens to be writen inside files.."

You just defined an interpreter, which he's already implemented. He's talking about a straight up compiler, that takes a C-like script file and compiles it to byte code(which is dang impressive for a DBP project btw).

Quote: "
when you gonna add some nice looking GUI to your project?
the current gui looks sux"

Considering it's only boxes and such, it looks alright to me. My favorite RTS interface was AOE, so this interface suits me very well.

@TheComet
Any news on those performance issues you were having with the units?

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 19th Oct 2012 09:49 Edited at: 19th Oct 2012 09:51
Quote: "actually i wouldnt say its a compiler..
its more like an application that modified to work with dynamic commands that happens to be writen inside files.."


According to the official definition, it is a compiler. I take standard, human readable code and convert it into a procedural pseudo-assembly output, which is interpreted by the game.

Quote: "when you gonna add some nice looking GUI to your project?
the current gui looks sux "


Yes, the current GUI is a placeholder. I'm not sure when I'll add new GUI as it's not that high on my priority list yet.

Quote: "which is dang impressive for a DBP project btw"


Thanks!

Quote: "Any news on those performance issues you were having with the units?"


It has improved since I started using a fastbone shader, but I'm still not happy with it. Below are 50 units, and the game is already running at a measly 30 fps.



TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 19th Oct 2012 19:26
Quote: "It has improved since I started using a fastbone shader, but I'm still not happy with it. Below are 50 units, and the game is already running at a measly 30 fps."

Have you tried reducing the bone count yet?

Sergey K
20
Years of Service
User Offline
Joined: 4th Jan 2004
Location:
Posted: 20th Oct 2012 02:07 Edited at: 20th Oct 2012 02:07
Quote: "Have you tried reducing the bone count yet?"

i think the problem is in the pony polygon count.
every pony is about 2-3k polygons.
wich means about 140k polygons for 30 units.
@TheComent:
at this point, every 10 polygons you reduce for each pony, you will get +2 more frame rate for x50 ponies.

not sure about DBP, but i know DX9.0c+ is capable of reducing polygon count within the code it self and without doing any damage to the animations. try to make small research on that. will ya

Advanced Updater for your games!
CoffeeGrunt
16
Years of Service
User Offline
Joined: 5th Oct 2007
Location: England
Posted: 20th Oct 2012 02:28
Polygon count isn't the problem. We stress tested with 5K poly cubes, it's the bones that are the problem...
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 20th Oct 2012 02:45
That's right, each pony has over 60 bones.

When we tested it with 5k poly cubes (2 bones each) I was able to make over 150 units without much slowdown.

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 20th Oct 2012 08:00
Quote: "That's right, each pony has over 60 bones."

That's a bit excessive, IMHO. The FPSC Thug character only has 53 bones. If your modeler can cut the count down to 30 bones, I think you'll be good to go.

CoffeeGrunt
16
Years of Service
User Offline
Joined: 5th Oct 2007
Location: England
Posted: 20th Oct 2012 17:46
The Thug character also animates like a potatoshoe.

We're looking at the rig to see what can be conserved while still making the animations feel organic.
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 20th Oct 2012 18:17
Quote: "The Thug character also animates like a potatoshoe."

Fair enough.

Quote: "We're looking at the rig to see what can be conserved while still making the animations feel organic."

Don't forget what your target viewpoint is. You can cut some corners since the distance between the units and the camera is greater than most other games.*
*If I sound condescending, I apologize.

By the way, if you would like some independent code review or something, I'd like to offer my services. You wouldn't have to put me in the credits or anything like that.

RUCCUS
19
Years of Service
User Offline
Joined: 11th Dec 2004
Location: Canada
Posted: 20th Oct 2012 19:55
I have to say, I don't see how you need 60 bones to get decent animation out of a character like that. Coming from a professional animation background, I would say you could easily cut that number in half and still have great looking animations (and a lot easier of an animation to make dealing with half of the bones). Of course I haven't seen the rig so I can't say for sure, it just seems very excessive to me.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 20th Oct 2012 20:30
Sorry to butt in, I was just curious; are you animating the facial expressions and speech with bones too? You should be able to animate a small size pony with about 18 bones, and it can look organic using vertex weights (where interpolation is applied to bending joints smoothly).

But if you want the players to view the ponies in close up shots, then a few more would be enough. 4 legs, a torso, tail and a head shouldn't need so many bones. (If you felt like it, a more detailed model could be drawn in close up shots)

Just an opinion.

Quote: "When we tested it with 5k poly cubes (2 bones each) I was able to make over 150 units without much slowdown."


The cube has 2 bones, the ponies would have 58 more deformations to calculate for every pony, also each child bones need to add the deformations of parent bones, and the parents parent deformation, and so on , the test may not have been the right test.

Perhaps 60 bones could be added to the cubes to see if it really is a bone quantity problem. In any case, the fact that the cube test ran more smoothly indicates that bone reduction is the likely solution, since that is the main difference between the pony and the cube mesh.

Hope it all goes well.

TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 21st Oct 2012 20:20 Edited at: 21st Oct 2012 20:50
Quote: "By the way, if you would like some independent code review or something, I'd like to offer my services. You wouldn't have to put me in the credits or anything like that."


I've never had anyone revise my code before, is that a common thing? How can I be sure you won't finish PonyCraft and sell it off as your own?

I wouldn't mind hearing another perspective on my code, so if you really want to sieve through my code, be my guest. Just pop me an e-mail or add me on skype (The__Comet), we can discuss it together.

Quote: "I have to say, I don't see how you need 60 bones to get decent animation out of a character like that. Coming from a professional animation background, I would say you could easily cut that number in half and still have great looking animations (and a lot easier of an animation to make dealing with half of the bones). Of course I haven't seen the rig so I can't say for sure, it just seems very excessive to me. "


Our animator insists on having a large quantity of bones, I'll have another talk with him.

Quote: "Sorry to butt in, I was just curious; are you animating the facial expressions and speech with bones too? You should be able to animate a small size pony with about 18 bones, and it can look organic using vertex weights (where interpolation is applied to bending joints smoothly)."


No facial expressions other than eyelids are included.

Quote: "Perhaps 60 bones could be added to the cubes to see if it really is a bone quantity problem. In any case, the fact that the cube test ran more smoothly indicates that bone reduction is the likely solution, since that is the main difference between the pony and the cube mesh."


May as well give that a shot.

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 21st Oct 2012 23:01 Edited at: 21st Oct 2012 23:20
Quote: "I've never had anyone revise my code before, is that a common thing? How can I be sure you won't finish PonyCraft and sell it off as your own?"

It's fairly common in the business world, so that each developer has their code checked for fairly innocuous typos or errors. Works fairly well, I occasionally go through and code review whole chunks of my codebase for WTLD. Usually ends up with a bunch of refactoring to make the code prettier or faster.

And about the stealing bit, I won't need any of the media to do a code review so I wouldn't be able to just package it all up and send it off as a full game. For fairness, here is my entire game's source code. It's all under (EDIT)Creative Commons ShareAlike Unported, so go crazy with it.

mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 22nd Oct 2012 10:09
60 bones is okay:
It looks like exact bone system for high quality animation.

But for RTS-like game where is unit screen size is less than one inch is pointless. You need LOD with ~20 bones.

Also I don't know, how Total War games are made, I doubt that there are hundreds of units with dozens of bones.

I think you should replace the bones with something else.
Sergey K
20
Years of Service
User Offline
Joined: 4th Jan 2004
Location:
Posted: 22nd Oct 2012 15:28
Quote: "Also I don't know, how Total War games are made, I doubt that there are hundreds of units with dozens of bones."


Realistic landscapes consist of millions of polygons and thus normally can't just be rendered like normal models. Therefore some engines contain a special terrain renderer that divides the landscapes into small chunks and adjusts their details to their distances to the camera. Only the terrain sections close to the camera need to be loaded into computer memory and rendered on the screen. This method supports highly detailed landscapes of theoretically unlimited size

Advanced Updater for your games!
mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 22nd Oct 2012 21:12
Terrain? Terrain has no bones.
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 24th Oct 2012 19:27
@ any moderator -> Is PonyCraft still able to stay on the WIP board? If you decide it isn't, I'm fine with you moving this thread to a more suitable board of the forum.

I may as well make this official.

DarkBASIC Pro was the language first chosen to write this game in. Speed tests have shown the horrible performance of DarkBASIC, and after a lot of discussion and research by the dev team, it has been decided to ditch DarkBASIC Pro.


What?!

Yes, DarkBASIC Pro is too slow for a game of this scale. I have tried every trick in the book to speed up performance and there is no way to speed it up. DarkBASIC Pro may be good for beginners, but it's not the right tool for this project.


What are you moving to?

The game is being ported to C++, using Ogre3D as a graphics engine.


How long is that going to take?

17'252 lines of code have been written. PonyCraft may seem like little, but a lot of thought has been invested into networking, debugging, scripting... All of that core stuff that no one really cares about but has to be there in order for it to work.

C++ is very different and it will take some time to get used to the graphics engine Ogre3D.

The estimate is 3 months. This time may (and will!) vary, according to what problems we encounter during the port.


Who's working on the port?

-TheComet
-Urioxis


Can I help?

No.


Pretty please????

No.

OK, if you really think you have the know-how in C++ and Ogre3D you may contact me (TheComet) privately. I do not guarantee that I will allow you, as this is a delicate task and requires a lot of commitment and concentration.


Credit where credit is due

Thank you dar13 for helping me getting started with Ogre3D. If you are interested in helping out with the port (it's a trap!), you're more than welcome to help out.

Urioxis set up a version control system with issue trackers and other helpful tools on BitBucket. I'm writing a detailed documentation describing the current DBP code in detail, which should help aid us with the port.


Further steps

I will post regular updates like usual about the porting progress.

If you have any further questions I will be more than happy to answer them. And again, if a moderator could confirm whether this thread is OK or not, that would be great.

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 24th Oct 2012 23:41 Edited at: 24th Oct 2012 23:43
What?!

Hmm... How many ponies (units) are supposed to be on screen at the same time maximum? And what FPS you want minimum?
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 25th Oct 2012 00:26
Noo!!!

Sergey K
20
Years of Service
User Offline
Joined: 4th Jan 2004
Location:
Posted: 25th Oct 2012 00:29
WIP is work in progress
it IS a work, and it DOES on progress

Advanced Updater for your games!
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 25th Oct 2012 00:55
Quote: "Noo!!! "


There's really nothing else I can do. It all came down to DBPs crappy rendering engine. If you check out this screen shot, you'll see that the sync command is taking by far most of the time : http://i254.photobucket.com/albums/hh100/TheComet92/fuuu.png

Fastbone shaders, blitzterrain, advanced animations, other custom DLLs... I did what I could and it wasn't enough.

Quote: "Hmm... How many ponies (units) are supposed to be on screen at the same time maximum? And what FPS you want minimum?"


Our team wants to get 200 units on screen to run at a reasonable speed. Minimum FPS we set at 30 fps.

Quote: "WIP is work in progress
it IS a work, and it DOES on progress "


Yeah.

There's a rule though that the WIP board is only for TGC products, and since Ogre3D isn't a TGC product...

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
CoffeeGrunt
16
Years of Service
User Offline
Joined: 5th Oct 2007
Location: England
Posted: 25th Oct 2012 01:01
Handy, our tests with Nuclear Basic show that we can achieve 1000-2500 on-screen units with 70fps. Darkbasic was chugging at 30fps with around 50 on-screen units.

Ogre, so far, promises more performance than that. While we may not use it all on unit numbers, it does allow far more detail and delicacy in other areas, like particle effects and such.

Darkbasic would have slowed to a crawl as we worked on adding more features, levels and such. It simply can't achieve the scope of what we want.

The rest of the team is continuing to produce media while Alex works on this, allowing us all to catch up.
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 25th Oct 2012 01:14
@ Coffee - Those NB test results aren't accurate unfortunately, the guy who ran the test didn't have all units on screen...

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
darkvee
18
Years of Service
User Offline
Joined: 18th Nov 2005
Location:
Posted: 25th Oct 2012 02:50 Edited at: 25th Oct 2012 03:40
Hi Alex,

I know were going with c++ but Try my demo out. See if you can load 200 to 999 zombies on the screen and get over 30 fps. My system is very optimized. It was made to run on the slowest netbook 1 ghz. There is certain rules and stuff you have to do make dbp run fast.

Run the demo and type in how many zombies you want and hit enter.
Use the mouse and keys to walk around. Go to the stairs at the top and look down at the zombies.

Tell me what everyone gets.

darkvee

Attachments

Login to view attachments
Dar13
15
Years of Service
User Offline
Joined: 12th May 2008
Location: Microsoft VisualStudio 2010 Professional
Posted: 25th Oct 2012 02:58
Quote: "Thank you dar13 for helping me getting started with Ogre3D. If you are interested in helping out with the port (it's a trap!), you're more than welcome to help out."

I can help with some design decisions that you guys are going to have to make, but I'll pass on the actual coding til my own game is done. (Side note: If you end up using my GraphicsManager or a variation of it, I'd like a small reference in the source file and credits. Nothing huge, just a little "Thanks to Neil Moore(Dar13)" type of thing.)

Quote: "Urioxis set up a version control system with issue trackers and other helpful tools on BitBucket. I'm writing a detailed documentation describing the current DBP code in detail, which should help aid us with the port."

Don't get attached to that code. Ogre3D is radically different in how it handles resources, meshes, animation, and just about everything else a graphics engine handles. You'll best spend your first couple weeks(or maybe even a month) just creating prototype classes and such to handle the things that your old engine in DBP could do but by using Ogre3D the right way. I mean, look at how convoluted it is to get a mesh's vertex/index information from Ogre(GraphicsManager::getMeshInformation).

Quote: "Our team wants to get 200 units on screen to run at a reasonable speed. Minimum FPS we set at 30 fps."

Even Ogre will struggle with 200 5k poly units with 60 bones. It won't be the polygons, it'll be the animations that end up killing your FPS.

Also, final tip: never EVER use PNGs as your textures. For some reason, the image library that handles the loading of PNGs for Ogre is ridiculously slow. DDS is blazingly fast comparatively.

mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 25th Oct 2012 13:11 Edited at: 25th Oct 2012 13:19
Here is my results:
48 fps
32 bones
2k tris
200 units
fastbone shader
simple walking animation

...on a PC that can run Titan Quest with minimal settings with 15 fps. (it's a potato)

P.S. units are brown because integrated video can't display texture.

Attachments

Login to view attachments
mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 25th Oct 2012 13:18 Edited at: 25th Oct 2012 13:42
Source and media



difference between load and instance is in loading time only, in this test, for me.

p.s. no speed difference between 90 frames and 999 frams of animation.
_________________
I am sure if I use LODs and normal gaming PC, DBP can run this game at decent speed and with decent effects.

Attachments

Login to view attachments
TheComet
16
Years of Service
User Offline
Joined: 18th Oct 2007
Location: I`m under ur bridge eating ur goatz.
Posted: 25th Oct 2012 13:51
I'm at work so I can't test it, but instance object isn't the correct command to use. If you use that, all of the objects you instance are going to do everything your original object does.

Try this instead:



How does that compare?

TheComet

"Why geeks like computers: unzip, strip, touch, finger, grep, mount, fsck, more, yes, fsck, fsck, fsck, umount, sleep." - Unknown
mr Handy
16
Years of Service
User Offline
Joined: 7th Sep 2007
Location: out of TGC
Posted: 25th Oct 2012 13:55 Edited at: 25th Oct 2012 14:21
@TheComet 46 fps.

update:
I have made 10 unique units with numbers. Numbers are separate mesh limbs (it means 2 draw calls per unit, 400 DC total).
I have load 200 units, it means each unit was loaded (load object) 10 times.
...35 fps.

As you can see, some units are small, so I can use LODs with less bones amount.

Attachments

Login to view attachments

Login to post a reply

Server time is: 2024-04-25 16:50:05
Your offset time is: 2024-04-25 16:50:05