Started Coding

The land-based version of Allegiance, under construction.
Imperio59
Posts: 27
Joined: Thu Aug 19, 2004 7:00 am

Post by Imperio59 »

I know, but when you've had to learn a new language at least 5 times like I have, it gets old having to lookup in the docs every fine minutes what that new language's weird syntax is for making a while loop or an if statement. ;)
finnbryant
Posts: 360
Joined: Sat Feb 17, 2007 11:18 am
Location: England

Post by finnbryant »

heh, I know what you mean. I've got a plan to learn a set of languages that cover every corner of programming and then refuse to learn any more.
finnbryant
Posts: 360
Joined: Sat Feb 17, 2007 11:18 am
Location: England

Post by finnbryant »

Hum, a short bit of bad news, the new threading feature of panda isn't paying off for me, I think it's just too new a feature and hasn't matured enough to function in all circumstances, specifically mine.

That said, I'm still looking into fixing the problem of modifiable terrain properly by writing a fix for the panda source, I'm somewhat slowed by my lack of knowledge of the language or the engines internals but I think I'm starting to get my head around how the current code works and already have an obviously viable fix, now its just making sure there isn't a better way and then actually implementing it.
Last edited by finnbryant on Sun May 31, 2009 9:39 pm, edited 1 time in total.
Imperio59
Posts: 27
Joined: Thu Aug 19, 2004 7:00 am

Post by Imperio59 »

Learning a new engine is always annoying, you have to *read* a lot of its code before you get it, and follow down definitions and read those, etc...
I remember that learning the HL2 engine took me a good 3-4 months, and then again parts of it were still totally unknown to me.

How does Panda handle rendering optimization for terrain? Because if you're going to modify a model (i.e: the map) on the fly, you might screw that rendering optimization in the process...

Just my 2 cents :D
finnbryant
Posts: 360
Joined: Sat Feb 17, 2007 11:18 am
Location: England

Post by finnbryant »

Only had to learn a new enginge once, this one. Fortunatly I was smart enough to learn a lot of it a couple of years ago, when I had time to waste, so this time it wasn't too hard to get going


yeah, its using an incomplete implementation of Geomipmapping

Unfortunatly GeoMipMapping is designed to do loads of calculating at the beggining and then assuming nothing changes, and the panda implementation follows that assumption, meaning i have to fullly reload the entire terrain, meaning a delay of multiple seconds (sometimes 10-15!). Fortunatly, there is a simple way to escape this problem, if my change only affects part of the map, I only need to update the geomipmaps that are affected, reducing overhead by a big amount. there will be a jump still, but it wont ruin the game, and threading wont be absolutly necessary (though I hope it will work properly by the time the betas released)


As for now, I'm planning to complete pandas implementation so that it has screen pixel error checking (meaning the terrain will look far better when mipmapping is on, currently its ugly and annoying so I just disabled it), I may even rewrite the entire thing, it's not a huge block of code, and I need to learn c++ anyway. while doing this I will obviously add per block updates so that the terrain can be updated speedily.

EDIT: I'm psudo-coding it in java first, I figure if your writing a new algorithm in a new language its best to know what your trying to do.
Last edited by finnbryant on Tue Jun 02, 2009 6:41 pm, edited 1 time in total.
the_dare
Posts: 481
Joined: Sat Sep 15, 2007 11:10 pm
Location: Bath, UK

Post by the_dare »

next wed i finish my exams so gimme a few weeks and i should have learnt C++ and python (im extremely quick at learning things. i learnt perl in a day) then ill try and give u a hand.
Image
Image
Imperio59
Posts: 27
Joined: Thu Aug 19, 2004 7:00 am

Post by Imperio59 »

I foresee the biggest hurdle will be getting the server and client model data to match. It really doesn't matter much after that what you do in terms of how you code the gameplay server side, as long as you have classes that mimic that on the client and that are neworked we'll be good, but to have server-side collision-detection (imperative to prevent cheating) we'll need to load the files into the server and do server-side collision detection, with some sort of prediction on the client.

After that the rest won't matter too much, and should be pretty easy to code.

I still have to work up the courage to write that EGG loader in Java. Been busy with work these days lol.
Imperio59
Posts: 27
Joined: Thu Aug 19, 2004 7:00 am

Post by Imperio59 »

Cool paper. So what filetype does Panda use for its terrain data storage? 8-bit graymap bitmap heightscales?

EDIT: I answered myself...

This would be a really easy/fast way of creating an engine... Cutting a map maker out of the equation and having a terrain generator instead, along with maybe an XML file to place structures and environment models like trees or rocks would be great.

We could then have basic AABB or OBB collision for model collision and we'd be up and running much faster.
I'll probably still have to write that EGG loader though, even if it is just to get the bounding box size out of it, heh...
Last edited by Imperio59 on Sat Jun 06, 2009 3:09 am, edited 1 time in total.
the_dare
Posts: 481
Joined: Sat Sep 15, 2007 11:10 pm
Location: Bath, UK

Post by the_dare »

Imperio59 wrote:QUOTE (Imperio59 @ Jun 5 2009, 05:59 PM) I foresee the biggest hurdle will be getting the server and client model data to match. It really doesn't matter much after that what you do in terms of how you code the gameplay server side, as long as you have classes that mimic that on the client and that are neworked we'll be good, but to have server-side collision-detection (imperative to prevent cheating) we'll need to load the files into the server and do server-side collision detection, with some sort of prediction on the client.

After that the rest won't matter too much, and should be pretty easy to code.

I still have to work up the courage to write that EGG loader in Java. Been busy with work these days lol.
once im upto speed on C++ i will dedicate my time to getting the integration and networking sorted between the two as i have a good knowledge of the protocols.
Image
Image
finnbryant
Posts: 360
Joined: Sat Feb 17, 2007 11:18 am
Location: England

Post by finnbryant »

im using 16 bit greyscales now, its a hell of a lot better, we don't have to worry about max/min height and we still get really high quality terrain levels, on 8 bit we couldn't have mountains and it still had levels appearing cos the terrain data got rounded too much.

terrain generator is all well and good, but it means we lose a lot of control, I think my current plan, a genrerator built inside an editor is the best of both worlds, it shouldn't take much work beyond what a good generator would anyway, simple input/output are easy in panda.

Panda can integrate with ODE for collisions/physics, ODE apparently works with java, so if your sure about using java i suggest looking at that option, using the same physics engine should make life that much easier.
Post Reply