• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Thomas Wiborg

Making Diablo 2 style rpg

8 posts in this topic

Hello,

 

Ive studied Computer Science and was done with it for about a year ago.

Im currently very interested in game programming and have bought some books and read some on internet.

 

I realy like C#, and I think XNA framework suits me good, since i only / for now, want to make game for windows.

 

And so to the topic title :)

2 friends of mine and I want to learn more about game programming, i know making Diablo 2 took like 40 people 3 years to make.
But is it possible to make something like it in smaller scale. Or is that more or less impossible for a team of 3 people?

I know it will take us a couple of years to be good enough in C# and then some years to handle C# and XNA.

 

Where can we begin? and how do we learn to program games as Diablo 2?

Thanks for all replies!

 

Best Regards

 

Thomas Wiborg

0

Share this post


Link to post
Share on other sites
Thanks alot for that great info. That was just what i was looking for :-) And yes i have good experience in java, C# and C++ from my education. Currently i like C# alot. So ill stick with it for now ;-)
0

Share this post


Link to post
Share on other sites
Once you have that done I think you would have a really good idea on how to continue with the game from there perhaps by adding in sprite sheets for animation tiles/characters. smile.png

I suggest taking a look at http://flarerpg.org/ since it is one of the best open source 2D games similar to Diablo I know of. It should be informative to see how they handled their artwork for the characters/animations.

 

While its not the style of game I'm working on, there were some great ideas in that engine...thanks for pointing it out.    Just realized I should have been looking at many open source engines to educate myself instead of just looking for specific things...

0

Share this post


Link to post
Share on other sites

But does anybody know where I could learn to program games similar to Diablo? Or where i could start to learn such programming?

Cause i cannot program 2D tiles, add sprites and make a character walk in a grid og 2D tiles etc :) I need to start from scratch. I know the basic C# programming, but not game programming.

 

For a base to build your game off of I would do something of the following:

  1. Make a grid of 2D tiles which are (for example) 64x32 pixels. This makes the tile twice as wide as it is tall. See: http://flarerpg.org/tutorials/isometric_tiles/
  2. Once you have a grid add in a simple character sprite.
  3. With the character sprite get him to walk around the grid of 2D tiles using the mouse
0

Share this post


Link to post
Share on other sites

There isn't a "quick" route unfortunately. You'll need to start with something a bit simpler than Diablo, maybe "pong" would be better.

 

You really need to start from the very beginning, you can't skip the fundamentals of programming (games or anything else).

 

Having said that, Diablo (etc) don't really use a lot of complicated code, most of the effort of the game was probably in building the resources (graphics and other content) and putting it together.

0

Share this post


Link to post
Share on other sites

[quote]

But does anybody know where I could learn to program games similar to Diablo? Or where i could start to learn such programming?

Cause i cannot program 2D tiles, add sprites and make a character walk in a grid og 2D tiles etc smile.png I need to start from scratch. I know the basic C# programming, but not game programming.[/quote]

 

One important thing that helped me, an epiphany of sorts is that once you wrap your ahead around the concept that everything is abstract, then you can do anything.

 

I know it's over used but there really is no spoon.

 

There is no sword. There is no ship. There are no engines and there are no shields.

 

There are drawing graphics, variables, x, y coords, screen, input, output, checking for collisions and the consequences or results or action for the program to take in the event of a collision.

 

For example my ship has an "engine". It can be damaged, if it gets damaged, my ship cannot fly as fast. Remember there is no engine. Only a variable called engine. I could call the variable lightswitch if I wanted too and still have it affect how fast the ship flew.

 

your game is up and running, you are flying around your ship. An enemy comes and shoots a projectile, it hits your ship.

 

Abstract version: your game is running, a graphic in the shape of a space ship is being drawn around the screen based on the input from you, left right, up down. Another graphic comes along being draw, controlled by AI routines, and a projectile graphic suddenly is created at the enemy ship, it is drawn across the screen until its near you, in your game it 'explodes'. In abstract one graphic touched another graphic. You have a collision.

 

pseudo code

 

If projectile Image, collide with space ship image

     stop drawing the projectile (delete the object, OOP)

     draw explosion @ x,y coordinates of the collision

     update the explosion, ( if its based on frames, a sprite)

    

    if explosion complete (all the frames were drawn)

         stop drawing the frames ( so you dont see a continuous explosion graphic)

     endif

 

     your_ship_engines = your_ship_engines - damage(damage from the projetile)

end if

 

Now imagine how fast you can go if you speed is based on the variable 'your_ship_engines'

the less value it has like say its 50/100 obviously you will fly slower. So your engines are damaged, and the effect of a damaged engine is 'simulated'

 

lets say speed = speed * your_ship_engines

and let's say your ship engines starts with a value of 1.0

if speed was 100, you can go at full speed because the engines have not been 'damaged' no value has been subtracted from them.

 

but if you subtracted a value of 0.5 (the damage from the projectile) then the variable 'your_ship_engines' = 0.5

 

remember speed = speed * your_ship_engines (which is now 0.5) which means your speed is only half the speed you were capable of before.

 

 

I hope this doesn't get confusing, it's extremely layman terms, I am just trying to show you it's all what you know just with graphics. What happens on screen must be drawn, it must be updated, either based on input or something else. If you just want to make a 2d game I'd suggest using a system built for 2d games. Blitzmax or monkey, you don't need UNITY.

 

blitzmax is a BASIC programming language, but it's powerful and fast because it was written with C modules. It uses precompiled C modules. It can use OPENGL, directx, supports scripting, so your application can be cross platform from the beginning. Systems like these are designed to make your life making the game easier. For example for drawing that sprite you say you do not know how to draw? Command in blitzmax is drawImage(image, x,y,) . Where image is the image you are drawing, (pre-specified by you), x and y are the coordinates on screen. Because blitz renders 2d with hardware, its extremely fast, rotations are done real time etc, no need for frames etc. Blitzmax also has well developed 3d modules for it.

 

You can use any system which you feel is best and suits your need. Maybe Python with PYGAME. Haven't looked at python in a while so I don't know what other stuff is out there for it.

 

You could look at XNA , that seems pretty good and popular. I just stick with blitzmax because it is fast enough, powerful enough, cross platform, has dozens of thirdy party modules and libraries written for it and it's a BASIC language. My interest in other languages/systems is merely academical because I won't use them for much, but I still like to read/learn about them and try stuff with them.

2

Share this post


Link to post
Share on other sites

first of all pick an engine. Unity is a good choice, very popular lately. I started with Irrlicht, then moved to Ogre. Took me a year to make a Diablo like prototype from scratch, then a couple of years more to add items, dialogs, etc and make it playable (I was working alone in my free time). Google and the forums are your friends.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0