Jump to content

  • Log In with Google      Sign In   
  • Create Account


DareDeveloper

Member Since 27 May 2005
Online Last Active Today, 04:27 AM
-----

#5147286 Random 2D terrain?

Posted by DareDeveloper on 16 April 2014 - 12:31 AM

As far as I know midpoint displacement does not help with the caves ... there is an article with some more text: http://www.gameprogrammer.com/fractal.html

 

You will probably have to combine several algorithms to get the result you want.

Midpoint displacement can be used to create the base terrain ... then, for example, cellular automata to create caves inside that terrain!?

 

This is an art rather than a skill, meaning that learning to think the right way is more important than finding the right tutorial.

You should feed Google with those algorithms (http://pcg.wikidot.com/category-pcg-algorithms), pick the ones that inspire you and do simple things with them.

 

If you have a hard time coming up with a data structure and algorithms for populating a game world, maybe you should work on those basics some more ... for example with some Code Jam exercises.




#5147102 I need some serious help from you guys! (Bring spatulas)

Posted by DareDeveloper on 15 April 2014 - 07:45 AM

Your post seems weird. On the one hand you say you are willing to invest the time to become a developer, on the other you say a programmer will do the programming work.

 

I guess you have the wrong idea of what game development means. How far do you think you will get as a developer who is not much of a programmer?

In any case, you should not start with such a strong focus on the game you will eventually make. You need to start with simpler things.




#5144016 Creating a game: the terms and structure of code (libraries, languages, frame...

Posted by DareDeveloper on 02 April 2014 - 10:48 PM

"Toolkit" and "Framework" say what strategy was chosen when people decided how to bundle functionality.

In toolkits ideally the tools are mostly isolated from each other. Their purpose is clear and they might be designed to work well together.

Still, the programmer has to bring them together.

In a framework programmers have (partly) done that job for you. They wrote convenient code that uses tools and brings them together in many common use cases.

There is less freedom, but good framework developers can make sure that the tools are not used in a wrong way.

 

Tools and Frameworks need APIs (the public application programming interface) that exposes classes and functions to users who want to use them.

 

Tools and a framework could be part of a software project and be isolated (not public at all). If the build process does extract them and it turns the tools into distributable packages those are the Libraries, which can contain standalone version of one tool, a bundle of tools or a framework using the tools.

They can often be downloaded as runtime or development versions. Runtime libraries are needed for distribution with your app, so that the functionality which your tool wants to use is actually available. Development versions usually come with public files (often as part of an SDK) that have some additional functionality and resources which are only needed at compile time.

 

What is SDL ... I'd go with: a framework (it offers convenience functionality to deal with rendering, input and resource loading etc.) which is distributed as a library and has an API that allows programmers to use it.

 

When you do an image search for Android you can see the architecture of Android.

You could develop in C++ and use the native layer ... but Android offers high level functionality to develop games more quickly.

Most of it is written in Java, so using Java for Android development is convenient. They did write or add several tools and turned them into a framework.

Because the Java bytecode is interpreted by the JVM (Java Virtual Machine) it is also platform independent, while C++ applications need to be recompiled for different target systems (CPU architectures) which means it can be portable but not platform independent.

 

With the SDK (software development kit) you can write apps that use the framework by using functionality that its API lets you use:

http://developer.android.com/guide/index.html

 

There are many tutorials that show how to build apps and turn them into executable packages.

http://developer.android.com/develop/index.html

http://developer.android.com/training/basics/firstapp/index.html

 

I think you will find many resources for the Eclipse IDE. You would download the SDK from the Eclipse marketplace and then go through step-by-step tutorials that show how to do basic things ...

 

 

 

But careful ... SDL is mostly used by C++ programs. You would probably not use it directly and instead use the graphics functions that the Android SDK API offers (it is another thing that some frameworks do: abstraction ... which makes sure that different implementations of similar tools can be used in a unified way).

Android will probably use SDL and/or OpenGL under the hood. But I am not sure how those things work exactly.




#5143878 What path to take in programming?

Posted by DareDeveloper on 02 April 2014 - 07:47 AM

Yes, get a feel for the big picture first. You might not want to specialize too early ... but do try to go for hands on experience with different technologies.

 

I wrote something for my cousin a while ago ... maybe something there is interesting for you ...

http://izitforyou.blogspot.de/




#5143685 Rotating triangle

Posted by DareDeveloper on 01 April 2014 - 06:18 AM

If I remember correctly from OpenGl you apply transformations before you draw the triangle.

 

I hope people will correct me if I am wrong, but it seems as if you modify a matrix with ...

D3DXMatrixRotationX(...), D3DXMatrixRotationY(...), D3DXMatrixRotationZ(...)

 

and then apply it with ...

 

Dev->SetTransform(...)

 

EDIT

 

or D3DXMatrixRotationYawPitchRoll(&matRotate, ry, rx, rz);!?

There is an article:

http://stackoverflow.com/questions/8788925/how-to-rotate-an-object-in-xyz-axes-on-directx

 

/EDIT

 

I'd expect the transformation outside the drawing function for the triangle ...




#5143664 Managing game worlds

Posted by DareDeveloper on 01 April 2014 - 04:01 AM

You might want to feed google the search term "scene graph".

A scene graph can be the element that renderer and entity logic / collision detection etc. share.

 

As L.Spiro wrote the game state / progress can be managed independently from the rendering.

For games like AoE 2 the object states might fit into the memory of the client PC.

 

For more complex games the entity state might be stored in databases of a server environment ... in a distributed way and only the relevant data would be forwarded to the client (into the scene graph).




#5143411 Linux development...

Posted by DareDeveloper on 31 March 2014 - 02:09 AM

Code::Blocks might work for you.

 

Afaik X11 is a low level windowing system technology. I suppose if you use libraries like SDL2 or an engine you will not need to deal with its API directly.

 

I do not remember any kind of programming as trouble free.

Better find the right pace. Trying to accomplish too much at once is usually frustrating ... and develop the resilience to struggle through build issues. They will not just disapear ... ever ... I fear.

 

 

What exactly went wrong when you tried to use Irrlicht?

 

There is a tutorial for Irrlicht and C::B (Code::Blocks) btw. (oops, might be Windows specific, though):

http://irrlicht.sourceforge.net/tut_codeblocks.html




#5143102 Browser-Based Game: Best Language?

Posted by DareDeveloper on 29 March 2014 - 12:44 PM

There is no reason why he cannot implement the entire text based game in a single HTML page with a single input field and button for input, and a single text area for output.

Yes, but still yo have to able to tell things apart, and it is extremely hard to do that.

HTML is a markup language ... what does that even mean?

JavaScript can be used for game logic ... what is JavaScript again (what type of language)? What else can be used like JavaScript (what directly, what indirectly)?

What is the difference between Java and JavaScript?

Why are people talking about Client / Server communication?

In short: yes it is scalable, but only for people who know a lot about web development.

 

The time might be better invested in just setting up development environments for different languages and not even going beyond "Hello World!" projects ... and reading up on those languages / types of languages (even/especially with Dialects' update in mind).

 

Doing a browser based game makes sense if you want to practice the skillset.

When you want to learn about game development in general ... better keep it more simple than that, because everything will be a blur until you know more about the components/technologies that are involved.

 

 

I'd like to add that I do not plan on following a programmer's career, at least not at present. The necessity to learn programming (or at least the very fundaments of it) is only a mean to allow for greater assertiveness when creating and contemplating the design of a game. This is not to say I won't take programming seriously --I just see it in a different perspective than someone willing to make a career out of it would at this point in time.

You would not be looking at the big picture if you zoom in on web development now. That big picture knowledge is something that might be really valuable for you as a game designer.

 

But sure, if you want to specialize already that is fine. I still would not start with building a skill ... better do the relevant research instead.

Then break the technologies down further and practice those with simple projects for hands on experience:

  • learn about HTML5, play with pure HTML for a while
  • add CSS files for a site, play with that for a while
  • Write simple JavaScript files ... understand the role that it plays
  • Bring everything together, maybe write a style switcher before you go for the game



#5143063 Browser-Based Game: Best Language?

Posted by DareDeveloper on 29 March 2014 - 09:03 AM

Doing a text based game in the browser might not be the best idea.

 

Doing text based games first is usually recommended because of the simplicity of writing a console applcation.

As I see it that does not translate to the browser, though.

It is possible to write game logic that modifies the Dom tree, changed the text in a div, takes values from input fields etc.

...

but the desired simplicity is gone. Having to manage those tasks adds complexity compared to graphical games with canvas.

I recommend starting with something other than web development. That will also give you an idea of how web development is different ...

and there are just so many concepts involved in web development that it might be a good idea not to look into that until later in your programming career ...




#5142108 Basic console project

Posted by DareDeveloper on 25 March 2014 - 03:57 PM

EDIT: Careful ... read my other post ... I was too quick ... and wrong ;-)

 

Any reason why the cin >> get1 is part of the condition? I don't know what kind of operator >> is exactly and what the operation should return, but it seems to evaluate as false and that is probably why the else is never executed.

 

With get1 you have the additional "&& get1==0" ... you could add that to the 2nd condition as well ...

 

But would't that work?

		cin >> get1;
		if (get1==0) {
			cout << "Did you even try?" << endl;
			cin.clear();
			cin.ignore(1000, '\n');
		}
		else {
			if(get2==0)cout << "Enter second operand (integer): >";
			cin >> get2;
			if (get2==0){
				cout << "Cmon! You can do it!" << endl;
				cin.clear();
				cin.ignore(1000, '\n');
			}
			else cout << "Good boy! Press ENTER to continue" << endl;		
		}

That still would not be quite pretty, though ... but you know that :-)

 

EDIT: Careful ... read my other post ... I was too quick ... and wrong ;-)




#5141749 Will a 2D Game Engine complex to make?>

Posted by DareDeveloper on 24 March 2014 - 11:43 AM

I am torn regarding the article.

 

When you write a game instead of writing a framework and using it for a game, that often leads to problems with the cross-cutting concerns.

You end up with tangling and scattering, you do not go for separation of concerns. The "writing an engine" approach leads to better auto-pilot decisions.

 

On the other hand I love the TDD approach. In theory you can write a game and keep the functionality you are adding clean ... and the architecture flexible.

The problem is that there are many ifs for that to go well ... most people do not think about adding functionality the right way until they have played the thought of what adding a feature as engine functionality would look like.

 

So I like the engine approach and think about that as best-practice-training-wheels.

I guess a combination is the best compromise: writing a game (or several games at once?) while writing the engine features that you need at the moment.

Guess that is what the article tries to suggest but not places the focus on ...




#5141645 There got to be a better way to manage animations.

Posted by DareDeveloper on 24 March 2014 - 02:25 AM

You can try another approach to see if you would run into problems:

 

Come up with feature ideas that you might want to add at some point and think about what API you want to work with for those features.

Things like animation blending, playing at different speeds, pausing, aborting etc.

 

Where would you store what the currently shown frame is? I guess that would be another member variable in the IActor class?

 

I think I'd put most of the logic into an Animation class and let the Actor manage the currentAnimation reference (set new Animation objects, forward the time that has passed to it etc.).




#5141380 Want to make light/day cycle, searching for light engine or sugestions / idea...

Posted by DareDeveloper on 23 March 2014 - 02:51 AM

A more sophisticated solution would not have to be completely 3D but you would need additional textures that store some information about the shape of the object.

 

This shows a project that did something like that.

https://www.kickstarter.com/projects/finnmorgan/sprite-lamp-dynamic-lighting-for-2d-art?ref=live

 

Ideally that would probably be rough normal vectors stored in a texture ... and the lighting engine would use it.

Guess something like that is needed if you want different light sources to have the desired effect, but not sure what a tool to create those maps with would look like.

 

You might be able to use only one grayscale image with the one value indicating how much the local color is influenced by the ambient light. The ambient light could change over time. The local color would stay the same. Black would mean it is always shown as a shadow.

Faking a local light source by modifying the color of the ambient light and using the resulting color (and maybe intensity) to modify the rendered object color might give reasonable results. Not sure ... guess a lightsource behind an object would be problematic.

 

Using white and black for darker and brighter is not optimal.

Maybe you can look at art tutorials and come up with a smart innovative way to accomplish what you want:

http://androidarts.com/art_tut.htm




#5141300 What are you interested in?

Posted by DareDeveloper on 22 March 2014 - 03:50 PM

Hi all,

 

I want to make a bigger commitment to game development and I realized I need a gameplan to invest the little time I have wisely.

Writing articles might help with making sure that I do enough research and that I have to think about what I am doing.

 

Guess on the one hand writing articles for beginners seems right. I could show how I would approach the same tasks with different languages.

On the other hand a stronger focus might lead to more interesting articles. A poll might be great input for me to decide what other people think is worthwhile. Please write a reply if you want to elaborate ...

 

What are you interested in?

 

Here are some article idea details:

 

1.) Let's Take A Look At Languages

I would explain the task which would be writing a Google Code Jam - Tool

A TaskCreator would use procedural content generation to create small and large input files

There would be a totally over engineered TaskSolver framework and GUI.

Reason: I want to stress that solving a problem requires a different skillset than designing a bigger software project.

 

I would introduce the languages and implement something that the language allows:

Bash/CMD (Static HTML Pages), Python/Ruby/JavaScript (Web Application), C/C++/C#/Java (Desktop Application)

 

I guess I would not do all of those. If you are interested in one language in particular please mention it in a reply.

 

2.) Building Codebases For Open Source Projects

 

This is something that I need to look into before I tackle the bigger projects.

Whenever I try to set up a codebase with support for multiple IDEs, continuous integration and, in the case of C++, conditional compilation, I give up because that is so extremely tedious.

I need to struggle through that, though. If anybody wants to help, please reply here or contact me.

 

The plan is creating a starting point for a C++ Library and a project using it.

 

3.) Basic 2D Games Sharing A Simple Engine

 

I would show how to write a relatively simple 2D engine in Java for Android or C++ and use it for basic (classic) games like 2048, Snake, Pong, Tetris, Asteroids.

 

4.) Simple 2D Games Using The Simple Engine

 

I would show how to use the engine for slightly more complex games that use procedural content generation:

- An Infinite Sidescroller

- A management game: Baseline Watch ( see here: http://www.gamedev.net/topic/646780-the-week-of-awesome-unofficial-gdnet-competition/?view=findpost&p=5087533 )

- 2D Zombie survival game with Worms style weapons (Midpoint Displacement Terrain with zombie-crowds that almost behave like liquids)

- 2D Arena Multiplayer Game - Quake Arena / Unreal Tournament in 2D (CTF, Domination, Deathmatch, KOTH)

 

5.) Simple 3D Games Sharing A Simple Engine

 

Probably I would move to C++ here. The game ideas for this tutorial would be:

- A DOTA/LoL and Bomberman mashup with procedural map generation

- A Racing Game with a Map Editor and procedural map generation

 

6.) A Simple Content Creation Tool With PCG support

 

Would show how to create a tool. It should be able to create different kinds of content and export to different file formats.

 

7.) Designing Features As Libraries

 

For more complex games I want to wirte a toolkit first and then an engine that brings the tools together. This article would deal with designing APIs and keeping principles like SoC, DRY, KISS, COC in mind.

 

- Debugging and Profiling tools

- RNA based memory and file IO Library (I think Blender style file management could be great as a library)

- Procedural Content Generation Library (At least there would be creator rulebooks for synth-helpers like Voronoi and Perlin creators and math helpers that offer things like Bezier support for the creators)

- ... probably many others ... EventHandling is going to be tricky in C++ and probably a library makes sense there.

 

8.) Advanced Games Sharing An Advanced Engine

 

- 2D RTS game

- 2D Proc - Zombie Survival with Syndicate game mechanics (ISO)
- 3D Old school FPS (Linear ... see TotalBiscuit rant: - Simon Says Simulators)

- 3D MMORPG RPG

- 3D Space trading and FPS mashup

 

 

Guess those will be the huge projects. I am considering going for web technologies (JavaScript, Web GL, Web CL etc.) for the advanced projects rather than for C++. Tell me what you would prefer.




#5141253 Multithreading synchronization problem

Posted by DareDeveloper on 22 March 2014 - 11:36 AM

Hi! Hope you will like it here. smile.png

 

Does each thread need its own entity list in memory?

 

Can't one thread actually manage the modifiable scene graph / entity list ... and pass an immutable frameEntityList, built specifically for the next frame, to the other threads?

Guess the logic thread would have to remember or signal that a tank was built, the entity management would create the actual object for the next frame and add it to the immutable list.

 

You might even be able to add some culling when you build the frameEntityList.

 

Disclaimer: as far as I know such a central thread managing logic is not uncommon, but I am not yet a concurrency expert.






PARTNERS