.NET Verge
Displaying 1-20 of 21 total.
12 next
Please enter a numerical value for the importance of this sticky.
Enter 0 to unsticky.
adderd

Been tossing this around a bit and I've discussed some ideas with some of you on IRC but here it goes:

I'd like to propose that verge be rewritten in C# and that games that use it be .NET code as well. Verge would, in essence, become a .NET library instead of an interpreter. Here is my reasoning:

1. This frees us from having to improve the vergec interpreter.
2. This allows for people to use any language that can be compiled to .NET. Even languages like Python and VB have .NET versions.
3. It modernizes the verge code
4. Games being .NET compiled code would be MUCH faster than the current vergec interpreter.
5. It allows for customization of verge by overloading verge functions with your own or just plain adding extra features to verge via inheritance and/or placing more classes in the verge namespace.
6. .NET is fairly cross platform so long as you stay away from window forms. Verge could do that and thus we'd be left with one code base. The only downside to this is that it would leave GP2X support behind. The old codebase would have to be maintained for that.

Posted on 2006-10-15 18:56:27

zeromus

As the resident c# evangelist, I hereby take custody of this thread. icq me 520608. or email me if you must, mgambrell@gmail.com

Posted on 2006-10-15 19:51:06 (last edited on 2006-10-15 20:02:39)

Omni

...Anybody else get a strange sense of deja-vu? :)

Posted on 2006-10-17 12:30:55

mcgrue

It's 1997 2000 2003 all over again!

Waitaminute...

Edit: regardless of snarkiness, we need the goddamn editor to be completed.

Posted on 2006-10-17 16:21:51 (last edited on 2006-10-17 16:22:48)

Interference22

Sounds like an awful idea. Adding all this extra functionality would surely be at the expense of Verge's ease of use, a fact that will do us no favours in expanding it's user base. On top of that, won't anyone wishing to play a Verge game have to download the sizeable .net runtime? Sure, us content creators have to already, but that's not the case for people who just want to play around. I know with Windows Vista coming up that could eventually be less of a problem but even in the best-case scenarios "eventually" is going to be at least 3 years, adding on top of that the time lost as we ditch a huge chunk of V3's code and heritage.

Posted on 2006-10-17 18:17:35

adderd

I figured that there would be resistance. ;-)

Adding the extra functionality will actually make it EASIER to use verge not less. This is for two reasons:
1. C# isn't hard to program in at all and is a standard. VergeC was a scripty javascript like version of C that was somewhat non-standard and quite slow. VergeC has no Intellisense editor, no debugger, and limited options to turn to for support. In addition, porting to .NET would let a user use any .NET capable language they want. So if a user doesn't like C# then maybe they'd like VB.NET, Python, or JavaScript.
2. Porting to C# allows for easy inheritance and addition to verge classes. This allows much easier customization of verge than the current C++ code which must be recompiled. With .NET it would be possible to inherit from a class that is within a DLL and make your own customizations. It would be possible for someone like McGrue to make a Sully DLL that extends the core VERGE and allows for more things like menus and battle sequences. The sky is really the limit.

About the .NET runtime. Two more points:
1. The Mono core download is under 4MB. So long as one does not use much of the .NET this is all you need. Verge would be mostly doing calls to external DLL's (directx, SDL, fmod, etc) and so won't need most of the .NET libraries.
2. Most people who have XP installed will probably already have .NET 1.1 installed. If we targetted that we'd most likely be OK. .Net2.0 might not be standard for a while but Vista will introduce .NET3.0 so things are already progressing past 2.0

I'm not necessarily advocating abandoning the verge code base. For one, have you seen C# and C++ code side by side? There is quite a bit of similarity. I'd bet that a large amount of the code could be directly used without changes or with minor changes. Sure, the code would have to be more object oriented but that isn't necessarily a bad thing. As an aside I say it would have to be more object oriented because in C# everything must be contained in a class. There are no global scope functions. There are no header files. The philosophy is different but the language is very similar.

So, anyway, I think that modernizing the engine could be a good thing. Maybe the best idea is to create a verge fork to .NET and maintain the code bases seperately. Then developers and users can pick for themselves and if one method turns out to be much better than the other then maybe the loser can be discontinued at that point. Or maybe they can coexist forever.

Posted on 2006-10-17 22:05:17

Kildorf

Personally, I'm not fond of .NET. So, coming from that perspective, you can probably already guess what I'm about to say: I don't like the idea of Verge requiring the .NET stuff to run.

But as adderd said, we can have two branches; verge3 and verge.net or whatever. It'll be a bit more confusing for newbies, but we can deal with that I'm sure.

So I'll toss in my vote as "I don't like .NET but as long as there's two branches I'm fine."

Posted on 2006-10-18 05:56:38

Interference22

The way I see it, expanding functionality in all directions could potentially open up the way for some serious issues. For one, people will start throwing DLLs around, plug in additional functionality that requires a particular runtime (say, a specific movie codec or code library) and before you know it, you're hunting around the web for seven different downloads just to have all the files to play a tech demo.

However, most fundamentally of all is my second point: mad as it may seem, I believe in placing limits on the resources people have at their disposal in order to realise their ideas. That way they are forced to make the best of what they have and, consequently, make a better game because of it.

Consider this scenario: I start with 2d VERGE but soon work out how to incorporate some 3D graphics routines into it. I have something akin to the Quake 2 engine. So I ditch all the 2d art I spent the last month making and start again. Half-way through making some fancy player model and an early level I work out how to incorporate bump mapping and volumetric lighting into the engine, so now I have to re-do the model to take advantage of the bump mapping and re-light my level with the new lights. A year later and a few more technical advances down the line and I *still* have just a player model and a bit of level. I mean they look nice, but it's bugger all in the grand scheme of things. Christ, I think, I've turned into 3D Realms and this is my Duke Nukem Forever. Disillusioned, I quit.

Now, if all I ever had was a 2D game engine and some strict limitations I'd have been forced to work within I might have made a game. Instead, with the near infinite number of technical possibilities to realise my idea, I'm overwhelmed and ultimately screw things up royally.

See where I'm going with this? As I see it, in games development "everything" is just an infinite magnitude of "nothing".

Posted on 2006-10-18 17:06:32

mcgrue

I tend to agree more with int's reasoning. Can't we just find a way to speed up the function calls and the other whotzis that vecna said are the main vc performance bottlenecks?

I'll buy tacos for whomever does it!

Posted on 2006-10-18 20:23:18

Jesse

Hey,

I know that I've been basically absent, but I'd like to throw in a few things myself. Let me just start by saying I don't know much about .NET/C#, so for all I know there's some magic techology that solves all these problems.

Having a codebase in .NET would be great. It would be a zillion times easier to add things to verge for us developers. Once it's done. Getting it there, however, will be a lot of work. I don't really know much about how close C# and C++ are, but seeing as how most of the benefit of such a transition for us would be to have everything C#-like, I'm assuming a significant porting time. Especially because you're proposing using the .NET toolchain for verge games, so we'd have to rip out the current verge compiler and runtime while keeping all the library functions, etc. That sounds hard to me, but maybe you've got a good idea how to attack it.

Ok, so, if we get there, it's easier for vergedev. But for people using verge? Let's look at the current process for making a simple ("hello world") verge game: Download verge, open system.vc in a text editor, type, save, open verge. After a transition to .NET in which we're using visual studio, that turns into a dozen-step process involving installing the .NET framework, the MS dev tools, opening/making solution files, and I don't even know what else to get everything to link together into a game and run. I don't know what the mono toolchain is like, but I'm guessing it's harder to install/use than Visual Studio, and probably dissimilar enough that platform issues will be a big problem. Is there something here I'm missing? Can you make the process as simple as it is now?

In that same vein, C# being "not hard" to program in is fine, but you have to realize that VergeC doesn't require you to think about references/classes/members/etc. It's a very simple language, which is intentional. Yes, it gets in the way when you want to do something complex (to put it midly) but for people just starting out that just want to make their first game, you want something that easy. Using something like IronPython is going to introduce more complexity into the installation and support. But hey, maybe in a few years, everyone will learn to program in grade 1.

That all being said, far be it from me to discourage working on something verge-related.

Posted on 2006-10-19 07:48:55

Interference22

I'm with McGrue: hone what we've got, don't go throwing out the baby with the bathwater. Verge can amply do what it set out to do already: make SNES RPGs. What we really need to focus on is making it do that better, rather than widening Verge's scope or bolting on functionality that the vast majority of us may never end up using.

It's all good and well dumping in the .Net framework and allowing custom DLLs, but that presents three problems from the outset:

1. Most of us don't have what it takes to MAKE a bloody DLL.
2. Those that do will spend so much time making one that they won't make a bloody game.
3. Those of us who wrote reams of VC for V3 wouldn't be able to use it without heavily editing it if we switched to C# / Python / whatever.

On top of that, this sort of thinking is just too far ahead: we're planning a revolution before we have anything to revolt against. I want 3D accelerated rendering before we go galavanting off into the unknown.

The day I get good FPS with all my flash VC effects turned on is the day Verge is perfect.

Posted on 2006-10-19 18:15:22

adderd

Quote:Originally posted by mcgrue

I tend to agree more with int's reasoning. Can't we just find a way to speed up the function calls and the other whotzis that vecna said are the main vc performance bottlenecks?

I'll buy tacos for whomever does it!


As evidenced before, I've advocated the same thing. Now I'm bringing up another choice. Whether it's good or not remains to be seen. I'm really open to *either* choice. From the sound of it, it would appear that my first option was the more accepted one.

It should be noted that, technically, the revolution has already happened. Zero has already got a lot of work done on an engine called CAROT that is kinda-sorta like a .NET version of VERGE. If we did do a verge .NET port then chances are there'd be a bit of his work in there or at least that would be the starting point. However, since he's already gone off and done it on his own there is still the option to leave it called CAROT and not use such ideas in Verge proper. He, and potentially others, could still work on carot as a completely seperate entity and everyone else can stick with normal verge if that's the way everyone wants to go.

Posted on 2006-10-19 19:47:54

adderd


Having a codebase in .NET would be great. It would be a zillion times easier to add things to verge for us developers. Once it's done. Getting it there, however, will be a lot of work. I don't really know much about how close C# and C++ are, but seeing as how most of the benefit of such a transition for us would be to have everything C#-like, I'm assuming a significant porting time. Especially because you're proposing using the .NET toolchain for verge games, so we'd have to rip out the current verge compiler and runtime while keeping all the library functions, etc. That sounds hard to me, but maybe you've got a good idea how to attack it.


Tearing out the verge interpreter and compiler would actually be very easy. Making newbies use the .NET toolchain might not be so easy. The porting time, to do it right, could be fairly long.


Ok, so, if we get there, it's easier for vergedev. But for people using verge? Let's look at the current process for making a simple ("hello world") verge game: Download verge, open system.vc in a text editor, type, save, open verge. After a transition to .NET in which we're using visual studio, that turns into a dozen-step process involving installing the .NET framework, the MS dev tools, opening/making solution files, and I don't even know what else to get everything to link together into a game and run. I don't know what the mono toolchain is like, but I'm guessing it's harder to install/use than Visual Studio, and probably dissimilar enough that platform issues will be a big problem. Is there something here I'm missing? Can you make the process as simple as it is now?


Well, it'd be one extra step. You'd have to compile your game before it would work with verge. So you'd have to know how to find and run the compiler for the language you wrote your game in. This may or may not be easy for someone to do. We could provide a boilerplate file that people could use to start their project. A file that references the verge DLL and does the initial setup and such. Then the actual coding would be fairly straight forward and compiling, if you got the compiler setup and within your search paths, would be a snap too.


In that same vein, C# being "not hard" to program in is fine, but you have to realize that VergeC doesn't require you to think about references/classes/members/etc. It's a very simple language, which is intentional. Yes, it gets in the way when you want to do something complex (to put it midly) but for people just starting out that just want to make their first game, you want something that easy. Using something like IronPython is going to introduce more complexity into the installation and support. But hey, maybe in a few years, everyone will learn to program in grade 1.


Yeah, I suppose but there is a .NET compiler for Javascript. If people don't want to use a fully featured language then they don't have to. Still, on the whole, it would add a little complexity. One could argue that it'd be a *good* complexity but more complex nonetheless.

Posted on 2006-10-19 20:07:40

mcgrue

I do not advocate more complexity for verge.

I do advocate completed dev tools so the linux and mac people can finally make with it, and the windows people can make competently.

If you, or others, wish to make a vc interpreter in .NET, that's way awesome and cool and stuff, and I'll set it up a SVN for y'all, but that is such a significant deviation from the main project as to be it's own project.

Verge is all open source and such now, so there's no need to really split hairs about it. Remember, though, any such vc interop layer would need to find a version of vc to remain compatible with, and update from there, rather than branching to it's own features. Which seems frustrating and pointless ultimately, since if you're already favoring .NET, you've got far better options to program in than vc.

Posted on 2006-10-20 15:36:06

Interference22

In some respects, a similar thing has happened here before. Remember Verge 2.7? An offshoot from Verge 2, a huge code overhaul was undertaken and VC was replaced with Python. What we eventually got is Ika. The problem? Well, it didn't really get us anywhere. Because so much effort was put into doing something different, no time was taken to make something better. Ika is all good and well but all it really offers is an alternative way to do exactly the same thing Verge 3 does now.

The danger here is adding a host of new features that make Verge hugely complex without gaining any ground. What we need is a sound strategy to the future. It's no good to say that .NET support will open up the gateway to a new era of Verging if nobody actually knows what that era is going to look like.

The way I see it:

* VC is good. It could be expanded but it's good: easy to learn and as powerful as needs be to make an RPG
* Rendering is a bit slow. We should be focussing on making it faster, maybe even offering some basic hardware acceleration in the same way Ika is
* Classes. Do we need them? If so, how hard is it to incorporate them?
* The dev tools need expanding, particularly Maped3. We need to be able to save configurations of tiles, view CHRs in the map view and better management of tile graphics for a start.

Posted on 2006-10-20 18:11:04

choris

I don't think moderately tweaking Verge will really get us anywhere new. Verge is perfect for that niche of people interested in making games, but not savy enough to code it all themselves. I really wonder if that niche even exists anymore. If you ask me, Verge3 is a good enough tool as it to make pretty much any kind of game you want (except for MapEd maybe), so what's stopping them.

I'm curious though, did anyone ever try (with a large effort) to spread the word about verge to attract people other than random web hits? Anyone recently? Maybe that's all we need.

Posted on 2006-10-21 00:55:38

Interference22

Quote:Originally posted by choris

I don't think moderately tweaking Verge will really get us anywhere new. Verge is perfect for that niche of people interested in making games, but not savy enough to code it all themselves. I really wonder if that niche even exists anymore.


I'm inclined to disagree on both counts. *I* occupy the niche that you refer to and I know a vast quantity of people who do to, including most Vergers here and those who use AGS, MegaZeux, RPG Maker and who mod for pretty much every game engine under the sun. Unless you mean it's no longer a niche and more the mainstream, in which case I couldn't possibly fathom the point you're trying to make.

Secondly, and perversly in reference to the first point you made: some additions to the Verge code base are definetly for the better and do indeed open up new possibilities, even if the addition in question seemed minor to begin with. Take the hijacking of an entity's render routine. Seems small enough, but it allows for all sorts of cool things not previously possible without a lot of unnecessary wrangling: I can paperdoll them, I can make them semi-transparent, hell, I can even make their appearances procedural now if I wanted to. Give a man something as simple as a pencil and he will draw the Universe.

Posted on 2006-10-22 17:27:06

Kildorf

Er... don't assume that everyone that uses Verge "wants to make a game but isn't savvy enough to code it all themselves". Some people just don't have the time or inclination to bother coding it all for themselves, or have a nostalgic attachment to the community that makes them want to build stuff with it.

... Not that I speak about anyone in particular, of course.

*cough*

Posted on 2006-10-23 16:38:21

Interference22

Kildorf's coding shenanigans are worryingly godlike in comparison to my own meager skills in that area. To me, they're more a means to an end for expressing my dialogue and frantic pixelling, but to others they are their true art.

On another note, I swear that my postcount has been stuck at 1016 for at least a month. WTF?

Posted on 2006-10-23 17:09:17

Kildorf

... Your post count is at 1049 for me?

Also, calling what I do "godlike shenanigans" makes me really want to work on a game now. But I have some work-work to do first.

So I'm going to do that, and then shenanigans. Brilliant.

Posted on 2006-10-23 18:03:03


Displaying 1-20 of 21 total.
12 next
 
Newest messages

Ben McGraw's lovingly crafted this website from scratch for years.
It's a lot prettier this go around because of Jon Wofford.
Verge-rpg.com is a member of the lunarnet irc network, and would like to take this opportunity to remind you that regardless how babies taste, it is wrong to eat them.