![]() |
#1
|
|||
|
![]() ...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
|
||||
|
![]() 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:
__________________
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
|
|||
|
![]() 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
|
|||
|
![]() 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
|
|||
|
![]() 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
|
|||||
|
![]() Quote:
Quote:
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..
|
|
#8
|
|||
|
![]() 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
|
|||
|
![]() 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
|
||||
|
![]() Quote:
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..
|
|
![]() |
|
|