Reproramming Cave Story

Dec 19, 2012 at 12:14 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
If you're old enough to remember AGL, you probably know what I'm talking about: The plan is to reprogramm Cave Story (programming a clone) to have a more mod friendly game and to play Coop or Battle over the Internet, Lan or Hotseat. This would reduce the need of editors a bit too, since most of the engine could be scripted with Lua for example, we only need a map and script editor then and this should be easily done.

The idea itself is somewhat older, JTE already did so some while ago but doesn't seem to be interested in that anymore or hasn't got time for it.


Everyone who wants to help or is interested is invited to join the IRC channel:

Server: irc.esper.net
Port: 5555
Channel: #NetStory

Or click this link to join with mibbit: http://chat.mibbit.com/?channel=%23NetStory&server=irc.esper.net
Or this one to join: irc://irc.esper.net:5555/NetStory


This is the newest release (source inlcuded):
http://tile44.org/files/NetStory-0.1.2.0.zip


Plus the documents:
http://tile44.org/files/NetStory.html
 
Dec 19, 2012 at 1:47 PM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Jun 12, 2011
Location: 0x00000000 0xC00E0FF0 0xFFFFEFD4 0xC0000000
Posts: 108
S. P. Gardebiter said:
.NET languages don't support linux or mac
Mono for C#?
 
Dec 19, 2012 at 1:54 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
That could work, we would need to find someone who has experience in using Mono with C# though. I've only got experience with VB.NET, I know how .NET works from that but I have no experience with C#. Alltough, you could argue that VB.NET is as good as C# but with a different syntax.

Anyway, using .NET probaby isn't the best idea as GDI+ is very slow.
 
Dec 19, 2012 at 1:58 PM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Jun 12, 2011
Location: 0x00000000 0xC00E0FF0 0xFFFFEFD4 0xC0000000
Posts: 108
S. P. Gardebiter said:
That could work, we would need to find someone who has experience in using Mono with C# though. I've only got experience with VB.NET, I know how .NET works from that but I have no experience with C#. Alltough, you could argue that VB.NET is as good as C# but with a different syntax.

Anyway, using .NET probaby isn't the best idea as GDI+ is very slow.
I actually had the hang of programming stuff in C#. I program often there, although I haven't experienced the full potential of Mono.
 
Dec 19, 2012 at 2:09 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
The problem is the API: We need network, graphic, sound, scripting, basic IO and other functions, all these need to be fast and compatible with Win32, Win64, Linux and Mac. If we make a clone which is only compable to run on the newest hardware or just on hardware that is 5 years old, then we have done something wrong.

Problem is with .NET that it is a huge library and I don't know how much Mono is compatible with all it's API functions. Don't get me wrong, .NET is a briliant framework but it's huge and it's not so easy to find someone capable of working with it.
Anyway, if you know C# then C or C++ should be no problem. Most C functions are enough even, we don't need to bloat it with objects and classes too much (some are helpful, like strings or vectors, some are just not needed).
 
Dec 19, 2012 at 2:16 PM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Jun 12, 2011
Location: 0x00000000 0xC00E0FF0 0xFFFFEFD4 0xC0000000
Posts: 108
S. P. Gardebiter said:
Problem is with .NET that it is a huge library and I don't know how much Mono is compatible with all it's API functions. Don't get me wrong, .NET is a briliant framework but it's huge and it's not so easy to find someone capable of working with it.
I do agree.
S. P. Gardebiter said:
Anyway, if you know C# then C or C++ should be no problem. Most C functions are enough even, we don't need to bloat it with objects and classes too much (some are helpful, like strings or vectors, some are just not needed).
OK then. Anyway, if you guys need my help about this, get me updated and I'll do the things I can. I have a thesis for 3 semesters, and it's likely that I may find it hard to catch up.
 
Dec 19, 2012 at 2:21 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Well, at the moment there is only one guy, that is me.
It's good to know I'm not the only one who wants to do something like this though. Maybe we can get JTE interested too, when we finished some stuff as JTE has done writing the whole sound stuff before and that sure isn't easy.

Anyway, I added you on MSN, hope you use it, as talking over an IM is a lot of faster.
 
Dec 20, 2012 at 4:23 AM
Administrator
Forum Administrator
"Life begins and ends with Nu."
Join Date: Jul 15, 2007
Location: Australia
Posts: 6211
Age: 38
Try jte@kidradd.org
 
Dec 20, 2012 at 4:33 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Noxid is trying to do this with CSengine, but CSengine is going to be different in some ways.

I can C++ and OpenGL. And Allegro.

However, I prefer to Swing dance. You're nuts if you think that not using C/C++ is going to make everything slow.
Also, you're planning to sometimes not use objects?
 
Dec 20, 2012 at 5:32 AM
Veteran Member
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Aug 21, 2012
Location: At a computer
Posts: 332
Why doesn't someone modify NXEngine and add netplay and stuff?

Also Semi-off-topic-but-still-somewhat-on-topic:Has anyone ever made a clone of ikachan? The reason i ask is because i looked in event.ptx and saw how weird the scripting language is, and i'm thinking of trying to make a clone that would make ikachan mod's more possible.
 
Dec 20, 2012 at 6:44 AM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
@Carrotlord: Ever heared of structs?
Well, Java is slower than C++, because it is a weird mixture of a compiled and interpreted languagage. There are other reasons too, which I mentioned, if you want I can give you more reasons, why I think it is not a good idea to use Java.
So are you interested or not? :p

@Liammillay
I'm sure this is taking longer.
 
Dec 20, 2012 at 6:47 AM
Veteran Member
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Aug 21, 2012
Location: At a computer
Posts: 332
S. P. Gardebiter said:
@Carrotlord: Ever heared of structs?
Well, Java is slower than C++, because it is a weird mixture of a compiled and interpreted languagage. There are other reasons too, which I mentioned, if you want I can give you more reasons, why I think it is not a good idea to use Java.
So are you interested or not? :p

@Liammillay
I'm sure this is taking longer.
Okay, so it wouldn't take much time to make an ikachan clone? sweet. Now i need to learn c++ -_-
 
Dec 20, 2012 at 6:57 AM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
is there even a single reason to use structs over classes in C++
it's just legacy syntactic sugar

Hidden text highlight (or click) to view:

why am I even bothering this can only end poorly

 
Dec 20, 2012 at 7:42 AM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
If you need a class without functions, without an overhead and with public variables only? Smaller and faster.
Object orientated programming is only needed when you work in big teams. All paradigms were created because the teams expanded. When there was only one person working on a code and back then, when codes weren't so long, you would use goto or jumps because they are a lot faster (as they are an elementary operation, instead of loops for example). However, when your code becomes longer and there are more persons involved, you might want to use loops like for or while instead and call more functions instead of jumping around. That's why Gotos are bad practise today, even if you programm alone it can be hard to keep an overview if your code grows large. I don't think there will be more than for example 10 persons involved in this project, that's why it's better to keep oo to a minimum (modular programming is enough here). Or as I've read on another website:


Higher abstraction usually requires more horse-power.
 
Dec 20, 2012 at 7:44 AM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 31
I'd bet money that this ends in failure, but when a project like this fails it normally doesn't have an end.

Also why don't you guys use the nxengine? It's open source so you could save yourself some time using it.
 
Dec 20, 2012 at 7:49 AM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
@Noxid: Wikipedia explains the difference really good: http://en.wikipedia.org/wiki/Procedural_programming#Comparison_with_object-oriented_programming

Problem with objects is, that you always include stuff for every object, even those things you don't need, for example certain functions.

@GIR: Why do you think so?
Also, better read my start post :p

This would reduce the need of editors a bit too, since most of the engine could be scripted with Lua for example, we only need a map and script editor then and this should be easily done.
We would have to tear nxengine totally apart and that would take even longer than writing this thing from scratch.
The approach is very different.
 
Dec 20, 2012 at 8:06 AM
Senior Member
"This is the greatest handgun ever made! You have to ask yourself, do I feel lucky?"
Join Date: Jun 12, 2011
Location: 0x00000000 0xC00E0FF0 0xFFFFEFD4 0xC0000000
Posts: 108
S. P. Gardebiter said:
Well, Java is slower than C++, because it is a weird mixture of a compiled and interpreted language. There are other reasons too, which I mentioned, if you want I can give you more reasons, why I think it is not a good idea to use Java.
And I never liked the idea of virtual machines. Why can't all them hardware manufacturers rely on a single standard about processors? Identity is a lame excuse.


GIRakaCHEEZER said:
I'd bet money that this ends in failure, but when a project like this fails it normally doesn't have an end.


Might be the case of bad software engineering. There's a lot of time for planning.
 
Dec 20, 2012 at 9:12 AM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Using a single standard, that would mean some people make less money and of course that would be hazardous. Also, the manufacturers are obvoisly in the wrong country. :p

Anyway, yeah, we have a lot of time for planning but I've already made a small thing:

http://tile44.org/files/NetStory-0.1.0.0.zip

If you want we can start with this or we start from scratch, I don't care. If this looks like a good starting point for you, we can specify some other things. It's based of on a attempt to make a small basic setup of a game using OpenGL.
Next thing this programm needs is an own function to load bitmaps into memory for usage with OpenGL, as SOIL has issues with some of the bitmaps from Cave Story.

Oh yeah and don't forget to copy your "data" folder from Cave Story into the bin folder of the programme.

And don't be afraid to criticise the coding style because we should use a unitary coding style anyway.
 
Dec 20, 2012 at 9:42 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
SPG, structs are fine.

I was assuming you meant no structs, and no objects-like-things except arrays, which are really just integers that point to something.

I am still interested.

However, the annoyance of C++ and C is that they have to be recompiled on every system.
C++ is more like... try to compile on every system, and when it fails because of some quirk, go into the code to fix some problem.

Java is like... write code once, and it runs everywhere. It looks fine on your machine, and also looks really shitty on a Linux or Mac.
Then you give the user the finger and say "unpack the jar yourself and use GJDB".

So in the second case, the user is far more fucked, but you as the programmer have to do less work.
For C++, the user is less fucked, but you're basically dressing up in frills, going into a dark alley, and yelling
to everyone that you got castrated quite a while ago.

Now, I can't tell you what to do at all. This is your project, and also my avatar is currently Princess Peach so that
wouldn't be an effective looking argument. If you want to use C and C++, or a C++ that is more of the style of C, that is okay
with me. I can still work with that.

EDIT: @liammillay Pixel is a master of cryptography. The reason the language you opened looks so weird is because Pixel used cryptography on it.
Studio Pixel is really a genius. He used the ultimate uncrackable code... the Caesar Cipher!

Normal people such as my mother and grandfather will be totally unable to decipher the bytes.
 
Top