Project 1999

Go Back   Project 1999 > General Community > Off Topic

Closed Thread
 
Thread Tools Display Modes
  #1  
Old 03-27-2015, 05:23 PM
Weekapaug Weekapaug is offline
Fire Giant


Join Date: Apr 2010
Location: Gamehendge
Posts: 776
Default Question about learning to code

...as it pertains to gaming, working on mods and emus, specifically.

It's been 30ish years since my basic days and lately I've been dying to learn to code. The local community college will alacarte any class they offer as long as the prerequisites are covered. I was wondering of anyone could offer advice as to what I should be looking at if I was interested in things like advanced scripting for streaming applications (cast software, bots, etc), modding non mmos, and working on one's own EMUs.

Any advice would be greatly appreciated.
__________________
  #2  
Old 03-27-2015, 05:25 PM
loramin loramin is online now
Planar Protector

loramin's Avatar

Join Date: Jul 2013
Posts: 10,022
Default

Well, for learning programming in general I'd recommend starting with Python, Java, or JavaScript. But if you want to do emulator stuff I believe people use C++ , or maybe even C. Those used to be standard introductory languages, and you still might be able to find intro classes that teach them.

Really though I'd suggest you just focus on learning programming for your first class, and worry about learning how to do emu stuff (and whatever language that requires) second; programming has enough hard concepts to wrap your head around at first that trying to simultaneously learn them and be productive is rather difficult.

*EDIT*

Quote:
Originally Posted by http://www.eqemulator.org/forums/showthread.php?t=117
It's a mix of c and c++
__________________

Loramin Frostseer, Oracle of the Tribunal <Anonymous> and Fan of the "Where To Go For XP/For Treasure?" Guides
Anyone can improve the wiki! If you are new to the Blue or Green servers, you can improve the wiki to earn a "welcome package" of platinum and/or gear! Send me a forum message for details.
Last edited by loramin; 03-27-2015 at 05:28 PM..
  #3  
Old 03-27-2015, 05:36 PM
Weekapaug Weekapaug is offline
Fire Giant


Join Date: Apr 2010
Location: Gamehendge
Posts: 776
Default

Thanks, Loramin.

Totally see your point and thats why I wanted to ask. Not really sure where to start. If you google about coding it's overwhelming. I'll go look again but I think I saw Visual Basic and one of the Javas offered in the fall. But I'll have to double check.

I actually started to learn C++ back in the day...'94ish, but I got so busy with work it fell by the wayside.

Wouldn't mind being able to pick up some work with it too if I wanted.

That quote...is that saying EQ is a mix of C and C++?
__________________
  #4  
Old 03-27-2015, 05:39 PM
bullproofmonk bullproofmonk is offline
Aviak


Join Date: Jun 2011
Posts: 53
Default

If you are truly interested in learning to develop gaming software, then you are going to want to focus on the C's.

C++ and/or C#

C#(Sharp) is going to be way more focused on Win32/64 development, where C++ can more readily be applied to other platforms.

After you get a handle on that, you will need to decide what 'engine' you want to learn to design your games on. OpenGL, or DirectX are the 2 most popular. While these are just classes in a C library, it's like learning a whole new language in itself.

Programming is such a generic term though, as it's like telling someone you want to learn to internet. I would speak with one of the professors, and tell them your goals. They will be able to outline a set of courses that will get you on track.

I'd venture to say you aren't going to walk away from any of these courses with the ability to write games out the door. Programming is like anything else, you get out of it what you put into it. Once you have the basics, it's up to you to continue learning by either experimentation, or looking at other people's code.

I rarely if ever have to write my own code in my particular job function. With the internet so readily available, you can often find that someone has already written a chunk of code that can do what you want, if not better for free.

Also, here is a snippet of code to simply draw a triangle on your screen. Just to let you know what you are getting into!

Code:
 # include <iostream.h>
 # include <graphics.h>
 # include    <conio.h>
 # include     <math.h>

 void show_screen( );

 void Triangle(constint,constint,constint,constint,constint,constint);

 void Line(constint,constint,constint,constint);


 int main( )
    {
       int driver=VGA;
       int mode=VGAHI;

       int x_1=0;
       int y_1=0;

       int x_2=0;
       int y_2=0;

       int x_3=0;
       int y_3=0;

       do
      {
         show_screen( );

         gotoxy(8,10);
         cout<<"Coordinates of Point-I (x1,y1) :";

         gotoxy(8,11);
         cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";

         gotoxy(12,13);
         cout<<"Enter the value of x1 = ";
         cin>>x_1;

         gotoxy(12,14);
         cout<<"Enter the value of y1 = ";
         cin>>y_1;

         gotoxy(8,18);
         cout<<"Coordinates of Point-II (x2,y2) :";

         gotoxy(8,19);
         cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";

         gotoxy(12,21);
         cout<<"Enter the value of x2 = ";
         cin>>x_2;

         gotoxy(12,22);
         cout<<"Enter the value of y2 = ";
         cin>>y_2;

         gotoxy(8,26);
         cout<<"Coordinates of Point-III (x3,y3) :";

         gotoxy(8,27);
         cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ";

         gotoxy(12,29);
         cout<<"Enter the value of x3 = ";
         cin>>x_3;

         gotoxy(12,30);
         cout<<"Enter the value of y3 = ";
         cin>>y_3;

         initgraph(&driver,&mode,"..\\Bgi");

         setcolor(15);
           Triangle(x_1,y_1,x_2,y_2,x_3,y_3);

         setcolor(15);
           outtextxy(110,460,"Press <Enter> to continue or any other key to exit.");

         int key=int(getch( ));

         if(key!=13)
        break;
      }
       while(1);

       return 0;
    }


 /*************************************************************************///----------------------------  Triangle( )  ----------------------------///*************************************************************************/void Triangle(constint x_1,constint y_1,constint x_2,constint y_2,
                        constint x_3,constint y_3)
    {
       Line(x_1,y_1,x_2,y_2);
       Line(x_2,y_2,x_3,y_3);
       Line(x_3,y_3,x_1,y_1);
    }

 /*************************************************************************///-------------------------------  Line( )  -----------------------------///*************************************************************************/void Line(constint x_1,constint y_1,constint x_2,constint y_2)
    {
       int color=getcolor( );

       int x1=x_1;
       int y1=y_1;

       int x2=x_2;
       int y2=y_2;

       if(x_1>x_2)
      {
         x1=x_2;
         y1=y_2;

         x2=x_1;
         y2=y_1;
      }

       int dx=abs(x2-x1);
       int dy=abs(y2-y1);
       int inc_dec=((y2>=y1)?1:-1);

       if(dx>dy)
      {
         int two_dy=(2*dy);
         int two_dy_dx=(2*(dy-dx));
         int p=((2*dy)-dx);

         int x=x1;
         int y=y1;

         putpixel(x,y,color);

         while(x<x2)
        {
           x++;

           if(p<0)
              p+=two_dy;

           else
              {
             y+=inc_dec;
             p+=two_dy_dx;
              }

           putpixel(x,y,color);
        }
      }

       else
      {
         int two_dx=(2*dx);
         int two_dx_dy=(2*(dx-dy));
         int p=((2*dx)-dy);

         int x=x1;
         int y=y1;

         putpixel(x,y,color);

         while(y!=y2)
        {
           y+=inc_dec;

           if(p<0)
              p+=two_dx;

           else
              {
             x++;
             p+=two_dx_dy;
              }

           putpixel(x,y,color);
        }
      }
    }

 /*************************************************************************///--------------------------  show_screen( )  ---------------------------///*************************************************************************/void show_screen( )
    {
       restorecrtmode( );
       textmode(C4350);

       cprintf("\n********************************************************************************");
       cprintf("*********************************-            -*********************************");
       cprintf("*--------------------------------- ");

       textbackground(1);
       cprintf(" Triangle ");
       textbackground(8);

       cprintf(" ---------------------------------*");
       cprintf("*********************************-            -*********************************");
       cprintf("*-****************************************************************************-*");

       for(int count=0;count<42;count++)
      cprintf("*-*                                                                          *-*");

       gotoxy(1,46);
       cprintf("*-****************************************************************************-*");
       cprintf("*------------------------------------------------------------------------------*");
       cprintf("********************************************************************************");

       gotoxy(1,2);
    }
Last edited by bullproofmonk; 03-27-2015 at 05:47 PM..
  #5  
Old 03-27-2015, 07:14 PM
Weekapaug Weekapaug is offline
Fire Giant


Join Date: Apr 2010
Location: Gamehendge
Posts: 776
Default

Thanks bull,

I'm not so much looking at software development per se as being able to navigate my way around existing software but that's probably splitting hairs. I did a lot with basic in jr and high school and survived Cobol and Fortran in college to fulfill language reqs, but when I got to C or C++ in my mid 20s it was a lot different and I just didn't have time to sink in the way I would have liked. Would love to now, though. Been nagging at me for a while.

So the Cs are my starting point, huh?
__________________
  #6  
Old 03-27-2015, 07:17 PM
loramin loramin is online now
Planar Protector

loramin's Avatar

Join Date: Jul 2013
Posts: 10,022
Default

Quote:
Originally Posted by Weekapaug [You must be logged in to view images. Log in or Register.]
Not really sure where to start. If you google about coding it's overwhelming. I'll go look again but I think I saw Visual Basic and one of the Javas offered in the fall.
Yeah, it can be overwhelming, but it's just something you need to take one step at a time and before you know it you're a programmer. As for Visual Basic vs. Java, both are decent introductory languages (I learned on a very old version of Visual Basic myself), but even so I'd recommend Java because it's much closer to C/C++. In some sense Java is just C++ without the hassle of managing memory.

Quote:
Originally Posted by Weekapaug [You must be logged in to view images. Log in or Register.]
That quote...is that saying EQ is a mix of C and C++?
That was from the EQ Emulator forum, and I believe they were referring to EQ Emulator's code. I assumed when you said you wanted to "work on mods and emus" that you were mainly referring to EverQuest, but even if your interest is more broad C and C++ are both used widely in game development.

As for C# ... if you're only in to Windows development then the Microsoft suite of ".Net" languages (C#, Visual Basic, etc.) are great ... but if you want to develop for any platform other than Windows they're not so useful.
__________________

Loramin Frostseer, Oracle of the Tribunal <Anonymous> and Fan of the "Where To Go For XP/For Treasure?" Guides
Anyone can improve the wiki! If you are new to the Blue or Green servers, you can improve the wiki to earn a "welcome package" of platinum and/or gear! Send me a forum message for details.
Last edited by loramin; 03-27-2015 at 07:21 PM..
  #7  
Old 03-27-2015, 08:01 PM
Maelfyn Maelfyn is offline
Orc


Join Date: Feb 2013
Location: United States
Posts: 39
Default

Forget emus. Nevergrind ripoffs are the future [You must be logged in to view images. Log in or Register.]
  #8  
Old 03-27-2015, 08:19 PM
Utmost Utmost is offline
Sarnak

Utmost's Avatar

Join Date: Aug 2013
Posts: 216
Default

Have tried making a woman match your moves?
__________________
<Kittens>


Friends currently on EverQuest:
---------------------------------
There are no players in EverQuest that match those who filters.
  #9  
Old 03-27-2015, 08:22 PM
Maelfyn Maelfyn is offline
Orc


Join Date: Feb 2013
Location: United States
Posts: 39
Default

I'm half joking, but honestly I think coding a game in C or any similar lower-level language is way harder than creating a game with modern web technology. I flunked out of comp sci twice, majored in English, work as a technical writer, and I managed to code Nevergrind in 2 1/2 years from scratch.

Edit: If you simply have a desire to code games, this may be the route to go. I personally use libraries like GSAP for animation and EaselJS to simplify working with the canvas. These are lightweight libraries that don't re-invent javascript and simplify working with the DOM and the canvas.
Last edited by Maelfyn; 03-27-2015 at 08:30 PM..
  #10  
Old 03-27-2015, 08:25 PM
loramin loramin is online now
Planar Protector

loramin's Avatar

Join Date: Jul 2013
Posts: 10,022
Default

Quote:
Originally Posted by Maelfyn [You must be logged in to view images. Log in or Register.]
Forget emus. Nevergrind ripoffs are the future [You must be logged in to view images. Log in or Register.]
[You must be logged in to view images. Log in or Register.]

There is a grain of truth to this though. Nevergrind was made using web technologies (JavaScript and some related HTML5 bits), and those technologies are much more accessible than the language and libraries you'd need to make a "real" game like an EQ Emulator server.

If you really just want to make a game, and nothing more complex than say Nevergrind, an entirely different approach would be to learn web tech (mainly JavaScript); you won't be able to make your own EQ Emulator server, but you will be able to make simpler games in less time.

I'm a web guy myself though (in fact I'm almost done writing a book about a JavaScript library), so I'm a little biased.
__________________

Loramin Frostseer, Oracle of the Tribunal <Anonymous> and Fan of the "Where To Go For XP/For Treasure?" Guides
Anyone can improve the wiki! If you are new to the Blue or Green servers, you can improve the wiki to earn a "welcome package" of platinum and/or gear! Send me a forum message for details.
Last edited by loramin; 03-27-2015 at 08:29 PM..
Closed Thread


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 01:47 PM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.