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.

DarkBASIC Professional Discussion / World of OMEN (Frost) SVN

Author
Message
Mugen Wizardry
User Banned
Posted: 26th Nov 2010 23:43
I know. I'm only trying to speed things up

I do NOT want to see this MMORPG fail.

It's the best game on the ENTIRE forums that I've seen b4.

CHECK OUT SOME MUSIC FROM MY NEW TECHNO CD! TECHNOKINESIS
http://www.youtube.com/watch?v=4a8KedfgVv0
ALSO, CHECK OUT MY NEW TECHNO CD AT Amazon.com!
Mugen Wizardry
User Banned
Posted: 12th Dec 2010 20:33
Hey Omen. How's the MMO?

CHECK OUT SOME MUSIC FROM MY NEW TECHNO CD! TECHNOKINESIS
http://www.youtube.com/watch?v=4a8KedfgVv0
ALSO, CHECK OUT MY NEW TECHNO CD AT Amazon.com!
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 12th Dec 2010 21:58 Edited at: 12th Dec 2010 22:03
Really good - the next hour in the tutorial will be hour 27. I'm putting in a vertex morphing system because it will be a HUGE time-saver later. The idea being that you can do all your animation, UV mapping, vertex-weighting, etc... on 1 model and then just morph it to any other model you need.

Of course, this also opens the door for deep character customization as well

Since my last tutorial, I've been working on a tool to aid in generating the morph targets. Initially I took the approach of using existing MakeHuman targets, and developed a system that would correctly read and apply the MakeHuman target files (translating the high-poly vertex IDs to the low-poly vertex IDs in the process). But I couldn't quite get it to work perfectly, so I went back to my "fall back plan" which was to use an adaptive cage and ray-casting to calculate the morph deltas.

Soooo, long story short, I have the media ready and about 95% of the code ready. I'm doing a little clean-up on the table data, then just need to write the tutorial walk-through and Hour 27 should be done.

Character customization always brings my tutorials to a crawl because the artwork generation/management takes 3 times longer than writing the code to use it. This happened under Ares too, so I should have expected it.

Hour 27 should be ready before end of the week.

Here's 2 screenshots -- the first is the original model with UV mapping, rigging, vertex weighting, the works! The second is the SAME model (with all that goodness saved) with a morph applied to change it from the female base model to the male base model.





Mugen Wizardry
User Banned
Posted: 12th Dec 2010 22:03
EXCELLENT! CAN'T wait!

CHECK OUT SOME MUSIC FROM MY NEW TECHNO CD! TECHNOKINESIS
http://www.youtube.com/watch?v=4a8KedfgVv0
ALSO, CHECK OUT MY NEW TECHNO CD AT Amazon.com!
FounD
16
Years of Service
User Offline
Joined: 30th Mar 2008
Location:
Posted: 14th Dec 2010 02:43
Hi. First off I would like to say that this project of yours has renewed my interest in DBPro. I really appreciate your time and efforts on this. I am enjoying this tutorial very much.

Second, I have completed hour 3. When I compile my project I get blue and black terrain with no skybox. I have attached a shrunken screen shot so you can see. Any help would be appreciated.

Attachments

Login to view attachments
FounD
16
Years of Service
User Offline
Joined: 30th Mar 2008
Location:
Posted: 14th Dec 2010 02:45
Also here are my project files.

Attachments

Login to view attachments
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 14th Dec 2010 22:48 Edited at: 14th Dec 2010 22:53
Hour 3 was a little "running ahead of itself" -- there are a few glaring errors at that time

Namely the following:

1. The name of the terrain texture file is "2_TX.jpg", but the file name in the commit is "2_TX.bmp" -- converting the file to JPG format will fix the issue, as will just do a checkout to Hour 4.

2. The camera distance isn't set far enough to see the skybox (or the skybox is too big depending on how you look at it). You can either decrease the scale of the skybox object, or increase the camera distance, or just do a checkout to Hour 4.

The one thing about using a CVS like this is that your syntax errors become part of the permanent record

I updated the Hour 3 page in the tutorial to make a note of these two errors and how to fix them.

Thanks!

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 23rd Dec 2010 20:57 Edited at: 24th Dec 2010 03:27
Hour 27 is up (finally!):

http://omen.lakehomegames.com/project-updates/hour27-charactercreation3

Tonight we continue the character creation and customization process by moving on to a vertex morphing system for characters. Thanks for being patient everyone as I was making the artwork for tonight's tutorial - and thanks everyone who sent in encouraging e-mails, that was really nice of you guys

Our base character mesh has all the "good stuff" I wanted - a single skinned mesh with clean UV mapping, organized bone structure, vertex weighting for smooth animations -- everything, so I think it was worth it.

Tutorial Snippet:

This is our first use of a dynamic message protocol, where the message payload can change from message to message. This is great for keeping bandwidth to a minimum, so we'll be using this a LOT from this point forward

Happy Holidays everyone!!!

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 11th Jan 2011 04:00
Character vertex morphing is finally integrated into the GUI. For me, GUI programming is the chartered accountancy of the coding world -- so, it's been taking awhile.

When you get to character customization, you get to a point where you need WAY more buttons than you have screen space. Which means, you need a robust way of showing, hiding, and logically organizing all these buttons. I spent a LOT of time trying different combinations of drop-down lists, nested lists, and all kinds of other strange things.

I finally settled on a "Picture Browser" solution where you can just click a preview image (or symbol) that represents the morph, pattern, what-have-you, and it would be applied. Click it again, and it's removed. For some morph options, you'll be able to apply them multiple times - just in case you want REALLY long Deedlit ears

Since each customization has a pretty descriptive file name "head-ear-elf-deedlit", it should be pretty easy to put in a search function later as well.

Currently, I just have a few sample morph targets (ie. male, female, demon horns, elf ears, etc...); I'm going to add a bunch more, anyone have any special requests?



Mugen Wizardry
User Banned
Posted: 11th Jan 2011 16:15
How about something where we can customize it?

CHECK OUT SOME MUSIC FROM MY NEW TECHNO CD! TECHNOKINESIS
http://www.youtube.com/watch?v=4a8KedfgVv0
ALSO, CHECK OUT MY NEW TECHNO CD AT Amazon.com!
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 12th Jan 2011 18:44
@Mugen,

If you mean something like a slider to control the percent of the morph being applied, that's possible. It would double the amount of data being sent for each character when any given client is close enough to another character to actually request morph details (LOD would definitely be in effect here). So, yeah, it's possible. It might be a little tricky to change the "focus" of the slider, though, since the morph buttons are toggles. You'd get into a weird situation where you'd have to turn a morph off and back on again to give it focus so that the slider's focus is set correctly. I'll have to think about that one -- if I put that in, it will be after the DarkNet update. For some reason, I think there may be people waiting for the DarkNet update

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 16th Jan 2011 06:23
Hour 28 is up! Huzzah!

http://omen.lakehomegames.com/project-updates/hour28-charactercreation4

This hour demonstrate another technique for integrating your GUI system with your game logic. Previously, we've used "holder" attributes which could be dynamically updated with changes to things like labels and gadget commands. We used this technique for the avatar selection screen. Tonight we're updating an "image browser" window from our library.

Tutorial Snippet:
...any game parameter attribute that really looks like it needs to be a constant is probably a good candidate for a game feature. For every game feature that can be enhanced, there is probably someone willing to pay money for that enhancement.

Mugen Wizardry
User Banned
Posted: 28th Jan 2011 15:21
How's Hour 29 going, Omen?

CHECK OUT SOME MUSIC FROM MY NEW TECHNO CD! TECHNOKINESIS
http://www.youtube.com/watch?v=4a8KedfgVv0
ALSO, CHECK OUT MY NEW TECHNO CD AT Amazon.com!
R_2
13
Years of Service
User Offline
Joined: 28th Jan 2011
Location:
Posted: 28th Jan 2011 21:13
I am on hour 5(yea I know way back there) and I keep getting a compile error on the server about a return parameter. Not sure if this is a 2.0 error or not, cause i cant seem to find it unless im missing something.

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 29th Jan 2011 03:31 Edited at: 29th Jan 2011 03:36
@R_2,

Aha, I see - you have "net set profile local" on line 27 instead of "net set local" -- for me, that comes up as "could not understand command" because I'm not at DarkNet 2.0 yet. For you, it's probably expecting a return code?

Try this on line 27 and see if it helps:


Looks like I may have to fork the code base at hour 5 to allow for DarkNET 2.0 to compile correctly. That should be interesting

@Mugen,

Hour 29 is actually finished - I'm trying really hard to stick with the "commit early and commit often" mantra. Hour 29 is going to present the materials system to allow for better management of shaders and textures. Then we'll either plunge into area loading or take a left turn into server delegation of authority, or maybe zone partitioning. I just have to think it though a little to figure out which order would be easiest to present those three

In any case, I'm just finishing up some sample media for Hour 29 (artwork always takes so long when you have no actual artistic talent), and then do the write-up. Should have something out this weekend...

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 29th Jan 2011 03:41 Edited at: 29th Jan 2011 07:35
Alright guys, I'm taking the plunge and going to try and fork the codebase at hour 5 and upgrade from that point on to DarkNet2.0. In theory, I should be able to merge back into the main trunk as well so I don't have to re-write everything. I'm hoping, though, that the differences (from a programming perspective) are minimal. So, we'll see how it goes...

Edit: So far, the update is not going well. DarkNET 2.0 doesn't include ANY DBPro documentation, so you have to wade through the doxygen-generated mn Namespace Reference included in the ZIP archive (which is not fun). Plus there are no examples in the doco itself and just a VERY meager DBPro client/server example included in the archive (nothing like the examples we used to get).

The changes seem simple enough at first ("oh just use a profile now"), but I'm running into all kinds of errors that generate more questions and more changes...


I'll post more as I make more progress. I'm hoping Mike will see some questions I posted as well.

R_2
13
Years of Service
User Offline
Joined: 28th Jan 2011
Location:
Posted: 29th Jan 2011 07:51
"User function 'mn Start Server' must return a value if used in expression" is the actual error in this line:



in netclient on this line




gets a 'do not match' error which im wondering if this isnt the same issue in the other expression.
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 29th Jan 2011 17:56 Edited at: 29th Jan 2011 18:05
@R_2

Yeap, that's the same errors I'm getting now. All the most important commands in DarkNET2.0 have different parameters now.

So far, this is what works for the Server Project... update these lines in netServer.dba starting at around line 30:

[i]partial code listingi]


...make sure to change the value of NET_SERVER_NAME to your local IP address (Start --> Run --> cmd and then ipconfig /all to get your local IP address).

R_2
13
Years of Service
User Offline
Joined: 28th Jan 2011
Location:
Posted: 29th Jan 2011 19:09
Yep that lets it compile. Brings up a UPD/TCP error in Set Profile Local which I cant seem to figure out cause of, but it still continues to run. The mn disable debug and message boxes code has changed as well
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 29th Jan 2011 20:04
@R_2

Make sure to update your NET_SERVER_NAME to your local IP address - back in hour 5 the dynamic IP address interrogation wasn't in place yet

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 30th Jan 2011 04:56
The conversion to DarkNet2.0 is complete

So, this is what is available:

1. I've updated the Hour 5 Tutorial, and I'll scan through tutorials 6 - 29 to make sure there's no conflicts with the new DarkNet2.0 modifications. I've been able to contain the delta to a couple of lines of code with the addition of a new function to create the network profile in netClient.dba and netServer.dba.

2. Additionally, there is now a branch available in the CVS - double click on the URL to go UP one level from the "trunk", then you will see a "branches" folder. Under there is a folder called "darknet20". This branch currently contains an identical copy of Hour 4 PLUS a commit for Hour 5 that contains the necessary modifications for DarkNet2.0

I'm going to try to get this branch caught up to the trunk and then merge it back into the truck... but not tonight

If you are following the tutorials, you should now be able to keep following along at (and including) Hour 5 with DarkNet2.0 and continue on from there.

However, please be aware of that doing a checkout from the main trunk at any hour until I get things merged back in will obliterate the DarkNet2.0 changes, so you'll have to re-apply them.

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 22nd Feb 2011 21:27
Since I'm finished with the conversion to DarkNET 2.0, I was considering adding in eXtends at this point as well to switch the GUI system over the XGUI. Would anyone have any major objections switching over to XGUI for the GUI system?

Lagunajam
13
Years of Service
User Offline
Joined: 22nd Feb 2011
Location:
Posted: 23rd Feb 2011 01:07
Already Xgui works on Windows 7? I have seen for the forum, which gives problems.

Greetings
kamac
13
Years of Service
User Offline
Joined: 30th Nov 2010
Location: Poland
Posted: 23rd Feb 2011 10:09
Wow

I didn't spot the thread before, but i see this is a great piece of work . Very, very useful. I will look into it if i'll want to make large MMO

Limit's of this sig are really low o_o 200 characters and i can have only 2 carriage-returns ..:..:..
leo877
16
Years of Service
User Offline
Joined: 6th Mar 2008
Location: san antonio, tx
Posted: 23rd Feb 2011 12:41
omen

whats the pro and cons between the gui and xgui. i know there might be alot to name but let say the top 5 reason pro and con. i never use xgui or no what is a gui. i am still learning this fun hobbie.


Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 23rd Feb 2011 16:38 Edited at: 23rd Feb 2011 16:43
@Lagunajam,

You are correct, the XGUI system in eXtends still has issues with Vista and Windows 7. People running Vista or Windows 7 would have to set the binary to run in "Windows 98 Compatibility Mode." Because this is setting for the binary that is set in the local registry, not in the binary itself, I couldn't "hard-code" this setting into the binary - everyone on those systems would have to make this change

@karmac,

Thanks - I'm hoping there are a lot of techniques in OMEN as well that people can "lift" and use in lots of other programs. I've tried to make each module with very low coupling - so things like the unstructured data management system could be just pulled out and used elsewhere

@leo877
GUI means "Graphical User Interface." DBPro does _not_ include a built-in GUI system, so you have to either build your own, or purchase a separate dll to take care of this. Up until now I've "built my own" (based on the DemonGUI system), but am considering moving over to eXtends (XGUI) instead. Pros and Cons to switch to XGUI would be like this (only 3 each, couldn't think of 5):

Pros:
-----
1. Much faster than the system I'm using. Both OMEN's GUI system and the XGUI system are using sprites, but XGUI is more efficient in building and handling them. It's about a 650% speedup from what I've seen over OMEN's current GUI system. The speedup is needed, too, because right now it takes about 4 seconds (on average hardware) to build the character creation screen - waaaay to long.

2. Can do the same things as OMEN's GUI system in fewer lines of code. A smaller codebase means an easier-to-maintain codebase, faster development cycles, bunnies and kitties!

3. Can do MORE than OMEN's GUI system. The eXtends dll includes all the standard windows widgets - all skin-able, so your game can have all the gadgets people are used to using, but it will still look like your game and not look like an Access database. Plus windows transparency, built-in windows dragging and re-sizing -- all the good stuff


Cons:
-----
1. The XGUI system in eXtends isn't Vista or Windows 7 compatible. Everyone using Vista or above would have to manually set the "Windows 98 Compatibility Mode" option on the binary. That alone pretty much means you'd never be able to make anything "mass marketable" with it. People who wanted to make something mass-marketable out of the OMEN tutorials would probably need to replace the XGUI system with something else.

2. XGUI doesn't cut-up sprites into thirds vertically and horizontally and tile the middle parts of the sprite the way the OMEN GUI system does. This means the pixel-perfect sprite stretching would go away. This means I'd have to create additional GUI media to handle different screen resolutions (stretched GUI components look terrible in most cases). So, it could be possible to maintain good graphics, but at the cost of more media work.

3. The eXtends dll isn't free -- and it's pretty old, and hasn't been updated in a while. I believe TGC owns the copyright on eXtends now, and they're WAY too busy on other projects to do any fixes or enhancements on eXtends. Currently, to follow the OMEN development project, people only need to purchase DBPro and DarkNet. Requiring the eXtends dll would add US $31.99 to the cost of continuing down the OMEN development path when the switch over to XGUI is made. Although there are a few nice things in it that I think can still make life easier for a programmer. The virtual light system I might actually use at a later point in OMEN's development.

Wyldhunt
14
Years of Service
User Offline
Joined: 27th Sep 2009
Location: The Dark Side
Posted: 23rd Feb 2011 19:10 Edited at: 23rd Feb 2011 19:21
How have I missed this for so long...?
<Goes in search of SVN stuff>
Your tutorials are awesome.

EDIT:
Oh, and I'd vote for eXtends. Even if it's buggy right now, it offers way too many pros to ignore. It comes with the Dark Game Studio Bananza, which is the best offer ever, and it'll make things much much easier for people to follow if they don't have to keep re-inventing the wheel.
And, it'll get fixed eventually... right?
leo877
16
Years of Service
User Offline
Joined: 6th Mar 2008
Location: san antonio, tx
Posted: 23rd Feb 2011 20:33
omen
thanks for letting me know what gui and the pro/cons. top 3 is cool, i wasn't expecting 5. but you made it seem that Xgui is better.
my vote is Xgui. like wyldhunt said in his edit
Quote: "It comes with the Dark Game Studio Bananza, which is the best offer "



Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 24th Feb 2011 01:55 Edited at: 24th Feb 2011 01:57
Sorry about the lack of examples, I'll try to fix this up over Easter - feel free to email me about DarkNet problems and I'll get back to you ASAP .

And trust me, DarkNet 2.0 is a massive step up from DarkNet 1.0. If you have a look through the code you will get an idea, we've gone from spaghetti to ravioli code in one beautiful update...

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 24th Feb 2011 03:40
@Michael,

Oh it's all good - I got it all sorted (as GG would say) and working perfectly now. And I agree wholeheartedly, 2.0 is a massive improvement.

You know the examples I'd love to see would be some examples of how to use multiple server listener instances now under 2.0 in dbpro. Perhaps, though, instancing doesn't make sense in dbpro? Not sure there really. Let's see what else...

I seem to remember something about adding a "broadcast to channel" capability, but now can't find anything like that in the mn namespace. Not sure if that's implemented or not, but if so would love to see how to do it.

Graceful server disconnect example would be nice too..

I guess I could go and on

Devonps
14
Years of Service
User Offline
Joined: 5th Nov 2009
Location: Nottingham
Posted: 24th Feb 2011 12:22
Quote: "The XGUI system in eXtends isn't Vista or Windows 7 compatible. Everyone using Vista or above would have to manually set the "Windows 98 Compatibility Mode" option on the binary. That alone pretty much means you'd never be able to make anything "mass marketable" with it. People who wanted to make something mass-marketable out of the OMEN tutorials would probably need to replace the XGUI system with something else"


For me this was the killer reason why I don't use eXtends, it's difficult enough to get people to download and play anything and getting them to carry out just one more step can be frustrating.

Maybe if there was a way to automate that compatibility step...

Regardless of the method you choose I'm certain you'll create something of great value and enjoyment...keep up the good work.

Steve.

Marriage is a circle of rings....
Engagement ring, Wedding ring, Suffering!
The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 24th Feb 2011 19:02
I think I'll echo what many people have said here, how on earth did I miss this! I have been reading through your tutorials in the hope I can apply some of the core systems to an FPS.

Michael P
18
Years of Service
User Offline
Joined: 6th Mar 2006
Location: London (UK)
Posted: 24th Feb 2011 19:07
@ Omen
I will write some example code over Easter.

Quote: "You know the examples I'd love to see would be some examples of how to use multiple server listener instances now under 2.0 in dbpro. Perhaps, though, instancing doesn't make sense in dbpro? Not sure there really. Let's see what else..."

You can run two servers from one application just by setting up two servers on different instance IDs.

Quote: "I seem to remember something about adding a "broadcast to channel" capability, but now can't find anything like that in the mn namespace. Not sure if that's implemented or not, but if so would love to see how to do it."

You can use broadcasting to send a packet to all clients on a network without connecting directly to them. This has changed a little from v1 and is slightly buggy in that the way you use it differs from how the documentation tells you to use it... I will fix this over Easter too. See this code for how you can get it working:



Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 24th Feb 2011 19:18 Edited at: 24th Feb 2011 19:19
@Mike,

Thanks a million for that broadcasting example - I was really "banging my head against the wall" trying to get it to work. I look forward to more examples after Easter

@karmac, Wilderbeast, Wyldhunt,

hehee, yeah I have a LOT of lurkers I found out when I looked at my Google Site Statistics. I don't mind, though, I'm interpreting silence as contentment in this case

@Devonps,

Vista and Win7 are now recommending the Windows Power Shell, and I think I can take advantage of that as part of my install script to flip the "Windows 98 Compatibility" switch in the registry. Even without power shell, there is probably a brute-force method of doing it.

Hmm, I'm pretty confidant that I can mediate all the issues with XGUI. I'm going to create a test harness for the XGUI conversion and see if I run into any show stoppers...

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 24th Feb 2011 19:32 Edited at: 24th Feb 2011 19:33
Hour 29 is up!

http://omen.lakehomegames.com/project-updates/hour29-materialssystem1

Tonight's tutorial does the conversion to DarkNet 2.0. If you are trying to use/convert a project to DarkNet 2.0, the changes that I demonstrate tonight may help you go through your conversion as well.

We're also adding the Materials system and integrating it with vertex morphing from Hour 28 to define the "mod" file solution.

While the Materials system is really the centerpiece of tonight's commit, it's the addition of the mod file solution that comes out of this that's really interesting. This solution will also allow us to arbitrarily modify avatar attributes from modifications (for example add +5 to Dexterity when equipping a ring, and remove that bonus when un-equipping). But we'll also be able to create mods that are NOT equivalent when equipping and un-equipping the mod (for example, you get a permanent 10% penalty to attack roles when removing the ring).

Code Snippet:

...a mod file is an interesting concept and deserves a little attention and a meandering example thrown in for good measure...

P.S. We're back to adding random references to Norway, but I have no idea how that happened. Honest.

The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 24th Feb 2011 20:18
And of course thank you very much for putting all the time and effort into this project, I'm sure it's helped an awful lot of people.

On Hour 3 so far, but I've got all tomorrow

The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 24th Feb 2011 20:39
Just spotted a mistake in Hour 3.

You say to rename the media to:
02_DT.tga
02_HF.bmp
02_TX.bmp

But when they are loaded you forget to reference the leading '0'. So it needs to be either:



or just get rid of the leading '0's.

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 24th Feb 2011 20:44 Edited at: 24th Feb 2011 21:12
@Wilderbeat,

That's the thing about CVS, your mistakes are enshrined for all of time The file format is actually wrong too. There's a note at the bottom of hour 3 explaining that, and I added a note concerning the leading zeros. Moving along to Hour 4 is probably the best option

Edit: I see something I like! DBPro LOD that really works??? Definitely adding that to my list of things to check out http://www.blitzwerks.co.uk/main.bw?products&2

The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 24th Feb 2011 21:29
That's Kaedroho's work, he is a man of wonders I tell you

Just checked out (as seen looked at, now SVN checked out :p) the version on Google Code, I shall remember to check there every time something like this happens. Thanks

The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 24th Feb 2011 22:46 Edited at: 24th Feb 2011 22:47
I'm on Hour 5, and the compiler really doesn't like this line:

Error given - Type definition 'dataObjectsType' could not be understood at line 177.

In dataShared.dba:


In the SVN this line isn't there.

Any ideas?

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 24th Feb 2011 22:52
Remove the s. It's "dataObjectType", not "dataObjectsType"

The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 24th Feb 2011 22:56
Urgh, I think I better take a break x( Thanks for the quick reply

The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 24th Feb 2011 23:29 Edited at: 25th Feb 2011 00:05
Just found another little bug. In Hour 4 you refer to the debugStop() function as:


Whereas in Hour 5 debugStop()is called, which doesn't exist.


I'm just about to compile the server, fingers crossed!

[EDIT]
No go, I get a DarkNET error when it first starts the server (see attached screenshot).

[EDIT2]
My bad, I forgot to change the IP. Although it's not detecting the client connection for some reason.

Server log:
Quote: "[SYSTEM] INFO 11/02/24 22:45:33 :: SERVER ID FOUND : 1
[SYSTEM] INFO 11/02/24 22:45:33 :: NEXT GUID FOUND : 1
[SYSTEM] INFO 11/02/24 22:45:33 :: 192.168.1.6 listening on port 9669 as instance 0
[SYSTEM] INFO 11/02/24 22:45:33 :: Clients/Instance set to 0
[SYSTEM] INFO 11/02/24 22:45:33 :: UDP Max Operations set to 2
[SYSTEM] INFO 11/02/24 22:45:33 :: UDP Mode set to 2
[SYSTEM] INFO 11/02/24 22:45:33 :: Press spacebar to quit."


Client log:
Quote: "[SYSTEM] INFO 11/02/24 22:46:28 :: CONNECT START: 192.168.1.6:9669, Profile: 140989808"


It's rendering the terrain, so it's made it past netClientConnectStart() fine, but the connection isn't completing.

[EDIT3]

This line is returning a value of -1 which means that there was a connection error, going to see if I can figure out why.

[EDIT4]
Ok, so it would appear to be blocking the connection because the server NET_CLIENTS_PER_INSTANCE is set to 0 at the time of connection. At the top it is specified as 50, so not sure what's going on here.

[EDIT5]
Arghh stupid typo, line before it was global NET_CLINETS_PER_INSTANCE as integer

[EDIT6]
Is there any reason why I'm getting this?
Quote: "[SYSTEM] INFO 11/02/24 23:04:46 :: SERVER ID FOUND : 1
[SYSTEM] INFO 11/02/24 23:04:46 :: NEXT GUID FOUND : 1
[SYSTEM] INFO 11/02/24 23:04:46 :: 192.168.1.6 listening on port 9669 as instance 0
[SYSTEM] INFO 11/02/24 23:04:46 :: Clients/Instance set to 50
[SYSTEM] INFO 11/02/24 23:04:46 :: UDP Max Operations set to 2
[SYSTEM] INFO 11/02/24 23:04:46 :: UDP Mode set to 2
[SYSTEM] INFO 11/02/24 23:04:46 :: Press spacebar to quit.
[SYSTEM] INFO 11/02/24 23:05:20 :: Connection detected from 192.168.1.6 on port 2451
[SYSTEM] WARN 11/02/24 23:05:20 :: Attempted to reset session out of range 1"


Attachments

Login to view attachments
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 25th Feb 2011 03:18
@Wilderbeast,

If you don't find the error, go ahead and zip up your modules folder and send it to me via e-mail. I can usually spot the problem pretty quickly. It looks like you're finding most of your own bugs, though

Wyldhunt
14
Years of Service
User Offline
Joined: 27th Sep 2009
Location: The Dark Side
Posted: 25th Feb 2011 03:49 Edited at: 25th Feb 2011 03:49
Is there any reason that you're wanting to use eXtends other than Xgui?

I occurs to me that BBBGui is free, Win7 compatible, and still supported. It's been in development for a couple of years now. It doesn't have many bugs, and the ones that have been found have been acknowledged by the author who said that they'd have a new update soon to fix them.
http://forum.thegamecreators.com/?m=forum_view&b=8&t=162825&p=0

That may be worth considering to keep Win7 and paying customers.
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 25th Feb 2011 06:43 Edited at: 25th Feb 2011 06:43
@Wyldhunt,

From what I've seen of BBBGui, it just allows you to "skin" the build-in windows gadgets - so your game invariably ends up looking like Microsoft Access no matter how much you try. Of course, I could be wrong -- it's just I've never seen any screenshots of anything done with BBBGUI that had the look and feel of a game

Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 25th Feb 2011 18:05 Edited at: 25th Feb 2011 18:11
@Wilderbeast,

I received the zip file you sent me, and noticed that you are missing the "media" folder (but I'm guessing you just didn't include that in the zip file?).

According to your code, though, you are using an "assets" folder instead, and you've rolled up both the skybox code and the terrain code into a "map" module. Please remember that if you make significant module changes like this, it is going to make following the tutorials MORE complex -- and trust me, they get PLENTY complex later on, so not sure if you really want to add complexity at this early stage.

In any case, the client code you sent me compiles successfully, but then fails when it runs because it can't find the assets it needs (at hour 5 asset handling wasn't very robust).

My tutorial assumes that assets are under "media/skybox" and "media/terrain" for these 2 asset types - so, I'm going to fix your code to get it closer to being in-line with the tutorial, not further away.

Made these changes:

1. Created the folder "media" at the project root
2. Under that folder created the folders "skybox" and "terrain" and placed the skybox and terrain assets to their respective locations.
3. In your mapClient module changed these lines:

#constant MAP_SKYBOX_PATH "assets/maps/"

...to this...

#constant MAP_SKYBOX_PATH "media/skybox/"

...and this...

#constant MAP_TERRAIN_PATH "assets/maps/"

...to this...

#constant MAP_TERRAIN_PATH "media/terrain/"


4. You have a syntax error on your server in the function netServerSessionReset(), change this...

if (client < 1 or client > NET_CLIENT_PER_INSTANCE)

...to this...

if (client < 1 or client > NET_CLIENTS_PER_INSTANCE)

5. Now sure if you are trying to do Hour 5 or Hour 6, but at Hour 5, we're not doing network state management yet. In your client module, you are calling NetClientMaintain() - comment this out for Hour 5 and it will be fine.

//netClientMaintain()

When I make all these changes, both client and server run as expected for Hour 5.


Also, there is a branch for Hour 5 in the code repository for the DarkNet20 conversion - you can browse it here:

http://code.google.com/p/worldofomen/source/browse/#svn%2Fbranches%2Fdarknet20

Or you can do a checkout from the branch using this checkout URL:

https://worldofomen.googlecode.com/svn/branches/darknet20

The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 25th Feb 2011 18:29 Edited at: 25th Feb 2011 18:55
I have modified parts of the media loading to suite my own needs, and this part works fine, but I may consider merging back in the original setup.

I was following Hour 6, so the netClientMaintain() should be there. I have corrected the typo and this has fixed the Attempted to reset session out of range error. But I am still getting an error when running pollStatus = mn poll connect(0) in netClientMaintain().
If I comment out this line the client runs fine and from the log:
Quote: "[SYSTEM] INFO 11/02/25 17:26:06 :: CONNECT START: 192.168.1.6:9669, Profile: 104093040
[SYSTEM] INFO 11/02/25 17:26:08 :: Sent NETC_TEST_MESSAGE with data 0, 4
[SYSTEM] INFO 11/02/25 17:26:08 :: Sent NETC_TEST_MESSAGE with data 0, 4"

The server is getting the data fine.

[EDIT1]
Hmm, so I've noticed that the client sends the message, but the server is not receiving anything. Also, in the screenshot for Hour 6 you show the server saying "Connection from 192....... as sessionID 1" - but in the tutorial there is no reference to the session ID, although in the repository this has been added in.

This would appear to be a similar error to what Mugen Wizardry got here: http://forum.thegamecreators.com/?m=forum_view&t=165271&b=1&msg=2125264#m2125264

Attachments

Login to view attachments
Omen
17
Years of Service
User Offline
Joined: 7th Nov 2006
Location: Maple Grove, MN US
Posted: 25th Feb 2011 20:38 Edited at: 25th Feb 2011 20:52
@Wilderbeast,

Oh, you're doing Hour 6 - OK, that changes a few things...

I've noticed with DarkNet 2.0, that the mnPollConnect works a little differently. Namely it will generate a exception if you try to call more than once after a connection is successful. You can always call it once - which is a VERY good thing or else how would you know that your connection attempt was successful?

Under the previous version of DarkNet, this wasn't so much of an issue either due to (a) a bug or (b) a feature - so you could call mnPollConnect anytime you wanted.

And that's exactly what Hour 6 was doing. But the fix is simple.

Add the statement "netClientConnected = 1" to the end of the "if (pollStatus)" case in the netClientMaintain() function so it looks like this:



I've updated the tutorial page for Hour 5 to include this change (since this is where this function was introduced).

When I make this change and uncomment the //netClientMaintain (as I previously recommended) then I no longer get the DarkNet error.

Edit: Also noticed the following syntax error in your netClientSendTestMessage() -- because you are using "x" and "z" instead of "x#" and "z#", then you should change this:

mn add float sendPacket, x#
mn add float sendPacket, z#

....to this...

mn add float sendPacket, x
mn add float sendPacket, z




The Wilderbeast
18
Years of Service
User Offline
Joined: 14th Nov 2005
Location: UK
Posted: 25th Feb 2011 21:06 Edited at: 25th Feb 2011 21:10
Thanks for the help I added in the code to ensure mnPollConnect is only called once, although I still get the error, but only once this time as opposed to every loop) which makes sense. I'm guessing there is another mnPollConnect elsewhere.

Sorry about the x#, z#, I was tired when I was writing and forgot to tidy that bit up.

There were no messages coming through on the server because I missed the bit which said to uncomment the netServerParseTCP command.


Thank you.


[EDIT]
Ok, so that's the only time mnPollConnect is called, any clues as to why it still chucks up the error?

Login to post a reply

Server time is: 2024-04-19 01:51:08
Your offset time is: 2024-04-19 01:51:08