Welcome, Guest! Login | Register
Oh look what i did
Info
Report
334 Posts

yeah it is what it looks like.
No more details yet as its under construction still.
And things will change i'm sure.
Created on: 2 months ago
Edited on: 2 months ago
Info
Report
200 Posts

So you are actually working on it...Damn it me
Created on: 2 months ago
Info
Report
38 Posts

Hi Tin looks interesting
I saw once online a script that was to control players in  a foot ball game. I will keep a look out for it.

ps. I remember were I saw it was the Mat Buckland book on 'Ai. 'Programing game Ai by example'

n_iron
Created on: 2 months ago
Edited on: 2 months ago
Info
Report
334 Posts

There are no AI planned for the game, but i'm open to what ever you find.
Created on: 2 months ago
Info
Report
271 Posts

If there are no AI, then who are we fighting against? Is it going to be MP?
Created on: 2 months ago
Info
Report
200 Posts

@tinsoldier I had a feeling in the back of my head that I shouldn't have shown you TorqueBall, but here you go now
I hope you can form a better game out of it than me :P
Created on: 2 months ago
Info
Report
334 Posts

@powersupersport Yes it's going to be 8 player MP

@doomer022 well its going to be very basic, which is what i planned it to be, soooo we'll see.

As they say go big or go home....
Created on: 2 months ago
Edited on: 2 months ago
Info
Report
271 Posts

Are you sure you wanna go this way? Remember that 3D Rad doesn't have NAT punchthrough for networking, therefore you'd need to have a dedicated server/relay with a public IP address for everyone to connect to. Otherwise, it'd be impossible.

Please, seriously reconsider the multiplayer part of this game before starting work on the networking. It's already hard in Unity and is not any easier in 3D Rad. Even if you do manage it, there's still that NAT problem, which you can't do anything about as the API is too limited for anything to be done.
Created on: 2 months ago
Edited on: 2 months ago
Info
Report
334 Posts

@powersupersport  I'm fully aware of how to setup the networking and port forwarding, puch through would be nice, but not needed in my case.
And i do plan to run a dedicated server. I'm not sure if i plan to allow others to run servers yet.. it's a basic game, and probably wont see much use soooo.

EDIT: And to the public IP, not exactly cause i can also use a redirecting service that prevents me having to expose my IP and even allows my IP to change without causing problems.

But thats probably not required here.
Created on: 2 months ago
Edited on: 2 months ago
Info
Report
271 Posts

@tinsoldier, Fair points, but manual port forwarding doesn't always work due to how the ISP infrastructure works. Your forwarded port doesn't always match the port that is coming out with your public IP address.

It's not about if the game is meant to have much use. In the end, you're making an MP game. You do want at least some satisfaction by playing with someone. The frustration is real when trying to figure out why players are unable to connect.

Anyway, if the port forwarding does work though, then most of the problems are gone. So if you nail this one, props to you


Good luck!
Created on: 2 months ago
Edited on: 2 months ago
Info
Report
334 Posts

I'm working on the CBB (CarBall Battle) project right now which is coming along nicely. I'm basically using CBB as a development process for the Multi-player parts that will be added to the tank project too.  Also a little info on the CBB project, i realized that using a pcar to ram the ball and have it head towards the opponents goal will be quiet hard, sooo, i created a helper utility, that is basically  a force object that gets triggered to push the ball towards your opponents goal when struck.  It wont be a case of the helper scoring a goal for you, it's just a short time force to "help" the ball head in the proper direction. I'm not going to explain it in any more detail, its up to the players to figure it out and use it in the best way to get the best results in game, you will only know about it, when you see the ball possibly turning itself, and it can even cause the ball to stop and go into reverse so to speak. This project will be fun, it will be a timed 10 minute sessions and the wining team will be decided by total team goals. Team selection is automatic, you don't get to decide who plays with who, the player positions are filled in a flip flop way, that means red side first, then blue then red then blue, till all 8 positions are filled. there will be a spectator mode ( a free flying cam ) that can move anywhere in game.
There is a "ready" to play system in place for each player. players can come and go in game, there are no usernames for you in game, you are assigned simply player1 to player8 and a special host pcar that can allow me to pop in and out of a game and has a white buggycar body.. if i join with the host car i wont be a team member, just an observer in game, if and when needed. Most of the time, if i join i'll be a normal anonymous client pcar in game just like you. No chat is added in the project, i suggest if you wanna chat, you do so with discord, so its up to you if you want everyone or just team members server chats. No scoring will be stored either as no usernames are registered or required to play, its totally anonymous fun 10 minute matches.

If you want chat for CBB you can use this discord server https://discord.gg/f6Dgafc

There's two ways to use a discord server link.
#1 just click it in this message and it will open discord in your browser.
#2 copy and paste in any discord app chat box.
Created on: 1 month ago
Edited on: 1 month ago
Info
Report
94 Posts

Quote from: Power Supersport

@tinsoldier, Fair points, but manual port forwarding doesn't always work due to how the ISP infrastructure works. Your forwarded port doesn't always match the port that is coming out with your public IP address.

It's not about if the game is meant to have much use. In the end, you're making an MP game. You do want at least some satisfaction by playing with someone. The frustration is real when trying to figure out why players are unable to connect.

Anyway, if the port forwarding does work though, then most of the problems are gone. So if you nail this one, props to you


Good luck!

Networking in 3D Rad isn't that hard to code. You just have few functions and that's all.
Some ISPs (like mine for example) allow you to open your ports if you `activate your Static IP` (in my case, it's 1 €/m ).
Created on: 1 month ago
Info
Report
271 Posts

Oh, @athanatos, should I even start... and where do I start from...

First off, maybe the problem is exactly that 3D Rad has too few functions. You can technically only send a string and an array of floats, whilst a better and more versatile generic approach would be to send bytes instead. At least with bytes you can kind of figure out how to encode stuff.

And yeah, some ISP-s do in fact offer a static IP and it's not always as cheap as in your case. That's not the point though. Why would anyone want to go through the pain of manually opening ports, even more - pay for a static IP just to play a game. Most people don't even know the difference.

It goes even worse than that. You can't even extend the freaking thing. I was looking at the script reference just to see if I can experiment linking my custom MP library to 3D Rad and trying to make a simple MP game with punchthrough and everything. And apparently you can't even do that because that haunted cursed array of floats is following you everywhere, even in the way you call a DLL function with arguments (yes, you can only pass floats in a DLL function and you know it better than me).

So yeah. If it was easy, then we would've seen lots of MP projects in 3D Rad. I am saying projects, not complete games. We have seen mostly no projects and absolutely no complete games.

Keep in mind I've also tried MP in 3D Rad.
Created on: 1 month ago
Info
Report
94 Posts

My argument was that networking in 3D Rad is easy to implement, given these few functions... But I didn't mean  by `easier` better in a general way. We all know how bad 3D Rad is compared to other modern-day engines.

Yeah, gotta agree, the way 3D Rad passes parameters to user-made Dlls is awful. Passing parameters by files? Did this one, say good night to your performance, since the fact that 3D Rad enjoys eating your RAM isn't enough.

But it isn't entirely 3D Rad's fault. Since you cant really specify at runtime the types and numbers of paramenters of a function pointer. And since loading Dlls happends at a low level language like C++ , and you can't compile C++ code at runtime, like you would do with C#, Lua, Squirreil, et cetera...

I had trouble in a function that uses 2 string parameters, (that's the MSGBOX in my 3DRadExtender dll) because I kinda misaglined one of the buffers (char*). See :https://github.com/NicusorN5/3D_Rad_Extender_Lib/wiki/MSGBOX

For 3D Rad performance: It might be the object's fault, how they are loaded and unloaded. (<-- INSERT press x to doubt IMAGE xd)
They are kept on the disk/files (whatever) as separate dynamic link libraries. Of course the entire dll isn't loaded into the random access memory, instead they're mapped and sections of it are loaded. The loaded dll size can get bigger tham the dll's size in the hard drive if it uses dynamic allocation.

Now, I don't have the necesarry software reverse engineering pr0 1337 h4ckerman skills, but I can make guesses and assumptions about this topic.

As I seen before from an other post in this forum, if 3D Rad object can be overflowed, than means they are stored on a array.
In the case of a List, if too much memory is used the program will simply crash, and it doesnt depend if you use a list or anything else, it's the quantity of memory you use.

As a proof, compile this code using a lightweight IDE like Code::Blocks or Dev C++ and keep looking at Task Manager :
void FillMemory()
{
    uint64_t* a; //Create a 64 bit unsigned pointer.
    a = new uint64_t; //Allocate a new 64bit integer variable in the memory.
    if(a != 0x0)*a = 1; //Use the integer a little because why not?

//Unfortunately program will throw a 0xC0000005 if there's no more remaining memory. :(

//We do not delete the variable after because we actually want memory leaks :D
}

From https://github.com/NicusorN5/CPP-Memory-Overflower/blob/master/memory_overflow.h .

(Please if there's anyone with better programming experience, etc, correct me if I'm wrong, since this is a long post and it's 1:27 AM (at the time I'm writing this) )
Created on: 1 month ago
Edited on: 1 month ago
Info
Report
271 Posts

C++ has never been my strength though, so I won't comment much on that.

But yeah, thanks for the info on DLL-s in 3D Rad anyway. Now I understand your point on the networking. We can call this a day now
.
Created on: 1 month ago
Info
Report
200 Posts

If you want to implement server hosting, try opting for a Port Forwarding technique. Really simple solution, just make it so that the port is customizable.
Created on: 1 month ago
Info
Report
334 Posts

you guys... as a server i'm the only one that needs to open ports, clients don't need to open ports

If your 3drad client wont work due to ports, thats an ISP issue.. nothing i can do about that except to tell you to open the port 3drad is using.
Created on: 1 month ago
Info
Report
94 Posts

Quote from: TinSoldier

you guys... as a server i'm the only one that needs to open ports, clients don't need to open ports

If your 3drad client wont work due to ports, thats an ISP issue.. nothing i can do about that except to tell you to open the port 3drad is using.

Well, I did not mean that, and I guess nobody else. Can you quote the persons that said that?

Also, today games support dedicated server, and methods that allow hosting without the struggle to open your ports (UPnp, NAT Punchtrough as 2 examples)
Created on: 1 month ago
Info
Report
271 Posts

@athanatos, indeed, the best solution to MP games is a dedicated server as there is almost 100% guarantee that players will be able to connect. The drawback is that it can be hard to set up in an automated way, and can also be costly for just getting started.
Created on: 1 month ago
Info
Report
334 Posts

UpDate -

So far i'm at about  90% done with the project.

Local testing is showing that car soccer is quiet hard to hit the ball towards the goals and i suspect even harder with 3 or more players all hitting the ball too.

So i came up with a new idea that is really just a twist on game play, it will use 100% of the same project.

I just need to add a couple things.

The idea is to either convert or just add a new "Game" to the project which will be car RUGBY.

The game play will go like this..

When a player hits the ball, they become the "driver of the ball.
As the driver you basically steer the ball for your team, a little push will be added to ( about half speed of a pcar).
If your team mates hit the ball, you remain in the driver seat, and they act as support to help move you to the goal, you help by steering to the goal.

If an opposing team car hits the ball, you get kicked out of the drivers seat and reset to your starting position.

I think the more players in the game, the more team oriented it becomes.

A 2 player game would be more of a chase and hit process as each of you jump in and out of the drivers seat till the round ends.

An eight player game would allow you to drive and 3 support team members to say block other players and hit the ball etc. very team oriented type play, you could even place 1 team member as a goalie allowing 1 driver and 2 support members to help with scoring.

Any thoughts any ideas.. feel free to share !.
Created on: 1 month ago
Info
Report
334 Posts

Update #2

So things started not working ...

Seems i didnt follow the KISS ( Keep It Simple Stoopid) method.

So i have to backtrack,

Iadded everything except 1 and they didnt play well together.

So once i have the basic project working we can try a online multi-player test, then i'll add back the extra things ONE  AT A TIME and validate that works BEFORE adding in the other parts..

I wanted to keep this super simple, but ... got ideas for other things and now the project wont be so simple when complete... is that a good thing or a bad thing ? ......
Created on: 3 weeks ago
Reply
Preview
Post
Or use the advanced reply form here...
Sponsored