BBeck's Profile User Rating: *****

Reputation: 698 Enlightened
Group:
Mentors
Active Posts:
1,633 (1.37 per day)
Joined:
24-April 12
Profile Views:
19,489
Last Active:
User is offline Today, 04:49 AM
Currently:
Offline

Previous Fields

Country:
US
OS Preference:
Windows
Favorite Browser:
Internet Explorer
Favorite Processor:
Intel
Favorite Gaming Platform:
PC
Your Car:
Who Cares
Dream Kudos:
100
Expert In:
Game Programming, XNA

Latest Visitors

Icon   BBeck is experimenting in his gaming lab. Don't be alarmed if something explodes.

Posts I've Made

  1. In Topic: Mmo game engine and or programming language

    Posted 28 Jul 2015

    This sounds like a fairly challenging programming project actually. There are probably many 2D game projects (and maybe even a couple 3D game projects) that would be more simple than this. You're talking about all the real core of an MMORPG except the graphics and sound. This may be more difficult than you imagine.

    But that being said, you might want to play a few MUDs. Unfortunately, I missed all that somehow. I guess you would have had to be an early adopter of the Internet and it's predecessors in order to have really been there in their heyday.

    But I think about 5 years ago, I was messing around with Linux and started joining MUDs largely out of boredom with current games. A couple were probably something back in their day.

    MUDs these days are largely run by their diehard fans from times past because I doubt any of them are still very active. If you get 10 people simultaneously playing on your MUD that would be pretty impressive. But some of them must have been pretty awesome back when they had a large user base.

    Anyway, I think a lot of them are open source and such where you can either get the source code and such for the MUD, or you can get source code for the engine used to create the MUD. So, I think there are several MUD engines out there. A quick google search turned up CoffeeMud but I suspect there are a bunch out there.

    You can use an engine like that to make a MUD, or you could go the longer route and use that engine code to build your own MUD engine customized more to your own liking.
  2. In Topic: Dunno facing what problem

    Posted 28 Jul 2015

    It says that there is a parenthesis (")") missing. When you fix the first error, that will usually fix many of the other errors.

    You probably left out an opening parenthesis ("(") somewhere.
  3. In Topic: How to create a game map

    Posted 27 Jul 2015

    Your array tells you which tile to draw for each square. So, the first thing is to divide the screen up into squares. You have to decide what size your squares are but they should all be of equal size and all should be next to one another.

    Then you just draw a sprite in each square. You could draw the same square grass sprite for the whole area. But you can also use the array to tell each square which sprite to draw.

    You may want to make a program like this that allows you to draw your array/map. It would save the array to a file. Of course, this program has to use the same tiles with the same codes as your game for that to work. You can probably find a program like this that is freeware/shareware on the Internet somewhere.

    At a glance, this video seems to demonstrate the concept. Here's another that seems to kind of show the concept.

    It's hard to find a good tutorial on YouTube for this in general after spending 20 minutes or so searching. But I did find this for Swift that seems to do tile-mapping. Except they are doing an isometric map. But it's still the same concept. Using an array like this to define your map can be used for a lot more than just this; you can do 2D side scrollers this way but you can also do 3D worlds this way. For example, I had a 3D dungeon that I was putting together using this same concept. Instead of 0 being grass and 1 being dirt, it was more like 0,1,2, and 3 are a 3D dungeon cube with no walls and just a floor and ceiling. 4,5,6, and 7 are a 3D dungeon cube with 1 wall (the four options are to rotate it so the one wall is on the north, south, east, or west side). And so on and so forth where I had 3D dungeon cubes (rather than tiles) for "two adjoining walls", "two opposite walls", "three adjoining walls", and so forth with some options having doorways. But there's a lot you can do with tilemap arrays like this.

    There's a picture of it on my website. The picture shows two adjoining "tiles".

    Posted Image
  4. In Topic: Live keyboard input problems (SFML 2.3, Visual Studio 2013, C++)

    Posted 26 Jul 2015

    I'm not familiar with SMFL, but what I typically see is a "game loop" where there is an Update() and Draw() function called every frame. There is also usually a timer that allows you to calculate the time between frames and then you can have everything happen based on that time frame.

    Your while (Game.pollEvent(Event)) is basically such a game loop.

    So instead of just saying "Player moves left 22 units" it becomes "Player moves left 22 units per second times the fraction of a second that has occurred since the last draw frame".

    But you have to have a timer value that contains the time since the last frame.


    Here's the loop from my engine:
    	//Start by calling the Windows encapsulation class to get Windows to give us a process and a window to work in. 
    	//If we have no process and window to run in then we have to shutdown.
    	if (Windows.Initialized(cmdShow))
    	{
    		if(Game1.InitializeDX(hInstance, Windows.WindowHandle))		//Initialize DirectX11 and call our Intialize and LoadContent methods.
    		{	
    			while(Windows.msg.message != WM_QUIT)					//Keep going forever until Windows sends a quit event.
    			{
    				if(PeekMessage(&Windows.msg, 0, 0, 0, PM_REMOVE))	//Handle Windows Event Messages.
    				{
    					TranslateMessage(&Windows.msg);
    					DispatchMessage(&Windows.msg);
    				}
    				Game1.Timer.Update();								//Update the game timer to reflect the time since the last frame.
    				TimeDelta = Game1.Timer.MilliSecondsSinceLastFrame();
    				// Update and Draw
    				Game1.Update(TimeDelta);							//Call our Game's Update method.
    				if(Game1.DeviceContextIsDefined())					//Make sure we actually have a DX device context to draw with.
    				{
    					Game1.Draw(TimeDelta);							//Call our Game's Draw method.
    				}
    				else
    				{
    					//This should never happen unless no graphics device can be found or something pretty major went wrong.
    					//If it does however, its time to crash the program gracefully since we can't draw.
    					PostQuitMessage(0);	//Send a Windows event to shut down this program.
    				}
    			}
    
    			Game1.Shutdown();	//Shutdown DirectX and cleanup before letting the window shutdown.
    



    The loop calls the games timer object to get the TimeDelta each loop. Then it calls the Update() and Draw() functions passing in the TimeDelta.
  5. In Topic: How to create a game map

    Posted 26 Jul 2015

    I like the pixel map idea you demonstrated, especially for something simple.

    Such maps (data stored in image files) are used all over the place in 3D game programming to store data. Besides normal maps and stuff, height maps for terrain are often used. Terrain shape is an array as well, and people generally store the data in a gray scale image.

    In that case, the data is stored somewhat inefficiently since it's probably RGBA color in the picture file and you really only need monochrome gray scale. They generally just use one of the 4 color values and throw the rest away, which means 3/4ths of the file is wasted. But if you aren't concerned about disk space or load time then it's fine. And I'm not sure I've seen anyone do it any other way yet. So apparently most people aren't that concerned about optimizing it.

    It has the slight advantage of being able to open in any program that can read the image or even to edit it in an image editor. Although, without specialized tools editing it in an image editor can have less than stellar results.

    But once it's loaded into memory it gets converted to an array of height values.

    When I was working on a 2D RPG, I made a map editor program using C# forms where I could see what my map looked like, edit it, and save it to the disk file for the game. On that, the file was just integers that would load straight into the array for the map. And I used modulus (%) to give every 4 values a rotation value. So %4 would give you the remainder of the tile value number. So every four values would get 0,1,2, or 3 for north, south, east, or west facing. This allowed me to rotate the tiles just based on their number. So maybe 0,1,2, and 3 were all different facings of the same floor tile and 4,5,6, and 7 were all different facing of the wall corner tile, for example.

    With my 3D model work I've done much the same in terms of building tools to save and read the data files. I'm setting it up to generate the model file with a C++ model file compiler that reads in the Blender file and outputs an optimized model file. But it's a binary file and nearly impossible for human eyes to read (even for me to read and I invented the file format). So, I built a C# "reader" program that reads in the data and displays it in a form that makes sense of the data. But that program is just a tool to examine what's in the file; it would not ship with the game. And neither would the model compiler really unless you wanted users to be able to create their own models.

    But in those cases, I'm saving pretty much a serialized copy of the object or the exact data that will be fed into the array. And when I do that, the data is often impossible to just look at and understand; so I build tools to display the data in a way that makes sense.

    But in some cases this may be overkill. A simple pixel map, like you've shown, has the advantage that it can easily be edited in a program like Paint.Net that allows you to change individual pixels. And to use off the shelf programs like that to examine the data.

My Information

Member Title:
Here to help.
Age:
Age Unknown
Birthday:
Birthday Unknown
Gender:
Location:
Dallas, Texas, US of A, Planet Earth, Sol System, Milky Way Galaxy
Interests:
Rock music composition and performance, Grunge Music, Bebop (think Thelonios Monk), Swing (think Cab Calloway), Gaming, Astronomy, RPGs, Scuba, Sail Boats, Furniture Building, Cooking, Rocky Patel Cigars, Character Driven Dramas(like HBO's Deadwood), Story Telling (plot writing), Linguistics, Economics, Target Shooting, Electronics (don't know as much as I'd like to), all aspects of 3D game programing including music, physics, modeling, texturing, annimation, probability, AI, lighting, etc., Texas Holdem' Poker, Learning, Dogs, the love of my life (my pit bull), guns (especially 19th century black powder), putting make-up on ogres, etc.
Programming Languages:
C, C++, C#, Visual Basic, Java, Pascal, T-SQL, HTML, FoxPro, ASP.Net(very little), Assembler, Machine Code(conceptually anyway)

Contact Information

E-mail:
Private
Website URL:
Website URL  http://VirtuallyProgramming.com

Comments

Page 1 of 1
  1. Photo

    BBeck Icon

    11 Aug 2013 - 04:27
    Generally, yes. :-)
  2. Photo

    aaron1178 Icon

    10 Aug 2013 - 00:42
    You wouldn't happen to get high marks in written exams would you ;)
Page 1 of 1