Mario Kart PC

Avatar
Pilchard123
334 Posts
Posted Aug 09, 2012
A while ago, I mentioned a traffic-pulling idea that I had. Here it is, though it isn't really Portal-related at all.

I don't know if you've heard of Mario Kart Source, but it was a project to try and port the best bits of the Mario Kart games to the Source engine (durr). Unfortunately, due to real life happening, the development slowed down so far that it all but stopped. Then, the project was "opened". Nothing changed. Finally, the devs just said "Look, enough is enough. Let's stop. At least we can say that we tried."

Then, a few months later, some guy (say, he looks familiar) comes along and says "I could help, are you sure that you want to give up? Try this engine, it might be easier/better."

"Nope", they said, "but here's all the stuff. Have fun!"

Anyone feel like taking it on with me? I don't know any of the C family very well AT ALL, unless you count Java. I can model a bit, but not fantastically. However, I am fairly good with the Unity3D engine and the UnityScript/JavaScript that it uses. It'll also understand C# and Boo, whatever that is.

Also, one of the coders from the original project has said that he wished that it could have been finished, so we'd have a bit of a link to the old team if we could get him to join any team that we started, which I think is no bad thing.

Related: The old forums had a mods section. This board has a release section, but nothing to discuss development.

Advertisement
Registered users don't see ads! Register now!
Avatar
p0rtalplayer
1,366 Posts
Posted Aug 09, 2012
Replied 2 hours later
Introductions? I'd have put this in "Other Games"

Interesting idea, and I'm sad to hear the MK:S officially died. I wish I could help, but I'm not fluent in C++ and don't have the initiative to take that on in addition to my other 3 or 4 pressing projects right now.

Anyway, good luck with it, I do want to see this as a finished thing someday!

Avatar
vanSulli
994 Posts
Posted Aug 09, 2012
Replied 29 minutes later
This sounds like it could be a promising project. I would jump up and say "Sure, I'll code it for you," but like p0rtalplayer, I have several large-scale projects (larger even than this) that take up all of my coding time to begin with. Good luck; finding a coder can be a bit of a challenge.
Avatar
Pilchard123
334 Posts
Posted Aug 10, 2012
Replied 22 hours later
Well, thanks for the support anyway. Whatever happens, if I ever have a release-worthy build, I'll plug mAI all over the shop. Strictly speaking, I don't need a coder right now, I can try to do it myself. However, modelling/texturing/sounds are a different story. I do have the assets from the original project, but I'm not sure how comprehensive they are since I haven't been able to convert all of them to a Unity-usable format yet.
Avatar
Pilchard123
334 Posts
Posted Aug 15, 2012
Replied 4 days later
Hoo...Well, I think I've got red and green shells as far as targeting goes. However, I haven't yet made any karts or tracks. Perhaps I should have done those first. Proof-of-concept for battle mode or whatever it's called coming soon.
Avatar
kizzycocoa
975 Posts
Posted Aug 15, 2012
Replied 10 hours later

Pilchard123 wrote:
Hoo...Well, I think I've got red and green shells as far as targeting goes. However, I haven't yet made any karts or tracks. Perhaps I should have done those first. Proof-of-concept for battle mode or whatever it's called coming soon.

modding? if so I plan to build the most badass Bowser's Castle ever.

Avatar
Pilchard123
334 Posts
Posted Aug 16, 2012
Replied 8 hours later
Not modding, per se. I'm making it in Unity3D Indie, and I'll probably release an Asset Package and some tutorials for development when I've finalised how everything is going to work. Unfortunately, because I don't have the Pro version (it costs $1500 - I don't have $1500), I can't make release DLC without a LOT (as in, work out some way of effectively decompiling the game while it is running and recompile with the DLC, or change the game files while not running ) of work so I have to recompile and release a new build every time I update. Patching may be possible, but without a 3rd-party patcher, which may well cost quite a bit as well, I'd have to write that from scratch too.

Long story short: I'd be very happy for you to make maps, but I haven't worked out how the maps are going to be laid out yet so you can't. I'm also not sure how you could test the maps. It might be possible by compiling with just the bare minimum of assets in a standalone map-testing version.

Avatar
Groxkiller585
652 Posts
Posted Aug 16, 2012
Replied 19 hours later

If this will allow modding I shall make a Aperture track course

  • Broken Biochambers (Broken themed)
  • Tactical Testing (Clean themed)
  • Underground Utopia (Underground themed)
  • Wheatley's Whiplash (Wheatley themed)
Avatar
vanSulli
994 Posts
Posted Aug 16, 2012
Replied 1 hour later
I believe what his previous post stated was that modding would be difficult and costly to implement at best and that it would be clunky and hard to use for modders and mod consumers.
Avatar
Groxkiller585
652 Posts
Posted Aug 17, 2012
Replied 59 minutes later

vanSulli wrote:
I believe what his previous post stated was that modding would be difficult and costly to implement at best and that it would be clunky and hard to use for modders and mod consumers.

I get that, but if he built things off of maps files and txt files it would make his life much simpler.

For example, if he wants to make a randomizer for a map setup, he could load a random amount of the total amount of race map files and link them together, instead of having to hardcode it all. This would allow for custom stuff to be implemented into the system and also would be update-friendly.

Or he could just do it .bns style.

Avatar
Pilchard123
334 Posts
Posted Aug 17, 2012
Replied 4 hours later
I've found a patch creator that might work and is free, although it has an advert splash for the company that makes it unless I buy it. External map files might be a good idea, I'll have look into it. Normally "scenes", or levels/menus/etc, are compressed or compiled to some format that I don't know much about. If I could make a generic map that loads the data in from an external text file or something. I'm not sure how I'd be able to bring in any new models without a rebuild though.

What's a .bns? One of these?

EDIT: The patcher seems to work and isn't that pushy with advertising. I didn't notice it when I first tested it.

Avatar
Pilchard123
334 Posts
Posted Aug 18, 2012
Replied 1 day later
I've managed to devise a basic system for external map files. I haven't actually got it working yet, but I've laid the groundwork.I know what method calls I'll need and I have a rough idea of the details of the map files. I think.

Anyone mind if I use this thread as a pseudo-dev-blog? It'll help if I keep notes and I might also get to see what you think if how I do stuff. I probably wouldn't have thought of external map files on my own.

Avatar
NotJomonay
71 Posts
Posted Aug 18, 2012
Replied 53 minutes later
As ever, if you need music I'm available!
Avatar
Groxkiller585
652 Posts
Posted Aug 19, 2012
Replied 23 hours later

Pilchard123 wrote:
I've found a patch creator that might work and is free, although it has an advert splash for the company that makes it unless I buy it. External map files might be a good idea, I'll have look into it. Normally "scenes", or levels/menus/etc, are compressed or compiled to some format that I don't know much about. If I could make a generic map that loads the data in from an external text file or something. I'm not sure how I'd be able to bring in any new models without a rebuild though.

What's a .bns? One of these?

EDIT: The patcher seems to work and isn't that pushy with advertising. I didn't notice it when I first tested it.

Yes, that's what I meant by .bns.

Avatar
Pilchard123
334 Posts
Posted Sep 10, 2012
Replied 22 days later
Yep, it's taken me three weeks to work this out and it still isn't quite finished.

Whenever a kart crosses the finish line in the correct direction, it needs to be recognised that it has completed one lap of the course.

To that end, at the line there will be two very thin triggers that cannot be missed. I'll call them A and B. A and B will be positioned next to each other such that both must be travelled through, or neither will be. The finish line will be the boundary between the two boxes, like so:

BBBBBBBBBBBBBBBBBBBBBB
------------------------------- karts travel up the screen
AAAAAAAAAAAAAAAAAAA

Karts themselves will have two values stored (probably in a race manager on the server rather than the kart itself): the number of laps (L) required, and a value (M) which I shall call the metric but probably should be called something else. At the start of each race, L will be one higher than the required number of laps for that race. M will be zero.

Upon passing through A, M will be reduced by 1.
Upon passing through B, M will be increased by 1.
Upon passing though A or B, L will be changed by M.

This way, whenever a kart crosses the line in the correct direction, it will pass though A then B. M will be zero, and L will be an integer with either sign. I'll assume 2.

It passes through A, and L = 2 + 0 = L0; M = 0 - 1 = -1
It passes through B, and L = 2 + -1 = 1; M = -1 + 1 = 0
At the end of the procedure, L is reduced by one and M remains unchanged.

If it then travels in the wrong direction B->A:
It passes through B, and L = 1 + 0 = 1; M = 0 + 1 = 1
It passes through A, and L = 1 + 1 = 2; M = 0 - 1 = 0
At the end of the procedure, L is increased by one and M remains unchanged.

Avatar
kizzycocoa
975 Posts
Posted Sep 10, 2012
Replied 8 hours later
What if you reversed behind the line, drove over, reversed etc.?
Avatar
Pilchard123
334 Posts
Posted Sep 11, 2012
Replied 8 hours later
Each time you cross the line in the wrong direction, the number of laps that you must complete (or more exactly, the number of times that you must cross the line in the right direction) is increased by one. It wouldn't be possible to just drive back and forth across the line and win that way unless there was a way of getting behind the line without crossing it backwards first.


In this track, the triggers would touch both walls next to the line, not just the track.

Avatar
Groxkiller585
652 Posts
Posted Sep 12, 2012
Replied 1 day later

Pilchard123 wrote:
Yep, it's taken me three weeks to work this out and it still isn't quite finished.

Whenever a kart crosses the finish line in the correct direction, it needs to be recognised that it has completed one lap of the course.

To that end, at the line there will be two very thin triggers that cannot be missed. I'll call them A and B. A and B will be positioned next to each other such that both must be travelled through, or neither will be. The finish line will be the boundary between the two boxes, like so:

BBBBBBBBBBBBBBBBBBBBBB
------------------------------- karts travel up the screen
AAAAAAAAAAAAAAAAAAA

Karts themselves will have two values stored (probably in a race manager on the server rather than the kart itself): the number of laps (L) required, and a value (M) which I shall call the metric but probably should be called something else. At the start of each race, L will be one higher than the required number of laps for that race. M will be zero.

Upon passing through A, M will be reduced by 1.
Upon passing through B, M will be increased by 1.
Upon passing though A or B, L will be changed by M.

This way, whenever a kart crosses the line in the correct direction, it will pass though A then B. M will be zero, and L will be an integer with either sign. I'll assume 2.

It passes through A, and L = 2 + 0 = L0; M = 0 - 1 = -1
It passes through B, and L = 2 + -1 = 1; M = -1 + 1 = 0
At the end of the procedure, L is reduced by one and M remains unchanged.

If it then travels in the wrong direction B->A:
It passes through B, and L = 1 + 0 = 1; M = 0 + 1 = 1
It passes through A, and L = 1 + 1 = 2; M = 0 - 1 = 0
At the end of the procedure, L is increased by one and M remains unchanged.

Why not just have trigger A turn trigger B on, then when B is triggered turn A and B off until the player has gone at least halfway through the course (via trigger C) then turn A on again.

I also liked how you happened to call the vars L and M given what we're talking about lol

Avatar
Pilchard123
334 Posts
Posted Sep 12, 2012
Replied 3 hours later
Switching the triggers on and off might work, but it may cause problems when multiple karts cross the line within a short time of each other. Imagine kart X crossed the line (triggers A and B) but not trigger C. When kart Y crosses the line, what happens? It could probably be done by having a variable in each kart that shows whether it will respond to each trigger but I think it would take more work than doing it with M and L, especially as I have already partly coded that system.
Avatar
Idolon
417 Posts
Posted Sep 12, 2012
Replied 3 hours later
Just use checkpoints. Stick at least 3 triggers that a player must pass through to complete a lap, then count up a lap when they pass through A, B, then C. For example:

[code:13pigddz]laps = 0 //laps completed
checkpoints = 3 //total number of checkpoints in level
checkpoint = 0 //index starts on 0. last checkpoint will be (checkpoints - 1). the last checkpoint the player passed

for(i=0,i<checkpoints,i++) { //loop through every checkpoint

n = i-1 //the checkpoint a player should be at to pass checkpoint i

if (i == 0) {n = checkpoints-1} //if you are checking the first checkpoint, test the last checkpoint (instead of the -1st checkpoint)

if (OnPass(i) and checkpoint == n) { //if player passes next checkpoint...

checkpoint++; //go forward a checkpoint

if (checkpoint == checkpoints) {checkpoint=0} if you have exceeded the total number of checkpoints, go back to the first one

}
}[/code:13pigddz]
This won't actually do anything ofc; I just wrote it to show the logic.

Advertisement
Registered users don't see ads! Register now!